By pmonday on Oct 11, 2007
XAM helps to standardize the architecture of the API as well as specific language bindings for the API. With the architecture and API specifications at 0.65 to 0.69, there is obviously going to be changes to the architecture and APIs as it moves closer to release. Still, it is a great start with obvious promise.
The API itself is worked on by a broad range of companies that provide storage solutions (EMC, HP, not to mention Sun Microsystems). Application authors are also a part of the TWG membership to ensure there is an end to end view of the architecture. The XAM Architecture itself provides a top-end API for application vendors as well as a bottom end API for participation by storage vendors. Within the architecture are query capabilities and standardized properties that are a part content addressable storage systems.
I know this part may bore a bunch of folks, but here is an example of submitting a query that returns a list of all XSet objects (objects that contain metadata and data) residing on a storage system.
String sQueryCommand = "select .xset.xuid";
XSet qXSet = sys.createXSet(XSet.MODE_UNRESTRICTED);
qXSet.createProperty(XSet.XAM_JOB_COMMAND, true, XSet.XAM_JOB_QUERY);
XStream vXStream = qXSet.createXStream(XSet.XAM_JOB_QUERY_COMMAND, true, "text/plain");
System.out.println("Closed query stream");
XUID queryXuid = qXSet.commit();
The results get stored in the qXSet and can be read. The application can then go back and talk to each separate XSet for more information about it or to grab content from the object.
So, as you're milling around the demo area next week at SNW, look for one of these: