Webservices Orchestration Vs Choreography
5:02 pm in Web Services SOA by admin
Orchestration Vs Choreography
While doing service composition in typical SOA-based applications using Webservices standards – Orchestration & Choreography comes into picture very commonly on most of the tutorials, articles etc. Whats the difference between these two words? in the context of Webservices usage in SOA?
Webservice’s Orchestration - Leveraging Webservices open-standards & collaborating different webservices functionality to compose an "Executable Business Process is called as Webservices Orchestration". It is easy to define Service Orchestration also in the same lines without using the Web-open-standards. To tailor made the flow of webservices and to compose a service we need to tie-in all the different webserivces at a Message Level, meaning that at a raw exposed method level by defining the order of execution of the business logic exposed methods. Here Orchestration deals primarily with
* Message Level business logic exection
* Order of business logic execution – that generally resides at exposed business methods of the webserivce participating in the whole orchestration of the service.
These webservices may or may not run in the same localized environment relating to one enterprise, in some cases these services may be running outside the enterprise network in some other enterprise business / Organization level.
Coming to some of the open standards –
WSDL – of a webservice describes specific operations allowed on a webserivce component,
BPEL4WS(Business Process Execution Language for WebServices) is an XML based language which describes grammer, process flow of webserivces. BPEL works on top of WSDL on sequencing the operations defined in WSDL and facilitates to define a process flow. Once the Business Process is defined it can be exposed as a webservice again using WSDL. Also BPEL defines exception handling mechanism of operations, transactions on operations. Overall BPEL standard helps to define the webserivces message flow in the Business Process Orchestration.
Webservices Choreography – this typically deals with messaging between various stakeholders of a business process viz., Customers, Suppliers, Retailers, Partners etc. not like Orchstration responsibilities which mainly focuses on Webservices level message flow. Like BPEL(for Orchestration) works on top of WSDL, Choreography standards like WSCI(Webservices Choreography Interface) also works on WSDL but mainly focuses on the public interactions. WSCI also supports Transactions and Exception handling like BPEL. WSCI focuses more on public interaction with the webservices end-point (which is offering a service), and if the end-point uses more and other webservices interaction using private interfaces then BPEL can be used to define that.
Conclusion – The business level collaboration can be easily found in Choreography / WSCI. The glitch here is BPEL4WS can also be used for external public interaction across all stakeholders, but BPEL4WS was never gained that promotion in the context. It is upto product vendors how they would like to shape their products based on these existing Open-Standards.