Sun StorageTek 5800 System Client API Reference Manual

Key Classes

This section provides an overview of the following key classes in the 5800 system Java client API. For more information on using the following classes, see Basic Concepts. Also see the Javadoc provided with the 5800 system SDK.

For more information on using these classes, see Basic Concepts.

NameValueObjectArchive

The NameValueObjectArchive class is the main entry point into the 5800 system. Each instance of NameValueObjectArchive provides access to a specific 5800 system server, functioning as a proxy object on which operations can be performed. Multiple simultaneous operations can be accomplished in separate threads on the same NameValueObjectArchive instance. Communication with the 5800 system server is entirely by means of HTTP requests. A pool of HTTP connections is maintained for efficiency.

A NameValueObjectArchive instance enables you to store, retrieve, query and delete object data and associated metadata records. Metadata is associated with an object in a set of name-value pairs (see NameValueRecord). Metadata records can be used to associate application-specific information with the raw data, such as name, mime type, or purge date. Metadata records consist of structured data that can be queried. Object data is opaque to the 5800 system.

A NameValueObjectArchive instance always ensures that a metadata record is created on the 5800 system server for each newly stored object, even if no metadata is provided with the store. This enables a model of programming where every stored data object is accessed by name-value metadata records (for example, for examining results from queries or performing delete operations). Object data is never deleted directly; it is deleted when its last referencing metadata record is deleted.

For additional information, see NameValueObjectArchive Application Access.

NameValueSchema

An instance of NameValueSchema represents information about the name-value metadata that the 5800 system system uses to index data. This instance can be used to enumerate the fields available in the schema as attributes. Each attribute has a name and a type.

See the Sun StorageTek 5800 System Administrator’s Guide for information on how to define attributes.

ObjectIdentifier

Instances of ObjectIdentifier uniquely represent objects in a 5800 system store. The 5800 system creates these instances when objects are stored and are returned to the client as part of the store result.ObjectIdentifier instances can be stored outside of the 5800 system and used later for retrieving objects. External storage can be accomplished using an identifier's string representation by invoking the toString method. An instance of ObjectIdentifier can be reconstituted using the constructor that takes String as an argument.

QueryResultSet

Instances of QueryResultSet provide access to the objects and metadata matching a query. The query results can be stepped through using the next method. The individual results are identifiers representing objects that match the query.

If selectKeys was specified in the original query, these metadata fields can be accessed using the typed getter methods with each field’s name.

SystemRecord

Instances of SystemRecord represent the system metadata for an object, including OID, object size, SHA1 hash, and creation time. They are returned by storeObject and storeMetadata.

NameValueRecord

Instances of NameValueRecord represent metadata used by the 5800 system to store and index user-extensible lists of name-value pairs. For convenience, instances of NameValueRecord also contain references to the SystemRecord instances of the objects they represent.