OSS/J Model Data Mapping Concepts

An interaction is modeled by a BusinessInteractionValue, which specializes in RequestValue itself specializing into the following:

  • ProductOrderValue
  • ServiceOrderValue
  • ResourceOrderValue
  • CustomerOrderValue

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:

  • ServiceOrderValue as RequestValue
  • The items relationship to ServiceOrderItemValues

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.

Fulfillment Provisioning OSS/J ServiceOrderSpecificationValue
From omimpl:ServiceOrderSpecificationImplValue
Fulfillment Provisioning Catalog configuration version

Name : version

Type : String

Is the Fulfillment Provisioning Catalog configuration default ?

Name : defaultVersion

Type : Boolean

Description : Wether the Fulfillment Provisioning Catalog Configuration is default

Fulfillment Provisioning Catalog domains

Name : domains

Type : ArrayOfString

Description : contains the list of KOP supported domains

From om:RequestSpecificationValue
N/A

Name : name

Type : String const

Value : ServiceOrder

N/A

Name : namespace

Type : string const

Value : tibco.fos.fp.ossj.om

Fulfillment Provisioning Catalog Verbs

Name : itemTypeActionPairs

Type : ArrayOfItemTypeSupportedActionPair

Description : contains one item with the following:

  • As actions, the list of KOP supported Verbs
  • As itemType : om:ServiceOrderItemValue:NS
From cbecore:EntitySpecificationValue
N/A

Name : describedEntityType

Type : string const

Value : cbeimpl:ServiceImplValue:NS

N/A

Name : description

Type : string

N/A

Name : describedEntityCharacterizedBy

Type : ArrayOfCharacteristicSpecification

Description : contains the list of Characteristic that can be submitted as ServiceOrderValue.describedBy

The value are : (string) “domain”

From cbecore:CBEManagedEntityValue
N/A

Name : subGraphId

Type : long

N/A

Name : characterizedBy

Type : ArrayOfCharacteristicSPecification

Value : empty

N/A

Name : describedBy

Type : ArrayOfCharacteristicValue

Value : empty

From common:ManagedEntityValue
Composite key computed from version

Name : key

Type : ServiceOrderSpecificationKey

Name : type

Type : string const

Description : the type this key is indexing

Value : om:ServiceOrderSpecificationValue:NS

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.

CharacteristicSpecification Mapping

The mapping depends on the entity holding the list of CharacteristicSpecification.