JOSIF Main Page | Framework Guidebook | Modeling | Interface Meta-Model
Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
Introduction
JOSIF interface specifications include data and operation aspects.
Data aspects are written in terms of entities and datatypes with their attributes and are described in section section Information Modeling.
Operation aspects are written in terms of operation signatures and notification signatures.
Notification signatures specify any argument types.
Operational aspects are described in section section Operational Modeling.
For instance, in the Web-services Profile, entities and datatypes are specified in terms of XML-Schema. Operation and notification signatures are specified in terms of WSDL operation-types while argument types are specified by means of XML data-types (i.e. a WSDL and XML schema).
The meta-model of a TIP interface shown below shows the split between the information modeling and the interface modeling:
1800px ### Missing Picture###
The Information part of the meta-model (colored in blue) will be mapped to both RSM and Tigerstripe artifacts.
The Operational part of the meta-modeld (colored in orange) will be mapped only to Tigerstripe.
Boxes in light yellow refer to datatypes used in the meta-model.
The meta-model is also available as a Tigerstripe project (See TIP_MetaModel_ Interface Meta-Model).
Stereotypes are used to complement standard UML properties to bring implementation-related decoration. This information is decribed here in a neutral way. Patterns used to define the stereotypes can be found in the Stereotypes section of the General Patterns. Detailed description of the stereotypes can be found in TIP RSM Profile for the Information Model part and in TIP Profile for the Operational part and the overvall implementation view in Tigerstripe.
...
The different meta-model objects related to the Information Model are described in this section.
ABE (Aggregated Business Entity)
A ABE or Aggregated Business Entity is the grouping mechanism used in SID. The properties of an ABE are high cohesion within the ABE and loose coupling among ABEs.
...
Package hierarchy is identical in RSM and Tigerstripe, but package names are different as RSM package names are not suitable for implementation.
The attribute implementationPackage of the tipPackage stereotype is used to do this mapping. It will contain the name of the implementation package to be used in Tigerstripe. It is mandatory for all implemented packages.
Figures, examples, instances should be grouped in specific packages, which will be marked with the stereotype _ doNotImplement_ doNotImplement. Such packages won't be exported to Tigerstripe.
...
and the one below the structure of the same packages as implementation packages in Tigerstripe
Modeling Rules
Use all the SID patterns defined in Appendix 2 of the SID Model: Addendum 0 – SID Primer.
...
- No multiple inheritance, not supported at implementation level.
All attributes should have a data type
Panel Only diagrams in “figure” folders, marked*doNotImplement. Same for instances or examples.
- No operations on entities. This is only part of the Operational Model, described later and defined in Tigerstripe.
- Associations should be navigable in at least one direction.
- Associations should have names and association roles should also have names, as those names will be used as attribute names if the association is navigable.
- Avoid special characters in names and description, like <, &... Use plain text for all descriptions.
- Avoid nested classes.
UML 2.0 adds “pointer” attributes in both entities when adding a bidirectional association this means that cross ABE associations must be closely managed.
Entity
TIP calls for each of the components to be managed within the OSS/BSS application to be modeled as an entity; entities (instances) are classified into entity types (classes).
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : indicates this entity class extends or inherits from another one.
- RSM: corresponds to a Generalization association
Tigerstripe: maps to Extends
Panel *isAbstract : indicates that this entity class is abstract, i.e. cannot be instantiated.
- RSM: maps to Abstract checkbox
Tigerstripe: maps to isAbstract checkbox
Panel *objectCreationNotification : Indicates of an Object Creation Notification should be generated. This is mapped to the attribute objectCreationNotification of the tipClass stereotype.
*objectDeletionNotification : Indicates of an Object Deletion Notification should be generated. This is mapped to the attribute objectDeletionNotification of the tipClass stereotype.
*objectDiscoveryNotification : Indicates of a Discovery Notification should be generated. This is mapped to the attribute objectDiscoveryNotification of the tipClass stereotype.
*support : Indicates whether the identified entity must be represented in TIP interface or not. If the entity is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipClass stereotype.
Attribute
An attribute represents some characteristic of an object type.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *readOnly : indicates the attribute is read-only, i.e. cannot be set.
- RSM: Read Only is a checkbox in the "Qualifiers" group.
Tigerstripe: present as a checkbox.
Panel *isInvariant : Indicates if the attribute is invariant. This is mapped to the attribute isInvariant of the tipAttribute stereotype.
*multiplicity : multiplicity of the attribute. Defined as Multiplicity for both RSM and Tigerstripe. The possible values are- 1
- 0 to 1 (0..1)
- N (0..N)
1 to N (1..N)
Panel *defaultValue : Indicates the default value of the attribute. When a default value is defined, the "creator" do not have to provide a value.
*ordered : Applicable for list of attributes (multiplicity of N or 1 to N). Indicates if the values of this attribute are ordered.- RSM: Ordered is a checkbox in the "Qualifiers" group.
Tigerstripe: Ordered present as a checkbox if the multiplicity is multiple.
Panel *unique: for a multi-valued multiplicity, this specifies whether the values in an instantiation of this attribute are unique (i.e., no duplicate attribute values are allowed); a set has unique values, while a bag can have non unique values. A sequence has both ordered and unique values.
*notificationDefinition : Indicates if a common notification (AVC) will be generated for this object. Default value is false, meaning no notification generated. This is mapped to the attribute notificationDefinition of the tipAttribute stereotype.
*passedById : Applicable when the datatype of the attribute is an Entity.Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById of the tipAttribute stereotype.
Panel *support : Indicates whether the identified attribute must be represented in TIP interface or not. If the attribute is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipAttribute stereotype.
Datatype
Datatypes are usually complex components designed to become attributes of entities.
...
Panel |
---|
*any : allow at implementation level to be replaced by any datatype. |
...
A complex datatype includes attributes. However, a datatype is completely different from an entity as it does not have any lifecycle, nor can it be used as basis for notifications. It is simply carrying data.
Association
Associations are characterized by their cardinality and the roles at each association end.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : indicates this association extends or inherits from another one.
- RSM: corresponds to a Generalization association
- Tigerstripe: maps to Extends
Association Class
An Association Class has all the characteristics of an Association with the addition of the support of attributes.
From a meta-model point of view, an Association Class extends an Association.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : (Inherited from Association) indicates this association class extends or inherits from another one.
- RSM: corresponds to a Generalization association
Tigerstripe: maps to Extends
Panel *support : Indicates whether the identified association class must be represented in TIP interface or not. If the association class is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipAssociationClass stereotype.
Association End
An association end has some unique set of properties, making it a separate meta-model object.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *navigable : Navigable association ends will lead to an attribute in the remote object class. At least one end of an association should be navigable.
*readOnly : indicates the association eend is read-only, i.e. cannot be set.- RSM: Read Only is a checkbox in the "Qualifiers" group.
Tigerstripe: present as a checkbox.
Panel *isInvariant : Indicates if the association end is invariant. This is mapped to the attribute isInvariant of the tipAttribute stereotype.
*multiplicity : multiplicity of the association end. Defined as Multiplicity for both RSM and Tigerstripe. The possible values are- 1
- 0 to 1 (0..1)
- N (0..N)
1 to N (1..N)
Panel *defaultValue : Indicates the default value of the aassociation end. When a default value is defined, the "creator" do not have to provide a value.
*ordered : Applicable for list of attributes (multiplicity of N or 1 to N). Indicates if the values of this attribute are ordered.- RSM: Ordered is a checkbox in the "Qualifiers" group.
Tigerstripe: Ordered present as a checkbox if the multiplicity is multiple.
Panel *unique: for a multi-valued multiplicity, this specifies whether the values in an instantiation of this attribute are unique (i.e., no duplicate attribute values are allowed); a set has unique values, while a bag can have non unique values. A sequence has both ordered and unique values.
*notificationDefinition : Indicates if a common notification (AVC) will be generated for this object. Default value is false, meaning no notification generated. This is mapped to the attribute notificationDefinition of the tipAttribute stereotype.
*passedById : Applicable when the datatype of the attribute is an Entity.Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById of the tipAttribute stereotype.
Panel *support : Indicates whether the identified association end must be represented in TIP interface or not. If the association end is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipAttribute stereotype.
...
The different meta-model objects related to the Operational Model are described in this section.
Service Interface
A Service Interface is the basis building block of the operation modeling part.
Each Interface Package contains at least one Interface Service.
The Service Interface wil lcontain operations.
A Service Interface can also manage Entities and emits Notifications.
In TIP, a number of notifications (Object Creation, AVC...) are defined against the Entity (see the Entitysection section of the Interface Meta-Model). To indicate that these notifications will be emitted by a Service Interface, the entity should be associated as a Managed Entity to the Service Interface in the Details tab of the Service Interface. Explicit notifications can also be added there.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : indicates this service interface extends or inherits from another one.
- RSM: corresponds to a Generalization association
Tigerstripe: maps to Extends
Panel *isAbstract : indicates that this service interface is abstract, i.e. cannot be instantiated. The operations defined in this interface can only be implemented in derived interfaces.
*support : Indicates whether the identified service interface must be represented in theTIP interface or not. If the service interface is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. At least one service interface in a given interface package should be marked Mandatory. This is mapped to the attribute support of the tipServiceInterface stereotype.
Operation
Operations are defined within the scope of a Service Interface.
Operations alwways retrun void. Output is returned using inOut or Out parameters. Operations can throw exceptions. All pre-defined exceptions (see the section section Exceptions in in the Genarel General Patterns) are automatically added by the generators to the operation.
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *isIdempotent : The operation can be repeated providing the same result every time.
*bulkTransferPattern : This attribute allows the selection of the bulk data transfer implementation style. This is applicable when at least one of the parameter's isBulkPotential attribute of the tipParameter stereotype is set to true. Only ITERATOR is supported in JOSIF V1.0. Values:- NONE (default)
- ITERATOR
FILE
Panel *emitsEvents : This attribute indicates the capability of the Target OS operation to emit event notifications. If checked, the operation can emit progress events. The events that can be emitted are listed under the emittedEvents attribute.
*emittedEvents : This attribute lists the events that can be emitted by the operation. It is a list of event names, separated by commas. The event names should be fully qualified valid events defined in the model, e.g org.tmforum.tip.cbe.spm.myEvent.
*isOneWay : This attribute indicates that the operation is either an input or an output with respect to the service interface. The operation is an input oneWay if it has only input parameters. It is an output oneWay if it has only output parameters.
*isExtendable : Indicates if the operation is extendable.
*support : Indicates whether the identified operation must be represented in the TIP interface or not. If the operation is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. At least one operation in a given service interface should be marked Mandatory. This is mapped to the attribute support of the tipOperation stereotype.
Parameter
Parameter represents the parameters or arguments of the operation. There are 3 types of operation parameters:
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *direction : This attribute defines the directionality of the operation parameter. Values:
- in
- inOut
out
Panel *multiplicity : multiplicity of the parameter. Defined as Multiplicity for both RSM and Tigerstripe. The possible values are
- 1
- 0 to 1 (0..1)
- N (0..N)
1 to N (1..N)
Panel *isBulkPotential : This attribute indicates that this parameter can potentially be a very large collection, which will require a bulk data transfer pattern implementation. Atomic definition (unit) is based on the parameter's associated data type. The selection of the bulk data transfer is defined using the tipOperation stereotype bulkTransferPattern attribute. This is mapped to the attribute isBultPotential of the tipParameter stereotype.
*defaultValue : Indicates the default value of theparameter.When a default value is defined, the "creator" do not have to provide a value.
Panel *isOrdered : Applicable for list of parameters (multiplicity of N or 1 to N). Indicates if the values of this parameter are ordered.
*isUnique : for a multi-valued multiplicity, this specifies whether the values in an instantiation of this attribute are unique (i.e., no duplicate attribute values are allowed); a set has unique values, while a bag cna have non unique values. A sequence has both ordered and unique values.
*passedById : Applicable when the datatype of the parameter is an Entity.Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById of the tipParameter stereotype.
Panel *support : Indicates whether the identified parameter must be represented in TIP interface or not. If the parameter is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipParameter stereotype.
Notification
Notification represents the notifications explicitly defined in the model.
Generic notifications (Object Creation, AVC...) are defined at Entity and Attribute level directly using the corresponding stereotypes.
TIP defines a common parent for all TIP Notifications. It is called NotificationBase. This type is injected by the TIP Generators into code generated from Tigerstripe Event (i.e. notification) artifacts where the 'Extends' field has been left as an empty string. It includes 3 attributes: sourceTime, ObjectType and ObjectId. Please refer to the Notifications section of the Internal Framework Model for details.
The characteristics of a Notification are:
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : indicates this notification extends or inherits from another one.
- RSM: corresponds to a Generalization association
Tigerstripe: maps to Extends
Panel *isAbstract : indicates that this notification is abstract, i.e. cannot be instantiated.
- RSM: maps to Abstract checkbox
Tigerstripe: maps to isAbstract checkbox
Panel *support : Indicates whether the identified notification must be represented in TIP interface or not. If the notification is required to be represented in all cases then the value should be set to "M" (Mandatory) otherwise it should be set to "O" (Optional) indicating that a choice will be made on some other basis at some other point in the process. This is mapped to the attribute support of the tipNotification stereotype.
Exception
Exception represents the exceptions explicitly defined in the model.
There are two types of common exceptions defined in the Interface Framework, i.e., predefined common exceptions and optional common exceptions. Interface developers should try as much as possible to reuse these common exceptions rather than creating new ones. Please refer to to Exceptions section of the General _ Patterns for more details on this pattern.
All exceptions have a common parent ExceptionBase. This type is injected by the TIP Generators into code generated from Tigerstripe Exceptions. See the section Pre-defined Exceptions of of the Internal Framework Model for for details.
The characteristics of an Exception are:
...
- RSM: maps to Documentation
Tigerstripe : maps to Description
Panel *inherits_from : indicates this exception extends or inherits from another one.
- RSM: corresponds to a Generalization association
- Tigerstripe: maps to Extends