next up previous
Next: Security Up: Meta-configuration management Previous: Meta-configuration management

Propagation of meta-configurations

The meta-level protocol of Guaranį defines the way meta-configurations for newly-created objects are established. Whenever a reflective object c creates another object, say n, just after the system allocates memory for n, but before it is initialized (constructed), the primary meta-object of the creator meta(c) is requested to provide a primary meta-object for o. meta(c) may create a new meta-object, return itself or even an empty meta-configuration. A composer may delegate the configuration request to its component meta-objects, then create and return a new composer for n that composes the meta-objects returned by them.

After the meta-configuration of n is established, a NewObject message is broadcast to the meta-configuration of n's class. With this mechanism, the components of the meta-configuration of a class can affect the meta-configurations of its instances, by issuing reconfiguration requests.

In addition to the language-defined mechanism to create new objects, the kernel of Guaranį provides a method that creates a proxy object of a given class and associates it with a specified primary meta-object. This method allocates memory for an object without constructing an actual object there. This is useful for transparent distribution and for re-instantiating objects previously saved in stable storage.

When a proxy is created, a message of type NewProxy (instead of NewObject) is broadcast to the proxy object's class before the suggested meta-object is associated with the proxy object. Although NewProxy is a subclass of NewObject, these messages may be handled differently. For example, meta-configurations of certain classes may prevent the creation of proxy objects by throwing exceptions when presented NewProxy messages.

After the message is broadcast, the kernel of Guaranį issues a reconfiguration request, so as to set up the suggested meta-object as the primary meta-object of the proxy. However, during the broadcast, a different meta-configuration may have been established already.


next up previous
Next: Security Up: Meta-configuration management Previous: Meta-configuration management
contact the authors