|
ISAM
connectivity is provided through JNI (Java Native Interface), permitting Java code to
access ISAM as if it were just another Java API. Original native code ISAM will execute and
access ISAM data through ISAMJ technology.
ISAMJ is distributed in two parts: the Java component and the JNI
native component. The Java component is common regardless of platform. The Java interfaces
and Java classes are accessed on any supported platform.
ISAMJ Java
ISAMJ is an interfacing product, with interfaces between a
Java program and any dynamically loadable C-ISAM compliant library (D-ISAM or
ObjecTrieve). It does no ISAM functionality itself, but rather dispatches the calls
to a native code plug-in following C-ISAM conventions. All the standard C-ISAM functions
are available as methods in Java; the JNI handling is done by ISAMJ. The important point
is that the C-ISAM library must be dynamically loaded, not statically linked; that is, a
.dll, .so or .sa is acceptable for native code, not an .obj or .o file.
The ISAMJ Java side has two interface layers, a low-level and a high-level interface.
The low-level interface closely matches the original ISAM specification, including
functions such as isaddindex and iserase. The high-level interface more
closely resembles existing Java API's, encapsulating the ISAM function in a more
object-oriented framework; classes such as ISAMFile extends File and ISAMRecord which may
be extended by user record classes.
The low-level functionality is encompassed within the ISAM and ISAMConstants
classes.
The high-level functionality is encompassed within the ISAMFile, ISAMRecord,
ISAMKey, ISAMAudHead, ISAMDictInfo and ISAMConstants classes.
ISAMJ Native
The ISAMJ native component implements a JNI interface used
by the Java and accesses a native code shared library which implements the ISAM
functionality. Java native code must be in shared library/shared object form (.DLL in
Windows). The ISAMJ native component accesses this shared library, passing requests and
data from Java to the native ISAM driver.
ISAMJ Deliverables
ISAMJ includes the high- and low-level functionality .class
files (Java executables). ISAMJ also includes the native isamj.dll or libisamj.so
connector components. This connector component is unique to each platform, currently
available for Windows and Solaris; other platforms are available upon request.
ISAMJ Dependencies
ISAMJ does not include ISAM functionality itself; this must
be provided by a third party (such as Byte Designs D-ISAM). File created and accessed
using ISAMJ may be created and accessed using Java programs, while the data is in the
original binary datafile format. The native ISAM drivers tested include D-ISAM and
ObjecTrieve; of these two, only D-ISAM provides variable length as well as fixed length
functionality.
ISAMJ includes the JavaDoc documentation of
the classes, the format most used for Java class documentation and is in
a format familiar to Java programmers.
|