RFC 6208
Cloud Data Management Interface (CDMI) Media Types
RFC 6208: Cloud Data Management Interface (CDMI) Media Types π¦
Okay bestie, let's get into RFC 6208 π It's all about the media types for the CDMI (Cloud Data Management Interface) storage stuff βοΈ. K. Sankar, Ed. from Cisco π and A. Jones from SNIA β¨ wrote it, it's published in April 2011, and the category is Informational πΈ, so it's a "here's the info" doc, not a Standards Track thing π«Ά. The ISSN is 2070-1721 π. The title block doesn't list anything this one obsoletes or updates, so it's just doing its own thing π .
Abstract β¨
This doc describes a few Internet media types that SNIA defined for CDMI. They are:
application/cdmi-objectapplication/cdmi-containerapplication/cdmi-domainapplication/cdmi-capabilityapplication/cdmi-queue
Status of This Memo π
This doc is not an Internet Standards Track specification. It's published for info purposes π§
It's a product of the IETF π and it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 for the deets π
For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc6208 π
Copyright Notice π
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the publication date. Please actually read these, because they spell out your rights and restrictions for this doc π Code Components pulled out of this doc must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License π«Ά
Table of Contents π§
1. Introduction ....................................................3
1.1. Requirements Language ......................................3
2. Cloud Data Management Domain and Its Relevance ..................3
3. Processing Guidelines ...........................................4
3.1. Media Type: application/cdmi-object ........................4
3.2. Media Type: application/cdmi-container .....................4
3.3. Media Type: application/cdmi-domain ........................5
3.4. Media Type: application/cdmi-capability ....................5
3.5. Media Type: application/cdmi-queue .........................5
4. Transport Considerations ........................................6
5. IANA Considerations .............................................6
5.1. Media Type: application/cdmi-object ........................6
5.2. Media Type: application/cdmi-container .....................7
5.3. Media Type: application/cdmi-domain ........................8
5.4. Media Type: application/cdmi-capability ....................9
5.5. Media Type: application/cdmi-queue ........................10
6. Security Considerations ........................................11
6.1. Confidentiality and Integrity .............................11
6.2. Access Control ............................................11
6.3. Audit .....................................................12
6.4. JSON Security Considerations ..............................12
6.5. Executable/Active Content .................................12
7. Acknowledgements ...............................................12
8. References .....................................................12
8.1. Normative References ......................................12
8.2. Informative References ....................................13
1. Introduction β¨
The Cloud Data Management Interface (CDMI) [CDMI-1], developed by the Storage Networking Industry Association (SNIA), is the functional interface apps use to create, retrieve, update, and delete data elements in the cloud π©΅ Through it, the client can discover what the cloud storage offering can do, and use it to manage containers and the data sitting in them. Metadata can also be set on containers and their contained data elements through this interface π
1.1. Requirements Language πΈ
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be interpreted as described in RFC 2119 [RFC2119] π€
2. Cloud Data Management Domain and Its Relevance π
A storage cloud is a storage service hosted either on premise or off premise, across a network βοΈ A big part of the cloud model, in general, is the idea of a pool of resources that you draw from on demand, in small increments (smaller than what you'd usually buy with equipment) π By abstracting data storage behind a set of service interfaces and delivering it on demand, a wide range of actual offerings and implementations becomes possible π The only type of storage excluded from this definition is storage delivered in fixed capacity increments rather than on demand π ββοΈ
The CDMI defines a set of functional interfaces (data paths) and management interfaces (control paths) to create, retrieve, update, and delete data elements from a storage cloud π§ Another big concept here is metadata. When you're managing large amounts of data with different requirements, metadata is a handy way to express those requirements, so the underlying data services can treat the data differently to meet them π«Ά CDMI also defines an extensible metadata system for storage clouds β¨
Like before, the client can discover the capabilities of the cloud storage offering and use this interface to manage containers and the data placed in them. System metadata can also be added to containers and their contained data elements through this interface π
The hierarchy CDMI defines goes like this:
- The basic element of storage is an object. π«§
- Objects are stored in a container hierarchy. π¦
- CDMI also defines an object called a queue, which has special properties for in-order, first-in, first-out creation and fetching of queue objects, kind of like a container of data objects ποΈ
- A cloud offering can also support domains, which let administrative ownership be associated with stored objects. Domains can be hierarchical too, allowing corporate domains with multiple child domains for departments or individuals π’ The domain concept is also used to map Access Control Lists (ACLs) to principals, and to aggregate usage data used to bill, meter, and monitor cloud usage π (Note: The CDMI "domain" defined here is not a DNS domain name as specified in [RFC1076] and [RFC1024]. π)
- Finally, a capabilities resource and associated URI [RFC3986] lets a client discover the capabilities of the offering and its implementation of CDMI π
3. Processing Guidelines π
This section sums up how each media type gets processed. This doc only gives the essential info. The CDMI specification [CDMI-1] has more details and examples, and it's the final authority on the processing stuff π
3.1. Media Type: application/cdmi-object π«§
A CDMI object is the basic storage element in a CDMI system, kind of like a file in a filesystem π It's represented in the CDMI interface in JavaScript Object Notation (JSON) format [RFC4627]. (Check out the JSON web site at [JSON-1] for general info about JSON π§Ύ) Each data object has a set of well-defined fields that include a single value and optional metadata π Implementations are free to store the data in whatever form they choose, but application/cdmi-object SHOULD be represented in the CDMI interface as defined in Section 8 of the CDMI specification [CDMI-1] πΈ
3.2. Media Type: application/cdmi-container π¦
A container object is the fundamental grouping of stored data within CDMI, and it's basically a directory in a filesystem π Each container has zero or more child objects and a set of well-defined fields that include standardized and custom metadata π·οΈ A container can also hold other containers, similar to sub-directories in a filesystem πͺ Implementations are free to represent the container in whatever form they choose, but application/cdmi-container SHOULD be represented in the CDMI interface as defined in Section 9 of the CDMI specification [CDMI-1] π
3.3. Media Type: application/cdmi-domain π’
Domain objects represent the idea of administrative ownership of stored data within a CDMI storage system π A CDMI offering may include a hierarchy of domains that give access to domain-related info within a CDMI context. This domain hierarchy is a series of CDMI objects that correspond to parent and child domains, with each domain matching a logical grouping of objects that are managed together π§© Section 10 of the CDMI specification [CDMI-1] covers the info content, representation, and processing of domain objects π€
3.4. Media Type: application/cdmi-capability π
Capability objects are a special class of container objects that let a CDMI client figure out what subset of the CDMI standard a CDMI provider has implemented π΅οΈββοΈ For each URI in a CDMI system, the set of interactions the system can perform against that URI is described by the presence of named "capabilities". Each capability present for a given URI tells you what functionality the cloud storage system will allow against that URI π Capabilities are always static π§ Section 12 of the CDMI specification [CDMI-1] details how capability objects are represented and processed π
3.5. Media Type: application/cdmi-queue ποΈ
Queues are a special class of container object, used to provide first-in, first-out access when storing and retrieving data β³ A queue writer PUTs objects in the queue, and a queue reader GETs objects from it, acknowledging receipt of the last object it got π¬ Queuing is a simple way for one or more writers to send data to a single reader in a reliable way π If the cloud storage system supports queues, cloud clients create queue objects using the same mechanism they use to create data objects π«Ά Section 11 of the CDMI specification [CDMI-1] details the operations and processing of queue objects π§
5.1. Media Type: application/cdmi-object β¨
okay so first up is the cdmi-object media type π¦ it's the one for CDMI objects, and it gets registered with the full template. the template is copied exactly below so nothing gets lost π
Type name: application
Subtype name: cdmi-object
Required parameters: none
Optional parameters: none
Encoding considerations: Assumes that the representation is always
UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]
Security considerations: See Section 6 of RFC 6208
Interoperability considerations: none
Published specification: RFC 6208
Applications that use this media type: Implementations of the Cloud
Data Management Interface (CDMI) defined by the Storage Networking
Industry Association (SNIA)
Additional information:
Magic number(s): n/a
File extension(s): .cdmio
Macintosh file type code(s): TEXT
Person and email address to contact for further information:
Arnold Jones, arnold.jones@snia.org
Intended usage: COMMON
Restrictions on usage: none
Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org
Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org
5.2. Media Type: application/cdmi-container πΈ
next up is cdmi-container π¦ same deal, same vibe, just a different file extension. here's the full template π«Ά
Type name: application
Subtype name: cdmi-container
Required parameters: none
Optional parameters: none
Encoding considerations: Assumes that the representation is always
UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]
Security considerations: See Section 6 of RFC 6208
Interoperability considerations: none
Published specification: RFC 6208
Applications that use this media type: Implementations of the Cloud
Data Management Interface (CDMI) defined by the Storage Networking
Industry Association (SNIA)
Additional information:
Magic number(s): n/a
File extension(s): .cdmic
Macintosh file type code(s): TEXT
Person and email address to contact for further information:
Arnold Jones, arnold.jones@snia.org
Intended usage: COMMON
Restrictions on usage: none
Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org
Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org
5.3. Media Type: application/cdmi-domain π§
now we've got cdmi-domain π the template is literally the same as the last two except for the subtype and the file extension, so check the details carefully bestie π
Type name: application
Subtype name: cdmi-domain
Required parameters: none
Optional parameters: none
Encoding considerations: Assumes that the representation is always
UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]
Security considerations: See Section 6 of RFC 6208
Interoperability considerations: none
Published specification: RFC 6208
Applications that use this media type: Implementations of the Cloud
Data Management Interface (CDMI) defined by the Storage Networking
Industry Association (SNIA)
Additional information:
Magic number(s): n/a
File extension(s): .cdmid
Macintosh file type code(s): TEXT
Person and email address to contact for further information:
Arnold Jones, arnold.jones@snia.org
Intended usage: COMMON
Restrictions on usage: none
Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org
Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org
5.4. Media Type: application/cdmi-capability π
cdmi-capability is next, and it's giving consistency π
same template, different subtype, file extension is .cdmia.
Type name: application
Subtype name: cdmi-capability
Required parameters: none
Optional parameters: none
Encoding considerations: Assumes that the representation is always
UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]
Security considerations: See Section 6 of RFC 6208
Interoperability considerations: none
Published specification: RFC 6208
Applications that use this media type: Implementations of the Cloud
Data Management Interface (CDMI) defined by the Storage Networking
Industry Association (SNIA)
Additional information:
Magic number(s): n/a
File extension(s): .cdmia
Macintosh file type code(s): TEXT
Person and email address to contact for further information:
Arnold Jones, arnold.jones@snia.org
Intended usage: COMMON
Restrictions on usage: none
Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org
Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org
5.5. Media Type: application/cdmi-queue π
last media type, cdmi-queue π the file extension here is .cdmiq. the template is the same otherwise, so this is the final one in the set β¨
Type name: application
Subtype name: cdmi-queue
Required parameters: none
Optional parameters: none
Encoding considerations: Assumes that the representation is always
UTF-8 as defined in [RFC3629] and 8bit as defined in [RFC4288]
Security considerations: See Section 6 of RFC 6208
Interoperability considerations: none
Published specification: RFC 6208
Applications that use this media type: Implementations of the Cloud
Data Management Interface (CDMI) defined by the Storage Networking
Industry Association (SNIA)
Additional information:
Magic number(s): n/a
File extension(s): .cdmiq
Macintosh file type code(s): TEXT
Person and email address to contact for further information:
Arnold Jones, arnold.jones@snia.org
Intended usage: COMMON
Restrictions on usage: none
Author: SNIA Cloud Storage Initiative, cloudtwg@snia.org
Change controller: SNIA Cloud Storage Initiative, cloudtwg@snia.org
6. Security Considerations π₯
okay bestie this part is SERIOUS π security is not a joke, so read every word. the section was written with RFC 3552 [RFC3552] as a guide. CDMI is an application interface, so the relevant security stuff is confidentiality, integrity, access control, and audit. transport and endpoint security stuff like Distributed Denial of Service (DDoS) is orthogonal, and things like non-repudiation are left to the application that uses this interface π‘οΈ
6.1. Confidentiality and Integrity π
the confidentiality and integrity of CDMI exchanges are decided by the application that uses the interface. CDMI doesn't have its own specific mechanisms here and instead relies on transport mechanisms such as Transport Layer Security (TLS) (see [RFC2818]) for confidentiality and integrity of messages across the network.
6.2. Access Control ποΈ
the access control of CDMI endpoint URLs is beyond this specification. if it's needed, applications should use appropriate URL authentication and authorization techniques, such as URI routers for different classes of users, and restrict access based on URI origin.
for fine-grained control of CDMI objects, the CDMI specification [CDMI-1] has the Access Control Lists (ACLs) and Access Control Entries (ACEs). these are fully described in Section 16.1 of the CDMI specification [CDMI-1].
6.3. Audit π
the CDMI specification [CDMI-1] defines a set of metadata fields, as explained in Section 16.3, to help with access and other audit markers. the CDMI metadata system is extensible, and implementations can add more metadata as required by the security posture of the domain.
6.4. JSON Security Considerations π§Ύ
JSON-related security considerations, described in RFC 4627 [RFC4627], apply.
6.5. Executable/Active Content π«
the CDMI interface does not include any directives for active content.
7. Acknowledgements π«Ά
the authors want to thank Mark Carlson and Peter Saint-Andre for their guidance and wisdom, Patrick Faltstrom for comments, and everyone in the SNIA CDMI Cloud Technical Work Group for all the insightful discussions and ideas π
8. References π
8.1. Normative References π
[CDMI-1] SNIA, "Cloud Data Management Interface Version 1.0", 2010,
<http://www.snia.org/tech_activities/standards/
curr_standards/cdmi>.
[JSON-1] JSON, "Introducing JSON", 2006, <http://www.json.org>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, RFC
3986, January 2005.
[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", BCP 13, RFC 4288, December 2005.
[RFC4627] Crockford, D., "The application/json Media Type for
JavaScript Object Notation (JSON)", RFC 4627, July 2006.
8.2. Informative References π
[RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC
793, September 1981.
[RFC1024] Partridge, C. and G. Trewitt, "HEMS variable definitions",
RFC 1024, October 1987.
[RFC1076] Trewitt, G. and C. Partridge, "HEMS monitoring and control
language", RFC 1076, November 1988.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
[RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
Text on Security Considerations", BCP 72, RFC 3552, July
2003.
Authors' Addresses π
Krishna Sankar (editor)
Cisco
170 W. Tasman Drive
San Jose, CA 95134
USA
Phone: (408) 853 8475
EMail: ksankar@cisco.com
Arnold Jones
SNIA
4410 ArrowsWest Drive
Colorado Springs, CO 80907
USA
Phone: (407) 574 7273
EMail: arnold.jones@snia.org
π¦ where this page comes from
- ietf: rfc6208 2011-04
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms