470 likes | 744 Views
WAP and Wireless Technologies. Sonia Starik Alexander Levy. Today’s Topics. Wireless Overview WAP Protocol WML WMLScript Transcoders Demo. Wireless - History. 1901 - First digital wireless communication! A ship-to-shore wireless telegraph using Morse Code by Guglieno Marconi
E N D
WAP and Wireless Technologies Sonia Starik Alexander Levy
Today’s Topics • Wireless Overview • WAP Protocol • WML • WMLScript • Transcoders • Demo
Wireless - History • 1901 - First digital wireless communication! • A ship-to-shore wireless telegraph using Morse Code by Guglieno Marconi • dot & dashes <-> binary code :) • Modern digital wireless systems have better performance but have the same basic idea
Wireless - uses • Portable office • telephone calls • emails • remote machine connection • Rescuing workers at disaster sites • fires, floods • earthquakes • Military
Variety of mobile devices • PDA • Mobile phone • Pager • Embedded system • Automobile Information appliance(car navigation system) • Mobile game machine • Digital book reader • Smart watch
Hardware Specifics • Small memory capacity • Small display space • Less powerful CPU • Limited input method • No or small data storage • Limited power consumption
Wireless Market Specifics • Ease of use • used by people without computing experience • used in dynamic environment • simple and quick user interface • Market size • 200 million wireless subscribers today • more than 1 billion by the year 2005 • will demand optimized solutions
Wireless Market Specifics(cont) • Usage patterns • wireless data access is expected to make good performance • service should be instantly available • Essential tasks • small, specific tasks to be accomplished quickly • possibility to retrieve comprehensive summary of important information easily
Wireless Network Specifics • Less bandwidth • More latency • Less connection stability • Less predictable availability
Wireless - Resume • Wireless world has specific restrictions • Wireless market is growing • Many of phones will (probably) have multimedia capabilities => So - special technologies are needed!
Wireless Application Protocol -one of today’s solutions... • Uses existing standards and adds its own • Provides fast, reliable and secure service • Enables point access to desired specific information instead of bringing the whole page • We will see it’s functionality in more details further...
WAP History • 1995 - Ericsson works on Intelligent Terminal Transfer Protocol (ITTP) to make it easy to add services to mobile telephony platforms • 1996 - Nokia works on Smart Messaging concept • 1997 - Unwired Planet (Phone.com) creates HDML (Handheld Device Markup Language) - like HTML, optimized for devices with small screens (phones, pagers, PDAs)
WAP History (cont) • 1997 - the WAP Forum was establishedto create and constantly improve the WAP specification by Nokia, Motorola, Ericsonand other manufactures • Recently the WAP membership represents95% of global handset market...
WAP Network Structure • Wireless Application Protocol specifies • End-to-end application protocol • Application environment • Network side • WAP Gateway
WAP Gateway functionality • Protocol gateway • translates requests from the WAP protocol stack to the WWW protocol stack (HTTP and TCP/IP) • Content Encoders and Decoders • translate Web content into compact encoded formats • cache frequently used information
WAP request 1. User presses a phone key that has an URL request assigned to it 2. Browser sends an URL request to a WAP gateway using the WAP 3. Gateway creates HTTP request for the specified URL and sends it to the web server 4. Web server processes HTTPand returns the WML deck 5. WAP gateway - encodes it to binary form - creates a WAP response - sends it to the user agent 6. Browser receives the WAP response and displays it
WAP Protocol Stack (cont.) • Plain text headers of HTTP are translated into binary code • Suspend and resumesessions • Provide reliable datagramservice but more savedthan TCP
Pull & Push • Pull: client request a service, which then responds in transmitting information to the client • Push: server transmits information to a device without a previous user action
Push Framework • Push framework allows applications to alert the subscriber when time-sensitive information changes • Email and pager notifications • traffic alerts • stock quote triggers
WTA (Wireless Telephony Applications) • Allow access to telephony functionality • call control • phone book • messagingfrom within WMLScript • Initiate phone calls from the browser
User Interface Model • Users navigate through cards with up and down scroll keys instead of a mouse • Soft keys allow the user to perform specific operations appropriate to the application context, or select menu options • A traditional 12-key phone keypad is used to enter alphanumeric characters • Navigation functions such as Back, Home, and Bookmark are also provided
Microbrowser • Control user interface • present graphical and textual information • interprets alphanumeric data entry • script interpreter • Empowers mobile phone users with rapid access to • email • Calendar • Contact list • To-Do list and corporate applications
WAE & WML/WMLScript • Wireless Application Environment defines user interface • Contains WML, WMLScript and WTA • We will see in more details what is WML and WMLScript
The Legend Says... “In the beginning, Berners-Lee created HTML and the Web. And the Web was without form, and void; and darkness was upon the face of the deep. And the Spirit of Tim moved upon the face of the routers. And Tim said, "Let there be tags," and there were tags. And Tim said, "Let there be design in the midst of the content, and let it divide the content from the content." And in the beginning there was universality, and everyone could parse the HTML, read the web pages, and Berners-Lee saw everything that he had made, and it was good. And the night followed the day, and the years passed …”
WML General • 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 • Don’t assume keyboard and mouse presence • Designed for small displays
WML General • Card metaphor • User interactions are split into cards • Navigation occurs between cards • Explicit inter-card navigation model • Hyperlinks • UI Event handling • History • State management and variables • Reduce network traffic • Results in better caching
Card-Deck Metaphor • The basic units of WML are cards • contains structured content • navigation specifications • Cards are grouped into decks - the top-most element of a WML document • When receiving a deck, the first card is activated unless directed to another card by URL reference
WML Syntax • Entities • numeric or named • specify specific characters in document character set which should be escaped by WML • &, < • Elements • specify all markup and structural information about a deck • may be of two forms: • <tag>content</tag> • </tag>
WML Syntax • Attributes • Specify additional information for an element • Syntax: <tag attribute1=“value1” attribute2=valu2…> • Some attributes are mandatory: for example< go href=“http://www.yahoo.com”/>here the go element requires href attribute • Some attributes are optional and may have default values. For example, align attribute is optional for img element and has default value “bottom”
WML Syntax • Variables • flexibility, better caching behavior, better perceived interactivity • substituted at run-time • substitution into text (#PCDATA) of a card or into %vdata or %href of a WML element • XML syntax has higher priority than var. substitution • for variable substitution use the next syntax: • $identifier • $(identifier) • $(identifier:conversion)
WML Syntax • Control Elements • select lists • lets user pick from a list of options • each option specified by option element • option elements may be organized into hierarchical groups using optgroup element • may accept single or multiple selections • option element • optgroup element
WML Syntax • Input Element • specifies a text entry object • input is constrained by (optional) format attribute • if the input does not confirm to the input mask, the user agent rejects the input • fieldset element groups related fields and text, allowing layout & navigation optimization for user agent
WML Syntax • Event handling • timer expiring, entering a card etc • card/deck shadowing • card level/deck level • active/inactive event-handling elements • intrinsic events • indicate state transitions inside the user agent • ontimer, onpic, onenterforward, onenterback • onevent
<wml> <template> <do type=“options” name=“do1”> <prev/> </do> </template> <card id=“first”> <!--inherits the do element--> </card> <card id=“second”> <!--shadows the deck-level--> <do type=“options” name=“do1”> <noop/> </do> </card> <card id=“third”> <!--shadows the deck-level--> <do type=“options” name=“do1”> <go href=“options”/> </do> </card> </wml> Shadowing Example
Onevent Example In this example the go task is performed when user causes the user agent to enter a card using a go task <card> <onevent type=“onenterforward”> <go href=“/url”/> </onevent> <p> Hello </p> </card>
WMLScript • Clint-only scripting platform used in combination with WML to provide client-side procedural logic • Derived from JavaScript • Is not object-oriented • Compiled via WAP gateway into binary form • Bytecode + interpreter reference architecture optimizes utilization of current narrowband communications chanels and handheld device memory requirements
WMLScript - Uses • Check validity of user input • Access facilities for user agent • different features on mobile phones • Generating messages and dialogs locally • alerts, error messages, conformations etc can be seen faster by the user • Building extensions to agent user software
WMLScript Syntax • Basic syntax • consists of statements ended with semicolon “;” • case-sensitive • comment syntax is identical to Java and C++ • Data types • Boolean, Integer, Floating-point, String, Invalid • weekly typed language (no type checking at compile or run time) • no variable types are specifically declared • impossible to create user-defined data types
WMLScript Syntax • Operators • value assignment, arithmetic, logical, string, comparison, array operators • Flow Control Statements • loops, conditionals etc. identical to those of JavaScript • Functions • extern function identifier(FormatParameterList)Block; • example: function RunTime(distance, speed) { var time = distance / speed; return time;};
Smart phone 100 MHz processor many MB of flash memory color display Transmission protocol enable several subscribers to use the same line at once (CDMA) Markup Language C-HTML subset of HTML I-Mode C-HTML
HDML • HDML is Markup Language suited for small screens • HDML has multiple body sections • Hello World Example <HDML VERSION=2.0> <DISPLAY> Hello World! </DISPLAY> </HDML>
Transcoder Technology • Transcoder filters and reformat content presented to user based on • device constrains • network constrains • user preferences • organization polices • Transcoding content reduce or eliminate the need to maintain multiple version of data and applications
IBM Transcoder • Simplify HTML document • replace images embedded in pages with links to them • remove objects or features: animations, JScript, Applets • Convert GIF and JPG to appropriate formats • TransformHTML into well-formed XML • Subdivide content into small sections (cards) • Stylesheet application to XML document • HTML to WML • HTML to C-HTML (iMode) • HTML to HDML
Transcoding Flow (WML path) 2a Client sends an URL request to a WAP gateway (WG) using the WAP WG creates HTTP request and forward it to Transcoding Proxy (TP) 2b TP sends HTTP request and sends to Web Server (WS) after editing 2c HTTP reply comes back from WS 2d TP converts the doc to WML form using correct stylesheet 2e TP forwards the WML doc to WG WG creates a WAP response and sends it to the user agent
References • www.wapforum.org • www.mobilewap.com • www.nokia.com • www.ericsson.se • www.motorola.com • www.palmos.com • www.phone.com • www.w3.org • www.microsoft.com/windowsce/ • www-4.ibm.com/software/webservers/transcoding/ • www.oracle.com/ip/deploy/database/8i/index.html?lite.html • www.nttdocomo.com • cover pages