BizTalk Utilities CV ,   Jobs ,   Code library  
 
Home Page
Uncategorized
Get started in XML now!
WAPReetings - A WAP Greeting card example
XML, releasing the power of the future?
XML for Not Yet Techies
XML Structures for Existing Databases
Riding the Media Wave
XML and Server-Side Processing
XML Interoperability
Connecting E-commerce Systems with XML
Bluetooth: A Programmer's Primer
Building Dynamic WAP Applications with ColdFusion
Creating a Dynamic WAP Application
WAP Subscriber Identity Modules
The Future of WAP: v1.2 and Beyond
Learning the Lessons of WAP
WAP Overview
Building Usable WAP Applications
Version Forward
Aprenda XML (Spanish version of Learn XML)
Converting HTML to WML
<< System.XML
WCF, WS, SOAP >>

By :Mark Wilson
I am the creator of TopXML. I am available for international and local (Australia) contracts. I am a Solution Architect/Business Analyst. I have worked in IT in several countries (NZ, Australia, South Africa, UK) building and training teams for government and very large non-governmental organizations. I am ex-Microsoft Consulting Services. I wrote the first book on Microsoft XML published in 2000 called XML Programming with VB and ASP. Most recently I have been building tools for the SEO industry. Ask me for a 37 point SEO health-checkup for your website.
First posted :08/22/2000
Times viewed :1807

 

The Wireless Application Protocol

by James Ewing

Part II - A Descent Through the WAP Protocol Stack

The WAP protocol standard is designed and maintained by the WAP Forum. The WAP Forum is a consortium of companies that have jointly developed the WAP standard and have presented it as an open protocol for use as a global standard for wireless communication. WAP is built on several predecessor protocols both in the transport protocol level and in the presentation level.

The WAP 1.1 protocol stack consists of the following components:

 

 

I. The Presentation Layers: WML, WMLScript, WBMP

The Wireless Markup Language, WML, is an XML language defined by the WAP Forum. It is designed for small screens and is based on a card metaphor. Several cards can be defined and contained in the same physical file. This would be called a "page" in web parlance, but is called a "deck" in the WAP nomenclature.

WMLScript is based on the ECMA Script (formerly known as Javascript) scripting language. WMLScript functions can be called from within WML decks or cards, although the function bodies themselves must be defined in separate WMLScript files. WMLScript supports basic screen painting, text manipulation, and math functions. It is an untyped language where variables convert automatically between different formats such as numbers to text to booleans. Several predefined core libraries are available in WAP clients that support WMLScript. These libraries provide basic string manipulation and mathmetical transforms, as well as functions specific to mobile phones.

The WAP BitMap format, WBMP, is a single bit-plane graphics interchange format. It is a simple format that defines single bits for basic black and white images. Although the WAP Forum's stated direction is that the WBMP will support grayscale and color images in the near future, the current standard does not.

II. The Binary Presentation Formats: WBXML and WMLScriptc

The binary WML format, WBXML, is an encoded form of the WML language. Binary WML is based on a generic binary XML coding format that the WAP Forum has designed to allow compact transfer of XML markup languages. The format defines a basic header, a string table, and a series of binary encodings for the XML tags, attributes, and end tags. WML content is normally parsed and encoded into this binary format before transmission from a content server to a WAP client.

WMLScriptc, or WMLScript "compiled", is the binary encoded form of the WMLScript language. Unlike ECMA/Javascript which is interpreted directly in the browser, WMLScript is compiled into a virtual byte code on the WAP gateway or WAP server. This byte code is run in a virtual machine on the WAP client device. In this respect, WMLScript is similar to Java running on a JVM.

 

III. The Session Layer: WSP/B and WSP

The WAP Session Protocol/B, WSP/B, is a stateless, binary protocol patterned after the HTTP World Wide Web protocol. It consists of a simple request-response pairing. WSP/B contains fields that describe the contents, origin, and types of the request or response contents. There is a one to one correspondence with a subset of the HTTP 1.1 fields. No state information is maintained between requests. WSP uses the WAP Datagram protocol directly for communication with WAP clients.WSP/B is sometimes called WAP connectionless mode.

The WAP Session Protocol, WSP, is a session oriented, stateful binary protocol used in conjunction with WTP. WSP is a superset of WSP/B and uses the same fields of information. WSP also defines additional protocol formats to support sessions initiation, suspenion, and resumption and to maintain session state information. A session is initiated by a WAP client and is maintained until it is explicitly disconnected. WSP sessions can be suspended and resumed and can even switch WDP bearers mid-stream. All WSP information is exchanged using the WAP Transaction Protocol, WTP, described below. WSP is often referred to as WAP connected mode.

 

IV. The Transaction Layer: WTP

The WAP Transaction Protocol, WTP, is a confirmed transaction protocol used in conjunction with WSP. WTP is loosely based on a relatively unknown Internet protocol called TTCP/IP. Three different WTP transaction classes are defined in the protocol. The simplest transaction class, class 0, is basically not a transaction at all. It is a non-confirmed simple push of information in one direction. This transaction class is used for basic information exchange. Transaction class 1 is used for WAP 1.1 push transactions and is a simple send-acknowledge exchange. Transaction class 2 is a three-way handshake used for most WSP/WTP information exchange. This handshake is a send-acknowledge-response trio sent from the initiator to the responder and back again. WTP also has an optional capability to segment and reassemble data. This is similar to the part of the capability built into TCP/IP. WTP class 1 or class 2 transactions use a timeout and resend mechanism when packets are unacknowledged. The recommended timeouts and maximum resend attempts vary depending on the WDP bearer used. For example, the WAP Forum recommends that fairly low timeout and resend values are used with UDP, while much higher values are recommended with SMS.

 

V. The Security Layer: WTLS

The WAP Transaction Layer Security, WTLS, is a session oriented, secure protocol layer patterned after the web's Secure Session Layer (SSL) and Transaction Layer Security (TLS) protocols. The WTLS layer is optional and is independent of the layers above and below it. One unique feature of WTLS is the ability of both client and server to independently recalculate encryption key information based on an embedded sequence number. WTLS is thus optimised to minimize information exchange between client and server. There are three levels of WTLS secure sessions. Level one is anonymous encryption where neither client nor server is authenticated. Level two supports server certificates where clients authenticate the server. Level three supports client certificates where the server can authenticate the client. WTLS supports three certificate types: x.509, WTLS, and x.968. The WTLS certificate format is unique to WAP and is designed to minimize information transfer. The x.509 certificate is the same format as that used on the web in SSL and TLS transactions. And the x.968 format is currently not fully specified, but will be supported in the future. WTLS is compatible with both WSP/B and WSP with WTP and can is activated as an additional protocol layer between either of these higher layers and the WDP protocol.

 

VI. The Data Transport Layer: WDP

The WAP Datagram Protocol, WDP, is a datagram oriented, network layer protocol modeled after the User Datagram Protocol (UDP) used on the Internet. UDP is a member of the TCP/IP protocol suite and is a simple, "best effort" data delivery protocol. On those networks where Internet protocols are present, WDP and UDP are identical. On networks where UDP is not available, WAP defines a UDP equivalent. These UDP equivalents are known as "mappings". The currently defined mappings create the equivalent of UDP over SMS, USSD, and other mobile data transports. WDP makes no attempt to confirm delivery, resend lost packets, or correct errors in transmission. This is left to the higher layer protocols.

VI. The WAP Communications Model.

WML, WMLScript, and WBMP content usually reside on WWW servers on the Internet. A WAP gateway is placed between the mobile network and the Internet content servers. The WAP gateway receives WAP requests using the binary WAP communications protocols. The WAP gateway translates these requests from the WAP binary protocols to the text based World Wide Web protocols and forwards the translated requests to the content servers using the TCP/IP network protocol.

The WAP gateway waits for the WWW text protocol response to the original request, receives the response via TCP/IP and then reformats it back to the binary WAP protocols. The WAP gateway sends the reformatted response to the WAP client via WDP.

The next part of this article series will explore the WAP communications model in more detail, including a look at the some of WAP's benefits, flaws, and possible future developments.

James Ewing
mi4e Incorporated
Stockholm, Sweden

Copyright ( 2000 mi4e Incorporated, Stockholm, Sweden. All rights reserved


Rate this article on a scale of 1 to 10

Your vote :  


 

Recent Jobs

Integration Specialist Needed - Wor
Virtualization Server Infrastructur
A great opportunity to Digital Vide
here is a greate opportunity as a S
A great opportunity as a Network En

View all Jobs (Add yours)
View all CV (Add yours)




Chicago Web Site Design
spfxmasks
conference calling
Versace sunglasses
air freshener
odor remover


    Email TopXML  

Front Page Daily Stuff TopXML Forum XML blogs XML Newsgroups BizTalk Biztalk Utilities Biztalk Utilities Tutorial B2B SAP XML Microsoft .NET Dotnet System XML Soapformatter SQLXML XMLserializer XQuery PHP PHP SimpleXML PHP XML Dom PHP XML RPC PHP XSLT Java Java Java XML Xalan Microsoft ASP ASP Schemas XML SQL Server XML XMLDom XSL XSL Tutorial XSLT Stylesheets General Javascript CSS XHTML WAP