OpenMI provides users with a standard interface that allows the construction of modeling workflows. OpenMI allows models to exchange data with each other and other modeling tools as they run, facilitating the modeling of process interactions. Models may come from many different sources, represent processes from different scientific domains, have different spatial and temporal resolutions, and have different spatial domains/representations. The OpenMI standard is defined by a set of software interfaces that a compliant model must implement. These interfaces enable models to communicate with each other, with the possibility of two-way links between models where the involved models mutually depend on calculation results from each other. The OpenMI interfaces are available in both C# and Java. Models may run asynchronously with respect to timesteps.
As the OpenMI standard is a software component interface definition for the computational core (the engine) of the computational models, model components that comply with the OpenMI standards can, without any programming, be configured to exchange data during computation. Once developed, OpenMI models can be reused in many different applications and configurations. Most existing applications of OpenMI, and subsequently most of the available OpenMI compliant models, have been developed within the water resources domain.