WAP Architecture

WAP Architecture

The World-Wide Web Model

The WWW architecture provides a very flexible and powerful programming model (Figure 7-1). Applications and content are presented in standard data formats, and are browsed by applications known as web browsers. The web browser is a networked application, i.e., it sends requests for named data objects to a network server and the network server responds with the data encoded using the standard formats.

click to expand
Figure 7-1: World-wide-web programming model

WWW standards specify many of the mechanisms necessary to build a general-purpose application environment, including:

  • Standard naming model  All servers and content on the WWW are named with an Internet-standard Uniform Resource Locator (URL).[9]

  • Content typing  All content on the WWW is given a specific type thereby allowing web browsers to correctly process the content based on its type.[22,23]

  • Standard content formats  All web browsers support a set of standard content formats. These include the HyperText Markup Language (HTML)[5] and a large number of other formats.

  • Standard Protocols  Standard networking protocols allow any web browser to communicate with any web server. The most commonly used protocol on the WWW is the HyperText Transport Protocol (HTTP)[6], scripting languages (ECMAScript, JavaScript), operating on top of the TCP/IP protocol suite.[7]

This infrastructure allows users to easily reach a large number of third-party applications and content services. It also allows application developers to easily create applications and content services for a large community of clients.

The WAP Model

The WAP programming model (see Figure 7-2) is the WWW programming model with a few enhancements. Adopting the WWW programming model provides several benefits to the application developer community, including a familiar programming model, a proven architecture, and the ability to leverage existing tools (e.g., Web servers, XML tools, etc.). Optimizations and extensions have been made in order to match the characteristics of the wireless environment. Wherever possible, existing standards have been adopted or have been used as the starting point for the WAP technology.

click to expand
Figure 7-2: WAP programming model

The most significant enhancements WAP has added to the programming model are:

  • Push

  • Telephony Support (WTA)

The classical request-response mechanism is commonly referred to as pull to contrast it with the push mechanism.

WAP content and applications are specified in a set of well-known content formats based on the familiar WWW content formats. Content is transported using a set of standard communication protocols based on the WWW communication protocols. The WAP microbrowser in the wireless terminal coordinates the user-interface and is analogous to a standard web browser.

WAP defines a set of standard components that enable communication between mobile terminals and network servers, including:

  • Standard naming model  WWW-standard URLs are used to identify WAP content on origin servers. WWW-standard URIs are used to identify local resources in a device, e.g. call control functions.

  • Content typing  All WAP content is given a specific type consistent with WWW typing. This allows WAP user agents to correctly process the content based on its type.

  • Standard content formats  WAP content formats are based on WWW technology and include display markup, calendar information, electronic business card objects, images and scripting language.

  • Standard communication protocols  WAP communication protocols enable the communication of browser requests from the mobile terminal to the network web server.

The WAP content types and protocols have been optimized for mass-market, hand-held wireless devices.

Feature/Performance-Enhancing Proxies

WAP utilizes proxy technology to optimize and enhance the connection between the wireless domain and the WWW (see Figure 7-3). The WAP proxy may provide a variety of functions, including:

  • Protocol Gateway  The protocol gateway translates requests from a wireless protocol stack (e.g., the WAP 1.x stack-WSP, WTP, WTLS, and WDP) to the WWW protocols (HTTP and TCP/IP). The gateway also performs DNS lookups of the servers named by the client in the request URLs.

  • Content Encoders and Decoders  The content encoders can be used to translate WAP content into a compact format that allows for better utilization of the underlying link due to its reduced size.

  • User Agent Profile Management  User agent profiles describing client capabilities and personal preferences[26] are composed and presented to the applications.

  • Caching Proxy  A caching proxy can improve perceived performance and network utilization by maintaining a cache of frequently accessed resources.

    click to expand
    Figure 7-3: Feature/performance-enhancing proxy

This infrastructure ensures that mobile terminal users can access a wide variety of Internet content and applications, and that application authors are able to build content services and applications that run on a large base of mobile terminals.

The WAP proxy allows content and applications to be hosted on standard WWW servers and to be developed using proven WWW technologies such as CGI scripting. While the nominal use of WAP will include a web server, WAP proxy and WAP client, the WAP architecture can quite easily support other configurations.

Supporting Servers

The WAP Architecture also includes supporting servers (see Figure 7-4), which provide services to devices, proxies, and applications as needed. These services are often specific in function, but are of general use to a wide variety of applications.

click to expand
Figure 7-4: Supporting services

The supporting servers defined by the WAP Forum include, but are not limited to:

  • PKI Portal  The PKI Portal (shown in Figure 7-4)[14] allows devices to initiate the creation of new public key certificates.

  • UAProf Server  The UAProf Server[26][27] allows applications to retrieve the client capabilities and personal profiles of user agents and individual users.

  • Provisioning Server  The Provisioning Server[26] is trusted by the WAP device to provide its provisioning information.

WAP Network Elements

A typical WAP network is shown in Figure 7-5.

click to expand
Figure 7-5: A WAP network example

WAP clients communicate with application servers through a number of different proxies or directly. WAP clients support the proxy selection mechanism that allows them to utilize the most appropriate proxy for a given service or to connect directly to that service as necessary. Proxies can be used to augment a request. They translate between WAP and WWW protocols (HTTP, TCP), thereby allowing the WAP client to submit requests to the origin server.

Proxies may be located in a number of places, including wireless carriers or independent service providers in order to provide feature enhancements coupled to the wireless network (e.g., telephony, location and provisioning) or to optimize the communication between device and application server (e.g., protocol translation and cookie caching).

Proxies may be located in a secure network to provide a secure channel between wireless device and the secure network. In some instances, the device might make direct connections to application servers, for example to provide a secure connection directly between the device and application server. The supporting servers provide support functions required by or generally useful to devices, proxies, and application servers. These functions include Provisioning, PKI, user agent profiles, etc.

Device Architecture

The architecture for WAP devices is shown in Figure 7-6. The Application Framework provides the device execution environment for WAP applications. WAP applications are comprised of markup, script, style sheets and multimedia content, all of which are rendered on the device. The WAP Application Environment (WAE) processing model defines the structure in which these various forms of executable and non-executable content interact.

click to expand
Figure 7-6: WAP client architecture

The network protocols on the WAP client are shared between client and server. They are described in further detail below. Content renderers interpret specific forms of content and present them to the end user for perusal or interaction.

Common functions are defined to be utilized by the application framework, including persistence and data synchronisation. The Wireless Identity Module (WIM), as specified in 'WAP Identity Module Specification,'[12] contains the identity of the device and the cryptographic means to mutually authenticate WAP devices and servers.

The architecture also provides a mechanism to access external functions that are embedded or attached to the devices via the External Functionality Interface (EFI).

Security Model

WAP enables a flexible security infrastructure that focuses on providing connection security between a WAP client and server. WAP can provide end-to-end security between protocol endpoints. If a browser and origin server desire end-to-end security, they can communicate directly using the security protocols. Moreover, the WAP specifications include support for application-level security, such as signed text.

[9]T. Berners-Lee, R. Fielding, and L. Masinter, 'Uniform Resource Identifiers (URI): Generic Syntax.' www.rfc-editor.org/rfc/rfc2396.txt. August 1998.

[22,23]N. Freed, et al., 'Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies.' www.rfc -editor.org/rfc/ rfc2045.txt. November 1996.

[5]D. Raggett, et al., 'HTML 4.0 Specification, W3C Recommendation, 18 December 1997, REC-HTML40-971218.' www.w3.org/TR/REC-html40. September 17, 1997.

[6]R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee, 'Hypertext Transfer Protocol - HTTP/1.1.' www.rfc-editor.org/rfc/rfc2616.txt. June 1999.

[7]J. Postel, 'Transmission Control Protocol,' www.rfc-editor.org/rfc/std/ std7.txt. September 1981.

[26]ECMA, 'Standard ECMA-262: ECMAScript Language Specification.' June 1997.

[14]--, 'WAP Public Key Infrastructure Definition.'

[26]ECMA, 'Standard ECMA-262: ECMAScript Language Specification.' June 1997.

[27]David Flanagan, JavaScript: The Definitive Guide. New York: O'Reilly & Associates, Inc., 1997.

[26]ECMA, 'Standard ECMA-262: ECMAScript Language Specification.' June 1997.

[12]--, 'WAP Identity Module Specification.'