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 Information Modelling.

Operation aspects are written in terms of operation signatures and notification signatures.
Notification signatures specify any argument types.

Operational aspects are described in section Operational Modelling.

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:


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 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.

Information Modeling

The SID will be the foundation for the TIP Information Model i.e. all the information and data aspects of all TIP interfaces will be defined in the SID and imported from the SID to Tigerstripe. The information model developed for any interface will be delivered as part of the SID model.

The information model should follow the various patterns used throughout the SID.

The Information Modeling part covers classes (entities), datatypes, enumerations, associations and association classes.

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.

The ABE corresponds to a UML package, but not all packages are ABEs, as an ABE can contain sub-packages.

If there is a need to change SID ABEs, lie add new ABEs or split existing ABE, this needs to be identified very early in the process (study or BA) and the SID team needs to be involved in the process to get their agreement.

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_. Such packages won't be exported to Tigerstripe.

The following picture provides an overview of the structure of the ABEs in the SID

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.

Note: the SID patterns are currently covered in a separate primer document, but not complete (the SID team are working to improve this)

A few key SID patterns to remember:

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).

Entity types are characterized by a common set of properties that are exposed as attribute types.
An entity instance (or just entity) is an instance of a particular entity type (e.g. CircuitPack #1); the values of the attribute types define the state of the entity and help distinguish the entity from other entities.

The TIP does not define how managed entities are implemented within the OSS/BSS application; the guidebook only defines the realization of the interfaces to the managed entities. The guidebook neither defines how changes in the entities (by virtue of client management) are reflected in the related network- or service-components, nor how changes in the components are reflected in the related entity.

An entity is defined in the SID (RSM) as a UML class and it is mapped to Tigerstripe as an Entity artifact.

The characteristics of an Entity are:

Attribute

An attribute represents some characteristic of an object type.

Attributes can be applied on Entities, Association Classes, Complex Datatypes, Notifications and Exceptions.

The characteristics of an Attribute are:

Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById of the tipAttribute stereotype.

Datatype

Datatypes are usually complex components designed to become attributes of entities.

The data types can be categorized into:

Primitive Types

TIP defines the following primitives datatypes:

TIP defines the following primitives datatypes:

Enumeration

All enumerations in TIP do not use any literal in RSM and use string based enum in Tigerstripe.

Complex Types

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.

Containment is a special type of relationship. It is of particular importance for business entities such as the resource inventory business entities, for example, representing physical equipment hierarchies. There shouldn’t be any difference in the way containment relationships are managed by the TIP interfaces.

Abstract associations should be marked doNotImplement in RSM.

By convention, the name of the association should be self-descriptive and composed by the names of both ends separated by a verb describing the association, i.e. ProblemHasAffectedServices can be the name of an association between Problem and Service.

The characteristics of an Association are:

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.

The characteristics of an Association Class are:

Association End

An association end has some unique set of properties, making it a separate meta-model object.

Each association has 2 association ends: a_end and z_end.
When an association end is navigable, then it acts as an attribute and the tipAttribute stereotype can be applied to it. It is useless to apply this stereotype and a non navigable association end.

The characteristics of an Association End are:

Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById of the tipAttribute stereotype.

Operational Modeling

The TIP Operational Model i.e. all the aspects related to operations of all TIP interfaces will be defined in Tigerstripe.

The Operational Model covers service interfaces, operations, events and exceptions.

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 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.

 

The characteristics of a Service Interface are:

 

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 Exceptions section  in the General Patterns) are automatically added by the generators to the operation.

The characteristics of an Operation are:

Parameter

Parameter represents the parameters or arguments of the operation. There are 3 types of operation parameters:

The characteristics of an Parameter are:

When a default value is defined, the "creator" do not have to provide a value.

Indicated if this entity is passed by value (False) or by Id (true). This is mapped to the attribute passedById 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:

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 Exceptions 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 the Internal Framework Model for details.

the characteristics of an Exception are: