Coupling models by routing communication through a database
As the number of available large and many-faceted computer models continues to increase, simulating complex systems by coupling existing models of smaller subsystems becomes more attractive because of advantages such as leveraging existing programming. Advances in computational technologies also contribute to the increased feasibility of coupled systems. Although coupled systems may be used to study new problems that their constituent models could not address, the coupling process brings its own challenges. The modeler may face the task of coupling models from a heterogeneous environment of development platforms, programming languages, and model assumptions. Moreover, the modeler may wish to allow constituent models to be replaced or upgraded without significant difficulty. We discuss a model coupling approach that attempts to address these issues. In our approach, the models run as separate executable processes and store data in a database for later retrieval by other models. While the approach does not prescribe any particular database design, we do suggest elements that are likely to appear. We describe a proof-of-concept application of the approach and evaluate how well our approach meets its goals.