be downloaded to the service that understands the
client invocation protocol. Without this, the recip-
ient would already need to know how to deal with
a foreign invocation protocol, which would largely
defeat the value of the pattern.
The third point is the most difficult to realise in
practise. Many languages support dynamic code ex-
ecution: most interpreted languages have an equiva-
lent of the eval() mechanism, through to dynamic
linking mechanisms such as dynamic link libraries
of compiled, relocatable code.However, the only ma-
jor language supporting dynamic downloads of code
across a network appears to be Java, and the princi-
pal middleware system using this is Jini. Given some
level of dynamic support, adding network capabilities
to this is not hard: the author wrote a few pages of
code as proof of concept to wrap around the Unix C
dlopen() call to download compiled code across
the network into a C program.
12 VALUE OF WORK
The value of mixing different middleware systems
can be seen by a simple example. Through UPnP,
various devices such as hardware-based clocks and
alarms can be managed. A stock exchange service
may be available as a Web Service. A calendar and di-
ary service may be implemented purely in software as
a Jini service. Using the techniques described in this
paper, a Jini client could access all of these. Acting
on events from UPnP clocks to trigger actions from
the Jini diary the client could query the Web Service
stock exchange service and ring UPnP alarms if the
value of the owner’s shares has collapsed.
In addition to extending the use of clients and ser-
vices, there are also some side benefits:
• Jini has suffered by a lack of standards work for
Jini devices and device services, with a correspond-
ing lack of actual devices. This work allows Jini to
”piggyback” on the work done now and in the fu-
ture by the UPnP Consortium and to bring a range
of standardised devices into the Jini environment.
Jini clients will be able to invoke UPnP services in
addition to services specifically designed for Jini.
• UPnP is a device-centric service architecture. It al-
lows clients to use services on devices, but has no
mechanism for UPnP clients to deal with software-
only services since they cannot be readily ex-
pressed in UPnP. Work is ongoing within the UPnP
Consortium to bring WSDL descriptions into the
UPnP world. Jini clients on the other hand are ag-
nostic to any hardware or software base, and can
mix services of any type.
Both middleware systems have limitations–in the
case of Jini, in the types of services that can be ac-
cessed, and in the case of UPnP, in the range of ser-
vices that can be offered. Other middleware systems
will have similar limitations. For example, Web Ser-
vices tend to deal with long-lived services at well-
known addresses whereas Jini can handle transient
services
13 CONCLUSION
We have proposed a set of alternative architectures to
bridge between different middleware systems which
uses a service cache bridge and a downloadable proxy
understanding the service or client invocation proto-
col. In addition, we have used this between Jini and
UPnP and we have automated the generation and run-
time behaviour of this proxy from a UPnP specifi-
cation. This has been demonstrated to give a sim-
ple solution for UPnP services and Jini clients. The
techniques are applicable to any client protocol which
supports downloadable code and any service protocol.
REFERENCES
Allard, J., Chinta, V., Gundala, S., and Richard III, G. G.
(2003). Jini meets upnp: In Proceedings of the Appli-
cations and the Internet (SAINT).
Arnold, K. (2001). The Jini Specification. Addison-Wesley.
Bellwood, T. (2002). Uddi version 2.04 api speci-
fication. Retrieved July 7, 2006 from http:
//uddi.org/pubs/ProgrammersAPI-V2.
04-Published-20020719.htm.
Brown, L. and Sablin, D. (1999). Extending erlang for safe
mobile code execution. In Lecture Notes in Computer
Science, vol 1726.
Casati, M. (2006). Javascript soap client. Retrieved July
7, 2006 from http://www.codeproject.com/
Ajax/JavaScriptSOAPClient.asp.
Dabrowski, C. and Mills, K. (2001). Analyzing proper-
ties and behavior of service discovery protocols using
an In Proc. Working Conference on Complex and Dy-
namic Systems Architecture.
Edwards, W. K., Newman, M. W., Smith, T. F., Sedivy, J.,
and Izadi, S. (2005). An extensible set-top box plat-
form for home media applications. IEEE Transactions
on Consumer Electronics, 4(51).
Garrett, J. J. (2005). Ajax: a new approach to web
applications. Retrieved July 7, 2006 from http://
www.adaptivepath.com/publications/
essays/archives/000385.php.
JSON (2006). Json in javascript. Retrieved July 7, 2006
from http://www.json.org/js.html.
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
96