Advertisement

Persistence and Java — A Balancing Act

  • Malcolm Atkinson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1944)

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.

Keywords

Virtual Machine Application Developer Java Virtual Machine Java Application Enterprise Application 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    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.Google Scholar
  2. 2.
    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.zbMATHGoogle Scholar
  3. 3.
    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.Google Scholar
  4. 4.
    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.Google Scholar
  5. 5.
    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.Google Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    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.Google Scholar
  8. 8.
    M.P. Atkinson and R. Morrison. Orthogonal Persistent Object Systems. VLDB Journal, 4(3):309–401, 1995.Google Scholar
  9. 9.
    M.P. Atkinson and R. Welland, editors. Fully Integrated Data Environments. Springer-Verlag, 1999.Google Scholar
  10. 10.
    S. Berman and E. Voges. A Spatiotemporal Model as the Basis for a Persistent GIS. In Dearle et al. [27].Google Scholar
  11. 11.
    P.A. Bernstein. Panel: Is Generic Metadata Management Feasible? In Abbadi et al. [1], pages 660–662.Google Scholar
  12. 12.
    S.M. Blackburn and J.N. Zigman. Concurrency-the Fly in the Ointment? In Morrison et al. [56], pages 250–258.Google Scholar
  13. 13.
    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.Google Scholar
  14. 14.
    Frederick P. Brooks, Jr. The Mythical Man-Month-Essays on Software Engineering. Addison-Wesley, Reading, MA, USA, anniversary edition, 1995.Google Scholar
  15. 15.
    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.Google Scholar
  16. 16.
    R.G.G. Cattell, editor. The Object Database Standard: ODMG-97 Third Edition. Morgan Kaufmann, 1997.Google Scholar
  17. 17.
    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.Google Scholar
  18. 18.
    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.
  19. 19.
    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.CrossRefGoogle Scholar
  20. 20.
    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.Google Scholar
  21. 21.
    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.Google Scholar
  22. 22.
    G. Czajkowski. Application Isolation in the JavaTM Virtual Machine. In Proceedings of OOPSLA 2000, 2000.Google Scholar
  23. 23.
    L. Daynès. Implementation of Automated Fine-Granularity Locking in a Persistent Programming Language. Software-Practice and Experience, 30:1–37, 2000.CrossRefGoogle Scholar
  24. 24.
    L. Daynès and M.P. Atkinson. Main-Memory Management to support Orthogonal Persistence for Java. In Jordan and Atkinson [41], pages 37–60.Google Scholar
  25. 25.
    L. Daynès and G. Czajkowski. High-Performance, Space-Efficient Automated Object Locking, 2000. Submitted to ICDE’01.Google Scholar
  26. 26.
    A. Dearle, D. Hulse, and A. Farkas. Persistent Operating System Support for Java. In Jordan and Atkinson [40].Google Scholar
  27. 27.
    A. Dearle, G. Kirby, and D. SjØberg, editors. Proceedings of the Ninth International Workshop on Persistent Object Systems. LNCS. Springer-Verlag, September 2000.Google Scholar
  28. 28.
    D. DeWitt. Comment on recent experiences starting a new company, Private Communication, August 2000.Google Scholar
  29. 29.
    R. Dimpsey, R. Arora, and K. Kuiper. Java Server Performance: A Case Study of Building Efficient, Scalable JVMs. IBM Systems Journal, 39(1), 2000.Google Scholar
  30. 30.
    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.Google Scholar
  31. 31.
    Snyder L. et al. Academic Careers for Experimental Computer Scientists and Engineers. National Academic Press, Washington, USA, 1994.Google Scholar
  32. 32.
    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].Google Scholar
  33. 33.
    A. Garthwaite and S. Nettles. TJava: a Transactional Java. In IEEE International Conference on Computer Languages. IEEE Press, 1998.Google Scholar
  34. 34.
    GemStone Systems, Inc. The GemStone/J 4.0-The Adaptable J2EE Platform. http://www.gemstone.com/products/j/, 2000.
  35. 35.
    J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, December 1996.Google Scholar
  36. 36.
    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.Google Scholar
  37. 37.
    G. Hamilton, R. Cattell, and M. Fisher. JDBC Database Access With Java: A Tutorial and Annotated Reference. Addison-Wesley, 1997.Google Scholar
  38. 38.
    U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Department of Computer Science, Stanford University, 1994.Google Scholar
  39. 39.
    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.Google Scholar
  40. 40.
    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.Google Scholar
  41. 41.
    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.Google Scholar
  42. 42.
    M.J. Jordan and M.P. Atkinson. Orthogonal Persistence for Java-A Mid-term Report. In Morrison et al. [56], pages 335–352.Google Scholar
  43. 43.
    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.Google Scholar
  44. 44.
    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.Google Scholar
  45. 45.
    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.Google Scholar
  46. 46.
    M. JØrgensen, S. S. Bygdås, and T. Lunde. Efficiency Evaluation of CASE tools Method and Results. Technical Report 38/95, 1995.Google Scholar
  47. 47.
    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.Google Scholar
  48. 48.
    G.N.C. Kirby and R. Morrison. OCB: An Object/Class Browser for Java. In Jordan and Atkinson [41], pages 89–105.Google Scholar
  49. 49.
    G.N.C. Kirby and R. Morrison. Variadic Genericity Through Linguistic Reflection: A Performance Evaluation. In Morrison et al. [56], pages 136–148.Google Scholar
  50. 50.
    G.N.C. Kirby, R. Morrison, and D.W. Stemple. Linguistic Reflection in Java. Software-Practice and Experience, 28(10):1045–1077, 1998.CrossRefGoogle Scholar
  51. 51.
    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.Google Scholar
  52. 52.
    B. Lewis, B. Mathiske, and N. Gafter. Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine. In Dearle et al. [27].Google Scholar
  53. 53.
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.Google Scholar
  54. 54.
    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.Google Scholar
  55. 55.
    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.Google Scholar
  56. 56.
    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.Google Scholar
  57. 57.
    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.Google Scholar
  58. 58.
    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.Google Scholar
  59. 59.
    T. Printezis and M.P. Atkinson. An Efficient Promotion Algorithm for Persistent Object Systems, 2000. To appear in Software-Practice and Experience.Google Scholar
  60. 60.
    C. Russell. JSR-12 Java Data Objects Specification (approved for development). http://www.java.sun.com/aboutJava/communityprocess/jsr/jsr012dataobj.html, April 2000.
  61. 61.
    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.CrossRefGoogle Scholar
  62. 62.
    D.I.K. SjØberg and M. JØgensen. A Proposal for a Laboratory for Software Engineering Experiments, 2000. in preparation.Google Scholar
  63. 63.
    Sun Microsystems, Inc. Enterprise Java Beans Specification 1.1, April 2000.Google Scholar
  64. 64.
    Sun Microsystems, Inc. Java Blend. http://www.sun.com/software/javablend/index.html, April 2000.
  65. 65.
    W.F. Tichy. Should computer scientists experiment more? COMPUTER: IEEE Computer, 31:32–40, 1998.Google Scholar
  66. 66.
    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.CrossRefGoogle Scholar
  67. 67.
    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.Google Scholar
  68. 68.
    E. Zirintsis, V.S. Dunstan, G.N.C. Kirby, and R. Morrison. Hyper-Programming in Java. In Morrison et al. [56], pages 370–382.Google Scholar
  69. 69.
    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.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Malcolm Atkinson
    • 1
  1. 1.Department of Computing ScienceUniversity of GlasgowScotland

Personalised recommendations