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