as serialization format (Lawrence, 2004; Cook and
Barfield, 2006; Pautasso et al., 2008; Nurseitov and
Paulson, 2009; Sumaray and Makki, 2012). For ex-
ample, compare the size of the JSON-RPC and Sim-
ple Object Access Protocol (SOAP) requests in 1 and
2. Both essentially contain the same payload. For
stationary computers and servers these drawbacks are
negligible because of the usual high internet connec-
tion speed and high processing powers for these de-
vices. But in todays Internet the percentage of mo-
bile and low power devices like smartphones, tablets,
embedded systems (e.g. in cars), etc is high. RPC
using Web Services is not desirable for such devices.
Instead, JSON is emerging as new standard for mo-
bile service calling. Frameworks for JSON are a built
in part of every noteworthy mobile platform develop-
ment environment.
Additionally, many existing enterprise solutions
are solely available through Web Services, but these
are not well supported by mobile development kits.
Unfortunately, both Web Services and JSON-RPC are
not interoperable. We propose a solution to this issue.
The remainder of this paper is structured as fol-
lows: In 2 existing approaches and the used tools are
discussed. 3 describes our approach to the problem on
an abstract level, whereas 4 introduced our prototype
implementation. In 5 an evaluation is proposed and 6
concludes the work.
2 RELATED WORK
This section lists recent related research and the used
tools.
(Wang, 2011) describes the process of translating
between XML and JSON for web applications. Un-
fortunately, no proof-of-concept nor implementation
details are given. Instead of operating on real Web
Services and real data encoded in SOAP and JSON-
RPC, it is only vaguely spoken of XML and JSON.
It is questionable if the approach can be applied to
real world applications and if the evaluation results
are valid.
2.1 Tools
Apache Camel
2
is a framework for enterprise appli-
cation integration. Its main part is a routing-engine
builder which is used to define routing rules, data
sources and destinations. It also supports protocol
conversions. It is a mature open source project.
Apache Camel is the basis for our tool (Ibsen et al.,
2011).
StAXON
3
allows to read and write JSON using
the Java Streaming API for XML, thus it is a con-
venient tools for syntactic translation between JSON
and XML.
All presented tools are available under the Apache
Software License, Version 2.0
4
.
3 APPROACH
This section describes our approach on an abstract
level from the view of the developer using our tool.
Assume the following scenario: A developer intends
to create a mobile application using a specific existing
Web Service. This Web Service is traditionally SOAP
/ Web Services Description Language (WSDL)-based
and cannot be changed. Unfortunately, most mobile
frameworks only support JSON / JSON-RPC for ser-
vice calling.
3.1 Workflow
We opted for a two-stage approach to this problem. A
few preparation steps are required to shove the tool be-
tween the Web Service (WS) server and JSON-RPC
client. The developer has to login into the manager
(see 4.1) configuration interface and enter the URL to
the WSDL which describes the Web Service of inter-
est. After the processing is done, the developer can
choose to start the adapter (see 4.3) or if preferred
download the archive instead (e.g. to deploy it else-
where). From now on no additional runtime configura-
tion is required. The adapter presents an informal de-
scription of the JSON-RPC interface on a status web
page, which then can be used as a guide to implement
the JSON-RPC client. The description contains in-
formation about the base URL, the available function
names, their expected parameters, and corresponding
return values. The GUI utilities JSON Editor Online
5
for user interaction and presentation. It also contains
a JSON-RPC simulator for debugging purposes.
3.2 Translation
For translation between XML and JSON we use
StAXON (see 2.1) which employs the BadgerFish
convention scheme. It consists of nine simple conver-
sions which are powerful enough to project the pay-
load of XML to JSON and vice versa. Here you can
see an example rule:
2
https://camel.apache.org
3
https://github.com/beckchr/staxon
4
https://www.apache.org/licenses/LICENSE-2.0
5
https://github.com/josdejong/jsoneditoronline
WebServicetoJSON-RPCTransformation
215