Abstract
Large scale and long-lived application systems, enterprise applications, require persistence, that is provision of storage for many of their data structures. The JavaTM programming language is a typical ex- ample of a strongly-typed, object-oriented programming language that is becoming popular for building enterprise applications. It therefore needs persistence. The present options for obtaining this persistence are reviewed. We con- clude that the Orthogonal Persistence Hypothesis, OPH, is still persua- sive. It states that the universal and automated provision of longevity or brevity for all data will significantly enhance developer productivity and improve applications. This position paper reports on the PJama project with particular refe- rence to its test of the OPH. We review why orthogonal persistence has not been taken up widely, and why the OPH is still incompletely tested. This leads to a more general challenge of how to conduct experiments which reveal large-scale and long-term effects and some thoughts on how that challenge might be addressed by the software research community.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
A.E. Abbadi, M.J. Brodie, S. Chakravarthy, U. Dayal, N. Kamel, G. Schlageter, and K-Y. Whang, editors. Proceedings of the Twentysixth International Conference on Very Large Databases. Morgan Kaufmann, 2000.
M.P. Atkinson, P.J. Bailey, K.J. Chisholm, W.P. Cockshott, and R. Morrison. An approach to persistent programming. The Computer Journal, 26(4):360–365, November 1983.
M.P. Atkinson, L. Daynès, M.J. Jordan, T. Printezis, and S. Spence. An Orthogonally Persistent JavaTM. ACM SIGMOD Record, 25(4), December 1996.
M.P. Atkinson, M. Dmitriev, C. Hamilton, and T. Printezis. Scalable and Recoverable Implementation of Object Evolution for the PJama Platform. In Dearle et al. [27], pages 255–268 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.
M.P. Atkinson and M.J. Jordan. A Review of the Rationale and Architectures of PJama: a Durable, Flexible, Evolvable and Scalable Orthogonally Persistent Programming Platform. Technical Report TR-2000-90, Sun Microsystems Laboratories Inc and Department of Computing Science, University of Glasgow, 901 San Antonio Road, Palo Alto, CA 94303, USA and Glasgow G12 8QQ, Scotland, 2000.
M.P. Atkinson, M.J. Jordan, L. Daynès, and S. Spence. Design Issues for Persistent Java: A Type-safe, Object-oriented, Orthogonally Persistent System. In Connor and Nettles [21], pages 33–47.
M.P. Atkinson, M.J. Jordan, L. Daynès, and S. Spence. Design Issues for Persistent Java: A Type-safe, Object-oriented, Orthogonally Persistent System. In The Proceedings of the Seventh International Workshop on Persistent Object Systems (POS 7), pages 33–47, May 1996.
M.P. Atkinson and R. Morrison. Orthogonal Persistent Object Systems. VLDB Journal, 4(3):309–401, 1995.
M.P. Atkinson and R. Welland, editors. Fully Integrated Data Environments. Springer-Verlag, 1999.
S. Berman and E. Voges. A Spatiotemporal Model as the Basis for a Persistent GIS. In Dearle et al. [27].
P.A. Bernstein. Panel: Is Generic Metadata Management Feasible? In Abbadi et al. [1], pages 660–662.
S.M. Blackburn and J.N. Zigman. Concurrency-the Fly in the Ointment? In Morrison et al. [56], pages 250–258.
K. Brahnmath, N. Nystrom, A. Hosking, and Q.I. Cutts. Swizzle-barrier optimization for Orthogonal Persistence for Java. In Morrison et al. [56], pages 268–278.
Frederick P. Brooks, Jr. The Mythical Man-Month-Essays on Software Engineering. Addison-Wesley, Reading, MA, USA, anniversary edition, 1995.
M. Carey, D. DeWitt, and J. Naughton. The OO7 Benchmark. In Proc. of the ACM SIGMOD Int. Conf. on Management of Data, Washington D.C, May 1993.
R.G.G. Cattell, editor. The Object Database Standard: ODMG-97 Third Edition. Morgan Kaufmann, 1997.
S. Ceri, R.J. Cochrane, and J. Widom. Practical Applications of Triggers and Constraints: Successes and Lingering Issues. In Abbadi et al. [1], pages 254–262.
C. Chambers. The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. PhD thesis, Stanford University, March 1992. Available via anonymous ftp from http://www.self.stanford.edu.
G. Clossman, P. Shaw, M. Hapner, J. Klein, R. Pledereder, and B. Becker. Java and Relational Databases: SQLJ. ACM SIGMOD Record, 27(2):500, June 1998.
P. Collet and G. Vignola. Towards a Consistent Viewpoint on Consistency for Persistent Applications. In ECOOP’2000 Symposium on Objects and Databases, volume 1813 of Lecture Notes in Computer Science. Springer Verlag, June 2000. To appear.
R. Connor and S. Nettles, editors. Persistent Object Systems: Principles and Practice-Proceedings of the Seventh International Workshop on Persistent Object Systems. Morgan Kaufmann, 1996.
G. Czajkowski. Application Isolation in the JavaTM Virtual Machine. In Proceedings of OOPSLA 2000, 2000.
L. Daynès. Implementation of Automated Fine-Granularity Locking in a Persistent Programming Language. Software-Practice and Experience, 30:1–37, 2000.
L. Daynès and M.P. Atkinson. Main-Memory Management to support Orthogonal Persistence for Java. In Jordan and Atkinson [41], pages 37–60.
L. Daynès and G. Czajkowski. High-Performance, Space-Efficient Automated Object Locking, 2000. Submitted to ICDE’01.
A. Dearle, D. Hulse, and A. Farkas. Persistent Operating System Support for Java. In Jordan and Atkinson [40].
A. Dearle, G. Kirby, and D. SjØberg, editors. Proceedings of the Ninth International Workshop on Persistent Object Systems. LNCS. Springer-Verlag, September 2000.
D. DeWitt. Comment on recent experiences starting a new company, Private Communication, August 2000.
R. Dimpsey, R. Arora, and K. Kuiper. Java Server Performance: A Case Study of Building Efficient, Scalable JVMs. IBM Systems Journal, 39(1), 2000.
M. Dmitriev. Class and Data Evolution Support in the PJama Persistent Platform. Technical Report TR-2000-57, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, 2000.
Snyder L. et al. Academic Careers for Experimental Computer Scientists and Engineers. National Academic Press, Washington, USA, 1994.
A. Garratt, M. Jackson, P. Burden, and J. Wallis. A Comparison of Two Persistent Storage Tools for Implementing a Search Engine. In Dearle et al. [27].
A. Garthwaite and S. Nettles. TJava: a Transactional Java. In IEEE International Conference on Computer Languages. IEEE Press, 1998.
GemStone Systems, Inc. The GemStone/J 4.0-The Adaptable J2EE Platform. http://www.gemstone.com/products/j/, 2000.
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, December 1996.
C.G. Hamilton. Recovery Management for Sphere: Recovering a Persistent Object Store. Technical Report TR-1999-51, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, December 1999.
G. Hamilton, R. Cattell, and M. Fisher. JDBC Database Access With Java: A Tutorial and Annotated Reference. Addison-Wesley, 1997.
U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Department of Computer Science, Stanford University, 1994.
A.L. Hosking, N. Nystrom, Q. Cutts, and K. Brahnmath. Optimizing the read and write barrier for orthogonal persistence. In Morrison et al. [56], pages 149–159.
M.J. Jordan and M.P. Atkinson, editors. Proceedings of the First International Workshop on Persistence and Java. Number TR-96-58 in Technical Report. Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, November 1996.
M.J. Jordan and M.P. Atkinson, editors. Proceedings of the Second International Workshop on Persistence and Java. Number TR-97-63 in Technical Report. Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, December 1997.
M.J. Jordan and M.P. Atkinson. Orthogonal Persistence for Java-A Mid-term Report. In Morrison et al. [56], pages 335–352.
M.J. Jordan and M.L. Van De Vanter. Software Configuration Management in an Object-Oriented Database. In Proceedings of the Usenix Conference on Object-Oriented Technologies, Monterey, CA, June 1995.
M.J. Jordan and M.L. Van De Vanter. Modular System Building with Java Packages. In Proceedings of the Eighth International Conference on Software Engineering Environments, Cottbus, Germany, May 1997.
M. JØrgensen and S. S. Bygdås. An empirical study of the correlation between development efficiency and software development tools. Telektronikk, 95(1):54–62, 1999.
M. JØrgensen, S. S. Bygdås, and T. Lunde. Efficiency Evaluation of CASE tools Method and Results. Technical Report 38/95, 1995.
A. Kaplan, J.V.E. Ridgeway, B.R. Schmerl, K. Sridar, and J.C. Wileden. Toward Pure Polylingual Persistence. In Dearle et al. [27], pages 54–68 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.
G.N.C. Kirby and R. Morrison. OCB: An Object/Class Browser for Java. In Jordan and Atkinson [41], pages 89–105.
G.N.C. Kirby and R. Morrison. Variadic Genericity Through Linguistic Reflection: A Performance Evaluation. In Morrison et al. [56], pages 136–148.
G.N.C. Kirby, R. Morrison, and D.W. Stemple. Linguistic Reflection in Java. Software-Practice and Experience, 28(10):1045–1077, 1998.
B. Lewis and B. Mathiske. Efficient Barriers for Persistent Object Caching in a High-Performance Java Virtual Machine. In Proceedings of the OOPSLA’99 Workshop-Simplicity, Performance and Portability in Virtual Machine Design, 1999.
B. Lewis, B. Mathiske, and N. Gafter. Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine. In Dearle et al. [27].
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.
A. Marquez, S.M. Blackburn, G. Mercer, and J. Zigman. Implementing Orthogonally Persistent Java. In Dearle et al. [27], pages 218–232 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.
R. Morrison, R.C.H. Connor, Q.I. Cutts, G.N.C. Kirby, D.S. Munro, and M.P. Atkinson. The Napier88 Persistent Programming Language and Environment. In Atkinson and Welland [9], chapter 1.1.3, pages 98–154.
R. Morrison, M.J. Jordan, and M.P. Atkinson, eds. Advances in Persistent Object Systems-Proceedings of the Eighth International Workshop on Persistent Object Systems (POS8) and the Third International Workshop on Persistence and Java (PJW3). Morgan Kaufmann, August 1998.
T. Printezis. Management of Long-Running, High-Performance Persistent Object Stores. PhD thesis, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, May 2000.
T. Printezis, M. P. Atkinson, and M. J. Jordan. Defining and Handling Transient Data in PJama. In Proceedings of the Seventh International Workshop on Database Programming Languages (DBPL’99), Kinlochrannoch, Scotland, September 1999.
T. Printezis and M.P. Atkinson. An Efficient Promotion Algorithm for Persistent Object Systems, 2000. To appear in Software-Practice and Experience.
C. Russell. JSR-12 Java Data Objects Specification (approved for development). http://www.java.sun.com/aboutJava/communityprocess/jsr/jsr012dataobj.html, April 2000.
M. Satyanarayanan, H.H. Mashburn, P. Kumar, D.C. Steere, and J.J. Kistler. Lightweight Recoverable Virtual Memory. ACM Transactions on Computers and Systems, 12(1):33–57, February 1994.
D.I.K. SjØberg and M. JØgensen. A Proposal for a Laboratory for Software Engineering Experiments, 2000. in preparation.
Sun Microsystems, Inc. Enterprise Java Beans Specification 1.1, April 2000.
Sun Microsystems, Inc. Java Blend. http://www.sun.com/software/javablend/index.html, April 2000.
W.F. Tichy. Should computer scientists experiment more? COMPUTER: IEEE Computer, 31:32–40, 1998.
W.F. Tichy, P. Lukowicz, L. Prechelt, and E.A. Heinz. Experimental evaluation in computer science: A quantitative study. The Journal of Systems and Software, 28(1):9–18, January 1995.
D. White and A. Garthwaite. The GC interface in the EVM. Technical Report TR-98-67, Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, 1998.
E. Zirintsis, V.S. Dunstan, G.N.C. Kirby, and R. Morrison. Hyper-Programming in Java. In Morrison et al. [56], pages 370–382.
E. Zirintsis, G.N.C. Kirby, and R. Morrison. Hyper-Code Revisited: Unifying Program Source, Executable and Data. In Dearle et al. [27], pages 202–217.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Atkinson, M. (2001). Persistence and Java — A Balancing Act. In: Dittrich, K., Guerrini, G., Merlo, I., Oliva, M., Rodriguez, M. (eds) Objects and Databases. SODB 2000. Lecture Notes in Computer Science, vol 1944. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44677-X_1
Download citation
DOI: https://doi.org/10.1007/3-540-44677-X_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41664-7
Online ISBN: 978-3-540-44677-4
eBook Packages: Springer Book Archive