CS 4448 - Spring 1998
Object-Oriented Programming and Design
Talk 8.2.2
by
Hoonil Kim
Adapting Object-Communication Methods Dynamically
by
Yoshinori Kishimoto, Nobuto Kotaka, and Shinichi Honiden
Abstract
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.
Introduction
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.
Elements of Omega
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
Method Adaptation
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.
Application Issues
They have implemented a prototype system of Omega with ABCL/R2, an
object-oriented concurrent language with a mechanism that does reflection.
Conclusion
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.
Copyright © University of Colorado. All rights reserved.
Revised: March 5, 1998