The5800 system Java client library provides a platform-independent mechanism to upload data
andmetadata to a 5800 system, and to retrieve and query the data and metadata. The Java client
libraryworks with any implementation of J2SETM platform 4.0 or later with HTTP connectivity
tothe 5800 system cluster. Access is designed to be high-level and easy to use. Most operations
areaccomplished in a single (synchronous) function call.
Interfaces
TheJava client API interacts with the 5800 system server entirely through an HTTP protocol.
TheHTTP communication layer uses the Apache Commons HTTP client.
Objectdata is streamed through the Java client library opaquely and a well-dened data hash is
returnedfor verication purposes. Metadata is added or retrieved with typed accessors. The
storedrepresentation of metadata on the 5800 system server is not exposed to the user, and no
hashis returned when metadata is stored.
The5800 system Java client library provides the NameValueObjectArchive class as an
applicationaccess layer, which should be appropriate for most applications. In addition, an
advancedinterface provides a mechanism to customize the 5800 system and to serve as a toolkit
tobuild new applications.
Note– The advanced toolkit is not described in this document. If you are interested in pursuing
advancedapplications, contact your 5800 system Sales Representative.
Retrying Operations
Callsto the Java API should be wrapped with retry logic so that their applications are resilient to
transientfailures that may be experienced when a node or switch fails while servicing an
operation.
Requeststhat fail on recoverable HTTP errors are automatically retried once. A typical
recoverableerror occurs when the 5800 system HTTP server times out a connection that the
clientthen tries to reuse (the client maintains a collection pool). This results in a connection
failureat request time. Because this is a recoverable error, it is retried and the retry typically
succeeds.
Performanceand Sc alability
Startingthe Java Virtual Machine (JVM) incurs a performance penalty, but once the JVM is
running,you can use the client object archive repeatedly and from multiple threads. I/O is
synchronous(blocking). HTTP connections are pooled for performance. You should
instantiateone instance of the NameValueObjectArchive per 5800 system server and use it for
allaccess to that server until exit.
Overviewof the 5800 System Java Client API
SunStorageTek5800 System Client API Reference Manual • June 200826