New to OpenMI?
What is OpenMI ?
The OpenMI (Open Modeling Interface) Standard is a software component interface definition. It was originally conceived to facilitate the simulation of interacting processes, particularly environmental processes. It did so by enabling independent models of the processes to exchange data as they ran, time step by time step. However, it was quickly realised that OpenMI could be made into a generic solution to the problem of data exchange between any models, not just environmental models, and soon after that not just models but software components. Hence, it could be applied to linking any combination of models, databases and analytical and visualisation tools.
When the standard is implemented, OpenMI compliant components can
- be configured to exchange data during computation (at run-time)
- run simultaneously and share information at each timestep making model integration feasible at the operational level.
Linked components may come from different suppliers, represent data and processes from different domains, be based on different concepts, have different spatial and temporal resolutions and representations (including no temporal or spatial representation).
The standard supports two-way links where 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.
The OpenMI standard is defined by a set of software interfaces that a compliant component must implement. Reference implementations for these interfaces are available both in C# and Java, but other implementations can be developed as well.
Read more ...
HarmonIT - OpenMI v1.0
The first version of the OpenMI was developed by a team drawn from 14 organizations and seven countries co-funded through the European Commission’s Fifth Framework programme under contract number EVK1-CT-2002-00090 (the HarmonIT project). The project was led by the UK's Centre for Ecology and Hydrology (part of the Natural Environmental Research Council).
Design and development was conducted in an incremental way taking use cases as a basis for iterative development. The development was primarily been undertaken by the three major commercial model developers, DHI Water and Environment, Delft Hydraulics (now Deltares) and Wallingford Software (now Innovyze). The role of the other organizations was to manage the project, to support the design and development, and to test the standard and environment rigorously. To ensure that the work met the standards required by the Commission and the scientific and user communities, a panel of experts comprising leading scientists from around the world reviewed all key documents and advised the Steering Committee. The project’s quality assurance plan established procedures for the critical areas of work and covered document and code version control.
At the end of the HarmonIT project the OpenMI Standard v1.0 (.Net version) was officially released.
OpenMI-Life - OpenMI v1.4 - The OpenMI Association
To turn the OpenMI from a research outcome into a sustained standard for operational practice, a second project was initiated under the policy area "Sustainable management of ground water and surface water management" of the European Commission’s LIFE Environment programme (Contract no: LIFE06 ENV/UK/000409) (the OpenMI-Life project). The consortium consisted of 10 partners from 5 countries and was again led by the Centre for Ecology and Hydrology.
The objective of this project was to set up a structure for support, maintenance and dissemination of the OpenMI (i.e. the OpenMI Association), and to apply the OpenMI in the Scheldt (BE,NL) and Pinios (GR) basins to prove that OpenMI can assist competent water authorities in joint model integration to achieve the objectives of the Water Framework Directive. The technical work concerning the maintenance and improvement of the OpenMI has been conducted by many of the same team as in the HarmonIT project, and carried out in a similar way to that project.
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 new 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.
Meanwhile the OpenMI-Life project also saw the official establishment of a legal body : the OpenMI Association.
Development work for v2.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 the end of the OpenMI-Life project the Association had to continue its tasks without further European funding. However, the majority of the work in developing the OpenMI v2.0 had been achieved during the OpenMI-Life project, and in December 2010 the release of v2.0 of the Standard was officially announced during a EU-US summit in Washington DC.
The most important new features in OpenMI 2.0 (compared to version 1.4) are :
- a more flexibile way of linking
- more flexibility in the overall control flow
- less difference between temporal and spatial models
- support in categorized data values
- extensions procesing new types of components
In 2011 the focus was on developing a new user interface (GUI) and software development kit (SDK) to allow users to make their models 2.0 compliant and to make compositions of them. Because the OpenMI Association had no funding to do this by themselves, the UK initiative FluidEarth, led by HR Wallingford, offered to make its own planned GUI and SDK open source. This decision made obsolete the need for the OA to develop their own GUI and SDK.
In the meantime discussions have been held with the Open Geospatial Consortium (OGC) to have the OpenMI 2.0 accepted as an OGC standard. It is expected that such acceptance would increase the chances for a much wider uptake of the OpenMI considerably.
Why should you use it ?
Managing and optimising complex systems requires the ability to predict the behaviour of many interacting processes, and the understanding of the likely impact of both events and the policies to address them. The best prediction tools at present are models encapsulating our understanding of process behaviour. These however, tend to represent single or small groups of processes within a discipline. The OpenMI standard was created with the intent to facilitate model integration by linking existing individual models, as an alternative to building very complex multi-process models or frameworks.
There are a number of reasons why the OpenMI may be beneficial for your project. Adopting OpenMI will mean that:
- There is no need to develop an internal project standard - a costly and time-consuming process.
- You will receive the benefit of the multi-€M investment in developing the OpenMI
- You will be able to link to other existing OpenMI-compliant models.
- Models developed within your project may be more easily re-used once the project is completed.
Whatever your role, before you consider using the OpenMI, you may want to know that:
- The OpenMI can be used in most integrated modelling situations.
- The OpenMI is an Open Source and royalty-free standard.
- The OpenMI is generic and can enable cross-disciplinary model linking.
- The OpenMI has been developed by an international consortium of commercial model developers, institutes and universities.
- The OpenMI is supported by a range of tools for making models linkable and then linking and running them.
- The OpenMI is backed by the OpenMI Association, a legal organisation.
- The OpenMI will be maintained and will continue to be developed by the OpenMI Association.
- You can become a member of the OpenMI Association and influence its future development.
How the OpenMI can support your project depends upon how the participants see themselves:
Integrated modellers and researchers
The OpenMI will...
- Help you to improve the ease of collaboration between research groups and enable cross -disciplinary models to be linked.
- Enable you to look at 'big science' questions that can not be explored by stand alone models.
- Enable a more modular development approach to be used, making model substitution simpler when changing scale or undertaking uncertainty or sensitivity analyses.
- Facilitate integrated modelling for which there is an implicit requirement, for example to implement the Water Framework Directive.
- Enable you to link models developed as part of your project to existing research and proprietary models.
- Simplify the construction of Decision Support Systems (DSS) by reducing the time involved.
Modelling framework developers
The OpenMI will...
- Provide you with the linking technology that will allow components running within your framework to be exchangeable.
Single domain model code developers and researchers
The OpenMI will...
- Help you to make models linkable to others.
- Help you to develop models in isolation that can be guaranteed to connect to other models.
- Help you to reduce the effort required to produce a marketable product. You can play to your strengths and link to other suppliers components where they do represent part of your core business.
- Enable models produced as part of your current project to be reused in future projects.
The OpenMI will...
- Help you to give more informed answers (than the competition) for the same (or lower) costs and faster.
- Allow you to combine models owned or licensed by different organisations - i.e. choose the best components for the job.
- Change the market from one for large proprietary systems to one for components.
Water and environmental managers
The OpenMI will...
- Help you to predict the wider implications of policies and projects, as required by integrated approaches to environmental management.
- Help you to better understand and model how environmental, social and economic processes interact, leading to greater efficiency when planning operations.
- Simplify sensitivity and uncertainty analyses by allowing the easy substitution of one model with another.
- Simplify the construction of decision support systems.
How to get started with OpenMI depends first of all on your own objectives and your professional activities.
If you are a software developer, responsible for making existing or newly developed software OpenMI compliant, you will need to go through the following steps :
- make yourself acquainted with the IT concept of OpenMI;
- make sure you have the necessary programming skills or -if not- ask for a dedicated training course;
- decide upon the platform and version of the Standard you want to become compliant with;
- obtain the correct version of the Standard, SDK and GUI for your preferences;
- migrate your software code;
- test your migrated code;
- send your specifications to the OA's Compliancy Officer in order for your compliant model to be published on this website.
If you are an end user, responsible for linking models, you will need to go through the following steps :
- make yourself acquainted with the model linking concept of OpenMI;
- describe the linkages you want to realise in terms of state variables (quantities), spatial and temporal data operations;
- make sure that the models you want to use are compliant to the same platform and version of the Standard, and allow the envisaged exchanges. If any of these conditions is not fulfilled, you will need to involve your software supplier(s) or -if you have the required skills and the access rights to the code- do the migration yourself (see the above steps to follow);
- download a GUI that is compatible with your choice of platform and version of the Standard;
- use the GUI to set up a linkage configuration;
- run the linked models from the GUI.
Try out the FluidEarth tutorial to get you up and running in 2 hours time !
The OpenMI Standard can be downloaded from the Open Source Platform SourceForge. It is available in .NET (C# sources) and in Java.
GUI and SDK
An overview of the different available versions of GUI and SDK can be found here.
In some cases it can be useful to get a non released version of the code (Standard, SDK or GUI). Although the code you would get is not tested to the same extent as released code, it should still be fairly stable due to extensive unit testing.
This page describes how to download the most recent source code including precompiled standard dlls (C#) and jar files (Java).