andreas@dstc.edu.au CRC for Distributed Systems Technology (DSTC) Brisbane, Australia |
wittig@heidelbg.ibm.com IBM European Networking Center Heidelberg, Germany |
Our approach is based upon introducing a formal typing notation similar to CORBA (defining interface types with OMG IDL). Java's object-oriented language design allows a similar approach to CORBA, the class declaration can be extracted from the source and additionally annotated for human consumption. A good example of such an abstraction and annotation is javadoc, a tools which generates documentation of java code in HTML format from a Java source. Let's call these object abstractions java object types.
To manage Java object types they need to be registered, e.g. with a repository. Such a repository, called Java Object Types Repository, is very similar in purpose and design to the CORBA Interface Repository [1].
A given java object type can possibly have multiple (competing) instances, i.e. various implementations of the same object type or copies of the same object can be hold in multiple locations (e.g. to avoid network congestion). Implementors will want to register their particular instances and users will want to locate them.
CORBA provides the Trading Service [2] satisfying these tasks of registration and location for CORBA based services. Here service providers register their services with the trader, potential service users can search for them. The primary search criteria is on the service type.
A service type for Java code is comprised of the object type and a list of properties to describe non-structural properties. An implementation of the CORBA Trading Services can be directly re-used. The only modification that may be required is because of a different identification of entries in the Java Object Type Repository, compared with the CORBA Interface Repository.
Both technologies are scalable. The interoperability of Interface Repositories has been defined in CORBA 2.0 [1]. The Trading Service specification introduces the concept of links to federate traders.
The outlined approach is extensible to other kind of mobile code as long as the corresponding languages provides means of structural typing and encapsulation.