OSS/J Model Data Mapping Concepts
An interaction is modeled by a BusinessInteractionValue, which specializes in RequestValue itself specializing into the following:
A BusinessInteractionValue carries a list of BusinessInteractionItemValue related to other BusinessInteractionItemValue that can be related to different BusinessInteractionValues. This is where a relationship between a ServiceOrderItemValue and a ResourceOrderItemValue relationship could theoretically be established (mapping the Fulfillment Provisioning ProductOrderData to WorkOrderData relationship). A BusinessInteractionValue relates to other BusinessInteractionValues to build a bulk order relationship.
Generally:
- Fulfillment Provisioning ServiceOrderData maps to a OSS/J ServiceOrder{Value,Key}
- Fulfillment Provisioning ProductOrderData maps to a OSS/J ServiceOrderItem{Value,Key}
- Fulfillment Provisioning WorkOrderData maps to a OSS/J ResourceOrderItem{Value,Key}
Fulfillment Provisioning supports:
Context Dependent Mapping
Mapping largely depends on the context. The TIBCO implementation fully follows the OSS/J Order Management Reference Implementation
Namespace Aliases
The following namespace prefixes are used to identify a type using the XML notation.
For example, om:ServiceOrderValue refers to the type ServiceOrderValue in the namespace identified by the om prefix ( OSS/J OrderManagement).
Namespace prefix | Namespace |
---|---|
Public | |
cbeimpl | TIBCO CBEService Implementation |
omimpl | TIBCO OrderManagement Implementation |
om | OSS/J OrderManagement |
cbebi | OSS/J Common CBE Business Interaction |
cbecore | OSS/J Common CBE Core |
cbeservice | OSS/J Common CBE Service |
cbedatatypes | OSS/J Common CBE Datatypes |
common | OSS/J Common |
Type Identification
The types are identified by their XML type namespace. For example, a ServiceOrderItemValue is identified by the following string:
http://ossj.org/xml/OrderManagement/v1-0#ServiceOrderItemValue
The om:ServiceOrderValue:NS notation is used to refer to the namespace of the type ServiceOrderItemValue in the namespace identified by the om prefix.
ServiceOrderValue Mapping
OSS/J ServiceOrderValue is mapped to a Fulfillment Provisioning ServiceOrderData.
Fulfillment Provisioning ServiceOrderData | OSS/J ServiceOrderValue |
---|---|
From om:ServiceOrderValue | |
orderId |
Name : key.primaryKey Type : ServiceOrderKey Comment : cast RequestValue.requestKey |
List of associated ProductOrderData in status basesodata::Failed |
Name : failedServiceOrderItems Type : ServiceOrderItemValue[] Comment : alias failed serviceOrderItems |
List of associated ProductOrderData |
Name : serviceOrderItems Type : ServiceOrderItemValue[] Comment : cast RequestValue.items |
NVSet[“ossj.bulk”] |
Name : bulk Type : String Constraint : equals BusinessInteractionBulk.SINGLE (no bulk relationship) |
NVSet[“ossj.clientId”] |
Name : clientId Type : String |
NVSet[“ossj.expectedCompletionDate”] |
Name : expectedCompletionDate Type : Date Comment : this value is computed when the client sets requestedCompletionDate, at which point it should contains the estimated time out date |
priority |
Name : priority Type : int |
orderId |
Name : requestKey.primaryKey Type : RequestKey Comment : cast BusinessInteractionValue.businessInteractionKey |
NVSet[“ossj.requestedCompletionDate”] NB: this triggers a ServiceOrder timer configured according to this value |
Name : requestedCompletionDate Type : Date Comment : in OSS/J should trigger a timer which should cancel the order once this date is over |
NVSet[“ossj.validFor.startDateTime”] NVSet[“ossj.validFor.endDateTime”] |
Name : validFor Type : TimePeriod |
self |
Name : items Type : businessInteractionItemValue[]) Constraint: cast ServiceOrderItemValue[] |
From cbebi:BusinessInteractionValue | |
N/A |
Name : businessInteractionItemKeys Type : BusinessInteractionItemKey[] |
N/A |
Name : businessInteractionKey Type : BusinessInteractionKey Comment : cast EntityValue.entityKey |
N/A |
Name : description Type : String |
N/A |
Name : interactionDate Type : Date |
N/A | Name : interactionDateComplete
Type : Date |
NVSet[“ossj.requestState”] |
Name : interactionStatus Type : String|RequestState|BusinessInteractionState Comment: definitive type is String; RequestState and BusinessInteractionState are conveniency types |
N/A |
Name : involvedLocations Type : BusinessInteractionLocation[] |
N/A |
Name : involvedRoles Type : BusinessInteractionRoleValue[] |
N/A |
Name : references Type : BusinessInteractionRelationshipKey[] Comment : used for bulk orders |
From cbecore:EntityValue | |
NVSet[“ossj.describingSpecificationKey.version ”] Comment: Only the version is required to be mapped; the describing specification type is statically known |
Name : describingSpecificationKey Type : EntitySpecificationKey |
From cbecore:CBEManagedEntityValue | |
N/A |
Name : characterizedBy Type : CharacteristicSpecification[] |
NVSet[“ossj.describedBy”] contains the list of characteristic names; Characteristic values are accessible as a separate NVSet entry. Example: NVSet[“ossj.describedBy”] = { “username”, “password” } NVSet[“username”] = “john” NVSet[“password”] = “john's password” |
Name : describedBy Type : CharacteristicValue[] |
domain |
Name : describedBy[“domain”]
Type : String |
N/A |
Name : describedBy[“verb”] Type : String |
doCheckpoint |
Name : described[“doCheckpoint”] Type : String |
N/A |
Name : subGraphId Type : long |
From common:ManagedEntityValue | |
N/A | Name : lastUpdateVersionNumber
Type : long |
orderId |
Name : key Type : ManagedEntityKey |
N/A |
Name : type Type : string const Description : the type this key is indexing Value : om:ServiceOrderKey:NS |
N/A |
Name : applicationDN Type : string const Value : OSS_APPLICATION_DN |
ServiceOrderKey Mapping
The PrimaryKey of a ServiceOrderKey, is a java.lang.String mapping to the Fulfillment Provisioning Service Order orderId.
ServiceOrderItemValue Mapping
OSS/J ServiceOrderItemValue is mapped to a Fulfillment Provisioning ProductOrderData.
FP ProductOrderData | OSS/J ServiceOrderItemValue |
---|---|
From om:ServiceOrderItemValue | |
ServiceValue mapping |
Name : service Type : ServiceValue |
N/A |
Name : serviceOrderItemKey Type : ServiceOrderItemKey Comment : cast BusinessInteractionValue.businessInteractionItemKey |
Maps to a TIBCO Fulfillment Catalog Product definition |
Name : serviceSpecification Type : ServiceSpecificationValue |
productName |
The name attribute of the ServiceSpecificationValue identified by service.describingSpecificationKey |
productVerb |
Name : action Type : String Comment : base is CREATE|MODIFY|REMOVE ; extensible |
(orderId, podId) | Name : businessInteractionItemKey
Type : BusinessInteractionItemKey Comment : cast EntityValue.entityKey |
N/A |
Name : involvedRoles Type : BusinessInteractionRoleValue[] |
N/A |
Name : places Type : PlaceValue |
N/A |
Name : quantity Type : Quantity |
N/A |
Name : references Type : BusinessInteractionItemValue[] Comment : would contain ResourceOrderItemValue[] Constraint : cast ServiceOrderItemValue[] Constraint : length == 0 |
From cbecore:EntityValue | |
N/A |
Name : describingSpecificationKey Type : EntitySpecificationKey |
From cbecore:CBEManagedEntityValue | |
N/A |
Name : characterizedBy Type : CharacteristicSpecification[] |
ServiceOrderValue.describedBy mapping |
Name : describedBy Type : CharacteristicValue[] |
N/A |
Name : subGraphId Type : long |
From common:ManagedEntityValue | |
N/A |
Name : lastUpdateVersionNumber Type : long |
orderId, podId |
Name : key Type : ManagedEntityKey |
Name : type Type : string const Description : the type this key is indexing Value : om:ServiceOrderItemKey:NS |
ServiceOrderItemKey
The PrimaryKey of a ServiceOrderItemKey is a java.util.List<String>[2] mapping to the Fulfillment Provisioning Product Order Data (orderId, podId).
ServiceOrderSpecificationValue Mapping
The first operation called is getRequestSpecifications which returns a list of ServiceOrderSpecificationValue. The OSS/J Order Management Client Adapter returns one ServiceOrderSpecificationValue for every Fulfillment Provisioning Catalog configuration version. All those ServiceOrderSpecificationValue share the same type, only the version differs.
A ServiceOrderSpecificationValue.describedEntityCharacterizedBy also contains the list of CharacteristicSpecification that must or could be submitted in later ServiceOrderValue.describedBy.
ServiceSpecificationValue Mapping
The second operation to call is getSupportedEntitySpecificationValue, which returns the list of ServiceSpecificationValue of the version associated to ServiceOrderSpecificationValue related to the ServiceOrderSpecificationKey given in a parameter.
A ServiceSpecificationValue is mapped to a Fulfillment Provisioning Catalog Product.
Fulfillment Provisioning Catalog Product | OSS/J ServiceSpecificationValue |
---|---|
From cbeimpl:ServiceSpecificationImplValue | |
version == Default |
Name : defaultVersion Value : wether the version is the default one |
List of Verbs supported by the Product |
Name : actions Type : ArrayOfString Description : the list of supported actions |
List of Domains to which the Product belongs |
Name : domains Type : ArrayOfString Description : list of domains to which the SpecificationValue belongs. |
The date when the Product has been last updated |
Name : lastUpdateDateTime Type : Date Description : the date when the SpecificationValue last updated |
From cbeservice:ServiceSpecificationValue | |
name |
Name : name Type : String |
N/A |
Name : validFor Type : cbedatatype:TimePeriod Description : SpecificationValue validity period |
N/A |
Name : description Type : String Comment : not filled, redundant with EntitySpecificationValue:description |
N/A |
Name : serviceBusinessName Type : string |
From cbecore::EntitySpecificationValue | |
N/A |
Name : describedEntityType Type : string const Description : the type this SpecificationValue is specifying Value : cbeimpl:ServiceImplValue:NS |
description |
Name : description Type : string |
characteristics |
Name : describedEntityCharacterizedBy Type : ArrayOfCharacteristicSpecification Description : CharacteristicSpecifications supported by the describedEntity (cbeimpl:ServiceImplValue) |
From common::ManagedEntityValue | |
Composite key computed from {version, Product.name} |
Name : key Type : ServiceSpecificationKey |
N/A |
Name : type Type : string const Description : the type indexed by this key Value : cbeimpl:ServiceSpecificationImplValue:NS |
N/A |
Name : applicationDN Type : string Value : OSS_APPLICATION_DN |
ServiceValue Mapping
The ServiceValue mapping is simple as in any case a ServiceValue refers to a ServiceSpecificationValue by its describingSpecificationKey, where the real mapping is done.
CharacteristicValue Mapping
A CharacteristicValue has a name (characteristic field) and a value field of type Object so theoretically a CharacteristicValue.value can be of any type.
A CharacteristicSpecification specifies a CharacteristicValue, included its type which is a string. Fulfillment Provisioning only supports the java.lang.String type.
A Fulfillment Provisioning value list is represented as several CharacteristicValue with the same name.