Thursday, October 21, 2010

Essential Features for an Orchestration Project for inbound and outbound data

For an orchestration project it is required that the defined system have capability to communicate with other external systems. There are multiple ways defied by which two (homogeneous or heterogeneous) systems can communicate with each other like event driven communication on Push –pull model or peer to peer architecture on tightly coupled model .

Major challenge for any Orchestration systems is
• Multiple model and architecture support.
• Dynamic addition of models and events in system.

In summary, an orchestration system should capable to listen external system(s) and perform predefine or registered action(s). These external system triggers or events which may be pre seeded or user may register them after implementing orchestration system.
All these communication can be broadly divided in to two categories.
A. Outbound communication
B. Inbound communication
A) Outbound and related inbound communication
In outbound communication, it is possible that the external system will pass some data back to original system. This related inbound may be in form of confirmation note, some payload (in case of synchronous service call) or exception or error message. We will discuss features related to outbound communication and related inbound communication in following section.
For an outbound communication system, system should provide, but not limited to, following features.
Routing
Routing is an essential part of outbound communication. It will provide flexibility of calling different external system or different services in same external system on the basis of provided conditions.

Transformation of Data
While communicating to different system we need to transform the data load before passing to other system as per their understandable format. To achieve this orchestration system should have provision to transform data as per user setup.
Business rule connectivity
As the business needs are changing day to day basis, a system should be scalable enough to accommodate new and change business requirements without stopping the current business operations. To achieve it system should support business rule connectivity so that they can add new routing rules or change pre existing rules without downtime.
Filtration criteria
Audit Trails
An Orchestration system should have a mechanism to check the records of communication done by the system and the status of these communications.
To achieve it, there should be a Audit trail mechanism to record all these communications for future references.
Exception Handling
In case of any abrupt behavior in system, a system should be fail safe and capable to record the incident for auditing purpose.
Component as service
Orchestration system has its own data which may be required by external system for their references. This data may be in form of rules, audit trails or setups got created by user setup or actions.
There should be some open endpoints available for other systems to request for this information and orchestration system should provide the response with proper authentication and authorization.
Data Security
An orchestration system access and pass data to external system(s). This data may be confidential and may have viewing restrictions. In this case, an Orchestration system should have proper authentication and authorization mechanism for data security.
Ability to call both synchronous and a synchronous process
An orchestration system may call services from heterogeneous system and these services may be defined as synchronous (will provide reply at the same time) or a synchronous (will process the data and will reply later).
An Orchestration system should facilitate both types of services without any loss of data.
Ability to place payload in persistent model
An external system may not be available for an instance of time. An Orchestration system should have a provision to store request in persistent model like message queues or database in such case so that it can be passed to external system once it came back from down time.
Related inbound data load
An inbound related to outbound of orchestration system should have following features
No Duplicity
In case of duplication of input data, system should intelligent enough to filter these inputs and accept only one of them.
Response handling
For a synchronous communication from out bound, related response will be handled by inbound. This inbound will be specific to the instance of outbound call and inbound should have mechanism to relate it and associate it with correct outbound instance.
Exception handling for response
In case of any exception thrown by external system for outbound call, inbound system should capture it and record it for audit trail purpose.

B) Inbound communication and its data load
In inbound communication, an Orchestration system has to listen from heterogeneous systems and perform on the basis of these events. As all the inbound data may not be useful for orchestration system so there is a challenge of filtering out only those events which are useful for business and registered with orchestration system.
For an inbound communication system, system should provide, but not limited to, following features.

Ability to push event definition and related payload to persistent mode (such as DB)
As the data coming to system is valuable and any business cannot afford to lose this data, it is essential to keep inbound data in any persistent model so that it can be retrieved back for reference and audit trail.
An Orchestration system should have a provision to persist inbound data in any persistent model like Database.
Ability to identify the incoming events and registration of new events
As the business needs and requirements are changing very frequently with business growth and time line, an orchestration system should have provision to listen new business events that may come from any new system or any preregistered system.
There should be a provision to make change in already registered events so that they can change with change in external system.

Filtration of events and see them as inbound
As all incoming data to inbound system may not be useful for orchestration system, an orchestration system should have provision to filter the required events and ignore other events.
Audit trails
In case of any error or failure in system at inbound side, it is essential to record the incident and keep the system up for other request. An orchestration system should be robust enough to keep the system up in case of any failure and recode the incident in audit trail to reference.
Ability to define and use relationship between events
As business events may interrelated and/or dependent on each other, it is essential for an orchestration system to keep a track of relationship between business events so that the system can behave properly and maintain its data integrity.
Transformation capability of inbound payload
Like outbound, inbound communication may involve heterogeneous system and it is essential to transform the data for further processing. In orchestration system, there should be a provision by which user can define the transformation process of inbound data so that system can transform and understand it.

Exception handling with notification feature
If there is any discrepancy in inbound data because of which orchestration system cannot process the event further, it should be tracked as an error in system and orchestration system should have provision to send notification to defined user(s) so that the error can be rectified

No comments:

Post a Comment