We are developing scientific software component technology to manage the complexity of modern, parallel simulation software and increase the interoperability and re-use of scientific software packages. In this paper, we describe a language interoperability tool named Babel that enables the creation and distribution of language-independent software libraries using interface definition language (IDL) techniques. We have created a scientific IDL that focuses on the unique interface description needs of scientific software, such as complex numbers, dense multidimensional arrays, and parallel distributed objects. Preliminary results indicate that in addition to language interoperability, this approach provides useful tools for the design of modern object-oriented scientific software libraries. We also describe a web-based component repository called Alexandria that facilitates the distribution, documentation, and re-use of scientific components and libraries.
Thomas Epperly, Scott R. Kohn, Gary Kumfert