Computational proxies an object-based infrastructure for computational science

Judith Bayard Cushing · 1995

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 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 applications. We propose a middleware solution built within a database tradition, and describe the functionality needed for experiment management. We believe that a data-centered solution to interoperabilty 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 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 proxy mechanism also provides ways to declaratively define the database interface to 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 proxy infrastructure has been implemented in C++ and ObjectStore on a Sun Sparcstation for applications in ab initio chemistry.

Read the paper · More papers on PaperTik