# Model Driven Interoperability

Model Driven Interoperability (MDI) is a methodological framework, which provides a conceptual and technical support to make interoperable enterprises using ontologies and semantic annotations, following model driven development (MDD) principles.

## Overview

The initial idea of works on MDI, was the application of model-driven methods and techniques for solving interoperability problems from business level down to data level.
The three main ideas of Model Driven Interoperability (MDI) approach are:
* Interoperability should be achieved at different levels: Business, Knowledge, Application and Data.
* The main idea is to follow a Model Driven Engineering (MDE) approach. Therefore, it is promoted a systematic use of models as primary engineering artefacts throughout the engineering life cycle combined with both Domain Specific Modelling Languages and transformation engines and generators.
* The use of ontologies and semantic annotations is needed in order to perform model transformation from enterprise level to code level.

## History

MDI was initiated in 2004 with the beginning of two important research projects:
* INTEROP NoE (Interoperability Research for Networked Enterprises Applications and Software Network of Excellence, FP6-IST 508011).
* ATHENA IP (Advanced Technologies for interoperability of Heterogeneous Enterprise Networks and their Applications Integrated Project) (FP6-IST-507849).
Both projects supported by the European Commission. These two projects worked on both the definition of a methodological framework and the application of MDI on concrete cases.

## MDI Topics
### MDI Framework (INTEROP NoE)

MDI Framework within INTEROP is defined:
* From conceptual point of view: providing a Reference Model in which is proposed an Interoperability Model defined at different levels of abstraction.
* From methodological point of view: providing the Model Driven Interoperability (MDI) Method as a method (principle and structure) to enable interoperable Enterprise Software Applications (ESA), starting from the level of the Enterprise Model rather than from the code level and using a model-driven approach, combined with use of ontologies and semantic annotations.
* From technological point of view: providing vertical and horizontal semantic support in order to perform model transformations.

#### The Reference Model

The Reference Model proposed for the MDI approach shows the different kinds of models that it is possible to perform at different levels of abstraction, and the successive model transformations that are needed to carry out.
The different levels of abstraction are needed in order to make possible model transformations reducing the gap existing between enterprise models and code level. The definition of the several levels was based on the Model Driven Architecture (MDA) that defines three levels of abstraction: CIM, PIM and PSM. Moreover, we introduced a partition of the CIM level into two sub-levels in order to reduce the gap between the CIM and PIM levels. An Interoperability Model has been also defined at the different levels of abstraction proposed above.
One example of this Reference Model for MDI can be seen in the next figure. This picture shows in each of the proposed levels the different kind of models that can be performed (GRAI at Top CIM level, and UML in the other levels), and the final objective of making interoperable two ESA, the franchisor's ERP and the franchisee's CRM.

#### Model Driven Interoperability Method

Model Driven Interoperability Method (MDI Method) is a model-driven method that can be used for two enterprises that need to interoperate not only at the code level but also at Enterprise Modelling level with an ontological support with the final aim of improving their performances.
* It uses model transformations to achieve interoperability defining models and an Interoperability Model at different levels of abstraction according to an MDA approach and dividing the CIM level into two sub-levels, that is to say, Top CIM level (TCIM) and Bottom CIM level (BCIM).
* It uses a Common Ontology to support these transformations and to solve interoperability problems at the semantic level.
The MDI Method proposed to solve interoperability problems, like its name indicates, is based on the MDA approach. Also, the following principles were applied to the definition of this method:
* The MDI Method is organised as an iterative process like Unified Process (UP) and other Object-Oriented Processes.
* The MDI Method also proposes semantic support like Semantic of Business Vocabulary and Business Rules (SBVR).
Next picture show the main features of the MDI Method, in which the green areas give the estimated effort related to each phase and workflow:
* Its main phases, represented on the columns: they describe four phases corresponding to the passage from one level of abstraction to a lower one.
* Its main workflows, especially the three process workflows related to the three main components of the MDI method: the Interoperability Model, the Common Interoperability Ontology and the Model Transformation.

### MDI Framework (ATHENA IP)

The MDI Framework from ATHENA provides guidance on how MDD should be applied to address interoperability. The framework is structured in three main integration areas:
* Conceptual integration, which focuses on concepts, metamodels, languages and model relationships. It provides us with a foundation for systematising various aspects of software model interoperability.
* Technical integration, which focuses on the software development and execution environments. It provides us with development tools for developing software models and execution platforms for executing software models.
* Applicative integration, which focuses on methodologies, standards and domain models. It provides us with guidelines, principles and patterns that can be used to solve software interoperability issues.

#### Conceptual integration

The reference model for conceptual integration has been developed from a MDD point of view focusing on the enterprise applications and software system.
According to MDA, a Computation Independent Model (CIM) corresponds to a view defined by a computation independent viewpoint. It describes the business context and business requirements for the software system(s). A Platform Independent Model (PIM) corresponds to a view defined by a platform independent viewpoint. It describes software specifications independent of execution platforms. A Platform Specific Model (PSM) corresponds to a view defined by a platform specific viewpoint. It describes the realisation of software systems.

#### Technical integration

Technical Integration reference model promotes the use of service-oriented solutions where a software system and more generally a system provide a set of services required by the businesses and users of the enterprise.

#### Applicative integration

The reference model for applicative integration has been developed in order to emphasise the dependencies between the different models and views to achieve interoperability.

### Model Transformations

Model transformation is one of the key approaches used to support the MDI Method. This approach is used in both horizontal and vertical dimension of the Reference Model for MDI. All model transformations performed are based on to the generic transformation architecture.

### Semantic Support

The following services: verification of the consistency of models, support to automatic mapping discovery among heterogeneous models, and definition of semantic preserving transformation can support MDI to tackle both vertical and horizontal issues.
Vertical issues: semantic support aiming at:
* Giving a logic-based formalization of portions of models via semantic annotations easing reuse, cross-reference, and unambiguous terminology.
* Tracing the changes (among the different layers of MDD transformations).
* Formalizing the delta-knowledge used in semantic enriching transformations (i.e. the transformations from more abstract models to more detailed ones).
Horizontal issues: semantic support aiming at:
* Performing semantic mismatches analysis among the models of different enterprises.
* Representing model correspondences across enterprises through semantic annotations.
* Creating reconciliation rules for performing data, service and business process reconciliation.