Introducing Project Royal Jelly - Java for Fixed Content
Project Royal Jelly is a new project to add interfaces which allow Java to be used in the Data Path of storage devices. One of the standards we will be leveraging is the storage industry standard XAM interface for fixed content.
An initial code drop has been made at the project web site.
Sun has taken the core of its fixed content storage appliance - the Sun StorageTek 5800 digital archive storage system, and open sourced it to this new community. The source drop can be accessed here.
The press release has more information about where and why we did this donation. For this community, however, we would really like to focus on how to use Java to add value to storage. Almost every solution that I've seen in this space treats the storage device as a dumb repository of bits. What we'd like to enable, however, is the ability to add various smarts to storage devices in an open, standards based and portable manner.
As such we will be leveraging the eXtensible Access Method (XAM) standard just now being completed in the Storage Networking Industry Association (SNIA). This API allows applications to work against any fixed content storage device interoperably. Besides storing the application data, the application can "tag" that data with metadata specific to the application. That User Metadata can then be queried for later in order to access the data. In addition, XAM defines System Metadata that is interpreted by the underlying storage device to provide data services such as retention (used for compliance) to the data and metadata.
XAM itself consists of an Architecture specification and two API documents: a C Language binding and a Java Language binding. The Java binding is what we hope will be leveraged here. By writing Java components that leverage Java Enterprise infrastructure and both implement and use this standard (as well as extensions), various functions can be performed in the data path between the application and the actual storage repository. That is the work for which we have formed this community. Please consider joining the project and helping out.