Toward Pure Polylingual Persistence
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 for 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.
KeywordsTransitive Closure Java Object Persistent Store Persistent Data Atom Object
Unable to display preview. Download preview PDF.
- Barrett, D. J., Kaplan, A., and Wileden, J. C. Automated support for seamless interoperability in polylingual software systems. In The Fourth Symposium on the Foundations of Software Engineering, San Francisco, CA, Oct. 1996.Google Scholar
- Carey, M. J., DeWitt, D. J., and Vandenberg, S. L. A data model and query language for EXODUS. SIGMOD Record (ACM Special Interest Group on Management of Data), 17(3):413–423, Sept. 1988.Google Scholar
- Carey, M. J., J.DeWitt, D., and Naughton, J. F. The OO7 benchmark. In Proceedings of the ACM SIGMOD Conference, pages 12–21, Washington, D.C., May 1993.Google Scholar
- Cattell, R. G. G., Barry, D. K., Berler, M., Jeff Eastman, D. J., Russell, C., Schadow, O., Stanienda, T., and Velez, F., editors. The Object Data Standard: ODMG 3.0. Morgan Kaufmann, Jan. 2000.Google Scholar
- Janssen, B. and Spreitzer, M. ILU: Inter-language unification via object modules. In Workshop on Multi-Language Object Models, Portland, OR, Aug. 1994. (in conjunction with OOPSLA’94).Google Scholar
- Kaplan, A., Myrestrand, G., Ridgway, J. V., and Wileden, J. C. Our spin on persistent Java: The JavaSPIN approach. In First International Workshop on Persistence and Java, Drymen, Scotland, Sept. 1996.Google Scholar
- Kaplan, A. and Wileden, J. C. Toward painless polylingual persistence. In Connor, R. and Nettles, S., editors, Proceedings Seventh International Workshop on Persistent Object Systems, pages 11–22, Cape May, NJ, May 1996.Google Scholar
- Kato, K. and Ohori, A. An approach to multilanguage persistent type system. In 25th Hawaii International Conference on System Sciences, Jan. 1992.Google Scholar
- Liang, S. The Java[tm] Native Interface: Programmer’s Guide and Specification. Addison Wesley, Jan. 1999.Google Scholar
- Object Management Group. The Common Object Request Broker: Architecture and Specification, Aug. 1997. Revision 2.1.Google Scholar
- Wells, D. L., Blakely, J. A., and Thompson, C. W. Architecture of an open object-oriented database management system. IEEE Computer, 25(10):74–82, Oct. 1992.Google Scholar