14 Repository functions

14.1 Storage function

The storage function stores data.

14.1.1 Concepts Data repository: An object providing the storage function. Container interface: An interface of a data repository allowing access to data.

14.1.2 Rules

A data repository stores sets of data. Each set of data is associated with a container interface created when the data are stored. A container interface provides functions to

-- obtain a copy of the data stored by the interface;

-- modify the data associated with the interface;

-- delete the container interface and its associated data.

NOTE - Objects embody both actions and state (i.e., process and data); they are inherently persistent. The checkpoint and recovery function or replication function can be used in an infrastructure of the storage function to provide stability. The functions can use other instances of the storage function as a repository for cluster checkpoints.

14.2 Information organization function

The information organization function manages a repository of information described by an information schema and includes some or all of the following elements:

-- modifying and updating the information schema;

-- querying the repository, using a query language;

-- modifying and updating the repository.

The form and nature of queries and responses to queries depend upon the query language. The information organization function does not permit modifications or updates to the information repository that are inconsistent with its schema.

The information organization function can be modelled as a repository of objects (with computational interfaces) standing in correspondence to entities and relationships in an ODP system. These objects support operations to

-- define attributes, properties and relationships for objects in the repository;

-- add and delete objects in the repository;

-- assert and delete attributes, properties and relations for selected objects in the repository;

-- select objects which satisfy a predicate (i.e., a type) specified in terms of attributes, properties and relations.


1 The information organization function might derive additional relationships to those which are instantiated directly.

2 The information organization function can be used to maintain the relationship between a cluster and its checkpoint (i.e., a storage interface at which the checkpoint can be created or accessed).

3 In order to allow recovery in response to interactions with a failed cluster, the information organization function can be used to maintain a relationship between a cluster and the interface at which recovery of the cluster can be requested.

4 In order to allow reactivation in response to interactions with a deactivated cluster, the information organization function can be used to maintain a relationship between a deactivated cluster and the interface at which reactivation of the cluster can be requested.

5 The information needed by a relocator to validate or update an interface reference can be maintained by the information organization function.

14.3 Relocation function

The relocation function manages a repository of locations for interfaces, including locations of management functions for the cluster supporting those interfaces.

14.3.1 Concepts Relocator: an object providing the relocation function.

14.3.2 Rules

A relocator has a directory of locations for interfaces that have had their locations changed as a consequence of either communications domain management (e.g., changing a node's network address) or cluster management activities such as deactivation, migration, replication or recovery of a cluster checkpoint.

An interface can be associated with a relocator; relocators can be specific to a single interface or common to several interfaces. When the scope of a relocator spans more than one engineering interface reference management domain, the means by which the relocator is accessed must make clear the interface reference management domain that applies.

When a relocator is associated with an interface, activities which change the location of interfaces must inform that relocator of the new location, in particular a cluster manager must notify the relocator for each interface of each object in the cluster when the cluster is relocated. Only interfaces of objects which have had their locations changed need be recorded. When an engineering interface reference is to remain valid even though the object supporting it is in a deactivated cluster or failed but previously checkpointed cluster, the relocator must embody a policy for use of the coordination functions to restore the cluster, by reactivation or recovery as appropriate, when another object attempts to validate the reference.

A relocator supports interactions that

-- record a change in the location of an interface identified by an engineering interface reference;

-- validate the location of an interface identified by an engineering interface reference (including, if needed, restoration of the cluster containing the object supporting the interface);

-- set policy for interacting with coordination functions (e.g., the deactivation and reactivation function) when validating the location of an interface identified by an engineering interface reference.

NOTE - An object performing engineering interface reference validation can retain the results of the validation to optimize future use of the reference.

14.4 Type repository function

The type repository function manages a repository of type specifications and type relationships. It has an interface for each type specification it stores.

14.4.1 Rules

The type repository function can be informed of type relationships in addition to those it can derive from comparison of type specifications. A type repository will not permit inconsistent relationships to be established.

Type specifications are immutable.

The type repository function includes creating types and their associated type interfaces.

A type repository interface for a specific type provides functions to

-- query the type's specification;

-- assert relationships between the type and other types;

-- query relationships between the type and other types.

NOTE - Subtyping relationships for computational signature types are defined by the signature subtyping rules in 7.2.4. There is no requirement for a type repository to enable signature subtypes relationships to be computed. Where signature types are included in a type repository, the repository is not permitted to impose additional signature typing rules or assertions that contradict the provisions of 7.2.4.

14.5 Trading function

The trading function mediates advertisement and discovery of interfaces.

14.5.1 Concepts Service offer: Information about an interface including both an identifier for the interface and its computational interface signature type.


1 The identifier enables binding to the interface.

2 The computational signature enables a trader to ensure service import selects service offers which will interact in the way expected by the importing object.

3 Additional information in the service offer can be used to provide greater discrimination than that embodied in interface signatures. Service export: An interaction with the trading function in which a service offer is advertised, by adding the service offer to an identified set of service offers. Service import: An interaction with the trading function which searches an identified set of service offers to discover interfaces at which a service satisfying a specified type is available.

14.5.2 Rules

The trading function provides service import and service export and its behaviour is governed by a trading policy which states rules on how the sets identified in service export are related to the sets in service import. On service import, a trading function must select only offers that satisfy the policy of the trading function itself, the policy of the exporter of the service offer and the policy of the importer of the service offer. Service import involves computational interface signature sub/supertype checking. It can, in addition, involve further levels of checks, including checks on behavioural capability and environmental constraints.