When objects migrate or are reused, they must find suitable existing objects and establish communication with them. The authors describe the first stage of Omega, a model that will let developers dynamically adjust object-communication methods so that new and existing objects can exchange messages. And, they are working on the second stage of Omega, implementing method composition, hopefully complete it in 1996.
When objects migrate or new ones are introduced, a communication problem arises because the existing objects may not recognize the message of the new objects
Acquaintance problem is that a new object must merely determine the existence of objects with the required functions.
A important first step in method adjustment is method adaptation, in which a new object's message is translated into something the receiving object's communication method can recognize.
Japan's Information-Technology Promotion Agency are developing Omega, which is a model for dynamic method adjustment.
There are two ways of method adaptation. The first approach that they have implemented in Omega is to have the new or sending object investigate the method functions and names of the existing or receiving object before sending a message. The advantage of this method is that it is easy to implement, while the disadvantage is that it requires many modifications.
The second approach is to have the object send a message as if it already knows the receiving object, which translates it into another message that its method will accept.
An object and its corresponding meta-object constitute an agent, which must retrieve information about methods, answer questions asked by other agents, decide how to adapt its methods, and alter its methods accordingly.
They adopted the concept of an agent and an environment instead of less complex solutions to the acquaintance problem - like remote procedure calls, migration, or copying - for several reasons.
In Omega, the meta-object of migrating object makes a cache of method specifications of the object with which it was communicating before migration.
To complete method adaptation, the meta-object must communicate with both other meta-objects and the environment by accessing
producer intention information -
- Method identification
- Connection mechanisms
- Method parameters
environment information
exchange protocols
Dynamic adaptation is binding a message to an object, and its method can be adapted without using source code, and it is based on the internal states of objects and the concrete values of method parameters.
Static adaptation is that objects are modified before they are combined, and it is based on the attribute name and the name of method parameters.
They have implemented a prototype system of Omega with ABCL/R2, an object-oriented concurrent language with a mechanism that does reflection.
Areas for future work include Method composition, Object adaptation, and Object composition.
They are continuing to work on the second stage of Omega, implementing the method composition in 1996.