A Trading Service for Mobile Code

Ok Ki Lee (Ok.Ki.Lee@dit.csiro.au)

CSIRO Division of IT, 723 Swanston St., Carlton, VIC 3053, Australia


During the past years, we have witnessed the emergence of new technologies including: interpreter-based languages such as Java [6], Tcl [13] and Python [14], the World-wide Web [4] and its new generation of browsers such as HotJava [16], Grail [7], and Netscape, and CORBA [8] and its implementations such as Orbix [11] and DAIS [5]. Although they have largely developed and evolved separately, it is almost breath-taking to consider what will be ahead of us, when these technologies are finally fully integrated. For example, the integration of the three technologies allows us to achieve ``transportable object computing'', by which we mean that an object can be transported across machine and network boundaries (via Hypertext Transfer Protocol [2]) if necessary and can communicate with other objects in a standard way (using CORBA Internet Inter-ORB Protocol [10]), without worrying about underlying platforms (CPUs, operating systems, etc.) (via interpreter-based languages). However, the integration also poses new challenges to the paradigm of distributed object computing. In particular, this paper is concerned with a Trading Service, one of Object Services within OMA (Object Management Architecture) [15] which deals with how to locate and bind distributed objects. We argue that the existing trading model is not sufficient, and it requires a new model of trading for mobile code.

The need of a trading service for mobile code

Trading is the process of dynamically binding one object to another at runtime. Trading is particularly important when the number of interacting (communicating) objects increases and it is difficult to maintain their bindings statically. Trading has been studied extensively in ANSA [1] and is now under standardisation process within OMG [9] and ISO/Open Distributed Processing (ODP) [12]. The need for a trading service also arises when the number of mobile code on the network increases, which is very likely to happen on the Internet in the near future. Then, mobile code needs to be equipped with such a mechanism which allows it to locate appropriate servers. Without such a service, it would be a complex, if not daunting, task for a client to locate a server in large scale distributed environments. Further, it would be too inflexible for mobile code to depend on hard-wired bindings or difficult to maintain a static list of bindings.

A new paradigm of trading for mobile code

The existing trading model is based on the export-import-execute paradigm which implies `remote execution of remote code', although trading provides location transparency for server code (i.e. physical locations can be hidden). However, with the emergence of universal virtual machines and ubiquitous HTTP, it is very likely that this will change. In mobile code systems, it is now possible to execute remote code locally, whenever it is convenient and necessary. Further, in these environments, mobile code transport mechanisms might need to be integrated with trading. Considering the falling hardware price on the desktop, `local execution of remote code' could be desirable in many cases, except for inherently distributed applications.

Integrating mobile code transport with a trading service

Mobile code requires a new way of trading, because code transport is necessary. Therefore, we propose a new model of trading for mobile code based on the import-transport-execute paradigm. Further, we suggest that the existing trading model be extended in two directions: user interactions and mobile code transport. User interactions might be required in the process of trading for a number of reasons, such as security or user preferences. In this regard, Web browsers can play an important role in interacting with users.

More importantly, as can be seen in applets in the HotJava or Grail environment, HTTP provides basic transport mechanisms for applets. Web browsers interact with Web servers via HTTP and download applets from the Web servers. Usually, the downloaded applets (or handles) are embedded in an HTML [3] document. However, mobile code is not necessarily attached to an HTML document, so it is difficult to directly apply exiting mechanisms to trading for mobile code.

It would be natural for a trading service to take up the role of transporting mobile code, in addition to its locating, binding mechanism. For interactions with other servers, a client code needs to contact a trading service for locating them. After a server code is found, the client may ask the trading service to transport the server code to a given destination. When the number of mobile code in one trading domain increases, there would be the need of trader-trader interactions, as in ANSA federated trading [17]. However, it is not clear yet whether HTTP or CORBA IIOP can be used for mobile code transport between traders. Further investigation is under way to resolve the issues involved in the new model of trading for mobile code.


[1] Architecture Projects Management Ltd., The ANSA Reference Manual, Cambridge, UK, 1989.

[2] T. Berners-Lee, R. Fielding and H. F. Nielsen, Hypertext Transfer Protocol--HTTP/1.0, work in progress within the HTTP Working Group of the IETF.

[3] T. Berners-Lee and D. W. Connolly, Hypertext Markup Language - 2.0, Internet RFC 1866, November 1995. <URL: ftp://ds.internic.net/rfc/rfc1866.txt>

[4] T. Berners-Lee, R. Cailliau, J. Groff and B. Pollermann, "World Wide Web: The Information Universe,'' Electronic Networking: Research, Applications and Policy, v.1, no.2, 1992.

[5] The DAIS Home Page at ICL. <URL:http://www.icl.co.uk/dais>

[6] J. Gosling and H. McGilton, The Java Language Environment: A White Paper, Sun Microsystems, 1995. <URL: http://java.sun.com/whitePaper/javawhitepaper_1.html>

[7] The Grail Home Page at The Corporation for National Research Initiatives (CNRI). <URL:http://monty.cnri.reston.va.us/grail-0.2/>

[8] Object Management Group Inc., The Common Object Request Broker: Architecture and Specification, Revision 1.2, December 1993. OMG Document Number 93.12.43. <URL:ftp://ftp.omg.org/pub/docs/93-12-43.ps>

[9] Object Management Group Inc., Object Services RFP5, 1995. OMG Document Number 95.6.18.

[10] Object Management Group Inc., Universal Networked Objects. March 1995. OMG Document Number 95.3.10. <URL:ftp://ftp.omg.org/pub/docs/95-3-10.ps>

[11] The Orbix Home Page at IONA Technologies. <URL:http://www.iona.ie:8000/www/Orbix/index.html>

[12] ISO/IEC, Open Distributed Processing - ODP Trading Function, ISO/IEC DIS 13235, 20 June 1995.

[13] John Ousterhout, An Introduction to Tcl/Tk Toolkits, Addison-Wesley, 1993.

[14] The Python Home Page at the Python Software Action. <URL:http://www.python.org>

[15] Richard Soley (ed.), Object Management Architecture Guide, Second Revision, Object Management Group, Framingham, MA, U.S.A., September 1992.

[16] Sun Microsystems, The HotJava Browser: A White Paper, 1994. <URL:http://www.javasoft.com/HotJava/overview/index.html>

[17] R. J. van der Linden, Naming and Federation, in Naming Facilities in Internet Environments and Distributed Systems (Special Issue of the Distributed Processing Technical Committee Newsletter), Bharat Bhargava (ed.), Volume 14, Number 1, pp 21-27, IEEE Technical Committee on Distributed Processing, June 1992.

Last Modified: 10:11am , May 03, 1996