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 ...

Get SOA in Practice now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.