Sun and Oracle Community Voices How to Buy Log In United States [Change] English

»  Spotlight Articles
»  Projects
»  Publications
»  People
»  Awards
»  Events
»  Downloads
»  Internships
»  Contrarian Minds
»  About Sun Labs

First International Workshop on Persistence and Java(tm) (PJW1)

16th - 18th September 1996

Sponsored by Sun Microsystems

Preface

These proceedings record the First International Workshop on Persistence and Java, which was held in Drymen, Scotland in September 1996. The focus of this workshop was the relationship between the Java languages and long-term data storage, such as databases and orthogonal persistence. There are many approaches being taken, some pragmatic and some guided by design principles. If future application programmers building large and long-lived systems are to be well supported it is essential that the lessons of existing research into language and database combinations are utilised and that the research community develops further results needed for Java.

Attendance at the workshop was limited to those actively working on persistence mechanisms for Java and required the submission of a position paper. From around twenty submissions seventeen were chosen. The papers cover the spectrum of persistence solutions that are currently being pursued in industry and academia. As we were initiatinga new workshop series and had to react quickly the arrangements were fairly informal. Malcolm Atkinson and Mick Jordan took responsibility for soliciting and selecting the material, inviting participants and organising the event.

The initial idea for the workshop came from Malcolm Atkinson, who leads the Persistence and Distribution Research group at Glasgow University. The idea was one of the first fruits of the collaborative research program that was initiated between Sun Microsystems Laboratories (SunLabs) and the Glasgow group in the fall of 1995. SunLabs sponsored the workshop to cover the attendees local costs.

Malcolm had previously been jointly responsible for starting the series of workshops on Persistent Object Systems, which meets bi-annually, with the last (POS7) meeting being in May of 1996. Given that forum, one might ask why we deemed a special Java-specific workshop to be necessary. The answer lies in the phenonemal growth of interest and acceptance of the Java language and platform, which is unprecedented in the history of computing. By the fall of 1995 this phenonemon was well established and we were beginning to see proposals for Java persistence mechanisms. It seemed important for Java persistence developers to meet at the earliest opportunity in order to compare strategies and develop consensus.

Our goal for the workshop was to gather together as many groups actively working on persistence as possible, in a forum that would provide the maximum opportunity for discussion and effective interaction. For the most part, we were successful in this endeavour. The workshop location provided an excellent environment for interaction and the participants clearly benefited from the intimate atmosphere, which contributed to some lively discussions. Our one concern, as with POS7, was the limited amount of industrial participation. However, given the frantic rush to develop products for Java, this is perhaps understandable.

At the conclusion of the workshop, we polled the attendees on whether we should hold a second workshop and if so, when. The unanimous response was "yes, next year". PJW2 will held in Half Moon Bay in the San Francisco Bay Area, California, 13-15, August 1997. We hope to further the original PJW1 goals and papers are sought on topics such as:

  • implementation techniques for persistent Java systems
  • analyses of performance or usability of persistent Java systems
  • analysis of projects using particular forms of persistence for Java
  • the influence persistence should have on future Java systems
  • new models of persistence for Java
  • comparison of models of persistence for Java
  • tools supporting application programming using persistent versions of Java

We hope to have a focused session on the ways in which the Java Virtual machine might be adapted to better support persistent implementations.

Further details may be found here

Malcolm & Mick 10 January 1997

The Papers

TITLE: Distributed Persistence in Java - or "Mommy, does the toaster have a hard drive ?"

AUTHOR(S): Ken Arnold

NOTES: This is not a paper. It is a collection of the slides Ken used for his talk at the workshop.

Full set of slides available in postscript and pdf format.


TITLE: A Java Application Programming Interface to a Multimedia Enhanced Object-Oriented DBMS

AUTHOR(S): Susanne Boll and Jurgen Waesch

ABSTRACT: Advanced multimedia applications call for integrated DBMS support, i.e., the integrated modeling, management, and interactive presentation of persistent multimedia documents. Generic services for the presentation of multimedia documents have to be made available at the database clients. This includes continuous data delivery, realisation of presentation layout, synchronisation enforcement, and an efficient interaction handling. In this paper, we propose a Java application programming interface (Java API) to a multimedia enhanced OODBMS. We follow a two-step approach: First, we implement access to persistent data managed by the core OODBMS. Second, we present the design of generic multimedia presentation services in Java. This Java API enables database client applications to access and to present multimedia documents persistently stored in the database. With our Java API platform-independent access to multimedia information stored in database systems is possible.

Full paper available in postscript and pdf format.


TITLE: Extensible Transaction Management in PJava

AUTHOR(S): Laurent Daynes

ABSTRACT: Persistent programming languages offer an attractive alternative ti the increasing number of applications whose needs cannot be satisfied with traditional database support. The requirement of these so called non-traditional applications have prompted the development of numerous transaction models whose semantics vary from the traditional transaction model as well as from each other. In order to minimise the investment to realise new transaction models, application builders must be offered a simple framework they can use to quickly define the transaction behaviour they want and incorporate it into the persistent programming system. This paper reports on our effort to augment PJava, an alternative platform for the Java language, with such extensible transaction management features. The aim is to allow on demand integration of user-defined transaction model to PJava while maintaining transaction independence. This means that the body of transactions of an arbitrary transaction model can be programmed using any available Java classes without any alteration to the original source and compiled form of these classes.

Full paper available in postscript and pdf format.


TITLE: Operating System Support for Java

AUTHOR(S): Alan Dearle, David Hulse and Alex Farkas

ABSTRACT: Over the last 15 years a number of persistent language systems have been produced whose implementation relies on the persistence mechanisms provided by an underlying operating system. We have produced an operating system called Grasshopper expressly designed to support orthogonally persistent systems. In this paper we demonstrate how the mechanisms provided by Grasshopper may be used to implement a persistent version of the language Java.

Full paper available in postscript and pdf format.


TITLE: Transactions for Java

AUTHOR(S): Alex Garthwaite and Scott Nettles

ABSTRACT: We present an implementation of transactions and general-purpose persistence for Java. Using our extensions Java programmers can manipulate any Java object transactionally; any changes made to these objects are made resilient to machine failure when the transactions commit. These extensions allow Java to be used directly in applications that demand high reliability; for example, network-basd banking. These additions extend Java's current emphasis on safety and reliability to the safe and consistent management of permanent state.

We have made changes to Java at both the level of the language design and throughout the Java implementation. Our additions take the form of syntactic extensions for transactions and runtime system support for durability and atomicity. The ability to make any object persistent is a key aspect of the design and we provide orthogonal persistence and persistence-by-reachability.

The results of running a simple transaction processing benchmark on our prototype shows that it can attain 41 TPS, just under half that possible given the disks in use. Furthermore, our results suggest several avenues for improvement and it seems feasible to achieve transaction rates that are very close to the limits of our disks.

Full paper available in postscript and pdf format.


TITLE: Accessing Warehoused Collections of Objects Through Java

AUTHOR(S): R.L. Grossman, D. Hanley, and S. Bailey.

ABSTRACT: Persistence is important in a number of different domains including programming languages, internet-programming languages, object-oriented databases, and data warehouses. The Java language is rapidly growing in popularity and provides a number of attractive features, including relative simplicity, support for objects, cross platform portability, and security. In this position paper we discuss some of the issues arising when using Java to access warehoused collections of persistent objects.

Object-oriented databases are designed to support the storing and retrieval of objects. The underlying assumption is that objects will be frequently inserted and updated. Object warehouses are designed to support the analysis of large collections of objects. The underlying assumption is that the data is read often and occasionally appended or updated. In some broad sense, object-oriented databases are shaped by issues related to transactions and referential integrity while object warehouses are shaped by issues related to performance and indexing.

Recently, object warehouses have grown in importance with the rise of data mining. Data mining is the automatic discovery of patterns, associations and anomalies in data. Object warehouses provide a convenient foundation for data mining, especially the mining of complex data or data with complex relationships.

In this paper, we describe our initial design and implementation for a preprocessor to Java called JTool which extends the Java language to support the creation and access of object warehouses. This is based upon our previous work on a low overhead, high performance persistent object manager we developed called PTool which was primarily used to create object warehouses. JTool trades some of the simplicity and performance of PTool for the saftey, portability and security of Java.

We begin by examining how PTool currently creates object warehouses. We then explain our current approach to supporting persistent for Java.

Full paper available in postscript and pdf format.


TITLE: Transparent Access to Legacy Data in Java

AUTHOR(S): Olivier Gruber

ABSTRACT: We propose in this paper an extension to PJava in order to provide a transparent access to corporate data (files, relational systems etc.). This extension relies on the concept of external object faulter which is conceptually close to the external pager one in operating systems. Our prototype shows the feasibility of our approach.

Full paper available in postscript and pdf format.


TITLE: A Selective Protection Scheme for the Java Environment

AUTHOR(S): D. Hagimont, S. Krakiowiak, J. Mossiere, and X. Rousset de Pina

ABSTRACT: This paper describes a protection scheme for the Java Environment. This scheme allows a programmer to specify the protection rights assigned to a class loaded from a remote site with respect to the local files. Protection is expressed in a high-level notation that extends the interface definition of the protected class. Protection is enforced by stubs that are automatically generated from the specification and that are interposed in front of the protected classes, with no possibility of by-passing. The scheme makes extensive use of the ability provided by the Java environment to redefine the class loaders, and relies in the use of "hidden" (i.e. invisible to the programmer) capabilities, a device previously proposed by some of the authors. Preliminary experiments have shown the feasibility of this method. The code of this system will be made freely available.

Full paper available in postscript and pdf format.


TITLE: Early Experiences with Persistent Java

AUTHOR(S): Mick Jordan

ABSTRACT: This paper reports on initial experiences with an orthogonally persistent variant of the Java platform, called Persistent Java (PJava). We review and reflect on the design of PJava and discuss compatibility with Java. The features and limitations of an initial prototype are discussed. The experiences gained in running four distinct applications on PJava are described in detail.

Full paper available in postscript and pdf format.


TITLE: Persistent Java Objects: A Proposal

AUTHOR(S): Ashok Malhotra

ABSTRACT: The database community talks about commercial databases in the petabytes. As databases start to store large objects such as X-Ray images and video clips this is certainly not inconceivable. We feel that garbage collection and persistence by reachability are not practical over such large databases with current technology. Also, Java applications must be able to work with a variety of stores each of which may offer their own style of persistence. Thus, while persistence by reachability offers significant usability advantages, we feel that in cannot be the only persistence mechanism for Java. This proposal combines persistence by reachability with persistence using explicit deletes. The differentiation is by heap, which allows the two mechanisms to be combined in a flexible manner.

Full paper available in postscript and pdf format.


TITLE: Can Java Persist ?

AUTHOR(S): Ron Morrison, Richanrd Connor, Graham Kirby and David Munro

ABSTRACT: This paper briefly and selectively reviews the experience gained in designing and implementing the othogonally persistent programming languages PS-algol and Napier88. The major design issue is how much is built into the support system and how much is built within the language itself. The PS-algol and Napier88 systems provide at the system or language level: a persistent store with root(s), reachability and referential integrity; code as data; and infinite union type with dynamic injection and projection; and two type magic procedures, one to find a type representation of a value, and one to convert a sequence of bytes into a language value. This provision allows the programming techniques of linguistic reflection, hyper-programming and persistent schema evolution, which are significant since they are new paradigms that are only available in orthogonally persistent systems. The essence of the paper is to suggest how the above facilities may be provided in Java to enable these new persistent paradigms.

Full paper available in postscript and pdf format.


TITLE: Approaches to Adding Persistence to Java

AUTHOR(S): J. Eliot B. Moss and Tony L. Hosking

ABSTRACT: We desribe and name a range of approaches to adding persistence to the Java programming language. Java is interesting in this regard not only because of the current excitement over it. Some relevant properties of Java include: its blend of static and dynamic features, its incorporation of object code into the environment, its offering of automatic storage management, its standardisation of the object code format, its broad (but not exclusive) use of object orientation, and its use of a standard library. In considering approaches to adding persistence to Java, we offer a preliminary evaluation of the advantages and disadvantages of the approaches, and describe some directions we are pursuing in our own developments. We hope our descriptions and evaluations will be useful to others in understanding the attributes of systems and designs to be discussed at the workshop, or considered thereafter.

Full paper available in postscript and pdf format.


TITLE: Persistent Java Issues From a Gemstone Perspective

AUTHOR(S): Allen Otis

ABSTRACT: This workshop submission is offered based on the author's experiences in developing and using GemStone, a multi-user persistent Smalltalk system. The authors are currently developing Java server products based on GemStone's storage manager technology and using Java under terms of Sun's commercial Java source code license.

Full paper available in postscript and pdf format.


TITLE: Disk Garbage Collection Strategies for Persistent Java

AUTHOR(S): Tony Printezis

ABSTRACT: This paper presents work currently in progress on Disk Garbage Collection issues for PJava, an orthogonally persistent version of Java. In particular, it concentrates on the initial Prototype of the Disk Garbage Collector of PJava0 which has already been implemented. This Prototype was designed to be very simple and modular in order to be easily changed, evolved, improved, and allow experimentation. Several experiments were performed in order to test possible optimisations; these experiments concentrated on the following four areas: a) efficient access to the store; b) page-replacement algorithms; c) efficient discovery of live objects during compaction; and d) dealing with forward references. The paper presents a description of the Prototype's architecture, the results of these experiments and related discussion, and some future directions based on the experience gained from this work.

Full paper available in postscript and pdf format.


TITLE: Persistent Java

AUTHOR(S): C. Souza dos Santos and E. Theroude

ABSTRACT: We report on the design and implementation of Persistent Java (hereafter PJ), a combination of the Java programming language with a relational database which brings persistence to Java objects in a transparent way.

We give an overview of the main functionalities of the PJ API. We describe the ongoing implementation of PJ on top of a JDBC compliant database interface. This includes the automatic mapping of Java classes to a relational database format and the transparent data transfer between a relational data store and the Java application heap.

We consider how the proposed architecture can be reused to combine Java with other data models such as the O2 data model, and, in particular, to implement a Java ODMG binding.

Full paper available in postscript and pdf format.


TITLE: Distribution Strategies for Persistent Java

AUTHOR(S): Susan Spence

ABSTRACT: Some of the features of the model of distribution which has already been proposed for PJava are considered in detail in this paper. Focus is put on global naming, support for a large degree of autonomy of stores, the setting of conditions on remote use of objects and the use of timeouts in the management of remote references. Use is made of a running example to illustrate how a programmer would utilise such distribution support and to bring out some of the issues which need to be considered in order to further refine PJava's model of distribution.

Full paper available in postscript and pdf format.


TITLE: Our SPIN on Persistent Java: The JavaSPIN Approach.

AUTHOR(S): Jack C. Wileden, Alan Kaplan, Geir A Myrestrand, John V.E. Ridgway.

ABSTRACT: The SPIN (Support for Persistence, Interoperability and Naming) framework was developed as a unifying conceptual foundation for integrating extended features in software systems. SPIN has previously been used as a basis for seamlessly integrating persistence, interoperability and naming capabilities in extended versions of the C++ and CLOS APIs of the TI/Arpa Open Object-Oriented Database (Open OODB). We are currently developing JavaSPIN, a seamless integration of persistence, interoperability and naming with Java. The foundations for JavaSPIN are the SPIN framework, the Open OODB kernel and Java itself. To minimise barriers to adoption, JavaSPIN will impose no modifications on the Java language or the Java Virtual Machine. To maximise opportunities for interoperability, JavaSPIN will have a persistence model and language-independent name management mechanism in common with the Persistent C++ and Persistent CLOS APIs of Open OODB 1.0. In this paper we discuss our goals for JavaSPIN, outline the JavaSPIN approach and sketch our plans for longer term development related to JavaSPIN.

Full paper available in postscript and pdf format.



Questions and comments to forest-info@sunlabs.com