This chapter provides an introduction to the SunTM StorageTekTM 5800 System client Software Development Kit (SDK) and its components.
The following topics are discussed:
The 5800 system client SDK enables you to work with data and metadata stored on a 5800 system. A 5800 system system emulator is included for the developer's convenience.
This document assumes that you have a basic understanding of how the 5800 system uses data and metadata. For more information, see 5800 System Semantics Overview.
The SDK comes with an emulator that enables you to test client applications without having to connect to a 5800 system. For further documentation on the emulator, see Chapter 3, Sun StorageTek 5800 System Emulator. Also refer to the Sun StorageTek 5800 System Administration Guide to better understand the type of server being emulated.
The SDK provides separate Application Programming Interfaces (APIs) for the JavaTM and C languages. These APIs enable you to store and retrieve data and to store, retrieve, query, and delete metadata records.
For more information on the Java and C APIs, refer to the Sun StorageTek 5800 System Client API Reference Guide. Also, see Chapter 2, Example Applications. For known bugs, see the Sun StorageTek 5800 System Release Notes.
The 5800 system client SDK is released to you under the following copyright notice:
“Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.”
License terms are contained in the file StorageTek_5800_SLA&Entitlement&PRN.txt in the top-level directory of the installation. Licence terms for embedded software are in the file LICENSE.txt in the same directory.
The 5800 system client SDK distribution includes a Java distribution (Java examples and Java libraries), a C distribution (C examples and libraries), and the 5800 system emulator. All parts of the SDK support Solaris, Linux, and Windows environments.
The Java and C example programs serve both as examples of how to program a client application and as generally useful utilities in their own right.
The contents of the .zip archive include:
This release supports the following operating systems:
Red Hat Enterprise Linux 4 (32 bit)
Red Hat Enterprise Linux 4 (64 bit)
Solaris 9 SPARC
Solaris 10 SPARC
Solaris 10 x64 and x86
Windows 2003 Server (32 bit)
In order to use the 5800 system C API, the following software is required:
Solaris: Sun Studio
Windows 2003 server:
Microsoft Visual C++ Express Edition 2005
Microsoft Windows SDK
Cygwin (See http://www.cygwin.com)
The 5800 system SDK is compressed in a file with a name similar to StorageTek5800_SDK_1_1-20.zip, where 1_1-20 refers to the version (1_1) and build number (20). This .zip file expands into a directory StorageTek5800_SDK_1_1-20, which contains the entire SDK.
This section provides an overview of 5800 system semantics.
The 5800 system stores two types of data: arbitrary object data and structured metadata records. Every metadata record is associated with exactly one data object. Every data object has at least one metadata record. A unique object identifier (OID) is returned when a metadata record is stored. The OID can later be used to retrieve the metadata record or its object data. In addition, metadata records can be retrieved by a query:
OID ↔ Metadata Record -> Object Data
The two types of metadata are system metadata and user metadata. The names and types of system metadata are predefined and cannot be overridden by the user.
A user metadata record consists of a set of attributes. The set of possible attributes is defined by the schema. Only one schema exists for each 5800 system. For information on configuring a schema, see “Configuring Metadata and File System Views” in Sun StorageTek 5800 System Administration Guide.
The 5800 system emulator loads its schema from an XML file. The metadata_merge_config utility can be used to extend the default schema, appending the new entries to the original schema, which is then read by the emulator. For additional information, see Chapter 2, Example Applications and Chapter 3, Sun StorageTek 5800 System Emulator.
For information on the valid data types that you can use when specifying attributes in a schema, see “Configuring Metadata and File System Views” in Sun StorageTek 5800 System Administration Guide.
A namespace is a container that holds a set of typed attribute names. Attribute names must be unique within a given namespace. Defining a namespace is a way to organize and group together a set of related attribute names for a given application. For more information, see “Configuring Metadata and File System Views” in Sun StorageTek 5800 System Administration Guide
The 5800 system Java and C APIs both have a Query method that passes a query string to the 5800 system. Queries are presented to the name-value metadata cache.
For more information on the 5800 system query language, see Chapter 4, Sun StorageTek 5800 System Query Language, in Sun StorageTek 5800 System Client API Reference Guide.
You must deploy honeycomb-client.jar with any application using the Java API. If you are using the SDK example applications, you must also deploy honeycomb-sdk.jar.
The files in the lib directory must be deployed with any application using the C API. Different lib directories exist for different operating systems. You must use the correct lib directory for the OS under which the application is deployed. The LD_LIBRARY_PATH environment variable must be set accordingly for Unix systems. In the Windows environment, you must update the PATH environment variable.