Over the next few posts I will try and demonstrate the value of the OASIS Reference Model for SOA. Anecdotally it seems that there is a fair number of SOA ‘practitioners’ that don’t fully understand the Reference Model and dismiss it as ‘too abstract’, claiming that it doesn’t offer ‘real world’ guidance. Hopefully I can prove that the abstract nature of this Model is not a weakness – but , in fact, its biggest strength. I’ll start by explaining what the reference model actually is.
The home of OASIS Reference Model on the web is here.The PDF document of the actual reference model can be downloaded here.The most important thing to understand is the difference between a reference model and a reference architecture.
According to OASIS a reference model is:
“an abstract framework for understanding significant relationships among the entities of some environment. A reference model consists of a minimal set of unifying concepts, axioms and relationships within a particular problem domain, and is independent of specific standards, technologies, implementations, or other concrete details. The purpose of a reference model is to provide a common conceptual framework that can be used consistently across and between different implementations and is of particular use in modelling specific solutions.”
A reference architecture on the other hand takes the abstract concepts from the model and applies them to a particular domain.
In turn, a concrete architecture (an actual working solution) builds on a reference architecture.
The following example demonstrates the relationship between a reference model, a reference architecture and a concrete architecture. It uses “housing” as the problem domain (the domain used by OASIS).
The ‘reference model’ explains the problem domain at a high level. For example, it clarifies what we mean by the concept of “housing” –living, eating, laundry and hygiene areas.
The ‘reference’ architectures apply the model to a subset of the problem, for example, housing in the form of a single storey house vs. a two storey house. The reference architecture doesn’t dictate any implementation – it merely provides a best practice guide. For example, regardless of what type of two story house you build, it’s probably a good idea to put a bathroom on each level and to put the laundry on the ground floor.
The ‘concrete’ architectures the take the generic best practice ideas from reference architectures and apply them to solving a specific, unique problem. We take into account such things as costs, building materials, the location of the house and a myriad of other things.