7.0 Legion core objects

The Legion core object model specifies the composition and functionality of Legion's core objects. These objects cooperate to create, locate, manage, and remove objects in the Legion system. Legion provides implementations of core objects, but users are not obligated to use them.

Although the object model includes and relies on a few single logical Legion objects, access to these objects is limited because of heavy caching and hierarchical organization of lower level objects. Objects can be replicated to reduce any contention. Increasing the number of Legion computing resources will not increase competition for the few "centralized" Legion objects.

In the Legion object model, each Legion object belongs to a class and each class is itself a Legion object. All Legion objects export a common set of object-mandatory member functions, such as save_state() and restore_state(). Class objects export an additional set of class-mandatory member functions, such as create(), derive(), and inherit_from(). The object model's power comes from the Legion classes. Much of what is usually considered system-level responsibility is delegated to user-level class objects. Legion classes are responsible for creating and locating their instances and subclasses, and for selecting appropriate security and object placement policies. Core Legion objects provide mechanisms for user-level classes to implement policies and algorithms that they choose. Assuming that we define the operations on core objects appropriately (i.e., that they are the right set of primitive operations to enable a wide enough range of policies to be implemented), this philosophy effectively eliminates the danger of imposing inappropriate policy decisions, and opens up a much wider range of possibilities for the applications developer.

7.1 Core class objects

There are six core objects:

  1. LegionClass
  2. LegionBindingAgent
  3. LegionHost
  4. LegionVault
  5. ContextObject
  6. ImplementationObject

From these, the core class types--hosts, vaults, and binding agents--are derived. The core classes set the minimal interface that the core objects export. Every core object is an instance of some class that is eventually derived from one of the class objects above.

For more information on the Legion core objects, please see About the Legion core object model in the Developer Manual.

Back to System Administrator Manual Table of Contents

Directory of Legion 1.5 Manuals