At its core, orchestration is an executable business process that acts upon messages passing through the service bus. In the BizTalk world, orchestration has both a design-time and runtime aspect. At design-time, a developer uses a predefined palette of activities, which are linked together to form a business process. The runtime orchestration engine is a server service which coordinates all aspects of orchestration execution ranging from starting up and terminating orchestrations to load balancing and monitoring the orchestration processing health.
In many cases, a purely messaging-oriented solution is exactly what our situation calls for. However, we often need the flexibility to introduce a long-running, stateful interception of messages which may contain business logic, control flow, data processing, exception handling and transactions. This is the value of orchestration. What is the value of orchestration in a service-oriented architecture? Let's look at some of the...