MDA, MDI, SOA and ontologies
Introduction
In this post, we’ll discuss the relevance of ontologies to approaches like the Model Driven Architecture (MDA), Model Driven Interoperability (MDI) and the Service-Oriented Architecture (SOA). Enterprises are nowadays moving away from having software applications that are tightly coupled with technological changes; the main reasons being that we want our software architecture to be vendor-independent and software design platform-independent — in other words independent of any limitations imposed by system and platform-specific implementations. In so doing, companies are in fact making their IT and Information Systems architecture more robust, future-proof, and as far as possible technology-agnostic. In a nutshell, that’s the purpose of MDA, SOA and similar architectures — they are important approaches that allow enterprises to achieve these goals.
MDA in a nutshell
MDA is a recommended specification by the Object Management Group (OMG) used as software design and sometimes business modelling approach. The MDA approach prescribes three core perspectives, which are supported through different models. There’s the Computation Independent Model (CIM), the Platform Independent Model (PIM) and the Platform Specific Model (PSM). Model transformations take place between each kind of model in order to convert one to another.
CIM
Let’s assume for now that we are developing a new system solution. Following the MDA approach, the requirements for the system are first captured and specified in the CIM. In other words, the CIM describes a computation-independent view of the business context and requirements for the system to be designed.
PIM
The PIM, on the other hand, is essentially a technology-independent view for describing what the software solution is, at a quite high level of abstraction, where the requirements from the CIM transform to the PIM. Traditionally, models like UML diagrams have been used for capturing the technology-independent view by modelling use cases, static states, activities, sequencing, and so on.
PSM
Once the PIM is established, transformation mechanisms then convert it into one or more platform-specific model. The PSM is the perspective where the platform-independent models coming from the PIM get reused and transformed so as to describe the actual implementation of software applications on specific operating systems, following specific software frameworks like .NET, and so on.
Ontologies in MDA
Ontologies when placed in the context of the MDA can be really useful at the CIM and PIM levels, but specially the PIM. This is because, ontologies (notably heavyweight ontologies) are platform-independent models that can serve as powerful alternative to modelling approaches like UML, that suffer from the ‘loose semantics’ problem. This is because heavyweight ontologies establish clear semantics of the meaning of terms within a domain model. MDI, on the other hand, is the principle of applying MDA to interoperability. In MDI, interoperability models are defined and these can be aided through ontology modelling so as to target semantic interoperability between information models.
Ontologies and SOA
Moreover, just like ontologies fit very well within the MDA and MDI, they are also a good fit for the SOA approach. SOA looks at services as standalone and loosely coupled chunks of functionality that exchange information through the use of metadata. A very important syntax that has been used in SOA for permitting information exchanges is XML, which provides the syntax for OWL as language framework for modelling ontologies. This means that OWL is well-positioned to aid the progress towards meaningful exchanges of information across the Web.