Encoding service behaviour with Conversation based actions
objectiser May 14, 2008 8:59 AMA new work programme has been started, as part of the Overlord governance project, to explore an approach for encoding the behaviour of a service endpoint (derived from a WS-CDL choreography description) as a set of ESB service descriptors with action pipelines. This work will initially tackle a subset of the behaviour that can be expressed in a WS-CDL choreography description, to create a mechanism that is capable of describing the core concepts of WS-CDL. The aim will be to provide:
a) a generation tool to create an initial implementation of a service (or services) from a choreography description
b) runtime support for the execution of services described in this manner
c) sufficient information to infer the service behaviour at compile time, and perform a conformance check against the choreography description to ensure compliance
There are two main aspects to this work:
(i) Defining a session management mechanism to represent the stateful behaviour of a service, and ensure messages are only sent or received if the service instance is in an appropriate state (in accordance with the choreography description)
(ii) Define the set of ESB actions that will provide the description of the service behaviour (for use in conformance checking), and provide the necessary runtime capabilities to enact the behaviour.
The significance of this work is that it will enable an SOA to be fully testable, from requirements gathering through to implementation.
Using the pi4soa tool suite (http://www.pi4soa.org), it is possible to gather requirements in the form of scenarios (like sequence diagrams with example messages), and then simulate them against a choreography description to ensure that the requirements are met by the choreography description. Once this work is completed, it will then be possible to generate the JBoss ESB actions required to enact a service endpoint's behaviour, and then continously check the ESB implementation for conformance to the choreography, as the service descriptors (and action pipelines) are modified.
This will significantly reduce the errors that may occur due to incorrect implementation of the behaviour, that currently can only be detected by testing the system at runtime.
To ensure continuous governance, it is also possible to monitor the execution of the ESB, to verify that the transactions continue to comply with the choreography description.