Deploying Client Adapter
Processing requests to the application flow
OSS/J Order Management (JMS Profile) Client Adapter is built around the Protocol Message Flow (PMF) framework, using a limited number of modules.
To receive and process requests an ossjomemsca::ClientAdapter must be deployed in the Fulfillment Provisioning application flow and configured using the ossjomemsca::Config using the Client Adapter framework.
The Client Adapter should be configured with the request processing PMF which is delivered within the OSS/J Order Management Client Adapter. This PMF mainly contains an OrderManagementModule which processes the requests. This PMF can be shared among different OSS/J Client Adapters.
The ossjomemsca::Config includes the following parameters:
All the EMS connectivity parameters are configured with one string passed to NETEMS as is usually done with NETMANCA based client adapters.
This EMS network address is as follows:
MULTIEMS:Common:tcp://TMP_EMS_HOST:TMP_EMS_PORT/destinationKind=queue,userName=admin,passwo rd=not,ackMode=auto|! MessageQueue:/sessionKind=receiver,destination=tibco.fos.fp.ossj.OrderManagement.MessageQue ue|XVTEventTopic:/sessionKind=sender,destinationKind=topic,destination=tibco.fos.fp.ossj.Or derManagement.XVTEventTopic
Where:
Sending notifications from the application flow
If some events are sent by the Client Adapter processing the requests, some events must be sent from the Fulfillment Provisioning application flow. In order to do that, a user should deploy ossjomemsca::ClientAdapter in the Fulfillment Provisioning application flow and configure it to use the notification PMF.
This notification PMF mainly contains the ossjomemsca::NotificationProducer module which is able to send a list of events at immediately, depending on the incoming ServiceOrder content.
Such a notification Client Adapter has its own connection pool, and can be deployed at several places in the application flow. The three most interesting places are:
- After KOP to send a RequestAttributeValueChangeEvent
- After POP to send a RequestAttributeValueChangeEvent
- At the end the application flow to send a RequestStateChangeEvent
ll the EMS connectivity parameters are configured with one string passed to NETEMS as is usually done with NETMANCA based client adapters.
This EMS network address is as follows:
MULTIEMS:Common:tcp://TMP_EMS_HOST:TMP_EMS_PORT/destinationKind=queue,userName=admin,passwo rd=not,ackMode=auto|! XVTEventTopic:/sessionKind=sender,destinationKind=topic,destination=tibco.fos.fp.ossj.Order Management.XVTEventTopic
Where XVTEventTopic is the topic where notifications are sent.
The connection identifiers must not be changed. The destinations can however be changed to whatever meaningful value. The NotificationProducer accepts several user definable ServiceOrderData::NVSet parameters.
Parameter | Description |
---|---|
Generic Parameters | |
ossj.events.length |
Indicates the number of events that are going to be sent Type: long |
ossj.events.[i].type |
The type of the i-th event where [i] should be replaced with the event index Type : enum { RequestAttributeValueChangeEvent, RequestStateChangeEvent } |
RequestStateChangeEvent Parameters | |
jssj.events.[i].reason | The reason of the state change |
For example, in order to send a RequestAttributeValueChangeEvent followed by a RequestStateChangeEvent, the WorkSimulator of the delivered example does the following in CES:
FORMAT:<ossj.events.length>=2 FORMAT:<ossj.events.0.type>=RequestAttributeValueChangeEvent FORMAT:<ossj.events.1.type>=RequestStateChangeEvent FORMAT:<ossj.events.1.reason>=order fulfilled
An example of client adapter deployment is delivered at:
$SW_HOME/distrib/kabira/kpsa/samples/ca/ossjomems/ex00
File | Description |
---|---|
README | Self description file |
driver_config.ini |
A sample configuration file for the driver client adapter |
responder_config.ini |
A sample configuration file for the responder (notification producer) |
config.ini | Fulfillment Provisioning config.ini file |
WorkSimulator.ces | A CES file acting as work simulator |
example.env | Example implementation based on caexample |
caexample.kes | The deployment specification of the example |
fp.kds |
Deployment specification embedding caexample.kes |
fp.xml | Fulfillment Provisioning application flow – XMI format |
The example only configures and starts the client adapter. It requires an EMS daemon running and configured properly. The README gives details on how to do that.
This example must be run with the help of the caexample plugin:
Admin configure caexample example=ossjomems/ex00 Admin start caexample example=ossjomems/ex00
Admin stop caexample example=ossjomems/ex00