extensible Access Method (XAM) - a new fixed content API Mark A Carlson, SNIA Technical Council, Sun Microsystems, Inc.

Similar documents
The Storage Networking Industry Association (SNIA) Data Preservation and Metadata Projects. Bob Rogers, Application Matrix

Storage Industry Resource Domain Model

XAM over OSD. Sami Iren Seagate Technology

Interoperable Cloud Storage with the CDMI Standard. Mark Carlson, SNIA TC and Oracle Co-Chair, SNIA Cloud Storage TWG

Interoperable Cloud Storage with the CDMI Standard. Mark Carlson, SNIA TC and Oracle Chair, SNIA Cloud Storage TWG

Information Management Extensible Access Method (XAM) Part 3: Java API

OSD-2 & XAM. Erik Riedel Seagate Technology May 2007

Cloud Archive and Long Term Preservation Challenges and Best Practices

EMC Centera CentraStar/SDK Compatibility with Centera ISV Applications

SNIA Cloud Storage TWG

SRM: Can You Get What You Want? John Webster, Evaluator Group.

SRM: Can You Get What You Want? John Webster Principal IT Advisor, Illuminata

Object-based Storage (OSD) Architecture and Systems

The Need for a Terminology Bridge. May 2009

Copyright 2011, TeraMedica, Inc.

SNIA/DMTF Work Register. Version 1.4

SNIA/DMTF Work Register. Version 1.3

Multi-Cloud Storage: Addressing the Need for Portability and Interoperability

Rocket Software Rocket Arkivio

The Secret Sauce of ILM

How to Participate in SNIA Standards & Software Development. Arnold Jones SNIA Technical Council Managing Director

LTR TWG & the Cloud PRESENTATION TITLE GOES HERE

Managing Born- Digital Documents.

CERTIFICATION SUCCESS GUIDE ENTERPRISE ARCHITECT FOR JAVA 2 PLATFORM, ENTERPRISE EDITION (J2EE ) TECHNOLOGY

Errata in Information Management Extensible Access Method (XAM) Part 3: Java API v1.0. SNIA FCAS TWG, June 16, 2009 Approved Version

Copyright and Trademark Information Trademarks Disclaimer; No Warranty

Promoting Open Standards for Digital Repository. case study examples and challenges

Driving Interoperability with CMIS

Testing for Reliable and Dependable Health Information Exchange

Software Defined Storage. Mark Carlson, Alan Yoder, Leah Schoeb, Don Deel, Carlos Pratt, Chris Lionetti, Doug Voigt

Gone Fishing with Swordfish: Extending Data Center Control to the World of Storage

NIEM. National. Information. Exchange Model. NIEM and Information Exchanges. <Insert Picture Here> Deploy. Requirements. Model Data.

archiving with the IBM CommonStore solution

CDMI Support to Object Storage in Cloud K.M. Padmavathy Wipro Technologies

IBM Rational Developer for System z Version 7.5

Storage Virtualization II Effective Use of Virtualization - focusing on block virtualization -

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

Trends in Data Protection CDP and VTL

IBM Spectrum Control. Monitoring, automation and analytics for data and storage infrastructure optimization

Please give me your feedback

SDD Proposal to COSMOS

Virtualization Management APIs: VMware, DMTF & Xen

Service Mesh and Microservices Networking

Introducing Microsoft s commitment to interoperability (Office, Windows, and SQL)

Basic Profile 1.0. Promoting Web Services Interoperability Across Platforms, Applications and Programming Languages

The File Systems Evolution. Christian Bandulet, Sun Microsystems

WEB-202: Building End-to-end Security for XML Web Services Applied Techniques, Patterns and Best Practices

Connect and Transform Your Digital Business with IBM

SEMANTIC SOLUTIONS FOR OIL & GAS: ROLES AND RESPONSIBILITIES

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

IBM Records Manager Version 8.5. Designing a DoD Compliant Solution

SAPERION Records Management

Trends in Data Protection and Restoration Technologies. Mike Fishman, EMC 2 Corporation

Best Practices in Designing Cloud Storage based Archival solution Sreenidhi Iyangar & Jim Rice EMC Corporation

Eclipse Lyo Overview. Michael Fiedler, Eclipse Lyo committer IBM Corporation

Red Hat OpenStack Platform 10 Product Guide

Storage Virtualization II. - focusing on block virtualization -

Parallel File Systems. John White Lawrence Berkeley National Lab

VISION Virtualized Storage Services Foundation for the Future Internet

Eclipse Lyo: Re-thinking tool integrations

Data Virtualization Implementation Methodology and Best Practices

Agent-Enabling Transformation of E-Commerce Portals with Web Services

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

Trends in Data Protection and Restoration Technologies. Jason Iehl, NetApp

Effective Storage Tiering for Databases

IBM Advantage: IBM Watson Compare and Comply Element Classification

Dictionary Driven Exchange Content Assembly Blueprints

EMC DOCUMENT SCIENCES INTERACTIVE DOCUMENT DEVELOPMENT KIT

An Archiving System for Managing Evolution in the Data Web

Combining SNIA Cloud, Tape and Container Format Technologies for the Long Term Retention of Big Data

Format Technologies for the Long Term Retention of Big Data

TIBCO Nimbus. Installation Planning Guide. Software Release July 2017

Discover, Relate, Model, and Integrate Data Assets with Rational Data Architect

Database Binding Component User's Guide

Internet Application Developer

Data Deduplication Methods for Achieving Data Efficiency

Scalable Platform Management Forum. Forum Status 10/30/2014

Single Instance Storage Strategies

IBM API Connect: Introduction to APIs, Microservices and IBM API Connect

Release Notes March 2016

Content Addressed Storage (CAS)

Use Cases for Argonaut Project -- DRAFT Page

Don't Judge an LDAP Server By Its Name SHARE Orlando

DKAN Open Data Platform

Tutorial. A New Standard for IP Based Drive Management. Mark Carlson SNIA Technical Council Co-Chair

Introduction to Swordfish: Scalable Storage Management

ODMG 2.0: A Standard for Object Storage

TABLE OF CONTENTS DOCUMENT HISTORY 3

Glossary of Exchange Network Related Groups

Addendum 1. APPENDIX B - Technical Information / Requirements Records Management Solution Capabilities. Questions. Number

Next-Generation SOA Infrastructure. An Oracle White Paper May 2007

Applying Auto-Data Classification Techniques for Large Data Sets

Deploying Public, Private, and Hybrid. Storage Cloud Environments

Open-source library and tools to support the OVF.

Dip your Toe in the Water: A Swordfish Introduction

VMware ESX Server 3i. December 2007

ISO INTERNATIONAL STANDARD. Information and documentation Managing metadata for records Part 2: Conceptual and implementation issues

A Foxit Software Company White Paper

Integrity 10. Curriculum Guide

Strategies for Single Instance Storage. Michael Fahey Hitachi Data Systems

Transcription:

extensible Access Method (XAM) - a new fixed content API Mark A Carlson, SNIA Technical Council, Sun Microsystems, Inc.

SNIA Legal Notice The material contained in this tutorial is copyrighted by the SNIA. Member companies and individuals may use this material in presentations and literature under the following conditions: Any slide or slides used must be reproduced without modification The SNIA must be acknowledged as source of any material used in the body of any document containing material from these presentations. This presentation is a project of the SNIA Education Committee. 2

Abstract extensible Access Method (XAM) - A new fixed content API XAM Provides: Interoperability: Applications can work with any XAM conformant storage system; information can be migrated and shared Compliance: Integrated record retention and disposition metadata, ILM Practices: Framework for classification, policy, and implementation Migration: Ability to automate migration process to maintain long-term readability Discovery: Application-independent structured discovery avoids application obsolescence. Learning Objectives: For Storage Vendors: what is needed to implement a XAM interface (VIM) to their products; For Application Vendors: what it means to have a standard interface for supporting any fixed content storage device; For End Users: the value of vendor choice in fixed content applications and storage devices. 3

Topics What is Fixed Content? What is MetaData? What is SNIA doing? What is XAM? XAM API XAM SDK

What is Fixed Content? A type of data classification that indicates the bits are no longer changing Classifying this way enables storage systems to meet the requirements of this type of data Most data is created fixed Photos, videos, published/emailed documents, etc. 70-90% of data becomes fixed at some point Even transactional data becomes fixed typically within a week Fixed content data is GROWING at 90% year over year

What is Metadata? Metadata allows for the creation of selfdescribing objects Self-describing objects enable content portability across client applications Metadata and location independence enable ILM across the managed storage resources Intelligent decisions can be made to allocate specific content types to specific storage resources OBJECT Date: 2006/09/15 Patient: John Doe Content Class: X-RAY

The need for MetaData Standards Which can contains corn? Open the cans. How much does it cost? Ask the clerk. How many calories does it have? Ask the vendor. How does the store automatically manage inventory? They can t.

MetaData Standards Standardized labeling allows multiple vendors to consistently represent information to consumers Extended labeling for LOB uses

Use of MetaData Standards Writes content and annotates it with metadata, in this case: to, from, roles, subject and number of attachments Email Service Metadata accompanies content Content Email Analysis Program Email object stored by XAM SDK com.acme.email.from = bugs bunny com.acme.email.from.role = analyst com.acme.email.to = daffy duck com.acme.email.to.role = trader com.acme.email.subj = what s up doc? com.acme.email.numattach = 2 { Email contents } { Attachment #1 } { Attachment #2 } Can access Email metadata and, without the help of the Email Service, analyze whether the sender is allowed to send to the recipient. For example, a stock analyst may not be allowed to send information to a trader. XAM specifies how metadata is represented, but not the actual metadata field names and values. Further work is needed to standardize metadata names and allowed values for application domains like Email, Health, and Document Management.

SNIA Standards and Technology SNIA XAM Standard Activities Your partners and competitors are already participating Don t be left out! The SNIA XAM Initiative is chartered to drive adoption of XAM specification, and ensure that the specification fulfills market needs for a fixed content data management interface standard The SNIA Fixed Content Aware Storage Technical Work Group (FCAS TWG) is the a center of technical activities related to new application-level interfaces for storage of unchanging data (fixed content) and associated metadata The SNIA Software Development Kit Technical Working Group (XAM SDK TWG) is chartered to develop SNIA Software which implements current and future versions of the XAM Specification(s)

Information independence for applications and storage XAM makes this possible As seen at SNW Spring Multi-Vendor demonstration based on XAM Commercially Available Applications Custom Application Records & Document s (Vignette) Disk Extender (EMC) RIM4DB/ Outerbay (HP) Photo Editor (Sun) XAM Interface XSET Browser Contributed Utilities HP RISS EMC Centera Sun XAM Query Tool

What is the XAM Initiative? The XAM initiative is a SNIA Initiative driven by the storage industry to define and promote adoption of a standard application programming interface (the XAM API) between Consumers (application and management software) and Providers (storage systems) of Fixed Content storage services

What is XAM? XAM is a SNIA Architecture The XAM Architecture spec defines the normative semantics of the API for use by applications and implementation by storage systems XAM is an Application Programming Interface (API) The XAM Java API spec defines the binding of the XAM Architecture to the Java Language The XAM C API spec defines the binding of the XAM Architecture to the C Language XAM is SNIA Software The XAM SDK provides a common library and reference implementation to promote widespread adoption of the standard

Why XAM? The industry will benefit from a standardized access method to Fixed Content End Users want: Choices between Application Vendors Choices between Storage Vendors Easy migration between vendors/technology Compliance, Scalability, Performance, $/GB, TCO Application Vendors want: Annotate Data with associated Metadata Indicate basic Storage Management Policies Speak same language to all types of Devices Manipulate billions if not trillions or records XAM Storage Vendors want: Application Support for their Products Efficiently Store Application Data and Metadata Integrate Basic Storage Management Capabilities Manage billions if not trillions of records

XAM is a Data Storage Interface User MetaData Data MetaData Data Storage Interface User MetaData Data Data System MetaData Data Storage Interface System MetaData Resource Domains are a way of classifying services into specific areas that each deal with a different aspect of the problem An information domain application creates data and associates MetaData with it Certain Data Storage Interfaces can accommodate both Data and MetaData ( XAM, Filesystems with extended attributes) MetaData aware Data Services interpret Data System MetaData as the requirements for it s lifecycle and implement policies for retention, placement, lifecycle, etc. Other Data Storage interfaces (based on blocks or objects) provide virtualized Containers for the Data bits and the management of those containers Storage services are employed to meet those requirements at this point in the data s lifecycle, however the storage services are unaware of the data s requirements

XAM Data Storage Interface XAM is the first interface to standardize system metadata for retention of data XAM implements the basic capability to Read and Write Data (through Xstreams) XAM has the ability to locate any XSet with a query or by supplying the XUID XAM allows Metadata to be added to the data and keeps both in an XSet object XAM uses and produces system metadata for each XSet For example Access and Commit times (Storage System Metadata) XAM User metadata is uninterpretable by the system, but stored with the other data and is available for use in queries Given this we can see that XAM is a data storage interface that is used by both Storage and Data Services (functions) But it also uniquely specifies Data System Metadata for Retention Data Services

XAM System MetaData XAM specifies property fields that are interpreted by an Xsystem as System MetaData It does this by using a reserved field namespace.xam.*,.xsystem.* and.xset.* are reserved Either the Content Application or a separate Information Management application can manipulate these fields to cause the underlying system to treat the data according to the specified requirements i.e. Retention

Data Storage Interface Standards Other standard data storage APIs have the ability to deal with metadata as well (POSIX filesystems) POSIX specifies standard system metadata as part of the data storage interface: File times, Permission (including ACLs), owner, group, etc. This metadata is maintained and used (interpreted) by the storage services that implement the API Thus we call it storage system metadata The functions that are controlled by this metadata govern the storing and retrieval of the data through the interface These functions are described in the abstract as storage services

Metadata Storage services may provide functions for metadata as part of the data storage interface. This is an important capability for managing Data Resources (as opposed to managing Storage Resources). The metadata may be managed by the storage service, managed by data services, or un-interpreted by either. System metadata that is managed by storage services are those properties of a data element that pertain to the primary functions of storing and retrieving the data. We call this storage system metadata, as it is used and managed by storage services. Other system and user metadata may be preserved on the basis of individual data elements, but is not interpreted by the storage services

Metadata for Data Services Metadata available through the data storage interface may also be managed by data services This data service metadata can be used by data services to provide differentiated value to individual data elements The model or schema for data service metadata may be defined by each data service and may be standardized

Metadata in Information Services The role of metadata in information services is as a communication mechanism with the underlying storage services and data services. Information services are primarily concerned with the data service system metadata as a means to convey the data s requirements to the underlying data services. An information service may also interpret user metadata for purposes of data classification. An information service can create its own user metadata that is un-interpreted by the underlying services for its own use.

The Resource Domain Model This model shows the logical layering of the different domains and the role of policies for each domain. The services in each domain play a different role, but leverage common, standard interfaces

XAM SDK TWG Charter Develop SNIA Software that implements the XAM Library. Develop SNIA Software that implements a Reference Vendor Implementation Module (VIM) on top of an existing filesystem. Develop sample XAM Client Applications as SNIA Software to provide simple unit tests for portions of the XAM Specification(s). Develop documentation as appropriate for the above deliverables.

XAM SDK Quick Review The XAM SDK is dynamically linked by each application wishing to connect to and use XSystems. Application Connect() XAM Library XAM Library Fields Reference VIM XAM Library Vendor A VIM... XAM Toolkit Vendor X VIM XAM API VIM API VIM = Vendor Interface Module XSystem The XAM SDK includes several components: XAM Library, which implements the XAM API functions Reference VIM, which implements the reference behavior of an XSystem a framework which allows plug-able Vendor VIMs optional XAM Toolkit Libraries for convenience functions

Proliferation Questions XAM C/Java API Spec SDK Ecosystem XAM Library XAM Toolkit Standardization Process Development & QA Reference VIM Vendor A VIM... Vendor X VIM Integration & Distribution Interoperability Certification Licensing Schema XAM Arch Spec VIM API (part of the language binding) Support & Maintenance

The Low Hanging Fruit XAM API Spec XAM Toolkit Developed, Supplied & Supported by any 3rd Party (incl. Vendors, ISVs etc) XAM Library Shipped with Operating Systems Reference VIM Vendor A VIM... Vendor X VIM Supplied & Supported by Individual Vendors of XAM Storage Systems XAM Arch Spec VIM API Spec

XAM SDK Proliferation - Summary SNIA s FCAS TWG maintains and periodically publishes set of normative XAM standard specs... SNIA s XAM Software TWG Develops and Maintains betaquality Gold Distribution of XAM SDK under BSD License SNIA s Member Companies (e.g. EMC, IBM, HP, HDS,...) derive their individual product-quality XAM SDK Derivatives from SNIA s Gold Distribution ISVs Integrate and certify their apps with a chosen Member Company s XAM SDK Distribution ISVs, Member Companies ship their products to End-Users with certified interoperability guarantees

The XAM SDK developing XAM Library software XAM consists of a set of components. The topmost library will contain the public XAM interfaces; thus, only the topmost library will be directly referenced by applications that wish to integrate with the XAM API. Extension libraries may also be provided which implement higher levels of functionality (e.g., placing an export method, an import method, and a delete method in series to create a move function). When such libraries are provided, applications may wish to reference these libraries as well. The actual implementation of the interfaces will be in the VIMs (Vendor Interface Modules). A XAM Library may utilize one or more VIMs. Components will be produced in both C/C++ and Java

Design Goals Provide a generic interface for applications XAM API methods have the same syntax and semantics without regard to the underlying storage. No methods exist that lock-in an application to a specific storage system; in fact, the systems themselves should be semantically indistinguishable when viewed from the XAM API. Minimal yet complete Keep the interface simple and small (e.g., have as few API methods as possible, and keep these methods easy to use and understand), while ensuring that the methods make all forms of data manipulation possible. If functionality could have been achieved by composing other methods (in a way that sufficiently ensures performance and scalability), then a new method is not created for that function. Expose no implementation detail Do not expose any internal functionality that would serve to place restrictions on storage system vendors.

Organization of the XAM Architecture XAM Interface semantics are organized around objects Primary objects XAM Library XSystem XSet Secondary objects XStream XIterator

XAM Primary Objects Load library Unload library Field Editing XAM Library Connect to an XSystem Close an XSystem Field Editing XSystem XSystem authentication XSet administration Open/Create an XSet Field Editing XSet Close an XSet Job control XSet import/export XSet commit

XAM Secondary Objects (with relationship to Primary Objects) Open XIterator Field Editing XSet, XSystem, or XAM Library XIterator XIterator ops Open/Create an XStream Close Close XStream Ops XStream

Organization of the XAM Architecture XAM Interface semantics are organized around objects Primary objects XAM Library XSystem XSet Secondary objects XStream XIterator

Elements of Primary Objects XAM Library object No constructor is available This is a singleton This must be available as a static object or thru the use of a static accessor method Contains fields XSystem object No constructor is available This must be available by calling a factory method on the XAM Library object Contains fields XSet object No constructor is available This must be available by calling a factory method on the XSystem object Contains fields Load Unload Field Ops XAM Lib Connect Close Field Ops XSystem Open/Create Close XSystem ops Field Ops XSet XSet ops

Elements of Primary Objects XAM Library object No constructor is available This is a singleton This must be available as a static object or thru the use of a static accessor method Contains fields XSystem object No constructor is available This must be available by calling a factory method on the XAM Library object Contains fields Field Field Ops XSet object Container No constructor is available This must be available by calling a factory method on the XSystem object Contains fields Load Unload Field Ops XAM Lib Connect Close Field Ops XSystem Open/Create Close XSystem ops Field Ops XSet XSet ops

UML of the Primary Object

Elements of Secondary Objects XIterator object No constructor is available This must be available by calling a factory method on a Primary object (implements Field Container) XIterator ops XIterator Open XIterator Close XIterator XStream object No constructor is available This must be available by calling a factory method on a Primary object (implements Field Container) XStream ops Open XStream XSet, XSystem, or XAM Library XStream Close XStream

UML of the Secondary Objects

VIM interface The VIM Interface roughly maps to the public XAM API Each object in the XAM API should have an analog in the VIM Interface Each method in the XAM API should have an analog in the VIM Interface NOTE: For Java - the VIM instances are interacted with directly by the application (no need to proxy/copy)

Control Flow Note that in all cases, the VIM is accessed thru the XSystem There is no public interface that exposes the VIM to the application. Possible control flows: Objects created by a VIM are directly passed to the application. Objects created by a VIM are decorated by the XAM Library and the references are indirectly passed to the application; the XAM Library thus holds references to the objects and resolves references for application.

Direct control (used by Java)

Indirect Control (used by C/C++)

XAM Application software stack As noted before, the application binds to the XAM API Applications should never bind to the VIM interface! It is the responsibility of the XAM Library to call into the VIM, not the application. The VIM interacts with the Storage System The XAM Library never interacts directly with the underlying Storage System; all communication is routed thru the VIM

XAM Application software stack (C/C++) C/C++ Application XAM C API XAM Java API (JNI) XAM Library logic (C++) outgoing VIM C API VIM C API VIM C VIM Java API (JNI)

XAM Application software stack (Pure Java) C/C++ Application Java Application XAM Java API (JNI) XAM C API XAM Java API XAM Library logic (C++) XAM Library logic (Java) outgoing VIM C API outgoing VIM Java API VIM Java API (JNI) VIM C API VIM Java API VIM C VIM Java

XAM Application software stack (Unified) C/C++ Application Java Application XAM Java API (JNI) XAM C API XAM Java API XAM Library logic (C++) XAM Library logic (Java) outgoing VIM C API outgoing VIM Java API VIM Java API (JNI) VIM C API VIM Java API VIM C VIM Java

A stackable VIM XAM places limited constraints on the implementation of the VIM; only that it must implement the VIM interface A VIM is allowed to call other VIMs. A stackable VIM is a VIM that is capable of calling into the VIM Interface of other VIMs. This fully unifies the software model Any VIM can be used with any XAM Library if an appropriate stackable VIM exists VIM API Stackable VIM VIM outgoing VIM API VIM API VIM

XAM Application software stack (Fully Unified) C/C++ Application Java Application XAM Java API (JNI) XAM C API XAM Java API XAM Library logic (C++) XAM Library logic (Java) outgoing VIM C API outgoing VIM Java API VIM Java API (JNI) VIM C API VIM Java API VIM C VIM Java

HTTP VIM Example The HTTP VIM is an example of a stackable VIM.

Where To Go SNIA XAM Home http://www.snia.org/xam SNIA FCAS TWG (XAM Technical Work Group) http://www.snia.org/apps/org/workgroup/fcastwg/ SNIA XAM SDK TWG (XAM SDK Technical Work Group) http://www.snia.org/apps/org/workgroup/xamsdktwg/

Q&A / Feedback Please send any questions or comments on this presentation to SNIA: trackvirtualization@snia.org FCAS TWG XAM SDK TWG XAM Initiative Many thanks to the following individuals for their contributions to this tutorial. - SNIA Education Committee 51