With the mobile phone industry reporting better than expected sales, and news that, by the end of this year, smart phones are expected to outsell hand-held computers, it should come as no surprise that wireless application development is on the rise. Sun recently announced that by the end of 2004 there may well be more than 200,000,000 Java-enabled mobile handsets. Yet, with all the attention being paid to these microdevices (i.e., low resource mobile devices), it’s surprising to learn that a developer wishing to build a wireless application using XML, SOAP, and web services is left behind.

Why is this? First, a microdevice by definition has an extremely limited amount of memory. Second, traditional packages such as Xerces (for XML) and Axis (for SOAP) are far too large and resource-intensive to work on microdevices. A examination of Xerces.jar file should adeptly demonstrate this fact; it’s over one megabyte in size. Microdevices are simply too small to be expected to work with packages originally designed for desktop clients and servers.

Fortunately this issue is well recognized by the larger wireless community. Sun, in particular, is currently in the stage of finalizing JSR172, a specification that addresses the use of XML, SOAP, and web services on microdevices. The downside is that, given past experience, it’s not unreasonable to expect at least ten to twelve months to pass before finalization and widespread implementation. But that shouldn’t deter anyone wishing to create a wireless application today, for doing so is quite possible using a powerful, free, and open source package readily available from

This article explains the basics of building web service servers and clients using Enhydra’s KSOAP implementation.