A heterogeneous persistent object system provides multiple programming language interfaces. This gives rise to the polylingual interoperability problem, namely, how can an application uniformly process data objects that have been defined, created and persistently stored using distinct programming language type models. At POS-7, we reported on the PolySPIN approach (polylingual support for persistence, interoperability and naming). A prototype based on PolySPIN, which was built as an extension to the TI/Darpa Open Object-Oriented Database, supports transparent polylingual access fbr persistent C++ and CLOS objects. The approach, however, assumes that objects in the persistent store are monolingual structures. That is, while a C++ application using the PolySPIN approach may access and manipulate a persistent CLOS object as if it were implemented in C++, that CLOS object must be entirely implemented in CLOS. In this paper, we report on our recent efforts toward extending PolySPIN with pure polylingual persistence capabilities. Our new approach supports transparent construction and manipulation of heterolingual persistent data objects. This means that a persistent object may have in its closure objects that are defined using different languages. The pure polylingual persistence mechanism transparently manages heterolingual persistent objects. We illustrate the pure polylingual approach by applying it to a Java-C++ realization of the 007 benchmark as implemented using the TI/Darpa Open Object-Oriented Database.
['Alan Kaplan', 'John V. E. Ridgway', 'Bradley R. Schmerl', 'Krishnan Sridhar', 'Jack C. Wileden']
Toward pure polylingual persistence