Working with BizTalk orchestration
BizTalk Server includes a workflow platform, which allows us to graphically create executable, long-running, stateful processes. These workflows, called orchestrations, are designed in Visual Studio and executed on by BizTalk Server. The Orchestration Designer in Visual Studio includes a rich palette of shapes that we can use to build robust workflows consisting of control flow, message manipulation, service consumption, and much more. The orchestration runtime is responsible for executing the orchestrations and managing their state data.
Orchestration is a purely optional part of a BizTalk solution. You can design a complete application that consists solely of message routing ports. In fact, many of the service-oriented patterns that we visit throughout this book will not require an orchestration. Having said that, there are a number of scenarios where injecting orchestrations into the solution makes sense. For instance, instead of subscribing directly to the "new employee" message, perhaps a payroll system will need additional data (such as bank information for a direct deposit) not currently available in the original employee message. We can decide to create a workflow, which first inserts the available information into the payroll system, and then sends a message to the new employee asking for additional data points. The workflow will then wait for and process the employee's response, and conclude by updating the record in the payroll system with the new information. BizTalk orchestrations are a good fit for automating manual processes or choreographing a series of disconnected services or processes to form a single workflow.
Orchestration "shapes" such as Decide, Transform, Send, Receive, and Loop are used to build our orchestration diagrams like the one shown here. The following diagram shows a message leaving the orchestration, and then another message returning later on in the flow. How does that message know which running orchestration instance to come back to? What if we have a thousand of these inpidual processes in flight at a single point in time? BizTalk Server has the concept of correlation, which means that you can identify a unique set of attributes for a given message; this will help it find its way to the appropriate running orchestration instance. A correlation attribute might be as simple as a unique invoice identifier, or a composite key made up of a person's name, order date, and zip code.

Tip
Orchestration is a powerful tool in your development arsenal and we will make frequent use of it throughout this book.
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- WebAssembly實戰
- 少年輕松趣編程:用Scratch創作自己的小游戲
- Processing互動編程藝術
- Flash CS6中文版應用教程(第三版)
- 深度學習:算法入門與Keras編程實踐
- MySQL數據庫基礎實例教程(微課版)
- Python數據分析從0到1
- Java EE 7 Performance Tuning and Optimization
- 用案例學Java Web整合開發
- Frank Kane's Taming Big Data with Apache Spark and Python
- UI設計全書(全彩)
- 愛上C語言:C KISS
- 遠方:兩位持續創業者的點滴思考
- Java Web動態網站開發(第2版·微課版)