Previous section.

Inter-Domain Management: Specification Translation (JIDM_ST)
Copyright © 2000 The Open Group

Comparison of Object Models

This chapter gives a detailed comparison of the various aspects of the OSI (SMI, CMIP), OMG (CORBA) and Internet (SNMP) management models, under the following headings:

Each section begins with a glossary of basic concepts (incorporating relevant ODP terms). This is followed by a matrix comparison of the way the basic concepts are interpreted in the two models, and the section is then concluded with comparative analysis.

Trying to provide a glossary of generally-agreed concepts in object-oriented modeling is a difficult task, and the outcome is inevitably contentious. However, the works of many authorities on the subject have been consulted including Wegner (see reference Weg90), Meyer (see reference Mey88), Goldberg (see reference Gold89), Rumbaugh et al (see reference rumb91), Booch (see reference Boo91) and Kent (see reference Kent91). It is believed that the concepts defined here provide a reasonable basis on which to conduct the comparison.

Goals of the Models

Each model has been developed to meet specific business needs. These are summarized in the following sub-section.

Comparison

Intended Use

OSI Mgmt
Network Management

OMG
Object-oriented distributed systems development.

Internet Mgmt
Management of the Internet and TCP/IP-based networked devices

Interoperability/Portability

OSI Mgmt
At the syntactic and semantic level. No code portability, communications interoperability.

OMG
At the syntactic and semantic level. Code portability. CORBA 2.0 provides interoperability

Internet Mgmt
At the syntactic and semantic level. No code portability. Communications interoperability.

User Advantage

OSI Mgmt
Management of heterogeneous network components

OMG
Transparency to applications of underlying heterogeneous platforms

Internet Mgmt
Management of heterogeneous inter-networked devices

Re-usable Components

OSI Mgmt
Library/catalogue of management information

OMG
Interface Type library

Internet Mgmt
Management Information Base (MIB) specifications

Analysis

Portability
Portability for OSI and Internet management is provided by the the XMP (see reference XMP) and XOM (see reference XOM) interfaces

Interoperability
There are two aspects to component interoperability: agreement on the syntax and agreement on the semantics of information interchange. Achieving interoperability requires conformance to both.

The strategic objective of each group is identical - to promote syntactic and semantic interoperability between heterogeneous computing components. The models differ only in their approaches to specifying such interoperability and their choices of the interface points at which the interoperability is to exist. For OSI Management and OMG, as can be seen in Interfaces, far from conflicting, these choices are complementary.

Re-usability
A common theme running through the statement of objectives of the OSI management and OMG models is that of component re-usability with emphasis on type/object libraries, portability of applications, and heterogeneous management components. Ever since the identification of the software crisis (see reference Naur68) some quarter of a century ago, the re-use of software components has been promoted as a solution (see reference Krug92).

Interfaces

As was pointed out in the previous section, the groups have chosen different positions for their interfaces - OSI Management has chosen a communications interface between computer systems, whereas OMG has chosen a programmatic interface between components within a computer system. These choices have dictated a different style of interface but, nonetheless, a number of important concepts apply to all three.

Concepts

Interface
The boundary at which a prescribed specification is supported. The reference model for ODP supports multiple object interfaces and viewpoints. An ODP Interface type is a predicate that characterises an interface. An interface signature can be described using an interface definition language. Interfaces can have behaviour specifications described using formal description techniques.

The three models compared in this document describe the following interface types:

OSI
managed object communication interface, operations and notifications

OMG
programmatic interface between invoker and object

SNMP
get and set operations upon instrumentation variables

Open Interface
An interface that supports a published protocol and at which conformance may be tested

Protocol
A set of syntactic and semantic rules for exchanging information

Carriage Protocol
A protocol to which invocations, notifications, and replies are added to form a complete protocol

Interface Concurrency

The property of an interface such that it will accept protocol elements at any time

Exception
A condition that precludes normal execution

Comparison

Interface Type

OSI Mgmt
Communications interface between a managing-system and a managed-system; an agent, resident in the managed system, mediates between the managing system and a managed object.

OMG
Programmatic interface between an invoker and object. The interface includes signature only.

Internet Mgmt
Communications interface between a Network Management Station (manager) and Device (agent). The agent supports one or more MIBs.

Carriage Protocol

OSI Mgmt
The syntax and semantics of the carriage protocol are defined in ISO/IEC 9596-1 (see reference CMIP91)

OMG
Independent of carriage protocol. Interoperability dictates one or more protocols.

Internet Mgmt
The syntax and semantics of the carriage protocol are defined in RFC 1157 (see reference SNMP)andRFC1448(seereference SNMPv2)

Open Interface

OSI Mgmt
ISO/IEC 9596-1 is an international standard and many managed-object specifications are publicly available, for example, OMNIPoint (see reference (OMNI92)

OMG
IDL is specified in referenced document CORBA98. Standard interfaces have been defined using IDL by object service specifications (see reference COS98).

Internet Mgmt
RFC 1157 (SNMPv1) is an Internet standard; RFC 1448 (SNMPv2) is a proposed draft Internet standard. Many MIB specifications are publicly available for SNMPv1, with on-line access provided via the Internet.

Protocol Model

OSI Mgmt
The remote operations protocol model is one of non-blocking message-passing with normal and exception reply-types. A single initiating message may result in multiple replies.

OMG
The protocol model has two execution semantic styles: at most once (blocking with exceptions); best effort (non blocking, no guarantee of delivery). Delivery of events is not guaranteed by COSS event services (see reference COS98).

Internet Mgmt
The protocol model is primarily manager-initiated message-passing, without guaranteed delivery. A single initiating message results in (at most) a single reply.

Interface Concurrency

OSI Mgmt
A management association which supports operations and transfer of event reports requires interactions to be processed concurrently. Support for confirmed event reports requires interface concurrency.

OMG
Not precluded by the object model

Internet Mgmt
Polling driven, manager controls concurrency. Traps are not confirmed.

Analysis

Interface Types
The choices of interface made by the OSI management and OMG groups reflects their different preoccupations: OSI chose network management communications, while OMG chose software development. These choices are synergistic: object-oriented network-management systems have to be implemented, and implementors will require object-oriented software tools.

Protocol Model
The use of OMG client stubs implies a blocking procedure-call model. However implementation support for a dynamic invocation interface is defined, which allows deferred synchronous operation. OMG implementations can be designed to employ callbacks to the original invoking client application for return of operation results, thus permitting asynchronous operations. However, some implementations of CORBA do not provide a callback location as part of receiving an operation invocation. Thus to be safe, a CORBA operation which is designed to be followed by callback operations should provide an input parameter containing an ObjectReference upon which to invoke the callback.

OSI Management has, through the use of ROSE (see reference XAP-ROSE), chosen a non-blocking message-passing model. Exception handling mechanisms will have to be aligned.

Protocol Specification

There are three aspects to the specification of a protocol: the rules for exchanging information; the semantics of the information; and the syntax of the information. OSI Management has chosen to specify all three aspects, whilst OMG in CORBA 1 has chosen to specify no protocol for interoperability. However CORBA 1 does specify a language mapping to C. Other language mappings are defined by the OMG (including C++, SmallTalk).

CORBA 2.0 provides interoperability between different ORB implementations, and protocols have been specified for use between ORBs.

Characteristics of Objects

This section deals with the most fundamental aspects of the object models - the objects themselves, what they are, and what they are about. To compare the characteristics of objects, notwithstanding the notion of encapsulation, it is necessary first to consider the abstractions underlying the internal nature of objects including their state, behaviour, and methods. From there, the attributes appearing at the interface of objects and the signals crossing the interface can be compared.

In ODP terms, all objects have a type, which is a predicate that determines if an object is of that type. The extension of all the object instances of a given type is called the class derived by that type. Instances of a class are generated to adhere to the specifications of a class template, which specifies the behaviour of the object. Objects are characterised by the interfaces they support. In ODP, an object can support multiple interfaces, bound to a common state.

Concepts

Object
A collection of behaviours that share the same state

State
A stable internal condition of an object

Behaviour
A change in the state of an object

Attribute
A set of data values (that is, a data-type) and qualifiers over those data values; the data values are built from literals

Literal
A set of data values (that is, a data-type) which, by convention, have fixed semantics (for example, integer, boolean)

Encapsulation
A property of an object such that its state can only be accessed by means of prescribed signals across the object boundary or by means of prescribed relationships between objects

Operation
A behaviour of an object. It is normally initiated by the reception of an invocation.

Event
An autonomous behaviour of an object. It may be signalled by the emission of a notification.

Invocation
A signal, possibly parameterised, requesting that an operation be performed by an object

Notification
A signal, possibly parameterised, indicating that an event has occurred

Reply
A signal, possibly parameterised, indicating a response to an invocation or notification; replies are often classified as normal or exceptions

Parameter
A data value whose syntax conforms to that of a prescribed protocol

Method
The implementation of an operation

Qualifier
An additional semantic applied to an attribute (for example, concerning accessibility or default values)

Comparison

Description

OSI Mgmt
A managed object is described by the Management Framework (see reference OSI89) as "a view of a resource that may be managed through the use of OSI Management protocols". A managed object enforces encapsulation, and it is characterised by the attributes it makes available, its behaviour, and the invocations and notifications that cross its boundary. A managed object can optionally present itself as if it were a superclass (allomorphism) of that of which it is instantiated.

OMG
An object is described as "a package of data and code used to implement a computational construct or to model an application entity" (see reference OOM91). An OMG object enforces encapsulation and is characterised by the attributes it makes available, its behaviour, and the signals that cross its boundary. An object may have more than one interface, but only inheritance is explicitly provided as a mechanism in IDL to specify multiple interfaces.

Internet Mgmt
As described by RFC1155 (see reference ISMI), "managed objects are accessed via a virtual information store, termed MIB ... Each type of object has a name, a syntax, and an encoding" (see reference ISMIV2). Internet objects represent individual variables which can be manipulated using SNMP protocol; the Internet SMI provides no mechanism for collecting together all variables which together might encapsulate a resource. Also, in Internet objects, the notion of interface inheritance is not supported.

Object Operations

OSI Mgmt
An operation may be initiated by receiving an invocation. A confirmed operation will generate one or more replies; a non-confirmed operation will not. Exceptions are signalled by means of exception replies. Invocations and replies may be parameterised.

OMG
An operation is initiated either by a generated stub or by the dynamic invocation interface. The normal execution of an operation results in a reply (and the return of control to the invoker). An exception is indicated by means of an exception signal and the transfer of control to an exception handler. Invocations, replies, and exception signals may be parameterised.

Internet Mgmt
An operation is initiated by the receiving of a request. Each request generates a single response (although SNMPv2 Get-Bulk provides a self-repeating operator for conceptual table traversal). Exceptions are signalled as responses. Requests and responses may be parameterised.

Object Events

OSI Mgmt
Behaviour unconnected with operations may be signalled by means of a notification. A confirmed notification requires a reply; a non-confirmed notification does not. Notifications and replies may be parameterised

OMG
Objects which generate events invoke an operation on the event notification service (see reference COS98). Event distribution is via push model or pull model. Event notification service does not indicate failure/success of delivery to Invoker. No standard event filtering is yet defined (other than by grouping originating objects into channels). The receiver of typed events indicates support of each event.

Internet Mgmt
Significant events unconnected with operations may be signalled by means of a non-confirmed Trap notification (intended for infrequent generation by managed devices) or a confirmed Inform-Request (intended for use between managers). Notifications are specified as part of the carriage protocol, and are unrelated to object type definitions. Event philosophy has been characterised as trap-directed polling.

Behaviour

OSI Mgmt
Behaviour can be in any language (natural or formal), but is most commonly written in English. This is normative information and can be subjected to conformance testing. This would normally require an intermediate step to represent the behaviour in a testable form.

OMG
Side effects are permitted but are not specified in IDL. Basic OMG IDL has no formal way to specify what event types may be generated (event generation is independent of interfaces an object supports). A Receiver only knows which channel an event came from (channels can have multiple object sources) but event data could be defined to include originating objectReference.

Internet Mgmt
Textual specification may be included in the description clause of an object type definition, describing the behaviour of an individual variable. This may include description of an entire conceptual table or table row, but otherwise does not specify the behaviour of encapsulated resources. Notification behaviour specifications are unrelated to object type behaviour specifications.

Attributes

OSI Mgmt
An attribute is characterised by a set of data values and qualifiers which specify matching rules, range restrictions, initial and default values, and access restrictions. Attributes can also be manipulated by specifying an attribute group name that identifies one or more attributes.

OMG
An attribute is characterised by an identifier, a type, and an optional read-only qualifier. There is no mechanism for grouping attributes.

Internet Mgmt
An attribute is embodied by an object type specification, which identifies the object name, syntax, description, access, status, and default value (if any). Syntax may include range and/or value restrictions. There is no mechanism for grouping attributes.

Attribute Operations

OSI Mgmt
Built-in operations on attributes are get attribute, replace attribute and replace attribute with default. Set-valued attributes have add-member and remove-member. Built-in operations support manipulation of multiple attributes or attribute groups within a single operation. A built-in operation supports the cancellation of the get built-in operation. Arbitrary exceptions (specific errors) may be specified on attribute operations.

OMG
Built-in operations on attributes are set attribute and get attribute. Built-in operations can only get/set the value of a single attribute within one invocation. Only standard exceptions are supported on attribute operations.

Internet Mgmt
Built-in operations on attributes (object types) are get attribute and set attribute. Aggregate conceptual tables and table rows are supported by the ASN.1 construct SEQUENCE [OF]. Built-in operations are get-next (SNMPv1) and get-bulk (SNMPv2). However, these operations serve only to navigate through conceptual tables; individual object types are the only accessible elements. Built-in operations support manipulation of multiple attributes within a single operation. Some standard exceptions are supported on attribute operations.

Object Life-cycle Operations

OSI Mgmt
Built-in operations to agent for create and delete of object instances. Creator may specify name or may rely on agent to supply name. It has no standard protocol to move object instances between systems.

OMG
No built-in operation for instantiation of object interfaces by client demand. However, factory objects may be defined which allow clients to create application specific object interfaces. COSS (see reference COS98) life-cycle services specify deletion of objects, as well as copy/move of object implementations.

Internet Mgmt
No direct support for life cycle operations. SNMP v2 has notion of special variable in table rows which allows for a set operation to make a new table row available.

Attribute Behaviour

OSI Mgmt
The behaviour of attribute-oriented operations is defined. The interaction between attribute operations is left to the package definition.

OMG
get and set operations are defined for attributes. Behaviour specification is only available through textual comments.

Internet Mgmt
The behaviour of attribute-oriented operations is defined; interaction between operations is not.

Data Types

OSI Mgmt
All primitive ASN.1 built-in types are supported, including BOOLEAN; INTEGER; BIT STRING; OCTET STRING; NULL; ANY DEFINED BY, CharacterString; OBJECT IDENTIFIER; REAL; ENUMERATED; and Generalized Time. The following constructed types are supported: SET, SET OF, SEQUENCE, SEQUENCE OF, CHOICE.

OMG
Primitive types are integer, floating point, character, octet, boolean, and ANY (type descriptor, data fields). Built in access methods exist for ANY type. Aggregate attribute values and operation parameters are supported by the collection types, which are Sequences (variable length ordered list); struct, Union, Enum, Array (fixed size). In IDL, recursion within constructed Type declarations is only allowed if there is an intervening Sequence.

Internet Mgmt
The following primitive ASN.1 built-in types are supported by SNMPv1: INTEGER, OCTET STRING, NULL, OBJECT IDENTIFIER. The only ASN.1 constructed type permitted is SEQUENCE [OF], used to generate either lists or tables. New application-wide types may be defined, but only if they resolve into one of the above implicitly defined ASN.1 types. RFC1155 (see reference ISMI) defines the following application-wide types: NetworkAddress, IpAddress, Counter, Gauge, TimeTicks, Opaque. RFC1442 (see reference ISMIV2) specifies revisions for SNMPv2, including addition of BIT STRING, unsigned INTEGER, and 64-bit Counters.

Encapsulation

OSI Mgmt
Supported.

OMG
Supported.

Internet Mgmt
Not supported (except where encapsulating any individual variable).

Object Reference Data Type

OSI Mgmt
ObjectInstance (Distinguished Name), used extensively as communication interface parameter. X.500 syntax used.

OMG
Object reference (type name Object). Interface operations may employ the object reference type for their parameters. Its syntax is opaque to the application using it.

Internet Mgmt
Object type identifier, appended to an object instance identifier (row index) for objects contained within a conceptual table.

Interface Type References

OSI Mgmt
Managed object class, attribute id, notification id and action id are all specified with a globally unique OBJECT IDENTIFIER value, as well as a document specific textual ASN.1 reference label. Textual reference labels are case sensitive.

OMG
Interface type has global reference id through Module Names. Attributes, types and operations are referred to using scoped names defined within the interface specification. IDL identifiers are case insensitive.

Internet Model
Object type is specified with globally unique OBJECT IDENTIFIER value, as well as document-specific textual ASN.1 reference label. SNMPv2 also specifies globally unique OBJECT IDENTIFIER values for Notifications, Module Identities, Groups, and Compliance Modules.

Analysis

Description
At first sight, the descriptions of objects in the OSI management and OMG models appear different, the OSI Managed object being a ... view of a resource ... and the OMG object being ... a package of code and data .... In fact, both object models enforce strict encapsulation: objects are characterised by how they appear to the outside world, not how they are constructed internally. With the exception of notifications and the support of built-in operations to support manipulating multiple attributes with a single invocation, differences between the models are surprisingly few. In practice, objects from both models will be constructed of code and data and be run on computer processors.

From the ODP perspective managers and agents can be modelled as ODP objects. However, OSI management, OMG and Internet management each limit specification of an object to that of a performer of operations. Invoker behaviour is not specified in OSI management, OMG, or Internet management.

Operations
Both the OSI and OMG models support the notion of an extensible set of operation types, although particular objects are only required to support a fixed set of operation types. The mechanism for invoking such operations is defined by the underlying protocol.

There is a need to define a generic OMG factory object interface to support the OSI managed object M-CREATE operation for managed objects mapped to CORBA interfaces.

Events
The major difference between the OMG and OSI management models is the way of specifying autonomous events.

In OSI, management events are behaviour unconnected with operations; they reflect the active, autonomous nature of managed objects. Typically, event notifications are caused by alarm conditions (for example, loss of signal) in the resource represented by a managed object. The event notifications which an object may emit are specified as part of the Managed Object definition. An event report management function determines which event notifications are forwarded as event reports to designated destinations.

The notion of events has been accommodated in the OMG object services. The main difference between OMG events is that they are specified as being supported by the receiver of the events. In effect, OMG event services models events as operations in the other direction.

Attributes
In OSI management and OMG (unlike Internet management), the models differentiate between attributes and objects:

This is in-line with popular programming models such as Eiffel (see reference Mey88) and C++ (see reference Strou87), but is at variance with models such as Smalltalk (see reference Gol89), where everything is an object. Both the OMG and OSI Models support aggregate attribute types.

OSI Management allows specification of specific user-defined errors on attribute operations, and defines operations to manipulate members of set-valued attributes (add, remove). If OSI management attributes are mapped to OMG attributes, then only CORBA standard errors can be used, resulting in a loss of information. In addition, there would be no way of using CORBA operations to add or remove members of set-valued attributes. An alternative would be to map some OSI managed object attributes to custom CORBA IDL operations, in cases where user defined exceptions or set member operations are required.

Encapsulation
Both the OSI and OMG models have similar notions of encapsulations: the state of an object can only be accessed by means of signals across the object boundary or by means of relationships between objects. However, the OSI management interface definition includes, in addition to operations the object can perform, the notifications that an object may emit.

Object Specification and Instantiation

Concepts

Specification Binding
The irrevocable merging of specifications.

Object Instantiation
The process by which instances of objects are created.

Comparison

Attribute Specification

OSI Mgmt
Attributes and qualifiers are specified independently of managed-object classes.

OMG
Attributes and qualifiers are defined only within scope of Object interface types.

Internet Mgmt
Attributes (object types) are specified individually, not within any object class context. Object types may be aggregated into conceptual tables, but the same object type may not appear in multiple tables. SNMPv2 Textual Conventions may be used to specify behaviour and syntax to be reused by multiple object types.

Binding

OSI Mgmt
Specifications of attributes, operations, and events may be bound into packages by means of a package specification. The package specification may specify additional constraints over the attributes (for example, for example, range restrictions) and over operations and events (for example, for example, constraining variable-type parameters); it also specifies the semantics of the package as a whole (for example, the meaning of a statistics package). IDD

Package specifications themselves may be bound into a managed-object class by means of a managed-object-class specification. These bindings are qualified as either mandatory (a managed-object instance must reflect the specifications contained in the package) or conditional (a managed-object instance may reflect the specifications contained in the package).

OMG
Specifications of attributes and operations are combined into interfaces. Interfaces may be further combined into modules. Optionality is not supported for interface specifications. However, attribute and parameter values can include null choices, and there is a standard NOT_IMPLEMENTED exception type defined for CORBA.

The OMG Event Service has events defined as operations of an interface which operates in the reverse direction (that is, events are raised by the Object invoking an operation). Thus, a managed object can define one or more interface containing all the events which it can generate. The manager needs to support that interface.

Internet Mgmt
Individual object types may be combined into conceptual table rows, but no additional constraints or semantics are imposed there. In SNMPv2, individual object types may be combined into Object Groups which specify the semantics of the group as a whole, but do not otherwise impose additional constraints. Also in SNMPv2, individual object groups and types may be referenced by Module Compliance macros which specify access and/or value constraints permitted for conformance to a given MIB module. Object type status does not indicate presence/absence, its values are current and obsolete. A Module Compliance macro specifies object groups as mandatory or otherwise for the purpose of conformance.

Object Instantiation

OSI Mgmt
Instantiation may be from what alreadty exists, by local means, or by means of a CMIP create operation.

OMG
Instantiation may be from what already exists, or by means of an operation invocation on an application specific factory interface. No standard factory interfaces are defined for CORBA.

Internet Mgmt
Instantiation may be from what already exists, by local means, or by means of a set operation involving a conceptual table row status variable.

Behaviour Specification

OSI Mgmt
Unstructured natural language behaviour clause, with a recommendation to state pre-conditions, post-conditions, and invariants.

OMG
Unstructured natural language, using IDL comments.

Internet Mgmt
Unstructured natural language.

Specification Tools

OSI Mgmt
GDMO templates.

OMG
IDL.

Internet Mgmt
ASN.1 macros (OBJECT-TYPE, NOTIFICATION, MODULE-IDENTITY, MODULE-COMPLIANCE, OBJECT-GROUP).

Analysis

Specification techniques

The major difference in specification techniques is between the OSI Management piecemeal approach and the more monolithic approach taken by OMG. The OSI Management approach of separate specifications bound into packages which are subsequently bound into object classes, is claimed to improve the potential for re-use of specifications. Conditionally-bound packages are a form of late binding. They meet OSI Management's need for controlled variation in managed-object class specifications, but if used liberally they can cause ambiguity for implementors (see reference MPR91). In the OSI Management model, the union of the object-class identification with the identification of the packages present serves as the indicator of a particular managed object's characteristics. For implementors, packages complicate the type hierarchy.

The OMG specification technique is more monolithic over the type and does not admit late binding (it specifies that "the object type is an absolute indication of the characteristics of a type instance"). Re-use is achieved by inheritance (possibly multiple) of interface definitions. However, there is a standard exception (NOT IMPLEMENTED) which must be dealt with by invokers when an object implementation does not support an operation defined in its interface.

Conditional packages can lead to situations where all members of a class may not be the same. Usage of null values for attributes/parameters to simulate optionality does not change this.

Behavioural Specification

The behavioural aspects of managed objects are specified using natural language (see reference SMI91), although it is recommended that such specifications should be expressed in terms of pre-conditions, post-conditions, and invariants. There have been attempts to use formal techniques for the specification of the behaviour particular managed-object classes (see reference SMI91). The OMG also proposes the use of natural language to specify the behavioral aspects of objects.

ODP behaviour specifications will use Formal Description Techniques (FDTs). Dynamic type checking may use assertions about behaviour.

Specification Tools
OSI Management provides two tools for formally specifying the syntax of managed objects and the associated messages:

The OMG CORBA 1.0 model does not prescribe a language for defining the syntax of the associated messages. For IDL (see reference CORBA98), a language similar to C++ is used to define the programmatic interface signature.

The OMG model defines objects by defining interface operations using in IDL. The word object in CORBA is equivalent to object interface in ODP.

Object Taxonomy

A taxonomy permits reasoning about real-world things by grouping instances of those things into classes or types and by relating the different classes or types. In day-to-day discourse, the terms class and type are used synonymously, but in the world of object-oriented systems, classes and types are different. In ODP, a class is the extension of (that is, the set of instances which satisfy) a type.

Concepts

Object Type
A predicate over the characteristics of an object. Objects are said to conform to a type.

Object Subtype
An additional predicate over the characteristics of a supertype.

Object Class
The set of objects which are of the same type. Objects in a class can have one or more compatible templates used for the generation and management of objects. Every type defines a class; however, the converse is not necessarily true. In ODP, the term class is used to represent the set of instances that satisfy a type, and a template represents the object specifications.

Object Sub-class
A modification to the template of a superclass.

Inheritance
A mechanism for deriving the specification of a descendant from the specification of an ancestor, such that in addition to its own characteristics, a descendant acquires all (strict inheritance), or part, of the characteristics of its ancestor. A descendant may have a single immediate ancestor (single inheritance) or multiple immediate ancestors (multiple inheritance). The super/sub relationship resulting from single inheritance may be represented by a tree; that resulting from multiple inheritance may be represented by a directed, acyclic graph.

At first glance, the subtyping and subclassing relationships in the OMG and OSI models appear similar. They both involve the development of new types or classes by means of inheritance and by the addition of new predicates or template modifications. The difference is that the subtyping relationship is one of substitutability, whereas the subclassing relationship is one of implementation sharing (see reference Lalon91). Thus an instance of a subtype may be substituted for an instance of a supertype without any change in behaviour visible at the object interface. A subclass, by comparison, shares the implementation of its superclass, and an instance of a subclass cannot always be reliably substituted for an instance of a superclass.

Comparison

Object Class

OSI Mgmt
The Management Information Model (see reference SMI91) classifies managed objects into classes. Class specifications are documented by templates.

OMG
The OMG model specifies objects by their interface. There is no direct concept of Object Class in OMG. However an object template can be derived from the inheritance graph of interface definitions.

Internet Mgmt
The Internet SMI (see references ISMI and ISMIV2) defines object types which classify individual variables.

Taxonomy

OSI Mgmt
Managed-object classes are related in quasi type-hierarchy by means of strict, multiple inheritance. The root of the hierarchy is the managed-object class TOP, which specifies attributes for specifying static properties common to all classes (for example, the actual Managed object class, which of the conditional packages are instantiated, and which classes the instance may respond to requests as). It is legal to inherit from two class definitions which include the same action or attribute, since the properties of the common named operations are merged (for example, get and get-replace become get-replace in the derived class).

OMG
Object types are related in a type hierarchy of supported interfaces by means of multiple inheritance. The root of the hierarchy is the object type object. It is currently illegal to inherit from two interfaces with the same operation or attribute name, or to redefine an operation or attribute name in the derived interface.

Internet Mgmt
Object types are related in a naming hierarchy that reflects conceptual table and object group organisation. The root of the naming hierarchy is the OBJECT IDENTIFIER assigned to the entire MIB. There is no support for inheritance of any type, although SNMPv2 conceptual tables may augment existing conceptual tables specified elsewhere.

Type System

OSI Mgmt
The managed-object types are distinct from other types (for example, attributes, actions, notifications) in the model.

OMG
Object interface types are integrated into a single type-hierarchy for all the types in the model.

Internet Mgmt
Object types are distinct from each other, and from other types in the model.

Analysis

The taxonomies used in the OSI and OMG models are largely similar. They are both specified in terms of object interfaces, and both use a multiple-inheritance discipline. The OSI Management Model specifies a number of attributes in TOP (objectClass and nameBinding). Thus all managed objects contain instances of those attributes.

The OMG model support the notion of substitutability by means of subtyping (that is, support for each inherited interface is required when supporting a derived interface). The OSI Management Model supports a similar notion by means of a limited subtyping capability termed compatibility (see reference SMI91).

Representing GDMO managed object inheritance in the case of repeated attributes or actions in the inherited packages will require special treatment when translating to OMG CORBA IDL.

Object Reference

Understanding the term object reference requires special care. Confusion and overlap exists between the identity of an object and its name. Informally, the identity of an object is that which distinguishes it from all others (see reference Khosh86), and a name is a mnemonic handle used to refer to an object (see reference Hauze86). Thus, the identity of a person could be the molecules that make up that person (although the molecules keep changing) and the name of a person could be the symbols that appear on their birth certificate. Identity (that is, object reference) is difficult to define in formal sense, but intuitively it is "something enduring about an object" (see reference Kent91). A name on the other hand is easier to define, being a token used to refer to an object. However, names of objects can change with time, and the same name could apply to many objects over time.

Both object references and names refer to objects, but generally object references have no structure and are implemented as long bit-strings to facilitate effective machine processing. Their main use is to "resolve predicates of sameness and equality" (see reference Kent91). Names, on the other hand, are normally symbolic and mnemonic and oriented towards human consumption.

Concepts

It is important to have a formal framework for object reference and object naming within a distributed system. The following definitions are offered:

Object Identity
A unique property of an object that unambiguously distinguishes it from all other objects in the universe of discourse for all time.

Object Reference
A unique token used to unambiguously refer to an object during its lifetime. Object references are assigned at object creation time and are never subsequently re-assigned. Thus, the mapping function of object reference to object, if it is valid, is both single-valued and singular (1:1) during the life-time of the object, and invalid afterwards.

Name
A token used to refer to an object. Different objects may be assigned the same name and the object may be assigned different names. Names may be re-assigned during the lifetime of the object. Thus the mapping function of name to object, if it is valid, may be both multi-valued and non-singular, and may change with time.

Access Transparency
A reference to an object does not expose/define the carriage protocol to that object.

Location Transparency

A reference to an object does not expose its location.

Location Independence

A reference to an object remains valid after the object changes location.

Comparison

Object Reference

OSI Mgmt
There is no specific concept of an object reference for a managed object other than the object instance (distinguished name).

OMG
In CORBA, Object Reference is an opaque type (that is, it is not externally defined and thus has no particular format). Objects may have more than one reference. Objects are assigned object references at creation. Object references are local entities and may not be globally unique.

Internet Mgmt
An object's reference is its name (that is, ASN.1 OBJECT IDENTIFIER). All agents use identical names for objects of a given types. In SNMP V2, the community field (or whatever it is now called) can be used to select the particular Agent which will serve as the scope for the object references passed in the protocol operations.

Name

OSI Mgmt
A managed object must have a single distinguished name, comprised of a sequence of Relative Distinguished Names (RDNs), corresponding to a name scope hierarchy of instance containment (not necessarily physical containment). Each RDN is a single, mandatory attribute/value pair associated with the managed object. The RDN attribute value is assigned at object creation-time and may not be changed during the lifetime of the object, although it may be reused afterwards.

OMG
Objects may have an arbitrary number of names. The scope is a name context. Names are distinct from objects - objects need not have names. There is mapping between name values and objects. The mapping may be changed at any time.

Internet Mgmt
An object instance name is formed by concatenating the OBJECT IDENTIFIER assigned to the object type, with either the value zero (for singular objects), or one or more object values representing conceptual table row indices. Index object types do not need to be part of the conceptual table row. Any given conceptual row always has the same index value(s), although that row may be conceptually created and deleted many times over.

Naming Model

OSI Mgmt
A hierarchically-qualified set of naming contexts, based on object containment, is prescribed to ensure object names are unique and unambiguous within an agent system's local context (local distinguished name), as well as in a global context (distinguished name). Aliases are not permitted.

OMG
The Name Service provides a directed, potentially cyclic, graph of naming contexts. This may have many roots. All names are mapped to an ObjectRef (possibly of another naming context). Thus an object may have many names and a single point in the graph may be reached via many routes.

Internet Mgmt
A hierarchically-qualified set of naming contexts, based on the object type registration tree, provides names that are locally unique and unambiguous within a single agent. To provide global uniqueness, object instance names must be used in conjunction with the agent's network address. Aliases are not permitted.

Access Transparency

OSI Mgmt
Unsupported. CMIP as defined in ISO/IEC 9596-2 (see reference CMIP91) is required. CMIP may run over Internet Protocol (IP), LLC I, or OSI lower layers.

OMG
Supported. ORBs may use whatever protocol is most appropriate. ORBs may employ Internet Protocol (IP), or OSI lower layers. CORBA interoperability requires support of a standard protocol.

Internet Mgmt
Unsupported. SNMPv1 or SNMPv2 as defined by referenced documents SNMP and SNMPv2 is required. SNMP may run over a wide variety of Internet and non-Internet transports, as described by RFC1449.

Location Transparency

OSI Mgmt
Not supported when objects are named within the scope of the System object. For OSI management, OSI protocol machines are naturally named within the scope of the open system they are part of, and thus location transparency is meaningless. However, not all managed objects have to be named within the scope of the System managed object, so location transparency is not precluded.

OMG
Supported in CORBA. Lifecycle services include Move operations.

Internet Mgmt
Not supported.

Location Independence

OSI Mgmt
Not supported for managed objects named within the scope of System.

OMG
Supported in CORBA.

Internet Mgmt
Not supported.

Analysis

At first sight, the object reference schemes seem very different. In the OMG model, identity is determined by an opaque object reference value, while in the OSI Management model it is determined by name. However, if the user were to forbid the renaming or moving of managed objects (which will largely be the case in practice) and were to carefully manage the re-use of managed-object names, the two mechanisms are broadly equivalent, since managed-object names are unique and unambiguous, and aliases are not permitted.

Object Selection and Address Resolution

Concepts

Selection
The mechanism by which object instances are selected to receive invocations.

Associative Selection

A reference constructed from predicates over the characteristics of objects. Such a reference can resolve to zero or more objects.

Address Resolution
The mechanism by which a name is mapped to an address (see reference Jacqm90).

Comparison

Direct Selection

OSI Mgmt
By name.

OMG
In OMG, an Object Reference is an address, that is, it is all that is necessary to connect to that object, regardless of its current location. ORB interoperability is provided in CORBA 2.0 (see reference CORBA98), which includes resolving object references between different ORB implementations.

Internet Mgmt
By name.

Associative Selection

OSI Mgmt
Support of associative references by means of filters is optionally supported. The syntax and semantics of filters are defined. The scope is the whole, or some sub-tree, of the tree of managed objects. With CMIP, the invocation is made directly on the scope and filter - the agent implementation sorts out the targets.

OMG
Associative reference to a set of names could be done by traversal of the naming graph, or by a Trader Service. A standard OMG mechanism is not yet defined. Commands addressed to a set of objects via an associative reference would require a two phase mechanism: one which resolves to a set of objects via constraint matching on properties of the object's supported services; and the other which iterates over the objects invoking the operation on it. Clearly a scoping and filtering service could be written, but none appears specifically in the current OMG Roadmap (at the time of publication).

OMG has a Relationship Service, which may also provide a different mechanism. The OMG Object Services activity might fast-track a Trader Service (such as ODP trader) which provides associative references employing constraint matching on properties of services supported by object instances. Support for such associative references is permitted but not required. A standard OMG trader has not yet been specified, and it is expected that the ODP trader can be used.

Internet Mgmt
SNMP get-next and get-bulk operators allow reference to a conceptual table entry which is lexicographically after a named entry. The scope is the agent's network address, the entire registration tree, and lexicographic ordering within that tree. However, the receiver of these operation responses must do any necessary filtering out of unwanted variables. RFC1445 (see reference IADM93) defines MIB Views which are subsets of all instances of all object types.

Address Resolution

OSI Mgmt
The model does not prescribe a mechanism for address resolution, but it could be provided by the Directory (see reference DIR91).

OMG
The ORB provides address resolution. Mapping from a name to an object reference is done by the Name Service. An ORB resolves only a single target, and it is an application concern to sort out the targets.

Internet Mgmt
The model does not prescribe a mechanism for address resolution, but it could be provided by any directory service, including the Internet Domain Name Server.

Analysis

Both OSI and OMG models permit similar features with respect to object selection. The OSI model permits a direct selection of a single object by name, and the OMG model permits it by object identifier. Both provide associative selection over some subset of objects that may resolve to zero or more objects. In both cases, the responsibility for address resolution is delegated.

The OSI Management model defines specific syntax and semantics of the supporting mechanism. The OMG model does not.

ODP is specifying the syntax and semantics of a Trader service, which is expected to be used for associated selection of OMG objects.


Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index