Sitan Wei Zhiyuan Lu Zhongmin Shi Yang Yang Xiaowei Song Agenda • • • • • Introduction to WAP WAE and WAP Gateway WML Introduction and Implementation WMLScript and Dynamic WML Page WAP Solution-Success,Challenges, Future Part 1: Introduction to WAP • What is WAP? • WAP Overview • WAP protocol layer What is WAP? • The Wireless Application Protocol(WAP) is an open, global specification that empowers mobile users with wireless devices to easily access and interact with information and services instantly. • Composed by a set of communication protocol. WAP Overview • What type of devices will use WAP? Handheld digital wireless devices such as mobile phones, pagers, two-way radios, smartphones and communicators -- from low-end to high-end. WAP Device Manufacturers Which Wireless Networks Does WAP Work With? WAP is designed to work with most wireless networks such as CDPD, CDMA, GSM, PDC, PHS, TDMA, FLEX, ReFLEX, iDEN, TETRA, DECT, DataTAC, Mobitex. WAP Wireless Operators WAP Software Companies SOFTLINE CCL WAP Example • http://www.mobilewap.com/mobile/index.html WAP Features • • • • Low bandwidth Long latency Small screen size Mobile client Why WAP? • WAP enables any data transport --TCP/IP,UDP/IP,GUTS,SMS or USSD • WAP utilizes standard Internet markup language technology (XML) • The WML UI components map well onto existing mobile phone user interface • WAP utilizes plain Web HTTP1.1 servers WAP Protocol Stack WAP Layers • WAE:main interfaces to the client devices and specify a markup language, a scripting language, and a telephony interface. • WSP:provide connection-based services to the application layer • WTLS:optional layer which consists of description devices • WTP WDP and Bearer Service:They provide reliable transmission of WSP data packets between the client and server over a wireless link. Part 2: WAP Application Environment and WAP Gateway • • • • • • Overview Architecture WAP Gateway WML and WMLScript Content Formats Current Development WAE Overview • • • • For network applications On small, narrowband devices High degree of interoperability WAE defines basics: – For WAP user agents – For WAP gateways. • WAE contains: – WML and WMLScript specifications – Wireless Telephony Application Interface (WTAI) WAE Abstract Network Architecture WSP/HTTP Request {URL} Client Gateway Network Application WSP/HTTP Reply {Content} How It Works Static file or CGI Output WML 7 2 3 Request Encrypted URL Request Client Etc. CGI Scripts etc. Encoder,Decoder WMLScript WTAI Web Server WAP Gateway WML Response Encrypted WML Content 4 HTTP Request xxx wml WMLScript Compiler Protocol Adapters HTTP Response xxx wml 6 5 WAP HTTP Content WML Decks with WML-Script 1 Application Example Why Do I Need a WAP Gateway? • Unable connect directly from current WAP devices to web servers. • Speak a different language between WAP Devices and the Web Servers • An extra server to handle translation – WAP Gateway, or WAP Proxy WAP Gateway • Provides a link between a mobile network and Internet • Converts the 'WAP' request into a 'Web' request • Converts the 'Web' response into a 'WAP' response WAP Gateway (cont’d) • • • • • A particular piece of software located on a server Handles incoming requests from your WAP phone. Compiling the WML pages into bytecode (WMLC) Reduce the size and number of packets Provide hosting capabilities themselves – For dynamic Web applications – determine more about your target client's request • Provide transaction security WML • Tag-based browsing language: – Screen management (text, images) – Data input (text, selection lists, etc.) – Hyperlinks & navigation support • W3C XML-based language • Inherits technology from HDML and HTML WMLScript • Scripting language: – Procedural logic, loops, conditionals, etc. – Optimized for small-memory, small-cpu devices • Derived from JavaScript™ • Integrated with WML – Powerful extension mechanism – Reduces overall network traffic Content Formats • Common interchange formats • Promoting interoperability • Formats: – – – – Business cards: IMC vCard standard Calendar: IMC vCalendar standard Images: WBMP (Wireless BitMaP) Compiled WML, WMLScript (Wmlc, Wmlcs) Content Format Example Example Use of an Image: Image Element <WML> <CARD> Hello World!<BR/> <IMG SRC=“/world.wbmp” ALT=“[Globe]” /> </CARD> </WML> Current Development • Push Model – Alerts or service indications – Pre-caching of data http://www-106.ibm.com/developerworks/eeng/library/prowap.htm • User Agent Profiles (UAProf) – Goal: content personalization – Working with W3C on CC/PP – Efficient transport over wireless links, caching http://www.w3.org/TR/NOTE-CCPP/ Part 3: WML Introduction and Implementation - Make and display WML page How to Make WML page • 1. Write your own code – Write code directly – From a CGI script • 2. Convert from HTML • 3. Visual tools Write your own code WML Example Header Navigatio n Variable Select Elements <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <WML> <CARD> <DO TYPE=“ACCEPT”> <GO URL=“#eCard”/> </DO> Welcome! </CARD> <CARD NAME=“eCard”> <DO TYPE=“ACCEPT”> <GO URL=“/submit?N=$(N)&S=$(S)”/> </DO> Enter name: <INPUT KEY=“N”/> Choose speed: <SELECT KEY=“S”> <OPTION VALUE=“0”>Fast</OPTION> <OPTION VALUE=“1”>Slow</OPTION> <SELECT> </CARD> </WML> Card1 Deck Card2 Write your own code WML Elements • Deck/Card wml Elements card template head access meta Do ontimer onenterbackward onpick onevent postfield onenterforward Go prev efresh noop select option optgroup •Event Elements •Tasks •Variables Setvar •User input Input fieldset •Anchors, Images, and Timers a anchor img timer p table tr •Text Formatting br td Write your own code Defining the Navigation Path <WML> <CARD> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#card2"/> </DO> Dalhousie<BR/>Directory </CARD> <CARD NAME="card2"> <DO TYPE="ACCEPT"> <GO URL="?send=$type"/> </DO> Services <SELECT KEY="type"> <OPTION VALUE="em">1.Email</OPTION> <OPTION VALUE="ph">2.Phone</OPTION> <OPTION VALUE="fx">3.Fax</OPTION> </SELECT> </CARD> </WML> Dalhousie Directory _____________ Next Services 1. Email 2. Phone 3. Fax OK . Write your own code The SELECT Element • Display a list of options – Each option may set the KEY variable and/or bind a task to the ACCEPT key – TITLE= dynamically sets the label string <CARD> <DO TYPE="ACCEPT" LABEL=“Find"> <GO URL="getcity.cgi?location=$city"/> </DO> Forecast <SELECT KEY="city"> <OPTION VALUE="ber">Berlin</OPTION> <OPTION VALUE="rom">Rome</OPTION> <OPTION TITLE="Find" ONCLICK="find.cgi">New </SELECT> </CARD> Forecast 1 Berlin 2 Rome 3 New City ____________ Find City</OPTION> Write your own code The TEMPLATE Element • Defines actions & events for all cards in a deck <WML> <TEMPLATE> <DO TYPE="OPTIONS" LABEL="Main"> <GO URL="main_menu.wml"/> </DO> </TEMPLATE> <CARD NAME="msg1"> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#msg2"/> </DO> First story </CARD> <CARD NAME="msg2"> Second story </CARD> </WML> First story … _____________ Next Main Second story ... _____________ OK Main Write your own code Add Image • <img src=“logo.wbmp" alt=“Logo"/> • WBMP File Generator – JPG, GIF,BMP -> WBMP – http://amazingvb.latinaddress.com Converting HTML to WML • How – translates non-complex HTML documents in to WML – tag-by-tag processing and discard all incompatible tags and contents • Significance – Dramatically accelerates wireless content development by using abundant HTML resources Converting HTML to WML Server Based Converter – Zygo: http://wap.z-y-g-o.com • embedded in the Apache web server via the mod_perl mechanism. • For internal use. • Download: http://wap.z-y-g-o.com/tools/zygo-html2wml.zip • installing the .pm file in the $APACHEROOT/Zygo/ directory and modify Apache httpd.conf file. • The best option of web sites • Enable server error messages to be displayed in handset • Enable Billions of HTML pages, the major resource of Internet, to be shared by wireless device. Converting HTML to WML User-based Converter • WapTools: http://www.argogroup.com Visual Tools • to develop wireless applications using only point-and-click and drag-and-drop approach – DotWAP 1.0 • http://www.inetis.com/english/solutions_dotwap.htm – XYBO v1.4 • http://www.xybo.com/ – MobileDev 2.0 • http://mobiledev.speedware.com/ Visual Tools Example How to Display WML Pages • PDA or Cell phone • Emulator • SmartPhone Emulator Developer Edition 1.2 – http://www.yospace.com • WinWAP v3.0 PRO – http://www.slobtrot.com/winwap/ • M3Gate – http://www.m3gate.com/ Online Test • online utility for code errors, common mistakes, and valid links – The Wireless Internet Lab of www.AnywhereYouGo.com Embedded Browser • YoSpace JavaBean Edition 1.0 & Handset Manufacturer Support Put WAP emulation capability into your application software using the SmartPhone as a JavaBean • 5NINE –an open source development project for creating a WML Browser to work with all types of Linux environments. –make wireless device an attractive alternative for hard-ware manufacturers. Standard Java Classes for WAP • develop and debug WAP programs with standard Java development tools – Waba SDK and VM • http://www.wabasoft.com – UP.SDK 4.2 • http://developer.openwave.com Part 4: WMLScript & Dynamic WML Page What Is WMLScript • WMLScript is the client-side scripting language used for WML pages • WMLScript is based on ECMAScript, like JavaScript • WML scripts are not embedded in the WML pages, they are sent separately. What Is WMLScript Used for ? • WMLScript is used to calculate or validate user input • WMLScript is used to generate message boxes and dialog boxes locally • WMLScript is used to access facilities of the user agent WMLScript Example WML source file (check.wml) <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml _1.1.xml"> <wml> <card id="no1" title="Go to URL"> <do type="options" label="Go"> <go href="check.wmls#go_url(‘$(url)')"/> </do> <p> Enter a URL: <input type="text" name="url"/> </p> </card> </wml> WMLScript source file (check.wmls) extern function go_url (url) { if (String.find(url,"http://") < 0) { url="http://"+url; } WMLBrowser.go(the_url); } WMLScript File • WMLScript source files (*.wmls) • For WML browser or WML simulator • WMLScript compiled files (*.wmlsc) • For WAP device – Stored on server – Compiled by WAP gateway automatically WMLScript Interpreter Standard Libraries • Lang Library (WMLScript language core) • E.g. min(), max(), exit(), abort(), random(), seed() • Float Library (arithmetic floating-point functions) • E.g. pow(), round(), sqrt() • String Library (string functions) • E.g. length(), trim(), charAt(), subString(), find(), replace() Standard Libraries (cont.) • URL Library (handling both absolute and relative URL) • E.g. isValid(), getHost(), getPort(), getParameters(), getQuery() • Browser Library (access the associated WML context) • E.g. getVar(), setVar(), go(), prev(), refresh() • Dialogs Library (user interface functions) • E.g. prompt(), confirm(), and alert() WMLScript vs. JavaScript WMLScript – Used for WML – No objects & array – Support library – Separate file (*.wmls) – Support compiled file JavaScript – Used for HTML – Support objects & array – No library – Embedded in HTML file – No compiled file Dynamic WML Page • Server Side Tools – CGI • Perl • C/C++ – ASP – JSP – Java Servlet Perl Example #!/usr/bin/perl print "Content-Type: text/vnd.wap.wml\n"; print "\n"; print "<?xml version=\"1.0\"?>\n" print "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \n" print "\"http://www.wapforum.org/DTD/wml_1.1.xml\">\n" print "<wml>\n<card id=\"index\" title=\"index\">\n" print "<p>Hello everyone</p>\n" print "</card>\n</wml>" Web Server Configuration Apache Server httpd.conf #WML MIME Type AddType AddType AddType AddType AddType text/vnd.wap.wml application/vnd.wap.wmlc text/vnd.wap.wmlscript application/vnd.wap.wmlscriptc image/vnd.wap.wbmp .wml .wmlc .wmls .wmlsc .wbmp Part 5: WAP Solutions • Success • Challenges • Future Available Wireless Services • • • • Voice SMS – Short Message Service Data (over voice) WAP – simplistic and expensive Attractions of WAP • WAP combines two of the fastest growing industries: wireless and the Internet IP • WAP is an attempt to define the standard for how content from the Internet is filtered for mobile communications • WAP is developed to make readily available content from the Internet easily available to mobile terminals WAP: Scalable and Comprehensive • • • • Any mobile phone Any existing or planned wireless service Any mobile network standard Multiple input terminals Fast Growing of WAP • WAP Forum Limited • Over 450 members device manufacturers network operators SMS center suppliers SMS software suppliers • Other vendors WAP: Major Achievements • Reduces resources and enriches the functionality of the network • Generates additional traffic on the network and revenue • Facilitates migration of applications between networks and bearers WAP Achievement: Examples • • • • • • • Web browsing WAP email WAP conference WAP search Document sharing Collaborative working Still images WAP Promises: Examples • • • • • • • • • Moving images Home automation Job dispatch Remote point of sale Customer service Remote monitoring (Meters) Vehicle positioning Remote LAN access File transfer WAP: Challenges - Commercial • End-to-end security • Client identification • Encryption/Authentication WAP Challenges - Network • • • • Less bandwidth (300 bps to 9600 bps) More latency Less connection stability Less predictive availability WAP Challenges - Usability • • • • Screen size Advanced applications Data input Integration with voice WAP Challenges - Legal Issues • Privacy: Location information • Eavesdropping WAP: Detractors and Controversies • • • • • Difficult to configure for new services Unlikely in a long time-few mobile phones support WAP standard is incomplete WAP gateway vendors competing against each other Other protocols already widely supported or designed to supercede WAP • WAP services be expensive • Example of doubt on WAP’s future http://www.infoworld.com/ New Era of Wireless • • • • Next release of WAP WSG work area WTLS services WDP datagram protocol Competition for WAP • Subscriber identity module (SIM) toolkit • Windows CE • JavaPhone™ Reference • • • • • • • • • • http://www.sce.carleton.ca/wmc/chameleon/wapdoc/wapintro.html http://www.iec.org/tutorials/wap/topic04.html http://www.anywhereyougo.com/wap/Article.po?type=WAP_Tutorial&page=7402 http://www.tenetindia.com/Wap/whatswap/Faq/Faq.asp http://www.tenetindia.com/Wap/Resources/Software/Software.asp?choice=Resources http://www.123wapinfo.com/softwares/ http://allnetdevices.com/faq/?faqredir=yes http://www.palowireless.com/wap/ http://www-106.ibm.com/developerworks/eeng/library/eeng_wapexpo.htm http://www9.org/w9cdrom/228/228.html ? WAP or NOT WAP