New in WAP 2
To see how these complaints have been addressed, let's take a look at what's new in WAP 2.
Evolutionary and Backward-Compatible
WAP 2 is sometimes referred to as WAP "Next Generation," or WAP-NG, perhaps alluding to the Star Trek series that, while linked to the original, has a completely new cast of characters. However, the WAP Forum emphasizes that WAP 2 is an evolution of the existing WAP standards and is fully backward-compatible with the 1.x versions. This is extremely important because millions of handsets, PDA browsers, and WAP gateways in production run 1.1 and 1.2 versions. WAP 2 is defined by more than 50 standards documents covering protocols, telephony, an application environment, security, and more. It is important to note that we are unlikely to see solid support for WAP 2 in production units until well into 2002.
Internet Protocol Support
While retaining support for the WAP 1.x protocol stack, WAP 2 addresses one of the major criticisms of WAP by adding support for the standard Web protocol stack of HTTP/1.1, TCP, and TLS. In addition, these protocols may be used in two modes: for communication between a WAP client and a WAP proxy, or for direct "end-to-end" communication with a Web server. The latter approach corrects a security hole in WAP that occurs when information is decrypted and re-encrypted in the WAP proxy.
Wireless Profiled HTTP supports standard GET and POST methods and adds message body compression of responses to reduce the amount of data sent over the air. Wireless Profiled TCP takes advantage of recent W3C work in improving TCP's performance over "long, thin networks." Implementations of this are required to operate in two modes: split and end-to-end. In split mode, a client establishes a TCP connection with a WAP proxy that typically has features to improve over-the-air performance. In end-to-end TCP, there is no mediating proxythe client connects directly to a Web server just as a regular Web browser does. Similar in concept to wireless profiled TCP is the WAP Transport Layer Security (TLS) profile. This can secure a direct connection from a WAP client to an HTTP server, or can support the use of a WAP proxy between the client and the Web server. In the second case, tunneling is used to guarantee security.
WAP 2 also adds explicit support for HTTP cookies stored either on a client device or at the WAP proxy. This addresses an often-heard developer complaint about how difficult it is to maintain state in a WAP application.
New Markup Language (XHTML Basic)
The most obvious difference between WAP and other thin-client wireless technologies is the use of Wireless Markup Language (WML) to create the user interface of an application. Although Palm, AvantGo, GoAmerica, and I-mode all use some subset of HTML, WML is based on the proprietary Openwave language HDML. In WAP 2, WML wholeheartedly embraces XHTML while keeping backward compatibility with WML 1.x. Because this is such an important change, we will look at this in more detail later.
Support for CSS
Cascading style sheets provide a simple way to style Web pages. Style sheet templates specify rules that define the presentation style (such as margins, fonts, size, and color) of individual XHTML content elements. This permits a consistent look and feel across a Web site or application. Browser differences can also be accommodated using individual style sheets.
In keeping with its move toward XHTML and Web standards, WAP now includes CSS support based on the W3C's mobile profile of CSS. The Mobile profile is currently at the working draft stage and defines a subset of the CSS specification tailored to mobile devices. Both inline and external style sheets are supported.
A number of the standards from WAP 1.x have been enhanced in this new version. The User Agent Profile (UAPROF) is used to specify device capabilities so that content can be tailored to match a device's capabilities. UAPROF has been extended to support direct HTTP transmission of profiles. Similarly, the push standards now support the use of HTTP in the Over The Air (OTA) protocol, as well as message compression (in addition to the original binary encoding of known message formats).
As mobile devices proliferate and handheld computers converge with cellular phones, global positioning systems, and MP3 players, it is becoming increasingly important for applications to take advantage of device-specific features. Support for extensions including GPS, smart card readers, and digital cameras is provided by WAP 2's External Functionality Interface. Think of this as a kind of browser plug-in, a general mechanism for integrating wireless Web applications with device-specific features. It is interesting to note that "external functions" may be built into a WAP device or may be located externally. In one hypothetical example, a WAP service from a digital camera manufacturer could use this interface (and a USB or IrDA link) to upload images from the camera to a Web server or to update a camera's firmware.
To the business user, synchronization is probably of more immediate concern than device integration. Although synching at the office desktop is handled by an IrDA link or serial cradle, it is not always convenient or possible to return to the office. For field workers and salespeople, wireless synchronization can be extremely useful. WAP 2 has adopted the SynchML language and supports transmission of SynchML messages to achieve this. This is another open standard that, like WAP, is driven by an industry consortium (see http://www.syncml.org/).
In response to the promises of high-bandwidth 3G networks, WAP 2 adds support for multimedia. The Multimedia Messaging Service defines a store-and-forward mechanism for communication of messages, including video, audio, and other nontext information. Integration with SMS and email messaging systems is part of these standards. This should not be confused with real-time messaging services such as those used for instant messaging.
Other new standards in WAP 2 cover persistent storage that allows a WAP service to store information such as configuration values on a WAP device using WMLScript library calls. Data is stored in objects within a directory structure. A new provisioning standard fills another hole in the original WAP specifications. Provisioning is all about configuring a WAP device at the network level. This process is similar to what you have to go through when you set up a home computer to connect to the Internet. Although some phones and services can be configured via SMS (particularly in Europe), setting up handsets is often a laborious manual chore. The WAP 2 provisioning standards specify over-the-air mechanisms that rely on an automated server-driven process to do this configuration. WAP 2 also specifies standard pictograms; these are symbols, typically built into a mobile device and rendered as inline graphics. A core set of symbols includes arrows, buttons, media, and system state. These can be displayed using the localsrc attribute of the <img> element in WML 2. WAP 2 continues to specify only black-and-white wireless bit maps. Other image formats (such as GIF and JPEG) may be supported on certain devices or through translation to wireless bitmaps by a proxy server.