# OpenMI Standard

The OpenMI (Open Modeling Interface) Standard defines an interface that allows models to exchange data in memory at run-time. When the standard is implemented, existing models can be run simultaneously and share information, for instance at each time step, making model integration feasible at the operational level. The OpenMI standard was created with the intent to facilitate model integration, which is helpful in understanding and predicting process interactions and achieving an integrated approach to environmental management.
The OpenMI standard is owned and maintained by the OpenMI Association, an open, not for profit group of international organizations and people. On the 1st of July 2014 the Open Geospatial Consortium (OGC®) membership has approved the Open Modelling Interface Standard Version 2 (OpenMI) as an OGC standard.

## OpenMI architecture

OpenMI is based on a ‘request & reply’ mechanism and a pull-based pipe-and-filter architecture, which consists of communicating components (source components and target components) that “exchange memory-based data in a predefined way and in a predefined format”.
The OpenMI standard interface has three functions:
* Model Definition: This allows other linkable components to find out what items a given model can exchange in terms of quantities simulated and the locations at which the quantities are simulated.
* Configuration: This defines what will be exchanged when two models have been linked for a specific purpose.
* Run-time operation: This enables the model to accept or provide data at run time.

## OpenMI standard in a nutshell
### The OpenMI is interface-based

* Its standardized part is defined as a software interface specification.
* The interface acts as a contract between software components.
* The interface specification is not limited to specific technology platforms or implementations.
* The interface implementation may be limited by the technology supported in a specific release.
* By adopting the implemented interface a component becomes an “OpenMI-compliant” component.

### The OpenMI is open

* Its specification is publicly available via the Internet.
* Its source code is open and available under Lesser GPL license conditions.
* It enables linkages between different kinds of models developed by different disciplines for different scientific domains.
* It offers a complete metadata structure to describe the numerical data that can be exchanged in terms of semantics, units, dimensions, spatial and temporal representation and data operations.
* It provides a means to define exactly what is linked, how and when.
* Its default implementation and software utilities are available under an open source software license.

### The OpenMI is a standard

* It standardizes the way data transfer is specified and executed.
* It allows any model to talk to any other model (e.g. from a different developer) without the need for co-operation between model developers or close communication between integrators and model developers.
* Its generic nature does not limit itself to a specific domain (for example the water discipline or even in the environmental discipline).
Note that the OpenMI enables validation by dimension checks on the quantities linked. However, the OpenMI cannot guarantee that the representation of the process in the component or the link to another component is scientifically valid. That is the responsibility of the modeller, model integrator and user.

## History

In 2001 the European Commission funded (under the Fifth Framework Programme) a research project named HarmonIT in order to develop and implement a European Open Modeling Interface that would simplify the linking of Hydrology related models. This need was called for in the Water Framework Directive (WFD) that identified whole catchment modelling as a key part of integrated water management. For further development and demonstration the OpenMI-Life Project was carried out within the European Commission Directorate General for the Environment's "LIFE"-Programme.
To further promote the use and dissemination of OpenMI, the OpenMI Association was founded in 2007. It opened the way to companies, public organisations and universities interested in system analysis and modelling to contribute successfully in the development of the OpenMI Standard Interface.
During the years, several versions of OpenMI were released:
* 2005: Version 1.0 was released within the framework of the HarmonIT project.
* 2007: Fairly early in the OpenMI-Life project, updates to the OpenMI standard were released (.Net v1.2 and Java versions; the latter one mainly developed by partners outside the OpenMI-Life project). Because of compatibility problems that arose from these updates, the update and release procedure was thoroughly reviewed, leading to a version 1.4 (available for both .Net and Java), which from that moment on continued to be the only officially supported version of the Standard.
* 2010: Development work for OpenMI 2.0 went on throughout the OpenMI-Life project and by the end of it, a beta release was ready and published for external review. After thorough testing and review it was released in 2010.
* 2014: On the 1st of July 2014 the Open Geospatial Consortium (OGC®) membership has approved the Open Modelling Interface Standard Version 2.0 (OpenMI) as an OGC standard.
An extended version of this history can be found here.

## OpenMI standard for users and developers

The OpenMI standard is defined by a set of software interfaces, in C# and Java, that a compliant model or component must implement.
The OpenMI can be described at two levels: At the users’ level, the OpenMI provides a standard interface, which allows models to exchange data with each other and other modelling tools as they run. The OpenMI Standard connects models from different suppliers, domains, concepts and spatial and temporal resolutions.
At the IT level, OpenMI standard is a software component interface definition for the computational core (the engine) of the computational models of the scientific domain of interest (e.g. water resources models). Model components that comply with this standard can, without any additional programming, be configured to exchange data during computation (at run-time). The standard supports two-way links where the involved models mutually depend on calculation results from each other. Linked models may run asynchronously with respect to timesteps, and data represented on different geometries (grids) can be exchanged seamlessly.

## OpenMI compliant models

As the standard is free to use, there is not a complete list of OpenMI compliant models and tools. The OpenMI Association aims to keep an overview of models and tools here. The literature overview provides another entry for compliant models and tools.

## Referenced documents

* ↑ Gregersen, J. B., et al (2007). “OpenMI: Open Modelling Interface”. Journal of Hydroinformatics 9(3), 175-191.
* 1 2 “The OpenMI Document Series, Part A – Scope: For the OpenMI (Version 1.4)”. OpenMI Association. Retrieved on 2009-05-26.
* ↑ "OpenMI Association Website - About OpenMI". OpenMI Association. Retrieved on 2009-05-28.