Last month I did some service modeling work for a well known insurance company in the US. After five years of helping customers with SOA this particular company was very mature in terms of their cultural alignment between their business and IT stakeholders and was also adopting some of the best practices and patterns around SOA enablement.
A little background, this company is typical of so many other Fortune 500 companies in that the business struggles with it silo-ed nature, that has been built up over decades. Two simple silos within this organization are the personal and commercial insurances lines, both offering insurance products to different customer bases.
SOA is all about aligning the business with the IT and for this to happen they have to all speak a common language. To help understand this better lets take a simple analogy of the worlds favorite organization the United Nations. Now I am not privy to the internal working of the UN but I do know that it employs a lot of interpreters to interpret from one language to another. Take the example of an interpreter working for the French ambassador. This interpreter will need to be able to interpret from French to Chinese, from French to English, etc or to whatever the native language of the person the ambassador is talking with. This is clearly a very stressful job for the interpreter. Now lets pretend that I have been put in charge of the UN and have decreed that from now on the common international language will be Irish (this would be a complete disaster by the way, as Irish is notoriously a very difficult language with needlessly complicated grammar and syntax, I know this because I spent 14 painful years of in school learning it). Now all the interpreters need to know is how to convert from their host language to Irish and back again.
Scaling this up to the enterprise, let us examine three best practices around a enterprise common message model:
- The first best practice is simply to have one. The business and the IT need to agree upon an enterprise message format, or lingua franca across the organization. Thus what was traditionally a silo-ed organization in terms of personal and commercial insurance (each has a difference via of what a customer/party is) could now start to share service based on a common understanding about what what was a claim, a policy or indeed a customer/party. This really is not news to anyone starting to mature in the SOA space, however, the next best practice is a bit trickier.
- The second best practice is not to build this enterprise common message model yourself. This can not be overstated. Building a enterprise strength common message model in a big job. To get a sense as to how big, consider IBM Insurance Application Architecture or IAA models. Now I am not here to plug these models, but they have been built up over ten years worth of experience, of practitioners, in the insurance industry. As a result these models are highly normalized and contain some of the best patterns and lessons learned and are what I would consider a mature enterprise model. There are many other enterprise strength message models out there such as ACORD, SID (telco), STAR (automotive) . One also needs to differentiate between industry standard models and priority models and here again I want to outline a best practices in terms of their usage. Industry standard model such as ACORD have been debated and agreed upon by concerned parties within an industry vertical, these models are there typically to level the playing field and provide a good, typically flat, model structure to enable B2B exchanges between companies in that particular business vertical. Priority models on the other hand such as IAA and IBM Information FrameWork Service Models (IFW), are highly normalized models, and are there to provide a company with core differentiation within the marketplace. The best practices then become to use a priority model internally within the organization, to define the internal services and as a lingua franca for the messaging infrastructure and then to use one or more industry standard models to define services that are exposed external to the organization and typically involved in B2B exchanges and delegate to the message infrastructure to convert between them.
- Finally the enterprise message model must be managed and governed. New versions of these message model are being released all the time as new markets and opportunities arise and your company needs a coherent and consistent way of managing this change. Let us go back to our UN example and imaging that the Irish language was continuously changing (it is not, the Irish language in a considered a dead language), think of the nightmare for the interpreters having to continuously learn a new version of the common language.
For those you foolish enough to want to learn Irish, to champion the cause of having the UN adopt it as a common international language, if refer you to Des Bishop web site
Slán go fóill...
dW Blog: Engineering SOA