Middleware'98

Middleware 98 | Conference report | Proceedings


Conference report

Welcome message
List of delegates
Sponsors
Wireless network
Photographs
Conference team

Final programme
Session 1
Session 2
Session 3
Session 4
Session 5
Session 6
Session 7
Session 8
Session 9
Session 10
WIPS session
Poster session


Session 8: Mobile Objects - Report

Session Chair

Elie Najm is a Senior Lecturer/Reseacher of the now Networks and Informatics departments at ENST in France. Research interests include: Distributed Objects (semantics of distributed computational models, behavioural typing, design by contracts, real time, formalisation of object oriented methods); Telecommunication Services (architectures, platform support, feature and service compostion and interaction) and Formal Methods (specification and verification of network protocols and distributed systems). The ISO/ITU's Open Distributed Processing is a pertinent framework to study the above topics.


Mobile Java Objects

R. Hayton, M. Bursell, D. Donaldson and A. Herbert
APM Limited, UK

Presented by Richard Hayton

Mobile objects are really an extension to distributed objects. Flexible binding was felt to be adequate for mobile objects. Large amount of stuff needed by programs that should be hidden from programmer. ODP developed a vocabularly to deal wth this. APM's approach is flexible binding. Java allows mechanisms for generic communication. It's easier to slot things in and take them out. Isn't this just reflection? No: the indirection involved in reflection adds overhead. Java invocation just involves adding one more layer, so it's cheaper. Several binding schemes have been built using reflection. Returing to ODP, however, only some of the transparencieshave been solved.

We need strong encapsulation to support the transparencies and remote agents. Encapsulation keeps clusters and virtual processes apart. Also supports separate security policies and security managers. A diagram showing communication between clusters was shown. A mobility binder was shown which required additional layers to be introduced into the stack. Other things are needed for mobility, however. Consistency must be maintained, a particular problem in multithreaded environments. Location is another problem. The problem of deceit must be addressed. It is particularly problematic if tombstones are used for tracking purposes. A mobility API was illustrated. This does not solve agents, however, because mobile objects are not mobile agents. They form a community, not parts of application. Other problems include trust relatonships.

Java is good for building middleware but not perfect reflection is limited. Sun dosent play by the rules because RMI uses native methods. What about mobile objects? Mobility is just another abstraction, many hard problems need to be solved, such as scale, trust, reliability. Class loading was then described, in terms of where are the classes are loaded from. Do we trust the class? And how do we name the class? A diagram proposing some solutions based on JARS in Java 1.2 was shown but not all of the problems are solved. Security is still an issue. Secure mobile systems remains a bit of a misnomer.

One quick question from the floor asked whether typing is used to improve security? Richard said no, type consistency is checked, but not for security purposes.


Javanaise: Distributed Shared Objects for Internet Cooperative Applications

D. Hagimont and D. Louvegnies
INRIA, France

Presented by Daniel Hagimont

Daniel described work untaken in the Siriac Project. The motivation was the use of Java in the context of distributed applets providing a means for dynamic application deployment. RMI provides a remote method invocation mechanism. An example is a cooperative editor using dynamic application deployment and distributed sharing of objects involving applets and replication. A second example providing remote access to mail was described, to illustrate the problems of replication and concurrency when doing rlogins on remote machines for mail access to a server.

Javanaise provides a shared run time layer providing replication of objects between applets. Basic issues were to provide a simple programming model, object fetch on demand and maintain consistency between objects. In the programming model Global Objects are provided which provide a graph of local object locations. A java object cannot be shared between global objects. The programmer defines a global class; method signatures can only include references to global classes, cf RMI's remote class. A stub compiler generates machinery which makes it work from the interfaces of the global classes. The implementation of fetching objects via global objects was illustrated in a diagram. The mechanism involved serialisation and dynamic binding of external references. The mechanism for consistency maintenance was described. An illustration of the mechanism used for parameter passing was also described.

A prototype implemented on top of JDK 1.1.5 was described. This includes a client layer, a server layer and stubs which are generated from global class interfaces. An experimental email browser has been implemented. Conclusions were as follows. Replication is a missing feature in Java: existing applictions have to manage this on their own. Javanaise makes replication explicit.

Three brief questions emerged from the floor. Firstly, what kind of consistency is provided for replicas? Daniel answered that the interface of a global object is made consistent through use of locks. Second, does the out proxy takes input from in proxy? The reply was a simple no. Thirdly, can you not use local object as a parameter? Daniel replied that that was correct: global objects are not visible from outside.


Mole 3.0: A Middleware for Java-Based Mobile Software Agents

J. Baumann, F. Hohl, K. Rothermel, M. Schwehm and M. Strasser
University of Stuttgart, Germany

Presented by Joachim Baumann

Mobile agent systems were described. Issues raised included: what is a mobile agent; what other systems exist; what are the advantages; what problems still need to be solved. Mobile agents were defined by OMG as autonomous, mobile, location aware, fault aware, and heterogeneous. Other solutions include Aglets, AgentTcl, Concordia Grasshopper Odyssey, Tacoma and others. Mobile agents provide a new paradigm, asynchronous operation, overcome network latency, support heterogeneous environments, improve robustness, enable electronic marketplaces, allow customisation of server side software, allow rapid prototype of RPC applictions and allow better funding by use of a buzzword!

The MOLE 3.0 middleware was described. MOLE 3.0's agent model was shown in a diagram, followed by its fault model. The lifecycle of the agent was illustrated. Methods are init, prepare, start, migrate, die. This is non transparent migration, not transparent migration aka weak mobility. The details of MOLE 3.O migration were described, involving thread suspension, serialisation, sending of serialised agents and restarting. Communication in MOLE 3.0 involves unique agent names and badges identifying services offered. There are communication mechanisms. A GUI is provided for viewing the agent system.

MOLE 3.0 is a research tool not a commercial system, although it is used in companies. Research issues include security in particular, transactional support, termination and orphan support, coordination of agent groups, and event and blackboard based anonymous communication. Mobile Agent systems are not hype. MOLE 3.0 is available from the authors web site.

A member of the floor asked for an example of useful mobile agent applications? Joachim answered that all applications have comparable classic distributed solutions but mobile agents have advantages for implementation and development. Another question asked whether the proposed solution solves the network partion problem? The answer was no, it doesn't solve it but can assist in finite length network partitions. Joseph Sventek then queried what were the charecteristics that differentiate MOLE 3.0? Joachim replied the number of different communication mechanisms, claiming a superior method of transporting agents.


Panel

Chair: Elie Najm
RH: Richard Hayton
DH: Daniel Hagimont
JB: Joachim Baumann

Robbert van Renesse: A one size fits all approach seems to have been adopted. If we have only solved problems for Java isn't this a weakness?
RH: In a closed system, yes. We are not closed so can use IOP to talk to CORBA services. Dont't have to fix all of the world!
JB: Use Java because it's easier but what we learn is not just applicable to Java. Lessons can be transferred to other languages and environments.

Comment: In both answers we are hearing results which are applicable but we haven't solved these problems in other languages.
JB: Could use AgentTCl: solutions will migrate to other languages.
RH: We can build new systems with new features but can't fix old systems.

Chair: Could a middleware solution have been adopted?
RH: We did, but used our middleware not CORBA because easier. Research showed how to solve systems sensibly, not legacy problems.
DH: Relation with CORBA is not here. A mobile CORBA service is a potential solution.

Maarten van Steen: You dont seem to have mobile object model?
RH: Can't move things in CORBA because it's not in the standard. So developed in Java.

Comment: ISIS is a model not language. Implemented in language but don't take Java because you get Java problems.
RH: Java is only implementation language can still talk IOP.

Maarten van Steen: Would it be easier to this in C or C++?
JB: No; originally targetted Smalltalk as implementation language but then adopted Java. The research objective is to test concepts. Java is an implementation vehicle for concepts.

Sai-Lai Lo: An application for mobile agents is personalisation so procedural language is inappropriate. It is more likely that declarative language is appropriate.
DH: Declarative properties are really another virtual machine, so we can stack virtual machines.
RH: Java is not a language for intelligence but is good for commmunications and middleware.

Jim Hardwicke: What is MOLE being used for
JB: Multimedia documents, active networks with intelligent switches. To control networks. Siemens has done simulations with MOLE.