|
| United States Worldwide |
|
First International Workshop on Persistence and Java(tm) (PJW1)16th - 18th September 1996Sponsored by Sun MicrosystemsPrefaceThese 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:
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 1997The 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 | ||||||||||||||||||||||