Before you start
This two-part tutorial series explores and demonstrates the concept of multiserving -- that is, serving responses to clients according to client capabilities. You'll learn why pervasive computing applications require multiserving and how to multiserve in server-side Java™ applications.
This series also explains the use of device descriptions in multiserving scenarios and demonstrates how to use Wireless Universal Resource File (WURFL) to learn the capabilities of wireless devices so you can implement your own multiserving JavaServer Pages (JSP) tags to be used in your applications. Finally, this series demonstrates how to integrate WURFL features into JavaServer Faces (JSF) and JSP Standard Tag Library (JSTL) applications to fulfill pervasive computing requirements.
This first tutorial in the series focuses on exploring and using WURFL. You'll get an overview of the concept of multiserving and see how WURFL enables multiserving by providing an XML format to express the capabilities of wireless devices. The tutorial then explores WURFL in detail, explaining how WURFL's accompanying Java API works and demonstrating how to use WURFL in multiserving Java applications.
This tutorial also shows you how to use the Wireless Abstraction Library (WALL), a custom tag library based on WURFL, in your JSP applications. The tutorial explains how to build several of your own multiserving JSP tags, and concludes by discussing the importance of multiserving in JSF applications.
This tutorial demonstrates the concept of multiserving by considering example code in two markup languages commonly used in wireless applications:
- Extensible HyperText Markup Language (XHTML)
- Wireless Markup Language (WML)
This tutorial doesn't explain how these markup languages work in wireless devices, but instead focuses on demonstrating how to multiserve the markup of these languages. It is assumed that you have a basic understanding of markup languages. If you need additional information, Resources includes links to some IBM® developerWorks articles that explain how XHTML and WML work.
Who should take this tutorial?
This tutorial is written for those who want to learn the concept of multiserving or want to know why device descriptions are necessary to serve device-specific responses in pervasive computing applications. It is also useful if you want to see the behavior of a multiserving application up and running and serving a variety of wireless clients.
Code samples and installation requirements
You need some tools to try this tutorial's code. The first thing you need is WURFL, which you can download from its official Web site (see Resources).
This tutorial uses the following emulator tools to test the multiserving markup:
- Openwave Phone Simulator Versions 5.1 and 7.0
- WinWAP Smartphone Browser Emulator
- Nokia 3300 SDK 1.0
This tutorial also uses Apache Tomcat 5 as a JSP container, along with Java Development Kit (JDK) 5.0. All these tools are available for free download (see Resources).

