|
Description of ProjectOur Overall ArchitectureIn our approach, we assume an object-oriented model of computation. The choice of object-orientation is important given the predominance of such models in open distributed processing. Crucially, we continue to use the Sumo Computational Model (now largely adopted by RM-ODP ) using CORBA IDL to describe computational interfaces. Overall structure of meta-spaceIn our reflective architecture, every object then has an associated meta-space supporting inspection and adaptation of the underlying infrastructure for the object. More precisely, because of the nature of our object model, a meta-space is actually associated with each interface. Crucially, this meta-space is organised as a number of closely related but distinct meta-space models. This approach was first advocated by the designers of AL-1/D, a reflective programming language for distributed applications . The benefit of this approach is to simplify the interface offered by meta-space by maintaining a separation of concerns between different system aspects. The three aspects currently employed are: composition, encapsulation and environment, as discussed below: i) The compositional meta-model provides access to the object in terms of its constituent objects, represented as an object graph, in which the constituent objects are connected together by local bindings. ii) The encapsulation meta-model provides access to the representation of a particular interface in terms of its set of methods and associated attributes, together with key properties of the interface including its inheritance structure. iii) The environment meta-model represents the execution environment for each interface as traditionally provided by the middleware platform. In a distributed environment, this corresponds to functions such as message arrival, enqueing, selection, dispatching, unmarshalling, thread creation and scheduling (plus the equivalent on the sending side). In each case, a meta-object protocol (MOP) is defined to inspect and adapt the respective meta-models. Note that there is a high level of recursion in the above definition. In particular, the meta-level is realised using object-oriented techniques. Hence, objects/interfaces at the meta-level are also open to reflection and have an associated meta-meta-space. As above, this meta-meta-space is represented by three (meta-meta-) models. Similarly, objects/interfaces at the meta-meta-level have an associated meta-meta-meta-space. This process continues providing an infinite tower of reflection. This is realised in our design by allowing such an infinite structure to exist in theory but only to instantiate a given level on demand, i.e. when it is reified. This provides a finite representation of an infinite. Further details of this reflective architecture can be found in the literature .
Distributed Multimedia Research Group, Computing Department, Lancaster University, Bailrigg, Lancaster, LA1 4YR, U.K. Email: mpg@comp.lancs.ac.uk
|