- Insurance. You buy insurance through a broker. You may pay either the broker or the insurer. (If you pay the insurer direct, then there is presumably some commission paid back to the broker.) You may claim through a service that is actually provided by a separate claims process, under the insurers’ brand.
- Travel. You buy through a travel agent. The services are delivered by the airline and hotel. (You are given a reference number to pick up your tickets and check into the hotel.)
- Logistics. You buy something on eBay, pay via PayPal, and the item is delivered by courier. (You are given a reference number so that you can liaise directly with the courier company.)
In some of these sectors there is a serious risk of disintermediation. For example, many people have stopped using travel agents, and book their airline tickets directly with the airline over the internet. This is possible because the airline domain is just as accessible to the travelling public as to travel agents - in some cases more so. (Sometimes the agents don't have access to all the microservices. And sometimes even the airline employees don't have access to all the microservices. See this example.)
What about the next step? Can you disintermediate the airline by chartering your own plane? This is possible but it's a lot more difficult for two reasons. Firstly because it takes you to a different level of granularity - you have to charter the whole plane, not just one seat. Secondly, the aeroplane-chartering domain introduces (makes visible) a lot of new complications. One way of putting this is that if you want to charter a plane, you have to learn a different Domain Specific Language (DSL).
In many (perhaps most) business sectors, the input DSL is different to the output DSL. So the information supply chain involves considerable processing (transformation).
Let's consider the pharmaceutical industry as a much more typical example of a complex supply chain. A drug company produces a drug, together with lots of information relating to the drug. There are several different categories of information user: the patient who takes the drug, the medical practitioner who prescribes and/or dispenses the drug, the health service or insurer that pays for the drug, and the regulator who monitors the safety of the drug. The translations and transformations between these information domains calls for careful negotiation, not just mechanical mapping.
Many of the SOA champions are over-simplifying the picture by using examples where there is a single domain. The trouble with this is that the examples aren't very interesting, and moreover invite disintermediation. To find sustainable business benefits from SOA, we need to look at more complex ecosystems. Like pharma.
(Anyone with good examples, or interesting problem domains, please contact me.)
Related posts: Straight-Through Processing 2 (April 2005), Straight-Through Processing 3 (March 2009)