Chapter 6. CoordinationReliable Messaging and Transactions
This chapter presents the components of the Web services architecture that provide reliable message delivery, transactional behavior, and the ability to provide explicit coordination between collections of Web services. The specifications that define this functionality are WS-ReliableMessaging [WS-RM], WS-Coordination [WS-Coord], WS-AtomicTransaction [WS-AT], and WS-BusinessActivity [WS-BA].Any structured collaboration between parties requires agreements. The most primitive agreements typically used for message-based systems are about the data formats, the style of messaging, and how to find other services. More sophisticated interactions among Web services require a higher degree of coordination. For example, when multiple Web services must complete a joint unit of work or operate under a common behavior, there must be common agreement on what protocols to use. In fact, every interaction between Web services can be viewed as a kind of coordination. While some service coordination requires an explicit coordinator, others do not. We will present examples of both approaches to service coordination in this chapter.Coordination protocols are also required to be able to determine and to agree that a common goal among services has been reached. Agreement coordination protocols bring to the architecture an improved chance that the participant services will succeed in what they set up to do jointly.The Web services architecture is designed so that services can function properly in the face of transports that lose messages and services that malfunction. Transport-independent reliable message delivery is the core functionality used to overcome message loss. We describe this protocol in the next section.