Java-based Scientific Data Objects


Phil Andrews Manager, Data Intensive Systems

Pittsburgh Supercomputing Center, 4400 Fifth Ave, Pittsburgh Pa 15213, USA

EMail:andrews@psc.edu Last modified: Fri May 30 16:53:33 EDT
ABSTRACT:

The problem of portable data storage has been approached, attacked, and wrestled to the ground numerous times in the history of computing, but never totally subdued. With the advent of enormous computing efforts that are external to the scientific community, we believe it is time for a paradigm shift in the problem's approach.

Conventionally, specific data formats are designed and associated access mechanisms implemented. Extensions of these formats and porting efforts to other hardware and software platforms are an ongoing obligation of the supporting organization.

We believe that the actual data formats should be of concern only to the originator of the data and should not be specified in any manner; only an interface which allows access to the data. Portability, compression should be free.

Two months ago SUN released the Java Development Kit version 1.1, which had several new features used in our effort. These features can be used to provide a JAR file that contains not only the scientific data, but also the methods which provide access.

Only the Interface is standardised, the data itself can be stored in any format whatsoever, or may even be generated on the fly.

We have had access to the software for only a short time, but we have a very simple prototype running.

KEYWORDS:
Data Formats, Java

Co-Author: Joel Welling

This talk is online at http://www.psc.edu/~andrews

Introduction: the Pittsburgh Supercomputing Center

What is Java ?

System-independent object-oriented programming language. Lots of support/interest/religious fervour. Java compiled code is meant to be shipped between machines and run on a local JVM. Possibility of supplying both data and access methods.

Some new Java capabilities with JDK 1.1

How would Java data objects be different ?

Specify only an interface, i.e. form of methods that can be used to deliver, convert or display data. Interfaces can be implemented (form of multiple inheritance) and extended.

To java, code can be data, so class methods can be specified:

Advantages of this approach:

How to make a Jar file on a Supercomputer

Our Simple POP Demo

Our prototype application

I have embedded an applet in this talk which can open a JAR file and use the included classes to access the data. However it will probably not work for you because:

The ClassLoader works fine from an application (as I showed at the meeting) or if the file protocol is used for loading.

Click on vortices.jar to download the test jar file to your local machine.

If you're not using a JDK 1.1 browser, nothing will appear below.

Your browser does not support Java (to a sufficient level) if this text appears.

We'll check into the security conflicts of using an extended ClassLoader with a browser and look for a workaround.