Subject: Re: HDF and Java

From: Robert McGrath <[email-masked]>
Date: Tue, 02 Sep 1997 13:33:48 -0500

William Weibel wrote:
> 
> Hello,
> 
> Our group is interested in building a Java interface to HDF.
> Our dream is that this would be fully written in Java, and not
> simply wrapped around the C-based native HDF code.
> Is anyone else thinking along these lines?
> 

To give a more detailed response:

NCSA has now released the official wrapper.  Yes, we've thought
a lot about a pure Java implementation, but we didn't even
try.

We have not attempted to implement HDF in Java because the
HDF library is extremely large (> 100K lines of C). 
Much of the usefulness of HDF (compression, chunking, etc.)
is in the library code, not the disk format, so the Java
implementation would have to mimic the semantics of the
C code--a significant piece of reverse engineering.

Obviously, you might want to create Java classes for your 
favorite subset of HDF. One may wonder how easily 
the files would interoperate with the "regular" library.

Since HDF is, by definition, doing file I/O, a pure Java
version of HDF isn't likely to work well in a Java enabled 
browser in any case.

In general, we are pursuing an architecture in which the
C library and server classes reside where ever there is HDF
data, and Java applets access HDF files through remote
interfaces.  Thus the client side could be pure java, 
with the data wrapped with an impure Java/C server. 
We hope to have some standard classes like this available 
later this year.

-- 
Robert E. McGrath  (HDF Java Team Leader)
National Center for Supercomputing Applications
University of Illinois, Urbana-Champaign
Champaign, Illinois 61820
(217)-333-6549

[email-masked]

---

From: Robert McGrath <[email-masked]>
Date: Tue, 02 Sep 1997 13:46:09 -0500

William Weibel wrote:
> Thank-you
> William Weibel

Sorry if this is a repeat, I'm learning a new newsreader.

NCSA has just released the "official" wrapper for the
C library.  
   http://hdf.ncsa.uiuc.edu/java-hdf-html/

Yes, we've thought a lot about a pure Java implementation.  
But we aren't attempting to do this at this time.

  * The HDF library is huge (> 100K lines of C).  Many
     of the useful features (compression, chunking, data
     conversion across platforms) are in the library,
     not the files.  So you need to mimic the C code,
     which is a big project.

  * HDF is doing I/O, so a pure Java implementation still
     won't work in most browsers.

Our general approach is to work toward an architecture
where there is a wrapped library wherever there are are
HDF files to access.  Clients would use applets that
access HDF through remote interfaces.  The clients can
be pure java and downloadable applets.  The data comes from
impure C/Java servers.

Obviously, someone could write their own classes for their
favorite subset of HDF.  Assuring interoperability could
be tricky, though.

[email-masked]