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.
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.