In a conversation with a colleague on process orchestration and composite services, he asked whether there were any good definitions that would accurately describe the relationship between them. In my brief google-hunt, I didn't really find any clear, concise definitions, and I also threw choreography into the mix as another term frequently used in similar contexts. I did find one whitepaper from someone at Oracle that characterized the difference between Orchestration and Choreography based upon whether a central controller (orchestrator) was used or not.
While the definitions may have been simple at one point, I think the contention around BPEL combined with the struggle of vendors to categorize the infrastructure in this space (EAI, MOM, ESB, BPM, Composite Development Environments, XML Gateways) have muddied the waters. For example, if I use a tool from the BPM space, such as Microsoft BizTalk or Tibco BusinessWorks, to build a service which pulls data from three other services and returns some composition of the data, a very simple composite service, is that also a process orchestration? I thought I'd turn this into a group exercise and see how all of you define it. Here are my thoughts (not so much a definition) to get us started. Process orchestration involves a conscious effort to externalize the process from the underlying tasks that constitute the process. It should encompass both human and system tasks, and therefore, must support the notion of "wait" states in the orchestration (e.g. wait for human to do this, wait for JMS message). Orchestration can be delegated to subprocesses, meaning tooling must support the notion of process composition. This is a key component in supporting "wait" states, as processes always begin with a wait state. One way of implementing this would be to create separate orchestrations for each sub-process so that waits always occur at the beginning. If tooling doesn't support composition, however, the macro view of the true process will be lost. Service composition is an effort to take the capabilities of two or more services and expose the combined capabilities as a more coarse- grained service. Typically, the act of composition will require some manipulation of the output of the constituent services which is performed by the composite service. While orchestration tools can also perform this, as typically a process maintains contextual information that is shared among the individual tasks, service composition does not represent a conscious effort to externalize the process itself. Therefore, the perceived overlap between orchestration and composition is more to due to shared capabilities of the tooling than a relationship between the two concepts. Process choreography is similar to process orchestration in that it is concerned with the execution of a business process. The difference between them lies in the control over the execution. A choreographed approach can, at best, monitor the process execution, but not directly influence it, since there is no centralized controller. An orchestrated approach relies upon a centralized controller to execute the tasks associated with the project. An analogy is that of a symphony. An orchestrated approach requires a conductor to cue the individual musicians, keep time, etc. A choreographed approach would simply give each musician the sheet music, letting them rely solely on their own knowledge of when to play. External monitoring is available in both cases, i.e. the audience. Thoughts? Are there definitions in the OASIS SOA-RM? If not, I'd be happy to help contribute. I just didn't join that TC since their efforts were well underway when I finally convinced my employer to join OASIS. -tb ------------------------ Yahoo! Groups Sponsor --------------------~--> Yahoo! Groups gets a make over. See the new email design. http://us.click.yahoo.com/XISQkA/lOaOAA/yQLSAA/NhFolB/TM --------------------------------------------------------------------~-> Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/service-orientated-architecture/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
