to enable servers, desktops and mobile devices to exchange data while
removing the complexities that are usually involved when different appli-
cations run on different devices or operating systems.
The Web Services specification, JSR-172, provides standard Java APIs
that make it easy for a smart Java ME client application to parse XML files
(it supports SAX 2.0, XML namespaces, UTF-8 and UTF-16 encoding,
etc.), use JAX-RPC client-side APIs to discover and invoke hosted web
services, use secure messaging over HTTP or HTTPS, and more.
On Symbian OS devices, Java ME developers can use JSR-172 to
discover and exchange data with any number of servers, to leverage
existing public web services (e.g., Amazon, eBay, and Google) and easily
create new applications that are interoperable with many web services
Symbian OS provides powerful APIs for all the technologies required to
build web services client applications (e.g., HTTP, XML, etc.). However,
these native APIs are not grouped together to support web services as a
single framework, in the same way that JSR-172 puts XML, HTTP and
RPC into the same bucket. An implementation of JSR-172 could provide
its own internal web services engine implemented entirely in native
code but that would only be one possible combination of various native
Symbian OS subsystems, rather than integration with a single Symbian OS
component that ensures functional consistency. (In theory, if a UI platform
based on Symbian OS introduced its own web services subsystem, the
manufacturer could provide its own integrated JSR-172 implementation.)
This is an example of a case where a pure Java implementation was
favored. Java packages were implemented in pure Java and integrated
with the Java layer of the Java ME subsystem. None of the classes in these
Java packages have any direct calls to native functions. Therefore, in this
case we do not have any native architecture to discuss nor integration
challenges to present.
The decision to choose a pure Java implementation for JSR-172 came
after considering the following factors:
Java strategy - In this case, it was a legitimate decision to take the
pure Java approach.