Dept. of Computer Science and Engineering
Oregon Graduate Institute of Science & Technology
Scientific computing's rich legacy of data and programs contains its own major disadvantage: lack of interoperability at the user level. Even within a single subfield, scientists are faced with a plethora of potentially useful programs that run on a number of different computers. When these programs do not "interoperate", such simple but desirable tasks as using the output of one program as the input of another become major obstacles to "doing science". Accessing data and running programs in heterogeneous computing environments further compounds problems of interoperability because of considerable differences in data representation, file transfer and program control protocols among computer platforms. In addition, during a single investigation, a typical scientist might name and keep track of hundreds of files on several different computers. This dissertation addresses problems of data management and of program and data interoperability among computational science applications. We postulate that a database of experiment data would alleviate problems of interoperability and file management, but that connecting a database to existing applications is neither straightforward nor adequate for computational applications. We propose a middleware solution built within a database tradition, and describe the functionality needed for computational experiment management. We believe that a data-centered solution to interoperability problems -- one that makes current versions of data available to cooperating user applications and system services -- shows particular promise. Our solution consists of a domain-specific information model and an object-oriented persistent structure that supports computation as well as data management. This abstract data structure, dubbed "computational proxy", models within an object database scientific programs and processes. Proxies maintain persistent local records of on-going computational experiments, and provide a consistent view of different applications executing on multiple processors. They provide for launching and monitoring experiments; generating data input to the experiment from the database; and capturing experimental results. The computational proxy mechanism also provides ways to declaratively define the database interface to computational applications. The infrastructure we propose can be used in a migration path from stand-alone legacy applications to distributed database services and adapted for newer object-based applications. A prototype of the computational proxy infrastructure has been implemented in C++ and ObjectStore on a Sun Sparcstation for applications in ab initio computational chemistry.
Cushing, Judith Bayard, "Computational proxies an object-based infrastructure for computational science" (1995). Scholar Archive. 292.