In SOA context it is common, that services are composed from other smaller services distributed in different organizations and enterprises. Such collaborating services collections create sophisticated structures and compositions which sometimes are referred as Virtual Organizations (VO). Defining such architecture, later maintaining and recomposing it is extremely difficult task because of stakeholders coming from different enterprises and sharing different viewpoints about the whole picture. So this is one of the reasons, why SOA sometimes is called Spaghetti-Oriented Architecture. (And of course lack of open standards
). Such concepts as workflow, orchestration and choreography are brought from industry to avoid spaghetti.
Orchestration
EAI (Enterprise Application Integration) nowadays is almost impossible without a proper orchestration engine. Put in short orchestration is technique to compose and orchestrate web services to provide a new more meaningful service. Orchestration corresponds to an executable business process which is deployed in some enterprise environment and may interact with internal and external services. It can be seen as some type of programming language which purpose is to declare execution order of interactions and business logic. With orchestration, the business process is always controlled by some orchestration engine from the perspective of business participant. Basically, we are having master-slave relationship between orchestration engine (conductor) and (web) services.
BPEL (Business Process Execution Language) is XML based markup language which focuses on the orchestration of web services. BPEL came from WSFL (IBM) and XLANG (Microsoft) and combination of these languages was called BPEL4WS which later was submitted to OASIS for standardization. Later it became WS-BPEL 2.0 which now reached the last stop before becoming official standard. Sometimes BPEL is called composition, and even assembly language, but from global perspective it is programming language with specific scope.

Example of BPEL process using BPMN modeling notation. Picture taken from www.ebpml.org. Click here to enlarge.
By the way, I did mentioned BPEL being some sort of programming language, so check this out BPEL “Hello world” example by Oracle
.
Choreography
Choreography describes peer-to-peer interactions between different business participants from neutral perspective. It doesn’t care about the participant’s architecture or internal processes and describes only global interactions. The purpose of this multi-party interactions protocol is to have a common blueprint of architecture, which is scattered across different organizations, without revealing confidential information to collaborative parts. Such document (protocol) can be simulated and tested for deadlocks, livelocks before implementing endpoints. Later it can be used to observe participants to ensure that everybody is enacting according to defined protocol. Participants which interact not according to choreography may be removed or replaced, because they may discourage other participants by not letting them to achieve a desired goal.

WS-CDL sees BPEL as another implementation language. Picture taken from W3C.
WS-CDL (Web Services Choreography Description Language), sometimes referred as CDL is XML based description language which focuses on defining a global choreography protocol. WS-CDL reached W3C Candidate Recommendation status and should become an official standard in the nearest future. Regrettably, WS-CDL lacks industry support and sometimes is compared to BPEL, though they focuses on different scopes. There are only two software projects which supports WS-CDL, one coming from pi4tech called Pi Calculus for SOA (pi4soa) and WS-Engineer coming from London’s Imperial College. Pi Calculus for SOA being superior to other tool supports generating endpoint stubs like JAVA or BPEL. Also CDL can be exported to modeling endpoints such as UML or BPMN which are more acceptable to business analysts, because obviously plain CDL is intended for developers.
ebXML
To put in short ebXML is a family of standards brought by OASIS and UN/CEFACT whose purpose is to provide infrastructure that enables the global use of electronic business information.
- Messaging (ebMS)
- Business Process & Collaboration (ebBP)
- Collaboration Protocol Profile and Agreement (CPPA)
- Registry and Repository
- Core Components (CCTS)
In business process integration context, ebBP BPSS part is more interesting and is focused on defining a framework which supports execution of business collaborations consisting of business transactions. To sum up ebXML is more middleware and infrastructure standard rather than business process specification standard. And ebXML’s level is rather theoretical and conceptual than complete implementation.
March 30th, 2007 at 11:52 pm
[...] Fuff, managed to compile some page resource based on last Saturday’s presentation, there I do re-explane concepts and standards I presented about business process integration in SOA context. Comments and some bashing are welcome, so maybe I would improve that page on demand. Also everybody is welcome to update and fix it if I forgot to write about something important. « Upcoming Saturday again | [...]