-- ============================================================================= -- ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996 -- ============================================================================= --<GDMO.Alias "ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996" -- "ITU-T Rec. X.725 | ISO/IEC 10165-7">-- -- ========================================================= --<GDMO.Document "ITU-T Rec. X.725 (1995) | ISO/IEC 10165-7 : 1996" >-- --<GDMO.Alias "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992" -- "CCITT Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992", -- "ITU-T Rec. X721 | ISO/IEC 10165-2", -- "ITU-T Rec. X.721 | ISO/IEC 10165-2", -- "CCITT Rec. X.721 | ISO/IEC 10165-2">-- --<GDMO.Alias "ITU-T Rec. X.741 (1995) | ISO/IEC 10164-9 : 1995" -- "CCITT Rec. X.741 (1995) | ISO/IEC 10164-9 : 1995", -- "ITU-T Rec. X.741 | ISO/IEC 10164-9">-- genericRelationshipObject MANAGED OBJECT CLASS DERIVED FROM "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top; CHARACTERIZED BY genericRelationshipObjectPackage PACKAGE ATTRIBUTES relationshipName GET, relationshipClass GET, relationshipMapping GET; ATTRIBUTE GROUPS "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":relationships;;; REGISTERED AS {GRMD.grm-Object 1}; genericRelationshipObject-system NAME BINDING SUBORDINATE OBJECT CLASS genericRelationshipObject AND SUBCLASSES; NAMED BY SUPERIOR OBJECT CLASS "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":system AND SUBCLASSES; WITH ATTRIBUTE relationshipName; REGISTERED AS {GRMD.grm-NameBinding 1}; relationshipName ATTRIBUTE WITH ATTRIBUTE SYNTAX GRM-ASN1Module.SimpleNameType; MATCHES FOR EQUALITY; REGISTERED AS {GRMD.grm-Attribute 1}; relationshipClass ATTRIBUTE WITH ATTRIBUTE SYNTAX GRM-ASN1Module.RelationshipClass; MATCHES FOR EQUALITY; REGISTERED AS {GRMD.grm-Attribute 2}; relationshipMapping ATTRIBUTE WITH ATTRIBUTE SYNTAX GRM-ASN1Module.RelationshipMapping; MATCHES FOR EQUALITY; REGISTERED AS {GRMD.grm-Attribute 3}; participantPointer ATTRIBUTE WITH ATTRIBUTE SYNTAX GRM-ASN1Module.GroupObjects; MATCHES FOR EQUALITY, SET-INTERSECTION, SET-COMPARISON; PARAMETERS noSuchObject, roleInstanceConflict, roleCardinalityViolation, relationshipCardinalityViolation;; -- An implementation may choose to apply ASN.1 subtyping restrictions to the -- attribute syntax of the participantPointer attribute to reflect the -- permitted role cardinality constraints defined in a specification. noSuchObject PARAMETER CONTEXT SPECIFIC-ERROR; WITH SYNTAX GRM-ASN1Module.ObjectInstance; REGISTERED AS {GRMD.grm-Parameter 1}; roleCardinalityViolation PARAMETER CONTEXT SPECIFIC-ERROR; WITH SYNTAX GRM-ASN1Module.Null; REGISTERED AS {GRMD.grm-Parameter 3}; roleInstanceConflict PARAMETER CONTEXT SPECIFIC-ERROR; WITH SYNTAX GRM-ASN1Module.ObjectInstance; REGISTERED AS {GRMD.grm-Parameter 2}; relationshipCardinalityViolation PARAMETER CONTEXT SPECIFIC-ERROR; WITH SYNTAX GRM-ASN1Module.Null; REGISTERED AS {GRMD.grm-Parameter 4}; symmetricRelationship RELATIONSHIP CLASS BEHAVIOUR symmetricRelationshipBehaviour; SUPPORTS ESTABLISH establishSymmetricRelationship, TERMINATE terminateSymmetricRelationship, QUERY querySymmetricRelationship; ROLE peerRole PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.TwoToMax REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.Two PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One REGISTERED AS {GRMExample.grmEx-Role 4}; REGISTERED AS {GRMExample.grmEx-RelationshipClass 2}; symmetricRelationshipBehaviour BEHAVIOUR DEFINED AS " INVARIANT: This relationship has one role - the peer role - for which the minimum permitted and minimum required role cardinality constraint is 2. The existence of an instance of this relationship class implies the existence of at least two corresponding managed objects fulfilling the peer role. OPERATIONS: ESTABLISH establishSymmetricRelationship Signature: The class and identity of the proposed participants in the peer role to be bound in a new instance of the Symmetric Relationship class. Precondition: The instance of the Symmetric Relationship relationship class does not exist. Postcondition: The participants in the peer role exist; the instance of the Symmetric Relationship relationship class exists; the participants in the peer role referenced in the signature are bound in this instance of the Symmetric Relationship class. TERMINATE terminateSymmetricRelationship Signature: The identity of the Symmetric Relationship relationship instance to be terminated. Precondition: The instance of the Symmetric Relationship relationship class referenced in the signature exists; the participants in the peer role bound in this instance of the Symmetric Relationship class exist. Postcondition: The referenced instance of the Symmetric Relationship relationship class does not exist; the participants in the peer role which were bound in this instance of the Symmetric Relationship class exist."; symmetricRelationshipMapping RELATIONSHIP MAPPING RELATIONSHIP CLASS symmetricRelationship; BEHAVIOUR symmetricRelationshipMappingBehaviour BEHAVIOUR DEFINED AS " This representation of the symmetric relationship uses a relationship object to represent the relationship. Objects fulfilling the peer role are identified by the peerPointer attribute of the symmetric relationship managed object.";; RELATIONSHIP OBJECT symmetricRelationshipObject; ROLE peerRole RELATED-CLASSES "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER peerPointer; OPERATIONS MAPPING ESTABLISH establishSymmetricRelationship MAPS-TO-OPERATION CREATE OF RELATIONSHIP OBJECT, TERMINATE terminateSymmetricRelationship MAPS-TO-OPERATION DELETE OF RELATIONSHIP OBJECT, QUERY querySymmetricRelationship MAPS-TO-OPERATION GET peerPointer OF RELATIONSHIP OBJECT; REGISTERED AS {GRMExample.grmEx-RelationshipMapping 3}; symmetricRelationshipObject MANAGED OBJECT CLASS DERIVED FROM genericRelationshipObject; CHARACTERIZED BY symmetricRelationshipPackage PACKAGE ATTRIBUTES peerPointer GET-REPLACE ADD-REMOVE;;; REGISTERED AS {GRMExample.grmEx-Object 3}; peerPointer ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS {GRMExample.grmEx-Attribute 1}; dependency RELATIONSHIP CLASS BEHAVIOUR dependencyBehaviour; SUPPORTS ESTABLISH establishDependency, TERMINATE terminateDependency, QUERY queryDependents, QUERY queryParent; QUALIFIED BY timeOfEstablishment; ROLE parentRole PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One REGISTERED AS {GRMExample.grmEx-Role 5} ROLE dependentRole PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToMax REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One PERMITTED-RELATIONSHIP-CARDINALITY-CONSTRAINT GRMExample.One BIND-SUPPORT bindDependent UNBIND-SUPPORT unbindDependent REGISTERED AS {GRMExample.grmEx-Role 6}; REGISTERED AS {GRMExample.grmEx-RelationshipClass 3}; dependencyBehaviour BEHAVIOUR DEFINED AS " INVARIANT: There exist two roles in this relationship class - parent role and dependent role. The existence of a participant in the dependent role implies the existence of at least one corresponding participant in the parent role. A managed object may not participate in both roles. COMMENTS: An object instance fulfilling the dependent role may only participate in one instance of this dependency relationship, that is, the relationship cardinality is equal to one. An object instance able to fulfil the parent role may exist outside a dependency relationship an object fulfilling a dependent role shall not. The qualifying attribute, timeOfEstablishment, indicates the time, in UTC time format, of establishment of the relationship. OPERATIONS: ESTABLISH establishDependency Signature: The class and identity of the proposed participant object in the dependent role to be created by the ESTABLISH operation; the class and identity of the proposed participant in the parent role. Precondition: The proposed participant in the dependent role does not exist; the proposed participant in the parent role exists. Postcondition: A new instance of the dependency relationship class exists; the participants in the parent role and the dependent role proposed in the ESTABLISH signature exist and are bound in the new instance of the dependency relationship class. The qualifying attribute, timeOfEstablishment, is set to the current value of UTC time. BIND bindDependent Signature: The class and identity of a participant in the parent role; the class and identity of the proposed participant to be created in the dependent role. Precondition: The participant in the parent role exists and is bound into an instance of the dependency relationship class; the proposed participant in the dependent role does not exist. Postcondition: The participant in the dependent role referenced in the BIND signature exists and is bound into the same dependency relationship as that in which the participant in the parent role referenced in the BIND signature is bound. UNBIND unbindDependent Signature: The class and identity of a participant in the parent role; the class and identity of the participant in a dependent role. Precondition: The two participants identified in the UNBIND signature exist and are bound into the same instance of a dependency relationship; the dependency relationship exists; there exists at least one other participant in the dependent role bound into the relationship. Postcondition: The participant in the dependent role referenced in the UNBIND signature does not exist; all other participants bound into the instance of dependency relationship class exist and remain bound in the instance of the dependency relationship class. TERMINATE terminateDependency Signature: The identity of a dependency relationship instance to be terminated. Precondition: The instance of the dependency relationship class identified in the signature exists; only a single participant in dependent role is bound into the identified dependency relationship. Postcondition: The instance of the dependency relationship class referenced in the signature does not exists; the participant that was in the parent role exists. The participant(s) in the dependent role do not exist. The value of the qualifying attribute, timeOfEstablishment, is undefined."; person MANAGED OBJECT CLASS DERIVED FROM "ITU-T Rec. X.721 (1992) | ISO/IEC 10165-2 : 1992":top; CHARACTERIZED BY personPackage PACKAGE ATTRIBUTES personName GET;;; REGISTERED AS {GRMExample.grmEx-Object 4}; personName ATTRIBUTE WITH ATTRIBUTE SYNTAX GRMExample.PersonName; MATCHES FOR EQUALITY; REGISTERED AS {GRMExample.grmEx-Attribute 2}; timeOfEstablishment ATTRIBUTE WITH ATTRIBUTE SYNTAX GRMExample.TimeStamp ; REGISTERED AS {GRMExample.grmEx-Attribute 3}; dependencyAttributeRepresentation RELATIONSHIP MAPPING RELATIONSHIP CLASS dependency; BEHAVIOUR dependencyAttributeRepresentationBehaviour; ROLE parentRole RELATED-CLASSES aPerson REPRESENTED-BY ATTRIBUTE parent QUALIFIES timeOfEstablishment, ROLE dependentRole RELATED-CLASSES bPerson REPRESENTED-BY ATTRIBUTE dependents; OPERATIONS MAPPING ESTABLISH establishDependency MAPS-TO-OPERATION CREATE OF dependentRole, TERMINATE terminateDependency MAPS-TO-OPERATION DELETE OF dependentRole, BIND bindDependent MAPS-TO-OPERATION CREATE OF dependentRole , UNBIND unbindDependent MAPS-TO-OPERATION DELETE OF dependentRole, QUERY queryParent parentRole MAPS-TO-OPERATION GET parent OF dependentRole, QUERY queryDependents dependentRole MAPS-TO-OPERATION GET dependents OF parentRole; REGISTERED AS {GRMExample.grmEx-RelationshipMapping 4}; dependencyAttributeRepresentationBehaviour BEHAVIOUR DEFINED AS " This representation of the dependency relationship class uses conjugate participant pointers to represent an instance of the relationship; participant pointer consistency is to be maintained. The relationship management operations ESTABLISH establishDependency and BIND bindDependent both map to a create of a participant in the dependent role: the distinction being that the relationship management operation ESTABLISH establishDependency is used when a participant is the first to fulfil the dependent role; the relationship management operation BIND bindDependent is used when there is at least one other participant in the dependent role at the time of binding. After creation of an object of class bPerson with the attribute, parent, identifying an object of class aPerson, the value of the attribute, dependents, in the object of class aPerson identifies the corresponding object of class bPerson. Similarly, the relationship management operations TERMINATE terminateDependency and UNBIND unbindDependent both map to a delete of a participant in the dependentRole: the distinction being that the relationship management operation TERMINATE terminateDependency is used if there is only one participant fulfilling the dependentRole; the relationship management operation UNBIND unbindDependent is used if there is more than one participant fulfilling the dependentRole at time of deletion. Upon deletion of an object of class bPerson fulfilling the dependentRole, the value of the attribute, dependents, in the object of class aPerson object fulfilling the parentRole is modified by removing the identity of the corresponding object of class bPerson. The QUERY queryDependents relationship management operation maps to a GET of the dependents attribute in the aPerson object fulfilling a parentRole; the QUERY queryParent operation maps to a GET of the parent attribute in the bPerson object fulfilling a dependentRole. The creation of a bPerson managed object class (or bPerson subclass) results in the establishment of an instance of the dependency relationship with dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the parent attribute in the object of class bPerson is set-by-create to an instance of a managed object of class aPerson and the value of the dependents attribute in the object of class aPerson is an empty set. The creation of a bPerson (or bPerson subclass) managed object results in its being bound to an instance of the dependency relationship with dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the parent attribute in the bPerson object is set-by-create to an instance of aPerson managed object class and the dependents attribute in the aPerson object is a non-empty set. The deletion of a bPerson (or bPerson subclass) managed object results in its being unbound from an instance of the dependency relationship with dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the dependents attribute in the aPerson object is not empty after the deletion and associated update of the dependents attribute. The deletion of a bPerson (or bPerson subclass) managed object results in the termination of an instance of the dependency relationship with dependencyAttributeRepresentation RELATIONSHIP MAPPING when the value of the dependents attribute in the aPerson object is empty after the deletion and the associated update of the dependents attribute."; aPerson MANAGED OBJECT CLASS DERIVED FROM person; CHARACTERIZED BY parentPackage PACKAGE ATTRIBUTES dependents GET, timeOfEstablishment GET;;; REGISTERED AS {GRMExample.grmEx-Object 5}; bPerson MANAGED OBJECT CLASS DERIVED FROM person; CHARACTERIZED BY dependentPackage PACKAGE ATTRIBUTES parent PERMITTED VALUES GRMExample.SingleValued GET;;; REGISTERED AS {GRMExample.grmEx-Object 6}; dependents ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS {GRMExample.grmEx-Attribute 4}; parent ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS {GRMExample.grmEx-Attribute 5}; dependencyObjectRepresentation RELATIONSHIP MAPPING RELATIONSHIP CLASS dependency; BEHAVIOUR dependencyObjectRepresentationBehaviour; RELATIONSHIP OBJECT dependencyRelationshipObject QUALIFIES timeOfEstablishment; ROLE parentRole RELATED-CLASSES person REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER parent, ROLE dependentRole RELATED-CLASSES person REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER dependents; OPERATIONS MAPPING ESTABLISH establishDependency MAPS-TO-OPERATION CREATE OF RELATIONSHIP OBJECT, TERMINATE terminateDependency MAPS-TO-OPERATION DELETE OF RELATIONSHIP OBJECT, BIND bindDependent dependentRole MAPS-TO-OPERATION ADD dependents OF RELATIONSHIP OBJECT, UNBIND unbindDependent dependentRole MAPS-TO-OPERATION REMOVE dependents OF RELATIONSHIP OBJECT, QUERY queryDependents dependentRole MAPS-TO-OPERATION GET dependents OF RELATIONSHIP OBJECT, QUERY queryParents parentRole MAPS-TO-OPERATION GET parent OF RELATIONSHIP OBJECT; REGISTERED AS {GRMExample.grmEx-RelationshipMapping 5}; dependencyObjectRepresentationBehaviour BEHAVIOUR DEFINED AS " This representation of the dependency relationship uses a relationship object to represent an instance of the relationship and to relate the participants. The relationship management operation ESTABLISH establishDependency maps to a CREATE of a dependencyRelationshipObject object and the relationship management operation TERMINATE terminateDependency maps to a DELETE of the dependencyRelationshipObject object. The relationship management operation BIND bindDependent maps to an ADD operation on the dependents attribute in a dependencyRelationshipObject object. The relationship management operation UNBIND unbindDependent maps to a REMOVE operation on the dependents attribute in the dependencyRelationshipObject object. The creation of a DependencyRelationshipObject object results in the establishment of a dependency relationship with the dependencyObjectRepresentation RELATIONSHIP MAPPING. Because the parent role is not dynamic (i.e. BIND-SUPPORT and UNBIND-SUPPORT are not defined for the parent role), the parent attribute within the DependencyRelationshipObject must be set-by-create to the value of exactly one instance of person object fulfilling the parentRole; the value of the parent attribute cannot be changed during the lifetime of the dependency operation. The addition of a value representing a person object to the dependents attribute of a dependencyRelationshipObject object results in the person object's being bound into the relationship corresponding to the dependencyRelationshipObject object in the dependentRole. The removal of a value representing a person object from the dependents attribute of a dependencyRelationshipObject object, results in the person object's being unbound from the relationship corresponding to the dependencyRelationshipObject object. The deletion of a dependencyRelationshipObject results in the termination of the corresponding dependency relationship with the dependencyObjectRepresentation RELATIONSHIP MAPPING."; dependencyRelationshipObject MANAGED OBJECT CLASS DERIVED FROM genericRelationshipObject; CHARACTERIZED BY dependencyRelationshipObjectPackage PACKAGE ATTRIBUTES dependents GET-REPLACE ADD-REMOVE, parent GET, timeOfEstablishment GET; REGISTERED AS {GRMExample.grmEx-Package x};; REGISTERED AS {GRMExample.grmEx-Object 7}; dependencyNamingRepresentation RELATIONSHIP MAPPING RELATIONSHIP CLASS dependency; BEHAVIOUR dependencyNamingRepresentationBehaviour; ROLE parentRole RELATED-CLASSES cPerson REPRESENTED-BY NAMING aNameBinding USING SUPERIOR QUALIFIES timeOfEstablishment, ROLE dependentRole RELATED-CLASSES person REPRESENTED-BY NAMING aNameBinding USING SUBORDINATE; OPERATIONS MAPPING ESTABLISH establishDependency MAPS-TO-OPERATION CREATE OF dependentRole, BIND bindDependent dependentRole MAPS-TO-OPERATION CREATE OF dependentRole, UNBIND unbindDependent dependentRole MAPS-TO-OPERATION DELETE OF dependentRole, TERMINATE terminateDependency MAPS-TO-OPERATION DELETE OF dependentRole, QUERY queryDependents dependentRole MAPS-TO-OPERATION GET "ITU-T Rec. X.721 | ISO/IEC 10165-2":nameBinding OF dependentRole, QUERY queryParent parentRole MAPS-TO-OPERATION GET "ITU-T Rec. X.721 | ISO/IEC 10165-2":nameBinding OF dependentRole; REGISTERED AS {GRMExample.grmEx-RelationshipMapping 6}; dependencyNamingRepresentationBehaviour BEHAVIOUR DEFINED AS " This representation of the dependency relationship uses naming to represent an instance of the relationship. The relationship management operations ESTABLISH establishDependency and BIND bindDependent both map to a create of a person (or person subclass) object participant in the dependentRole using a name binding with a cPerson (or cPerson subclass) object as the superior object in the parentRole. The distinction is that: the relationship management operation ESTABLISH establishDependency is used when the proposed participant in the dependent role would be the first object in the role; the relationship management operation BIND bindDependent is used when there is at least one other participant in the dependent role at the time of creation. Similarly, the relationship management operations TERMINATE terminateDependency and UNBIND unbindDependent both map to a delete of a participant in the dependent role, the distinction being that: the relationship management operation TERMINATE terminateDependency is used if the participant is the only one fulfilling the dependentRole and the relationship management operations UNBIND unbindDependent is used if at least one other participant remains fulfilling the dependent role after deletion. The QUERY queryDependents relationship management operation maps to a scoped get of the nameBinding attribute with a scope level of one on the person object in the parent role to determine the contained person objects that have the value of their name binding attribute equal to aNameBinding; such objects are fulfilling the dependents role. The QUERY queryParent relationship management operation maps to a get of the nameBinding attribute of the subordinate object to determine that the value of its name binding attribute is equal to aNameBinding; subsequent analysis of the RDN of the subordinate object name will indicate the parent object. The creation of a person (or person subclass) managed object as a subordinate to a cPerson (or cPerson subclass) object with aNameBinding name binding results in the establishment of an instance of the dependency relationship with dependencyNamingRepresentation RELATIONSHIP MAPPING if there are no other subordinates with aNameBinding name binding. The creation of a person (or person subclass) managed object as a subordinate of a cPerson (or cPerson subclass) object with aNameBinding name binding results in the binding of the created object into a dependency relationship with the dependencyNamingRepresentation RELATIONSHIP MAPPING if there is at least one other subordinate with aNameBinding name binding. The deletion of a person (or person subclass) managed object bound in the dependent role of a dependency relationship with the dependencyNamingRepresentation RELATIONSHIP MAPPING, results in the unbinding of the deleted object from the dependency relationship when at least one other dependents with aNameBinding will exist after the deletion. The deletion of a person (or person subclass) managed object bound in the dependent role of a dependency relationship with the dependencyNamingRepresentation RELATIONSHIP MAPPING, results in the termination of the dependency relationship when there will exist no other dependents with aNameBinding after the deletion."; aNameBinding NAME BINDING SUBORDINATE OBJECT CLASS person AND SUBCLASSES; NAMED BY SUPERIOR OBJECT CLASS cPerson AND SUBCLASSES; WITH ATTRIBUTE personName; CREATE; DELETE; REGISTERED AS {GRMExample.grmEx-NameBinding x}; cPerson MANAGED OBJECT CLASS DERIVED FROM person; CHARACTERIZED BY timePackage PACKAGE ATTRIBUTES timeOfEstablishment GET;;; REGISTERED AS {GRMExample.grmEx-Object 8}; generalCompositionRelationship RELATIONSHIP CLASS BEHAVIOUR generalCompositionRelationshipBehaviour; SUPPORTS ESTABLISH establishGeneralComposition, TERMINATE terminateGeneralComposition; ROLE compositeRole PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REGISTERED AS {GRMExample.grmEx-Role 7} ROLE componentRole PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToMax REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One BIND-SUPPORT bindComponent UNBIND-SUPPORT unbindComponent REGISTERED AS {GRMExample.grmEx-Role 8}; REGISTERED AS {GRMExample.grmEx-RelationshipClass 4}; generalCompositionRelationshipBehaviour BEHAVIOUR DEFINED AS " INVARIANT: The existence of an instance of this relationship class implies the existence of exactly one participant in the composite role and one or more participants in the component role. At least one property of the composite participant is such that it depends upon properties of the components. At least the identity of the composite participant is such that it is independent of the existence or properties of the components; that is, creating, updating, or deleting any component does not change the identity of the composite. OPERATIONS: ESTABLISH establishGeneralComposition Signature: The class and identity of the proposed participant in the composite role and the class and identity of the proposed participant(s) in the component role to be bound in an instance of the generalCompositionRelationship. Precondition: The proposed participants are not already bound in the same instance of the generalCompositionRelationship class or a subclass thereof. Postcondition: An instance of the generalCompositionRelationship class exists; the participants referenced in the signature are bound into this instance of the generalCompositionRelationship class. BIND bindComponent Signature: The class and identity of a proposed participant in the component role; the identity of a generalCompositionRelationship. Precondition: The referenced instance of the generalCompositionRelationship class exists; the proposed participant in the component role is not bound into this instance of generalCompositionRelationship class; there exists at least one other participant in the component role bound into this instance of the generalCompositionRelationship class. Postcondition: The participant in the component role referenced in the signature exists and is bound in this instance of the generalCompositionRelationship class. UNBIND unbindComponent Signature: The class and identity of a participant in the component role; the identity of a generalCompositionRelationship. Precondition: The instance of the generalCompositionRelationship class referenced in the signature exists; the participant in the component role referenced in the signature is bound into the referenced instance of generalCompositionRelationship class; there exists at least one other participant in the component role bound into the referenced instance of the generalCompositionRelationship class. Postcondition: The referenced participant in the component role exists but is not bound into the referenced instance of the generalCompositionRelationship class; the referenced instance of the generalCompositionRelationship class exists. TERMINATE terminateGeneralComposition Signature: The identity of a generalCompositionRelationship instance. Precondition: The referenced instance of the generalCompositionRelationship class exists. Postcondition: The referenced instance of the generalCompositionRelationship class does not exist; the participants in the composite role and in the component role that were bound into the relationship exist."; subclassedCompositionRelationship RELATIONSHIP CLASS DERIVED FROM generalCompositionRelationship; BEHAVIOUR subclassedCompositionRelationshipBehaviour BEHAVIOUR DEFINED AS " This relationship class refines the required role cardinality of the component role of the generalCompositionRelationship class to be the range 1 to 5; all other characteristics of this relationship class are inherited from the generalCompositionRelationship class.";; ROLE componentRole REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.OneToFive; REGISTERED AS {GRMExample.grmEx-Object 9}; accessControlDomain RELATIONSHIP CLASS BEHAVIOUR accessControlDomainBehaviour BEHAVIOUR DEFINED AS " This relationship class binds managed objects which are subject to access control (memberObjectRole) to managed objects representing the access enforcement function (aefRole) and access decision function (adfRole) respectively.";; SUPPORTS QUERY queryAccessControlDomain; ROLE memberObjectRole REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.ZeroToTwo BIND-SUPPORT bindMember UNBIND-SUPPORT unbindMember REGISTERED AS {GRMExample.grmEx-Role memberObjectRoleArc(1) } ROLE aefRole COMPATIBLE-WITH "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REGISTERED AS {GRMExample.grmEx-Role aefRoleArc(2) } ROLE adfRole COMPATIBLE-WITH "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules PERMITTED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REQUIRED-ROLE-CARDINALITY-CONSTRAINT GRMExample.One REGISTERED AS {GRMExample.grmEx-Role adfRoleArc(3) }; REGISTERED AS {GRMExample.grmEx-RelationshipClass accessControlDomainArc(1) }; simpleAccessControlDomain RELATIONSHIP MAPPING RELATIONSHIP CLASS accessControlDomain; BEHAVIOUR simpleAccessControlDomainBehaviour BEHAVIOUR DEFINED AS ! In this mapping of the accessControlDomain managed relationship class, the accessControlDomainObject class (a subclass of the accessControlRules class) participates in the adfRole and the notificationEmitter class participates in the aefRole; any managed object may participate in the memberObjectRole. The memberObjectAttribute in the accessControlDomainObject identifies the participants in the memberObjectRole and the notificationEmitter-accessControlRules name binding contains the aef participant within the adf participant. The QUERY queryAccessControlDomain relationship management operation maps to two operations, namely : (a) a GET of the memberObjectAttribute of the object fulfilling the adfRole; followed by (b) a scoped GET of the nameBinding attribute with a scope level of one on the object fulfilling the adf role to determine the contained objects that have the value of their name binding attribute equal to "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules.!;; ROLE memberObjectRole RELATED-CLASSES "ITU-T Rec. X721 | ISO/IEC 10165-2":top REPRESENTED-BY ATTRIBUTE memberObjectAttribute, ROLE aefRole RELATED-CLASSES "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter REPRESENTED-BY NAMING "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules USING SUBORDINATE, ROLE adfRole RELATED-CLASSES accessControlDomainObject REPRESENTED-BY NAMING "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter-accessControlRules USING SUPERIOR; OPERATIONS MAPPING BIND bindMember memberObjectRole MAPS-TO-OPERATION ADD memberObjectAttribute OF adfRole, UNBIND unbindMember memberObjectRole MAPS-TO-OPERATION REMOVE memberObjectAttribute OF adfRole, QUERY queryAccessControlDomain memberObjectRole MAPS-TO-OPERATION GET memberObjectAttribute OF adfRole GET "CCITT Rec. X.721 | ISO/IEC 10165-2":nameBinding OF adfRole; REGISTERED AS {GRMExample.grmEx-RelationshipMapping simpleAccesControlDomainArc(1) }; accessControlDomainObject MANAGED OBJECT CLASS DERIVED FROM "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules; CHARACTERIZED BY accessControlDomainPackage PACKAGE BEHAVIOUR accessControlDomainObjectBehaviour BEHAVIOUR DEFINED AS " Membership of the access control domain is identified and modified by operations upon the memberObjectAttribute.";; ATTRIBUTES memberObjectAttribute GET-REPLACE ADD-REMOVE;;; REGISTERED AS {GRMExample.grmEx-Object accessControlDomainObjectArc(1) }; coordinatedAccessControlDomain RELATIONSHIP MAPPING RELATIONSHIP CLASS accessControlDomain; BEHAVIOUR coordinatedAccessControlDomainBehaviour BEHAVIOUR DEFINED AS " In this mapping of the accessControlDomain managed relationship class, the accessControlRules class participates in the adfRole and the notificationEmitter class participates in the aefRole; any managed object may participate in the memberObjectRole. The relationship is represented by the accessControlDomainCoordinator, a subclass of the genericRelationshipObject, using the memberObjectAttribute, aefAttribute, and adfAttribute attributes. The QUERY queryAccessControlDomain relationship management operation maps to three GET operations on the relationship object, namely: (a) a GET of the memberObjectAttribute; (b) a GET of the aefAttribute; and (c) a GET of the adfAttribute.";; RELATIONSHIP OBJECT accessControlDomainCoordinator; ROLE memberObjectRole RELATED-CLASSES "CCITT Rec. X.721 | ISO/IEC 10165-2":top REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER memberObjectAttribute, ROLE aefRole RELATED-CLASSES "ITU-T Rec. X.741 | ISO/IEC 10164-9":notificationEmitter REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER aefAttribute, ROLE adfRole RELATED-CLASSES "ITU-T Rec. X.741 | ISO/IEC 10164-9":accessControlRules REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER adfAttribute; OPERATIONS MAPPING BIND bindMember MAPS-TO-OPERATION ADD memberObjectAttribute OF RELATIONSHIP OBJECT, UNBIND unbindMember MAPS-TO-OPERATION REMOVE memberObjectAttribute OF RELATIONSHIP OBJECT, QUERY queryAccessControlDomain MAPS-TO-OPERATION GET memberObjectAttribute OF RELATIONSHIP OBJECT GET aefAttribute OF RELATIONSHIP OBJECT GET adfAttribute OF RELATIONSHIP OBJECT; REGISTERED AS {GRMExample.grmEx-RelationshipMapping coordinatedAccessControlDomainArc(2)}; accessControlDomainCoordinator MANAGED OBJECT CLASS DERIVED FROM genericRelationshipObject; CHARACTERIZED BY accessControlDomainCoordinatorPackage PACKAGE ATTRIBUTES memberObjectAttribute ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS { GRMExample.grmEx-Attribute memberObjectAttributeArc(6) }; GET-REPLACE ADD-REMOVE, aefAttribute ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS { GRMExample.grmEx-Attribute aefAttributeArc(7) }; GET, adfAttribute ATTRIBUTE DERIVED FROM participantPointer; REGISTERED AS { GRMExample.grmEx-Attribute adfAttributeArc(8) }; GET;;; REGISTERED AS {GRMExample.grmEx-Object accessControlDomainCoordinatorArc(2)}; -- ============================================================================= -- Formatted by OpenT2 Version 5.5.6.34 on Fri Aug 20 11:20:49 2004