An SOA odyssey

Thursday, June 21, 2007

Integrated Concepts

This posting passed on by a colleague I find particularly interesting as it relates to our SOA implementation. The idea is that the four concepts:

  • Enterprise Canonical Data Model

  • Canonical Message Schema

  • Event Driven Architecture

  • Business Event Ontology


  • are intimately related and the post goes through the touch points for each. What I appreciate here is the separation of the canonical data model from the canonical message schema. In our implementation we create XSD to represent the business entities (analogous to the enterprise canonical data model) and then wrap various parts of these in XSD when creating the response, request, and acknowledgement message contracts (canonical message schemas).

    But although we have a handle on these concepts I think it's important to really keep an eye on raising the visibility of the canonical data model from within the project team to the entire IT organizational level (thus making it canonical). Unfortunately we haven't been able to do this very successfully and so that limits the usefulness of the model both because we may not have considered what we need to and therefore the models may not be as robust as eventually needed, and since other groups may be off developing similar models that we don't know about. In order to address these limitations we're working with our architecture group to publish a "service catalog" that surfaces the schemas and their semantics along with what's been implemented thus far so that within the organization we'll be better able to communicate on a shared foundation. To do this we're contributing to a wiki that's been setup in Microsoft Office Sharepoint Server 2007.

    In addition, while the messaging contracts are certainly useful they are not very flexible. In a second generation implementation we hope to move towards a more consumer-driven contract approach that retains the canonical data model schemas but allows consumers to pick and choose more easily the data they require.

    On the fourth bullet we haven't been as forward-thinking as we would like. Although our implementation platform allows for the publication and consumption of business events we haven't integrated that publication into our infrastructure. Of course, as the poster mentions, first you need to figure out just what those events are and I'm hopeful that the idea of cataloguing those will gain some traction going forward.

    Labels: ,