Authors: Kris Bubendorfer, John H. Hine
Source: GZipped PostScript (436kb); Adobe PDF (351kb)
Mobile code is a powerful paradigm for the creation of distributed software. Applications constructed of mobile code are able to execute more efficiently, exploit heterogeneity and dynamically adapt to changes in their environment. This paper describes the NOMAD (Negotiated Object Mobility, Access and Deployment) architecture, a platform that provides a distributed systems infrastructure to support applications constructed of mobile code. The challenges faced by such applications include: the discovery of the resources required for execution, the establishment of rights to access these resources, and the ability of an application to locate and coordinate its component parts. These issues are addressed by three complementary platform elements. Firstly NOMAD embodies an electronic Marketplace through which applications locate and obtain the resources they require. Secondly, applications form contracts with the Java virtual machines (Depots) on which they execute, specifying the quality of service to be provided. Lastly, NOMAD provides a global location service, to track the migration of code throughout the system and enable the various components of an application to coordinate to satisfy their collective goals.