Chapter 10. Message Exchange Patterns
SO FAR, WE HAVE CONSIDERED A SERVICE AS AN IT REPRESENTATION OF SOME BUSINESS FUNCTIONALITY THAT technically works by messages being sent between a service provider and a service consumer. The typical scenario we looked at was that of a consumer performing a service call and getting a response. Now it’s time to go into the details of the different ways of exchanging messages between providers and consumers. As you will see, there are multiple message exchange patterns (MEPs), which exist on different communication layers. One pattern leads to events and event-driven architectures.
Introduction to MEPs
There are different ways to exchange data between distributed systems. One fundamental approach to dealing with these differences is to categorize the way chunks of data are exchanged. These chunks of data are called messages. Thus, by categorizing different ways of exchanging messages, we get the so-called message exchange patterns. MEPs define the sequence of messages in a service call or service operation, specifying the order, direction, and cardinality of those messages.
Note that MEPs are general concepts to describe communications between different systems (or nodes). Discussing all the aspects of messaging and message styles could easily fill a book (see, e.g., [HohpeWoolf04]). Because of space constraints, I will concentrate here on MEPs in the context of SOA. When useful, I will use SOA terms such as “provider” and “consumer” instead of ...