able, and independent to any platforms, it can support automated application integra-
tion and help to improve the development process.
To illustrate the thoughts of implementing web service security, IBM WebSephere
Studio Device Developer (WSDD V 5.6) IDE, which is a J2ME development tool,
which supports automated stub generator and other advanced features, is considered
in this paper. That is, we use IBM WSDD to generate prototype files called “stubs”
and continue developing codes based on the generated files. The “stubs” are gener-
ated based on WSDL file from remote server. It contains the methods to process nec-
essary parameters and arguments to access remote services. The “stubs” may not have
complete codes but it serves as a base for further development. The ultimate goal is
using web services to build an application-centric web, which has less human interac-
tion involved. Thus, in this paper we will only focus the discussion on client-server
web services security implementation rather than enterprise web services, which will
be part of our future works. For manipulating SOAP message, though JSR 172 web
services specification also supports access to remote SOAP/XML based web services
and parsing XML data on the J2ME platform [4], it is not possible for J2ME mobile
devices with limited processing power to include all JAXP functionalities. In addi-
tion, current JSR 172 specification does not support SOAP message header handler.
The kXML [5][6] is a project to provide XML pull parser for J2ME based mobile
devices. It supports XML namespace, and XML writing. These APIs have ability to
process SOAP message using XML parser engine from kXML. kXML/kSOAP API
(an open-source J2ME XML and SOAP parser). In this work, both kXML and
kSOAP have to be included in the java classpath to provide the functionalities of
process SOAP messages. To implement the security functions in the SOAP header,
W3C has suggested adding these security tags into SOAP header as its security exten-
sions. This work will follow the recommendation of W3C to add security information
into SOAP header. As far as cryptographic algorithms used for mobile devices [7] are
concerned, we test and use Bouncy Castle’s cryptographic API, which is an open-
source Java cryptographic algorithm API for J2ME mobile devices. In this paper, five
tasks of security function are to implement: no-security, digest, encryption with sym-
metric key, encryption with asymmetric key, and digital signature. At each task, we
will show its SOAP message, demonstration of result, and time performance. For the
web server we used for this demonstration, we adopt temperature web service pro-
vided by Xmethods [8][9]. As we mention, in this work, we focus on the implementa-
tions of security function at client side, that is, the mobile phone or user side. Then in
the last section, we will draw a conclusion and discuss some future works.
2 Architecture and Implementation
In the client side, developer can use IDE or automated tool to generate stub, a proto-
type or template file to access web services based on the WSDL file. In previous
version of IBM WSDD (Version 5.5), which supports both Document-style and RPC-
style web services and the IDE can help us to generate Temperature_Stub.java file as
a way to automate the application development. However, for the WSDD 5.6 version,
only document-style web services are to support. Thus we use document-style tem-
30