Java Reference
In-Depth Information
Java supports one well-established technique for remote procedure calling: remote
method invocation (RMI).
RMI shares a trait in common with RPC efforts such as the Common Object Request
Broker Architecture (CORBA) and the Open Network Computing RPC from Sun: com-
plexity. All three are designed to be robust solutions to a large variety of remote comput-
ing tasks.
This sophistication has been one of the hindrances to the adoption of existing RPC
efforts. The complexity required to implement some of these solutions can be more than
a programmer wants to take on simply to exchange information over a network.
A simpler alternative, XML-RPC, has become widely adopted for web services.
Client/server implementations of XML-RPC are available for most platforms and pro-
gramming languages in widespread use. UserLand Software offers a directory of imple-
mentations at
http://www.xmlrpc.com.
XML-RPC exchanges information using a combination of HTTP, the protocol of the
World Wide Web, and XML, a format for organizing data independent of the software
used to read and write it.
The following data types are supported by XML-RPC:
array
—A data structure that holds multiple elements of any of the other data
types, including arrays
n
base64
—Binary data in Base 64 format
n
boolean
—True-false values that are either
1
(
true
) or
0
(
false
)
n
dateTime.iso8601
—A string containing the date and time in ISO8601 format
(such as 20070915T19:20:15 for 7:20 p.m. (and 15 seconds) on Sept. 15, 2007)
n
double
—Eight-byte signed floating-point numbers
n
int
(also called
i4
)—Signed integers ranging in value from -2,147,483,648 to
2,147,483,647, the same size as
int
values in Java
n
string
—Text
n
struct
—Name-value pairs of associated data where the name is a string and the
value can be any of the other data types (comparable to the
HashMap
class in Java)
n
XML-RPC also supports the
array
data type, which is used to hold arrays of any other
kind of data, including arrays.