Apr 11, 2019 Ask Video – Sound Design 102: Capturing the Sound of Berlin Tutorial, ENG pureMix – Mixing Hip Hop Song ‘Break Bread’ with Ryan West Tutorial, ENG Groove3 – Virtual Guitarist IRON Explained Tutorial, ENG.
Basic technologies such as (XML, SOAP, WSDL) provide means to describe, locate, and invoke services as an entity in its own right. However, these technologies do not give a rich behavioral detail about the role of the service in more complex collaboration. This collaboration includes a sequence of activities and relationships between activities, which build the business process. There are two ways to build this process: service orchestration and service choreography.
Service orchestrationService orchestration represents a single centralized executable business process (the orchestrator) that coordinates the interaction among different services. The orchestrator is responsible for invoking and combining the services.The relationship between all the participating services are described by a single endpoint (i.e., the composite service). The orchestration includes the management of transactions between individual services. Orchestration employs a centralized approach for service composition.Service ChoreographyService choreography is a global description of the participating services, which is defined by exchange of messages, rules of interaction and agreements between two or more endpoints.
Choreography employs a decentralized approach for service composition.The choreography describes the interactions between multiple services, where as orchestration represents control from one party's perspective. This means that a choreography differs from an orchestration with respect to where the logic that controls the interactions between the services involved should reside.
![Video Video](/uploads/1/2/3/9/123903351/827470463.jpg)
Service orchestration: you put together several services by a fixed logic. This logic is described at a single place. You can imagine a team of people with a manager doing micro-management.
The manager precisly tells what, when and who should do. The team members do not care of the entire goal of the job, the manager combines the outputs into a single deliverable.A practical example is a BPEL process.
BPEL process contains the logic, can invoke several services and combine their responses into a single service response.Service choreography: the decision logic is distributed, with no centralized point. You can imagine a home, where everybody aims for the common good and works pro-actively without micro-management. Or you can imagine a human body, where different members are interdependent and work for the common goal.A practical example is event driven processing, where an agent is activated by an event and does its job.
![Ask video orchestration 103 Ask video orchestration 103](/uploads/1/2/3/9/123903351/389416577.jpg)
All the agents make a system together. There is no centralized logic.Choreography possibilities may go farther beyond orchestration as it is more aligned with the real world.My opinion is that we do not need to distinguish much between these two, as we need to focus on the business logic. Where a single point of logic does the job, we do orchestration.
Where a problem cannot be covered by a centralized logic, we are forced to choreography anyway. That is why we often come accross orchestration in IT, whereas choreograhy remains more an academical concept and a subject for research.
And very often we do choreography without actualy knowing it, as in the real world. Services can be distinguished between atomic services and services composed of other services. Such compositions are called 'orchestration'. Sometimes workflow, sometimes business process. For instance, BPEL is an orchestration language, but calls itself 'business process execution language'.There is no requirement that services need to be hierarchically composed. That means, two services may talk to each other.
The protocol running between them is called 'choreography'. It may be two services, but usually, there are more than two services involved. Each service in a choreography may be seen as orchestrator of the partner services.
Each service taking part in a choreography may be realized as orchestration/workflow/process.An orchestration shows the complete behavior of each service whereas the choreography combines the interface behavior descriptions of each service.A good scientific article distinguishing choreography, interface behavior, provider behavior, and orchestration is the following one. Since the thread is old but still writing to it for those who will stumbled here in search of this question as I did. Andrei and others did a good job explaining what is orchestration and what is choreography. For the software architect choosing between these two alternatives, it is also important to compare them with respect to different qualities.Orchestration pluses over choreography. Reliability: Orchestration platforms have built-in support for error handling and transaction management (compensating transactions). In choreography, custom-developed workflow and error handling tends to be more error-prone. Modifiability: Creating and changing process workflows and complex service compositions is easier in the visual BPM tools found in orchestration platforms.Choreography pluses over orchestration.Performance: Orchestration incurs a performance overhead due to workflow script interpretation and the additional layer of the orchestration platform itself.Cost: Choreography does not require additional middleware or language, which have associated learning curves and governance burden.
Orchestration is useful when you have control over all the actors in a process - when they're all in one domain of control and you can dictate the flow of activities. This is of course most often when you're specifying a business process that will be enacted inside one organisation that you have control over.Choreography is a way of specifying how two or more parties - none of which has any control over the other parties' processes, or perhaps any visibility of those processes - can coordinate their activities and processes to share information and value. Use choreography when coordination across domains of control/visibility is required. You can think of choreography, in a simple scenario, as like a network protocol. It dictates acceptable patterns of requests and responses between parties. In orchestration, there is a conductor and there are instrument players. Players play according to how conductor conducts.
If conductor is replaced, the harmonic expression will be different i.e. It is still the same play (service) but with a different outcome.
For example, to provide a financial arrangement proposal, the orchestration service will conduct by asking (invoking) each player (entity or utility service, e.g. Credit check) to play (return results or adjust/update its playing) according to conductor's template (business rules).In choreography, there is a choreographer and there are groups of dancers. Choreography is a direction, but each group of dancers is autonomous in how to realize that direction.