Cloud Service Broker
draft-shao-opsawg-cloud-service-broker-02
The information below is for an old version of the document.
Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Expired".
|
|
---|---|---|---|
Authors | Bhumip Khasnabish , Hu Jie , Shao Weixiang | ||
Last updated | 2011-12-27 (Latest revision 2011-12-22) | ||
RFC stream | (None) | ||
Formats | |||
Stream | Stream state | (No stream defined) | |
Consensus boilerplate | Unknown | ||
RFC Editor Note | (None) | ||
IESG | IESG state | I-D Exists | |
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | (None) |
draft-shao-opsawg-cloud-service-broker-02
opsawg Shao Weixiang Internet-Draft Hu Jie Intended status: Standards Track Bhumip Khasnabish Expires: June 30, 2012 ZTE Corporation December 28, 2011 Cloud Service Broker draft-shao-opsawg-cloud-service-broker-02 Abstract This document introduces a Cloud Service Broker (CSB) entity to provide brokering functions between different Cloud Service Providers and Cloud Service consumers. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on June 30, 2012. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Shao Weixiang, et al. Expires June 30, 2012 [Page 1] Internet-Draft Cloud Service Broker December 2011 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 6 3. CSB Architecture . . . . . . . . . . . . . . . . . . . . . . . 7 3.1. Cloud service publish interface . . . . . . . . . . . . . 7 3.2. Cloud Service Consumer Interface . . . . . . . . . . . . . 8 3.3. Cloud service process . . . . . . . . . . . . . . . . . . 8 3.4. Cloud service adapter . . . . . . . . . . . . . . . . . . 9 4. CSB Interface Definitions . . . . . . . . . . . . . . . . . . 12 4.1. Cloud Service Publish Interface . . . . . . . . . . . . . 12 4.1.1. HTTP Publish Interface Usage . . . . . . . . . . . . . 12 4.1.2. Publish interface Message Package Definition . . . . . 13 4.2. Cloud Service Consumer Interface . . . . . . . . . . . . . 28 4.2.1. HTTP Consumer Interface Usage . . . . . . . . . . . . 29 4.2.2. Consumer interface Message Package Definition . . . . 29 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1. Publish Example . . . . . . . . . . . . . . . . . . . . . 42 5.2. Consumer Example . . . . . . . . . . . . . . . . . . . . . 46 6. Cloud Service Publish Interface XML Schema . . . . . . . . . . 50 7. Cloud Service Consumer Interface XML Schema . . . . . . . . . 65 8. Security Considerations . . . . . . . . . . . . . . . . . . . 79 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 80 9.1. application/csb-publish+xml MIME Type . . . . . . . . . . 80 9.2. application/csb-consumer+xml MIME Type . . . . . . . . . . 80 9.3. URN Sub-Namespace Registration for csb-publish . . . . . 81 9.4. URN Sub-Namespace Registration for csb-consumer . . . . . 81 9.5. XML Schema Registration for csb-publish . . . . . . . . . 82 9.6. XML Schema Registration for csb-consumer . . . . . . . . . 82 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 83 10.1. Normative References . . . . . . . . . . . . . . . . . . . 83 10.2. Informative References . . . . . . . . . . . . . . . . . . 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 85 Shao Weixiang, et al. Expires June 30, 2012 [Page 2] Internet-Draft Cloud Service Broker December 2011 1. Introduction As specified in the NIST Reference Architecture [NIST RA]document, Cloud Broker is an entity manages the use, performance and delivery of cloud services, and negotiates relationships between Cloud Providers and Cloud Consumers. As specified in the Technical Considerations for US Government Cloud Computing Deployment Decisions [USG CCDD]document, Broker analogous to Intercloud Exchange where clouds can interoperate. As specified in the ITU-T Focus Group Cloud Computing Draft deliverable on Introduction to the cloud ecosystem: definitions, taxonomies, use cases and high level requirements [ITU-T FGCC Ecosystem]document, Inter-cloud service broker(ISB) is the role of indirect interconnection between two (or more) Cloud Service Providers(CSPs) achieved through an interconnecting CSP, in addition to providing interworking service functions between the interconnected CSPs, also provides brokering service functions for one (or more) of the interconnected CSPs. ISB also covers the case in which one (or more) of the interconnected entities receiving brokering service is a cloud service user(CSU). Brokering service functions generally include, but are not limited to, the following three categories: service intermediation, service aggregation and service arbitrage. As specified in the CSAguide [CSAguide] document, Cloud service broker offers intermediation, monitoring, transformation/portability, governance, provisioning, and integration services and negotiate relationships between various cloud providers and consumers. Cloud service broker will emerge as an important component in the overall cloud ecosystem. It will abstract these possibly incompatible capabilities and interfaces on behalf of consumers to provide proxy in advance of the arrival of common, open and standardized ways of solving the problem longer term with a semantic capability that allows fluidity and agility in a Consumer being able to take advantage of the model that works best for their particular needs. As specified in the CCUCWP [CCUCWP] document, A broker has no cloud resources of its own, but matches consumers and providers based on the SLA required by the consumer. The consumer has no knowledge that the broker does not control the resources. The simplest deployment view is illustrated in Figure 1. Shao Weixiang, et al. Expires June 30, 2012 [Page 3] Internet-Draft Cloud Service Broker December 2011 +---+-----+---+ +---+-----+---+ | cloud | | public | | |<-----+ +---->| cloud | +-------------+ | | +-------------+ | | +---+-----+---+ | | +---+-----+---+ | WEB | | | | Private | | Service |<-----+ +---+-----+---+ +---->| cloud | +-------------+ | | cloud | | +-------------+ |---| service |-----| +---+-----+---+ | | broker | | +---+-----+---+ | Application | | +-------------+ +---->| Community | | |<-----+ | | cloud | +-------------+ | | +---+-----+---+ | | +---+-----+---+ | | +---+-----+---+ | user | | +---->| Hybid | | |<-----+ | cloud | +-------------+ +---+-----+---+ Figure 1: Basic Architecture A Cloud Service Broker (CSB) can provide brokering service for different Cloud Service Providers which can base on private cloud, community cloud, public cloud and hybrid cloud. CSB offers intermediation, proxy, monitoring, transformation, portability, governance,provisioning, screening, substitution, security, composition services and negotiate relationships between various Cloud Service Providers and Cloud Service Requesters/Consumers. Cloud Service Requesters/Consumers can be any web services, applications, users (e.g. enterprise users or public consume users), even a cloud. A cloud can through CSB to interworking with other clouds. A CSB can alliance with different clouds, the CSB integrates and composes cloud services by orchestrating the cloud resources and services across various cloud domain and Cloud Service Providers, offers guaranteed cloud services to consumers with SLA. In the cloud ecosystem, the Cloud Service Requesters/Consumers can through CSB to access cloud computing services and resources of Cloud Service Providers. When CSB receives the cloud service consumer requests from Cloud Service Requesters/Consumers, it will select appropriate cloud computing services and resources by Cloud Service Providers and specific function pattern to execute related cloud service operations such as intermediation,proxy,monitoring, transformation/portability, governance, provisioning, screening, Shao Weixiang, et al. Expires June 30, 2012 [Page 4] Internet-Draft Cloud Service Broker December 2011 substitution, security, composition services. CSB will invoke and adapt to the concrete cloud services and resources from various Cloud Service Providers, and return consumer response to Cloud Service Requesters/Consumers. Shao Weixiang, et al. Expires June 30, 2012 [Page 5] Internet-Draft Cloud Service Broker December 2011 2. Conventions and Terminology In this document, BCP 14/RFC 2119 [RFC2119] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". CSAguide [CSAguide]Cloud Service Broker (CSB): A logical entity that is responsible for offering intermediation, monitoring, transformation, portability, governance, provisioning, and integration services and negotiate relationships between various cloud providers and consumers. NIST Reference Architecture [NIST RA] Cloud Broker:An entity manages the use, performance and delivery of cloud services, and negotiates relationships between Cloud Providers and Cloud Consumers. Shao Weixiang, et al. Expires June 30, 2012 [Page 6] Internet-Draft Cloud Service Broker December 2011 3. CSB Architecture +--+-----+----+ +---------------+---------+ +------+------+ |Cloud Service| | Cloud Service Broker | |Cloud Service| | Requesters | | | | Providers | | /Consumers | | +---+-----+ +---+-----+ | | | | +---+-----+ | |-+-|Cloud | |Cloud |-+--| | +---+---+-+ | | | Cloud | | | | |Service | |Service | | | | | IaaS | | | | | | | | |consumer | |publish | | | | | Provider| | | +---------+ | | | |interface| |interface| | | | +---------+ | | | | | +--+------+ +----+----+ | | | | | +---+-----+ | | | | | | | | +---+---+-+ | | | WEB | | | | |------+------| | | | | PaaS | | | | Service | | | | | | | | | Provider| | | +---------+ |-| | +---------+-----------+ | |--| +---------+ | | | | |Cloud Service process| | | | | | +---+-----+ | | | | | | | +---+---+-+ | | |Applicat | | | +---------------------+ | | | | SaaS | | | |ion | | | | | | | | Provider| | | +---------+ | | +---------+-----------+ | | | +---------+ | | | | |Cloud Service adapter| +--| | | | | +---+---+-+ | | | | | | +---+---+-+ | | | user | | | +---------------------+ | | | DSaaS | | | | | | | | | | Provider| | | +---------+ | | | | +---------+ | | | | | | | +-+---------+-+ +-------------------------+ +-------------+ Figure 2: Cloud Service Broker Functional Architecture CSB reference architecture functional groups consists of cloud service consumer interface module, cloud service publish interface module, cloud service orchestration module and cloud service adapter module. 3.1. Cloud service publish interface Cloud service publish interface is used to provide different cloud computing service and resource information for CSB. Through cloud service publish interface, the CSB can subscribe different cloud computing service and resource information from Cloud Service Providers on demand by sending cloud service subscription request and receiving cloud service notification from Cloud Service Providers to get these information. The published information can be any Infrastructure as a Service(IaaS) information, Platform as a service(PaaS) information, Software as a service(SaaS) information and Data Storage as a service(DSaaS) information. Cloud Service Providers (e.g. private cloud, community cloud, public cloud and Shao Weixiang, et al. Expires June 30, 2012 [Page 7] Internet-Draft Cloud Service Broker December 2011 hybrid cloud) can notify their published information to CSB. The subscription/notification can synchronize with the cloud service consumer requests. In dynamic composition service function pattern, when CSB receives the cloud service consumer requests from Cloud Service Requesters/Consumers, CSB can first subscribe the actual cloud service from Cloud Service Providers based on the abstract service logic, then transfer to the concrete service logic to find the concrete services that can fulfil the requirements to replace the service classes and create invoking information for these services. Then the CSB executes the concrete service logic and gets the results of these concrete services. The CSB then produces the final result and returns it to Cloud Service Requesters/Consumers. The subscription/notification can also asynchronous working with the CSB other operations. 3.2. Cloud Service Consumer Interface The Cloud Service Requesters/Consumers(e.g. web services, applications, users, cloud) can through CSB Cloud Service Consumer Interface to access Cloud Service Providers' cloud computing services and resources. It can receive cloud service consumer requests from Cloud Service Requesters/Consumers and return cloud service consumer responses to Cloud Service Requesters/Consumers. 3.3. Cloud service process The cloud service process module is used to process the cloud service consumer requests from Cloud Service Requesters/Consumers. It can receive the requests by Cloud Service Consumer Interface, analysis the requested cloud services, select appropriate service logics and function patterns based on CSB database information from subscription or internal integration, execute related operations, then invoke and adapt to the concrete cloud services and resources from various Cloud Service Providers through cloud service adapters by sending cloud service adaptation requests to Cloud Service Providers and receiving cloud service adaptation responses from Cloud Service Providers. The cloud service process module basic function pattern is transformation/ translation, that is transfer or translate between the Cloud Service Requesters/Consumers' cloud service consumer requests/ responses and cloud service adaptation requests/ responses for Cloud Service Providers. CSB can provide proxy service or Service Intermediation which is defined in NIST Reference Architecture [NIST RA]. Upon the basic function pattern, the cloud service process module can provide advanced function patterns, such as security service, QoS/SLA Shao Weixiang, et al. Expires June 30, 2012 [Page 8] Internet-Draft Cloud Service Broker December 2011 control service, screening service, substitution service, and composition service. For composition service, the cloud service process module make static service composition and dynamic service composition. The static service composition is equal to Service Aggregation and the dynamic service composition is equal to Service Arbitrage specified in the NIST Reference Architecture [NIST RA]. 3.4. Cloud service adapter The cloud service adapter module is used to adapt cloud services and resources from Cloud Service Providers according to the cloud service consuming requests from CSRs, it will transfer and map protocols and formats supported by Cloud Service Providers' services and resources including APIs, parameters and transmission protocols. The cloud service adapter module consists of IaaS adapter module, DSaaS adapter module, PaaS adapter module, SaaS adapter module. Shao Weixiang, et al. Expires June 30, 2012 [Page 9] Internet-Draft Cloud Service Broker December 2011 +------------------------------+------------------------------+ | Cloud Service adapter | | +------------+-------------+ +------------+-------------+ | | | IaaS adapter | | DsaaS adapter | | | | +----+----+ +----+----+ | | +----+----+ +----+----+ | | | | |common | |CSP1 | | | |common | |CSP1 | | | | | |IaaS | |IaaS | | | |DSaaS | |DSaaS | | | | | |adapter | |adapter | | | |adapter | |adapter | | | | | +---------+ +---------+ | | +---------+ +---------+ | | | | | | | | | | +----+----+ +----+----+ | | +----+----+ +----+----+ | | | | |CSP2 | |CSP3 | | | |CSP2 | |CSP3 | | | | | |IaaS | |IaaS | | | |DSaaS | |DSaaS | | | | | |adapter | |adapter | | | |adapter | |adapter | | | | | +---------+ +---------+ | | +---------+ +---------+ | | | +--------------------------+ +--------------------------+ | | | | +------------+-------------+ +------------+-------------+ | | | PaaS adapter | | SaaS adapter | | | | +----+----+ +----+----+ | | +----+----+ +----+----+ | | | | |common | |CSP1 | | | |common | |CSP1 | | | | | |PaaS | |PaaS | | | |SaaS | |SaaS | | | | | |adapter | |adapter | | | |adapter | |adapter | | | | | | | | | | | | | | | | | | | +---------+ +---------+ | | +---------+ +---------+ | | | | | | | | | | +----+----+ +----+----+ | | +----+----+ +----+----+ | | | | |CSP2 | |CSP3 | | | |CSP2 | |CSP3 | | | | | |PaaS | |PaaS | | | |SaaS | |SaaS | | | | | |adapter | |adapter | | | |adapter | |adapter | | | | | +---------+ +---------+ | | +---------+ +---------+ | | | +--------------------------+ +--------------------------+ | | | +-------------------------------------------------------------+ Figure 3: cloud service adapter module IaaS adapter module includes common IaaS adapter module and proprietary IaaS adapter modules. Common IaaS adapter module should support general IaaS protocols mapping: DMTF OVF [DMTF OVF], DMTF CIMI [DMTF CIMI], OGF OCCI [OGF OCCI]. DSaaS adapter module includes common DSaaS adapter module and proprietary DSaaS adapter modules. Common DSaaS adapter module should support general DSaaS protocols mapping: SNIA CDMI [SNIA CDMI]. Shao Weixiang, et al. Expires June 30, 2012 [Page 10] Internet-Draft Cloud Service Broker December 2011 PaaS adapter module includes common PaaS adapter module and proprietary PaaS adapter modules. SaaS adapter module includes common SaaS adapter module and proprietary SaaS adapter modules. Shao Weixiang, et al. Expires June 30, 2012 [Page 11] Internet-Draft Cloud Service Broker December 2011 4. CSB Interface Definitions As discussed in previous sections in this document, the intention is to provide a toolkit for a variety of deployment architectures where Cloud Service broker can take place. As a result, two main interfaces are required to support the differing requirements. The two interfaces are described in the remainder of this section and have been named the 'Cloud Service Publish' and 'Cloud Service Consumer' interfaces. These two interfaces have extremely differing responsibilities and usages which is reflected in the choice of solutions. This includes interpreting the data for the Cloud Service Consumer interface and the Cloud Service Publish interface. It is, however, important that the two interfaces are complimentary so that development of appropriate CSB functionality is supported. 4.1. Cloud Service Publish Interface The Cloud Service Publish interface is responsible for providing an CSB with appropriate Cloud Service and resource information. Service flow of cloud service subscription include: CSB send cloud service subscription request to Cloud Service Providers using Publish interface message Package within request message for subscription of cloud services from Cloud Service Providers. CSB receive response reply by Cloud Service Providers for acceptance or fail reasons. Service flow of cloud service notification include: Cloud Service Providers send notification to CSB using Publish interface message Package within notification message for publishing cloud services. CSB return response to Cloud Service Providers for acceptance or fail reasons. 4.1.1. HTTP Publish Interface Usage The following description will describe the use of HTTP [RFC2616] and HTTPS [RFC2818] as transport for a subscription/notification and the appropriate response. The cloud service subscription request, as defined by the <subscription>element of <csbrequest> element from Section 6, MUST be carried in the body of an HTTP/HTTPS request. The MIME type contained in the HTTP/HTTPS request/response MUST be 'application/ csb-publish+xml'. This value MUST be reflected in the appropriate HTTP headers like 'Content-Type' and 'Accept'. The body of the HTTP/ HTTPS request MUST only contain the 'csbrequest' element as defined in Section 6. The 'csbrequest' element is the primary container of Shao Weixiang, et al. Expires June 30, 2012 [Page 12] Internet-Draft Cloud Service Broker December 2011 information related to a Cloud service subscription request. The Cloud service subscription response, as defined by the <csbresponse> element from Section 6, MUST be carried in the body of an HTTP/HTTPS 200 response to the original HTTP/HTTPS request. The MIME type contained in the HTTP/HTTPS request/response MUST be 'application/csb-publish+xml'. This value MUST be reflected in the appropriate HTTP headers like 'Content-Type' and 'Accept'. The body of the HTTP/HTTPS 200 response MUST only contain the 'csbresponse' element as defined in Section 6. The 'csbresponse' element is the primary container of information related to a Cloud service subscription response. The cloud service notification, as defined by the <csbnotification>element from Section 6, MUST be carried in the body of an HTTP/HTTPS request. The MIME type contained in the HTTP/HTTPS request/response MUST be 'application/csb-publish+xml'. This value MUST be reflected in the appropriate HTTP headers like 'Content-Type' and 'Accept'. The body of the HTTP/HTTPS request MUST only contain the 'csbnotification' element as defined in Section 6. The 'csbnotification' element is the primary container of information related to a Cloud service notification. CSB can map existing HTTP verbs to operation for accessing and controling an appropriate Cloud Service and resource. POST map to Create operation, GET map to Retrieve operation, PUT map to Create or Update operation, DELETE map to Delete operation. 4.1.2. Publish interface Message Package Definition This Publish interface Message package is uesd for cloud services information publishing between Cloud Service Providers and Cloud Service Requesters/Consumers by CSB. 4.1.2.1. Element Definitions This section defines the XML elements for the Publish interface message package defined in Section 4.1. The formal XML schema definition for the Publish interface can be found in Section 6. The root element is <csbpublish>. All other XML elements (request, response, notification) are contained within it. The CSB Publish interface request element is detailed in Section 4.1.2.2. The CSB Publish interface notification element is detailed in Section 4.1.2.3. CSB Publish interface response element is contained in Section 4.1.2.4. The <csbpublish> element has the following attributes: Shao Weixiang, et al. Expires June 30, 2012 [Page 13] Internet-Draft Cloud Service Broker December 2011 version: a token specifying the csb-publish package version. The value is fixed as '1.0' for this version of the package. The attribute MUST be present. The <csbpublish> element has the following child element, only one of which is allowed to occur in a request. <csbrequest> for sending an CSB request. See Section 4.1.2.2. <csbresponse> for sending an CSB response. See Section 4.1.2.4. <csbnotification> for sending an CSB notification. See Section 4.1.2.3. 4.1.2.2. <csbrequest> This section defines the <csbrequest> element used to initiate requests from an CSB to a Cloud Service Provider. The element is a container for information relevant for the interrogation of a Cloud Service Provider. The <csbrequest> element has no defined attributes. The <csbrequest> element has the following sub-elements which are defined in the remainder of this section: <subscription> for initiating a subscription to a Cloud Service Provider from an CSB. See Section 4.1.2.2.1. 4.1.2.2.1. <subscription> The <subscription> element is included in a request from an CSB to a Cloud Service Provider to provide the details relating to the cloud service and resource information. This element can be used either to request a new subscription or to update an existing one (e.g., to change the frequency of the updates), and to remove ongoing subscriptions as well (e.g., to stop an indefinite update). The CSB will inform the Cloud Service Provider how long it wishes to receive updates for and the frequency that updates should be sent. Updates related to the subscription are sent using the <csbnotification> element. The <subscription> element has the following attributes: id: indicates a unique token representing the subscription between the csb and the Cloud Service Provider. The attribute MUST be present. Shao Weixiang, et al. Expires June 30, 2012 [Page 14] Internet-Draft Cloud Service Broker December 2011 seqnumber: indicates a sequence number to be used in conjunction with the subscrition id to identify a specific subscription command. The first subscription MUST have 1 as 'seqnumber', and following subscriptions MUST increment by 1 the previous 'seqnumber' value. The attribute MUST be present. action: provides the operation that should be carried out on the subscription: * The value of 'create' instructs the Cloud Service Provider to attempt to setup a new subscription. * The value of 'update' instructs the Cloud Service Provider to attempt to update an existing subscription. * The value of 'remove' instructs the Cloud Service Provider to attempt to remove an existing subscription and consequently stop any ongoing related notification. The attribute MUST be present. The <subscription> element has the following child elements: expires: Provides the amount of time in seconds that a subscription should be installed for notifications at the Cloud Service Provider. Once the amount of time has passed, the subscription expires and the csb has to subscribe again in case it is still interested in receiving notifications from the Cloud Service Provider. The element MAY be present. frequency: Provides the frequency in seconds that the csb wishes to receive notifications from the Cloud Service Provider. The element MAY be present. Please note that these two optional pieces of information provided by the csb only act as a suggestion: the Cloud Service Provider MAY change the proposed values if it considers the suggestions unacceptable (e.g., if the csb has requested a too high notification frequency). In such case, the request would not fail, but the updated, acceptable values would be reported in the <csbresponse> accordingly. 4.1.2.3. <csbnotification> The <csbnotification> element is included in a request from a Cloud Service Provider to an csb to provide the details relating current status. The Cloud Service Provider will inform the csb of its current status as defined by the information in the <subscription> Shao Weixiang, et al. Expires June 30, 2012 [Page 15] Internet-Draft Cloud Service Broker December 2011 element. Updates are sent using the <csbnotification> element contained in an <csbrequest> element. The <csbnotification> element has the following attributes: id: indicates a unique token representing the subscription between the csb and the Cloud Service Provider and is the same as the one appearing in the <subscription> element. The attribute MUST be present. seqnumber: indicates a sequence number to be used in conjunction with the subscription id to identify a specific notification update. The first notification MUST have 1 as 'seqnumber', and following notifications MUST increment by 1 the previous 'seqnumber' value. The attribute MUST be present. The <csbnotification> element has the following child elements: <Cloud-Service-Provider> for Cloud Service Provider information. See Section 4.1.2.3.1. <Cloud-Service> for specific Cloud Service information. See Section 4.1.2.3.2. <encryption-support> for whether use encryption or not. See Section 4.1.2.3.3. <label> for label. See Section 4.1.2.3.4. 4.1.2.3.1. <Cloud-Service-Provider> The <Cloud-Service-Provider> element provides the Cloud Service Provider information. The element Must be present. <Cloud-Service-Provider-id> provides a unique system wide identifier for a Cloud Service Provider instance. The element MUST be present. <Cloud-Service-Provider-status> element provides information detailing the current status of the Cloud Service Provider. See Section 4.1.2.3.1.1. <Cloud-Service-Provider-URI> provides information about the URI of a Cloud Service Provider. The element May be present. 4.1.2.3.1.1. <Cloud-Service-Provider-status> The element MUST be present. It can return one of the following values: Shao Weixiang, et al. Expires June 30, 2012 [Page 16] Internet-Draft Cloud Service Broker December 2011 Indicating that the Cloud Service Provider is available for service. Indicating that the Cloud Service Provider has been withdrawn from service, and as such should not be contacted before it becomes 'active' again. Indicating that the Cloud Service Provider continues to process past requests but cannot accept new requests, and as such should not be contacted before it becomes 'active' again. 4.1.2.3.2. <Cloud-Service> The <Cloud-Service> element provides specific Cloud Service information. The element Must be present. <Cloud-Service-id> provides a unique system wide identifier for a specific Cloud Service instance. The element MUST be present. <Cloud-Service-status> element provides information detailing the current status of the specific Cloud Service. The element MUST be present. It can return one of the following values: Indicating that the Cloud Service is available. Indicating that the Cloud Service has been withdrawn, and as such should not be contacted before it becomes 'active' again. Indicating that the Cloud Service continues to process past requests but cannot accept new requests, and as such should not be contacted before it becomes 'active' again. <Cloud-Service-URI> provides information about the URI of a specific Cloud Service. The element May be present. for detail cloud service, below child elements, only one of which is allowed to occur in a <Cloud-Service> element. <IaaS-support> for specific IaaS information. See Section 4.1.2.3.2.1. <PaaS-support> for specific PaaS information. See Section 4.1.2.3.2.2. <SaaS-support> for specific SaaS information. See Section 4.1.2.3.2.3. <DSaaS-support> for specific DSaaS information. See Section 4.1.2.3.2.4. Shao Weixiang, et al. Expires June 30, 2012 [Page 17] Internet-Draft Cloud Service Broker December 2011 4.1.2.3.2.1. <IaaS-support> The <IaaS-support> element provides the Cloud Service Provider's supported IaaS service and resource information. The element MAY be present. The <IaaS-support> element has the following child elements: <Link> for Links to other resources that are in relationship to the IaaS-support information (e.g. a XML document of IaaS information supported by CSP which follow DMTF OVF [DMTF OVF] or DMTF CIMI [DMTF CIMI] or OGF OCCI [OGF OCCI]). See Section 4.1.2.3.2.5. <compute-support> for computing resource information. See Section 4.1.2.3.2.1.1. <network-support> for network resource information. See Section 4.1.2.3.2.1.2. <storage-support> for storage resource information. See Section 4.1.2.3.2.1.3. <NetworkInterface-support> for Network Interface resource information. See Section 4.1.2.3.2.1.4. <storagelink-support> for storage link information. See Section 4.1.2.3.2.1.5. 4.1.2.3.2.1.1. <compute-support> The <compute-support> element provides the IaaS details computing resource information. The element MAY be present. The <compute-support> element has the following child elements: <architecture> for CPU Architecture of the instance, example: x86, x64. The element MAY be present. <cores> for Number of CPU cores assigned to the instance. The element MAY be present . <hostname> for Fully Qualified DNS hostname for the instance. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 18] Internet-Draft Cloud Service Broker December 2011 <speed> for CPU Clock frequency (speed) in gigahertz. The element MAY be present . <memory> for Maximum RAM in gigabytes allocated to the instance. The element MAY be present . <status> for Current state of the instance: active, inactive, suspended. The element MAY be present . <action> for Actions applicable to instances of the Compute type: start, stop, restart, suspend. The element MAY be present. 4.1.2.3.2.1.2. <network-support> The <network-support> element provides the IaaS details network resource information. The element MAY be present. The <network-support> element has the following child elements: <vlan> for 802.1q VLAN Ientifier (e.g. 343). The element MAY be present. <VLANlabel> for Tag based VLANs (e.g. external-dmz). The element MAY be present . <address> for Internet Protocol(IP) network address. The element MAY be present . <gateway> for gateway Internet Protocol(IP) network address. The element MAY be present . <allocation> for Address allocation mechanism: dynamic, static. The element MAY be present . <status> for Current state of the instance: active, inactive. The element MAY be present . <action> for Actions applicable to instances of the Network type: up, down. The element MAY be present . 4.1.2.3.2.1.3. <storage-support> The <storage-support> element provides the IaaS details storage resource information.The element MAY be present. The <storage-support> element has the following child elements: Shao Weixiang, et al. Expires June 30, 2012 [Page 19] Internet-Draft Cloud Service Broker December 2011 <size> for Storage size in gigabytes of the instance. The element MAY be present. <status> for Current status of the instance: online, offine, degraded. The element MAY be present . <action> for Actions applicable to instances of the Storage type: online, offline, backup, snapshot, resize. The element MAY be present . 4.1.2.3.2.1.4. <NetworkInterface-support> The <NetworkInterface-support> element provides client device (e.g. network adapter) information.The element MAY be present. The <NetworkInterface-support> element has the following child elements: <interface> for Identifier that relates the link to the link's device interface. The element MAY be present. <mac> for MAC address associated with the link's device interface. The element MAY be present . <status> for Current status of the instance: active, inactive. The element MAY be present . <ip> for Internet Protocol(IP) network address of the link. The element MAY be present . <gateway> for gateway Internet Protocol(IP) network address. The element MAY be present . <allocation> for Address allocation mechanism: dynamic, static. The element MAY be present . 4.1.2.3.2.1.5. <storagelink-support> The <storagelink-support> element provides a link from a Resource to a target Storage instance. The element MAY be present. The <storagelink-support> element has the following child elements: <deviceid> for Device identifier. The element MAY be present. Shao Weixiang, et al. Expires June 30, 2012 [Page 20] Internet-Draft Cloud Service Broker December 2011 <mountpoint> for Point to where the storage is mounted in the guest OS. The element MAY be present . <status> for Current status of the instance: active, inactive. The element MAY be present . 4.1.2.3.2.2. <PaaS-support> The <PaaS-support> element provides the Cloud Service Provider's details PaaS service and resource information. The element MAY be present. The <PaaS-support> element may has the following child elements: <Link> for Links to other resources that are in relationship to the PaaS-support information (e.g. a XML document of PaaS information supported by CSP ). See Section 4.1.2.3.2.5. Note: PaaS support informations are based on the specific CSP's platform (e.g. <Distributed-file-system> for Distributed file system information, <Distributed-database> for Distributed database information, <Distributed-cache> for Distributed cache information, <Distributed-computing-schedule> for Distributed computing schedule information, <Messaging> for Messaging information). The detail PaaS support informations need to be further studied. 4.1.2.3.2.3. <SaaS-support> The <SaaS-support> element provides the Cloud Service Provider's details SaaS service and resource information. The element MAY be present. The <SaaS-support> element may has the following child elements, further study: <Link> for Links to other resources that are in relationship to the SaaS-support information (e.g. a XML document of SaaS information supported by CSP ). See Section 4.1.2.3.2.5. Note: SaaS support informations are based on the specific CSP's platform (e.g. <Custom-Resource-Management> for Custom Resource Management system information, <Video-share> for Video share service information, <File-share> for File share service information, <Short- Message-Service> for Short Message Service information, <Multimedia- Message-Service> for Multimedia Message Service information). The detail SaaS support informations need to be further studied. Shao Weixiang, et al. Expires June 30, 2012 [Page 21] Internet-Draft Cloud Service Broker December 2011 4.1.2.3.2.4. <DSaaS-support> The <DSaaS-support> element provides the Cloud Service Provider's details DSaaS service and resource information. The element MAY be present. The <DSaaS-support> element has the following child elements: <Link> for Links to other resources that are in relationship to the DSaaS-support information (e.g. a XML document of DSaaS information supported by CSP ). See Section 4.1.2.3.2.5. <DataObject-support> for Data Object information. See Section 4.1.2.3.2.4.1. <ContainerObject-support> for Container Object information. See Section 4.1.2.3.2.4.2. <DomainObject-support> for Domain Object information. See Section 4.1.2.3.2.4.3. <QueueObject-support> for Queue Object information. See Section 4.1.2.3.2.4.4. <CapabilityObject-support> for Capability Object information. See Section 4.1.2.3.2.4.5. 4.1.2.3.2.4.1. <DataObject-support> The <DataObject-support> element provides the DSaaS details file resource information within a filesystem. The element MAY be present. The <DataObject-support> element has the following child elements: <mimetype> Mime type of the data contained within the value field of the data object. The element MAY be present. <metadata> Metadata for the data object. The element MAY be present . <objectURI> URI for the data object. The element MAY be present . <objectID> ID for the data object. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 22] Internet-Draft Cloud Service Broker December 2011 <parentURI> parent URI for the data object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <value> The data object value. The element MAY be present . <status> Current state of the data object. The element MAY be present . 4.1.2.3.2.4.2. <ContainerObject-support> The <ContainerObject-support> element provides the DSaaS details directory resource information within a filesystem. The element MAY be present. The <ContainerObject-support>element has the following child elements: <metadata> Metadata for the Container object. The element MAY be present . <objectURI> URI for the container object. The element MAY be present . <objectID> ID for the container object. The element MAY be present . <parentURI> parent URI for the container object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <exports> A structure for each protocol enabled for this container: OCCI, iSCSI, NFS, FCOE. The element MAY be present . <snapshots> URI(s) of the SnapShot containers. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 23] Internet-Draft Cloud Service Broker December 2011 <children> children objects in the container. The element MAY be present . <status> Current state of the container object. The element MAY be present . 4.1.2.3.2.4.3. <DomainObject-support> The <DomainObject-support> element provides the DSaaS details storage system information. The element MAY be present. The <DomainObject-support> element has the following child elements: <metadata> Metadata for the Domain object. The element MAY be present . <objectURI> URI for the Domain object. The element MAY be present . <objectID> ID for the Domain object. The element MAY be present . <parentURI> parent URI for the Domain object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <enabled>The enable state of the domain: "true" or "false". The element MAY be present . <children> children objects in the container. The element MAY be present . 4.1.2.3.2.4.4. <QueueObject-support> The <QueueObject-support> element provides the DSaaS details queue information, a special class of container object and are used to provide first-in, first-out access when storing and retrieving data. The element MAY be present. The <QueueObject-support> element has the following child elements: Shao Weixiang, et al. Expires June 30, 2012 [Page 24] Internet-Draft Cloud Service Broker December 2011 <metadata> Metadata for the Queue object. The element MAY be present . <objectURI> URI for the Queue object. The element MAY be present . <objectID> ID for the Queue object. The element MAY be present . <parentURI> parent URI for the Queue object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <status> Current state of the Queue object. The element MAY be present . 4.1.2.3.2.4.5. <CapabilityObject-support> The <CapabilityObject-support> element provides the DSaaS details Capability information, a special class of container object. The element MAY be present. The <CapabilityObject-support>element has the following child elements: <type> Capability object type: Cloud Storage System-Wide Capabilities, Storage System Metadata Capabilities, Data System Metadata Capabilities, Data Object Capabilities, Container Capabilities, Domain Capabilities,Queue Object Capabilities. The element MAY be present . <objectURI> URI for the Capability object. The element MAY be present . <objectID> ID for the Capability object. The element MAY be present . <parentURI> parent URI for the Capability object. The element MAY be present . <capabilities> A tag list of capabilities supported by the corresponding object. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 25] Internet-Draft Cloud Service Broker December 2011 <children> children capabilities objects. The element MAY be present . 4.1.2.3.2.5. <Link> The <Link> element provides the document describe details support information. The element MAY be present. The <Link> element has the following child elements: <rel> Describes the relationship between the URI and the resource. The element MAY be present. <href> URI of the document. The element MAY be present . 4.1.2.3.3. <encryption-support> The <encyption-support> element allows a Cloud Service Provider to declare support for encrypting, 'true' or 'false'. The element MAY be present. The <encryption> element has no attributes. The <encryption> element has no child elements. 4.1.2.3.4. <label> The <label> element allows a Cloud Service Provider to declare a piece of information that will be understood by the csb. It's a string to allow arbitrary values to be returned to allow arbitrary classification, and as such is not meant to provide any explicit information associated with the features of a Cloud Service Provider. The element MAY be present. The <label> element has no attributes. The <label> element has no child elements. 4.1.2.4. <csbresponse> Responses to requests are indicated by a <response> element from Section 6. The <response> element has following attributes: Shao Weixiang, et al. Expires June 30, 2012 [Page 26] Internet-Draft Cloud Service Broker December 2011 status: numeric code indicating the response status. The attribute MUST be present. reason: string specifying a reason for the response status. The attribute MAY be present. The following status codes are defined for 'status': +-----------+-------------------------------------------------------+ | code | description | +-----------+-------------------------------------------------------+ | 200 | OK | | | | | 400 | Syntax error | | | | | 401 | Unable to create Subscription | | | | | 402 | Unable to update Subscription | | | | | 403 | Unable to remove Subscription | | | | | 404 | Subscription does not exist | | | | | 405 | Subscription already exists | | | | | 420 | Unsupported attribute or element | +-----------+-------------------------------------------------------+ Table 1: <response> status codes In case a new subscription request made by an csb (action='create') has been accepted, the Cloud Service Provider MUST reply with a <csbresponse> with status code 200. The same rule applies whenever a request to update (action='update') or remove (action='remove') anexisting transac tion can be fulfilled by the Cloud Service Provider. A subscription request, nevertheless, may fail for several reasons. In such a case, the status codes defined in Table 1 must be used instead. Specifically, if the Cloud Service Provider fails to handle a request due to a syntax error in the request itself (e.g., incorrext XML, violation of the schema constraints or invalid values in any of the attributes/elements) the Cloud Service Provider MUST reply with a <csbresponse> with status code 400. If a syntactically correct request fails because the request also Shao Weixiang, et al. Expires June 30, 2012 [Page 27] Internet-Draft Cloud Service Broker December 2011 includes any attribute/element the Cloud Service Provider doesn't understand, the Cloud Service Provider MUST reply with a <csbresponse> with status code 420. If a syntactically correct request fails because the csb wants to create a new subscription, but the provided intended id for the subscription already exists, the Cloud Service Provider MUST reply with a <csbresponse> with status code 405. If a syntactically correct request failes because the csb wants to update/remove a subscription that doesn't exist, the Cloud Service Provider MUST reply with a <csbresponse> with status code 404. If the Cloud Service Provider is unable to accept a request for any other reason (e.g., the csb has no more resources to fulfil the request), the Cloud Service Provider MUST reply with a <csbresponse> with status code 401/402/403, depending on the action the csb provided in its request: o action='create' --> 401; o action='update' --> 402; o action='remove' --> 403; As explained in Section 4.1.2.2.1, even in case of an accepted subscription request the Cloud Service Provider might change the suggested 'expires' and 'frequency' values provided by the csb in its <csbrequest>, if it considers them unacceptable (e.g., the requested frequency is too high). In such a case, the Cloud Service Provider MUST add an additional <subscription> element to the response, including the updated values, to inform the csb about the change. The Cloud Service Provider MAY include such element if the values have been accepted or were omitted in the request. 4.2. Cloud Service Consumer Interface The Cloud Service Consumer interface provides the ability for requesters/consumers such as WEB service, applications, users to access and control an appropriate Cloud Service and resource by Cloud Service Provider to satisfy specific criteria. CSB receives cloud service consumer request from Cloud Service Requesters/Consumers using Consumer interface message Package within Cloud service request message, the message include detailed demand cloud service information of Cloud Service Requesters /Consumers to the CSB. CSB returns cloud service consumer responses to Cloud Service Requesters/ Consumers using Consumer interface message Package within response message, the message include CSB's feedback information which CSB Shao Weixiang, et al. Expires June 30, 2012 [Page 28] Internet-Draft Cloud Service Broker December 2011 make an informed decision and provide the requester/consumer with an appropriate Cloud Service Provider's cloud service and resource. 4.2.1. HTTP Consumer Interface Usage The following information explains the primary operations required to request and then receive information from an csb. The following description will describe the use of HTTP [RFC2616] and HTTPS [RFC2818] as transport for a request for cloud resource and the appropriate response. The cloud resource request, as defined by the <CloudResourceRequest> element from Section 7, MUST be carried in the body of an HTTP/HTTPS request. The MIME type contained in the HTTP/HTTPS request/response MUST be 'application/csb-consumer+xml'. This value MUST be reflected in the appropriate HTTP headers like 'Content-Type' and 'Accept'. The body of the HTTP/HTTPS request MUST only contain the 'CloudResourceRequest' element as defined in Section 7. The 'CloudResourceRequest' element is the primary container of information related to a Cloud resource request. The Cloud resource response, as defined by the <CloudResourceResponse> element from Section 7, MUST be carried in the body of an HTTP/HTTPS 200 response to the original HTTP/HTTPS request. The MIME type contained in the HTTP/HTTPS request/response MUST be 'application/csb-consumer+xml'. This value MUST be reflected in the appropriate HTTP headers like 'Content-Type' and 'Accept'. The body of the HTTP/HTTPS 200 response MUST only contain the 'CloudResourceResponse' element as defined in Section 7. The 'CloudResourceResponse' element is the primary container of information related to a Cloud resource response. CSB can map existing HTTP verbs to operation for accessing and controling an appropriate Cloud Service and resource. POST map to Create operation, GET map to Retrieve operation, PUT map to Create or Update operation, DELETE map to Delete operation, COPY map to Duplicate operation,HEAD map to Retrieve Metadata Only operation, MOVE map to Relocate operation, and OPTIONS verbs represents a request for information about the communication options available on the request/response chain identified by the Request-URI. 4.2.2. Consumer interface Message Package Definition This Consumer interface Message package is uesd for cloud services consumer information interaction between Cloud Service Requesters/ Consumers and CSB. This section defines the XML elements for the Consumer interface. Shao Weixiang, et al. Expires June 30, 2012 [Page 29] Internet-Draft Cloud Service Broker December 2011 The formal XML schema definition for the Consumer interface can be found in Section 7. The root element is <csbconsumer>. All other XML elements (request, response) are contained within it. The csb Consumer interface request element is detailed in Section 4.2.2.1. csb Consumer interface response element is contained in Section 4.2.2.2. The <csbconsumer> element has the following attributes: version: a token specifying the csb-consumer package version. The value is fixed as '1.0' for this version of the package. The attribute MUST be present. The <csbconsumer> element has the following child elements, only one of which is allowed to occur. <CloudServiceRequest> for sending a Consumer request. See Section 4.2.2.1. <CloudServiceResponse> for sending a Consumer response. See Section 4.2.2.2. 4.2.2.1. <CloudServiceRequest> element The <CloudServiceRequest> element provides a container for requester/ consumer wishing to access and control cloud service resource from an external csb entity. The <CloudServiceRequest> element has the following child element. <job-info> for cloud service request job information. See Section 4.2.2.3. <IaaS> for IaaS resource information . See Section 4.2.2.6. <PaaS> for PaaS resource information . See Section 4.2.2.7. <SaaS> for SaaS resource information . See Section 4.2.2.8. <DSaaS> for DSaaS resource information . See Section 4.2.2.9. <encryption> for encryption . See Section 4.2.2.4. Shao Weixiang, et al. Expires June 30, 2012 [Page 30] Internet-Draft Cloud Service Broker December 2011 4.2.2.2. <CloudServiceResponse> element The <CloudServiceResponse> element provides a container for requester/consumer receiving cloud service information from an external csb entity. The <CloudServiceResponse> element has a single attribute 'status' which indicates the status code of the operation. The following status codes are defined for 'status': +-----------+-------------------------------------------------------+ | code | description | +-----------+-------------------------------------------------------+ | 200 | OK | | | | | 400 | Syntax error | | | | | 408 | Unable to find Resource | | | | | 409 | Unable to update Resource | | | | | 410 | Unable to remove Resource | | | | | 420 | Unsupported attribute or element | +-----------+-------------------------------------------------------+ Table 2: <response> status codes In case a new cloud service request made by a requester/consumer has been accepted, the Cloud MUST reply with a <CloudServiceResponse> with status code 200 and the feedback cloud service information elements such as <IaaS> element, <PaaS> element, <SaaS> element, <DSaaS> element. The same rule applies whenever a request to update (action='update') or remove (action='remove') an existing transaction can be fulfilled by the csb. A cloud service request, nevertheless, may fail for several reasons. In such a case, the status codes defined in Table 1 must be used instead. Specifically, if the csb fails to handle a request due to a syntax error in the request itself (e.g., incorrext XML, violation of the schema constraints or invalid values in any of the attributes/ elements) the csb MUST reply with a <CloudServiceResponse> with status code 400. If a syntactically correct request fails because the request also includes any attribute/element the csb doesn't understand, the csb Shao Weixiang, et al. Expires June 30, 2012 [Page 31] Internet-Draft Cloud Service Broker December 2011 MUST reply with a <CloudServiceResponse> with status code 420. If a syntactically correct request fails because the csb couldn't find any Cloud able to fulfil the requirements presented by the requester/consumer in its request, the csb MUST reply with a <CloudServiceResponse> with status code 408. If a syntactically correct request fails because the csb couldn't update an existing request according to the new requirements presented by the requester/consumer in its request, the csb MUST reply with a <CloudServiceResponse> with status code 409. If a syntactically correct request fails because the csb couldn't remove an existing request and release the related resources as requested by the requester/consumer, the csb MUST reply with a <CloudServiceResponse> with status code 410. The <CloudServiceResponse> element has the following child element. <response-job-info> for cloud service response job information. See Section 4.2.2.5. <IaaS> for IaaS resource information . See Section 4.2.2.6. <PaaS> for PaaS resource information . See Section 4.2.2.7. <SaaS> for SaaS resource information . See Section 4.2.2.8. <DSaaS> for DSaaS resource information . See Section 4.2.2.9. <encryption> for encryption . See Section 4.2.2.4. 4.2.2.3. <job-info> element The <job-info> element is included in Consumer requests. The element MAY be present. The <job-info> element has no attributes. The <job-info> element has the following child elements: job-id: is a unique identifier that explicitly references an existing cloud service request job on the csb. action: provides the operation that should be carried out on an existing job on an csb: Shao Weixiang, et al. Expires June 30, 2012 [Page 32] Internet-Draft Cloud Service Broker December 2011 * The value of 'update' instructs the csb to attempt to update the existing cloud service request job. * The value of 'remove' instructs the csb to attempt to remove the existing cloud service request job. 4.2.2.4. <encryption> The <encyption> element allows a Cloud Service requester/consumer to declare whether use encrypting or not, 'true' or 'false'. The element MAY be present. The <encryption> element has no attributes. The <encryption> element has no child elements. 4.2.2.5. <response-job-info> element The <response-job-info> element is included in Consumer responses. This applies to responses to both requests to create new job and requests to update an existing job. The element MAY be present: specifically, the element MUST be included in case the request was successful, while it would not appear otherwise (e.g., in case the request ended up with an error). The <response-job-info> element has no attributes. The <response-job-info> element has the following child elements: job-id: is a unique identifier that explicitly references an existing job on the csb. job-status: is the job status on CSB. expires: includes the number of seconds that the cloud resources are reserved as part of this interaction. If the lease is not refreshed before expiry, the csb will re-claim the resources and they will no longer be guaranteed. It is RECOMMENDED that a minimum value of 300 seconds be used for the value of the 'expires' attribute. It is also RECOMMENDED that a requester/ consumer refresh the lease at an interval that is not too close to the expiry time. A value of 80% of the timeout period could be used. Cloud-service-URI: is the URI to reach the Cloud handling the requested service resource. Shao Weixiang, et al. Expires June 30, 2012 [Page 33] Internet-Draft Cloud Service Broker December 2011 4.2.2.6. <IaaS> The <IaaS> element provides the details IaaS consumer information. The element MAY be present. The <IaaS> element has the following child elements: <Link> for Links to other resources that are in relationship to the IaaS information (e.g. a XML document of IaaS information requested by CSR ). See Section 4.1.2.3.2.5. <compute> for computing resource information. See Section 4.2.2.6.1. <network> for network resource information. See Section 4.2.2.6.2. <storage> for storage resource information. See Section 4.2.2.6.3. <NetworkInterface> for Network Interface information. See Section 4.2.2.6.4. <storagelink> for storage link information. See Section 4.2.2.6.5. 4.2.2.6.1. <compute> The <compute> element provides the IaaS details computing resource information. The element MAY be present. The <compute> element has the following child elements: <architecture> for CPU Architecture of the instance, example: x86, x64. The element MAY be present. <cores> for Number of CPU cores assigned to the instance. The element MAY be present . <hostname> for Fully Qualified DNS hostname for the instance. The element MAY be present . <speed> for CPU Clock frequency (speed) in gigahertz. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 34] Internet-Draft Cloud Service Broker December 2011 <memory> for Maximum RAM in gigabytes allocated to the instance. The element MAY be present . <status> for Current state of the instance: active, inactive, suspended. The element MAY be present . <action> for Actions applicable to instances of the Compute type: start, stop, restart, suspend. The element MAY be present. 4.2.2.6.2. <network> The <network> element provides the IaaS details network resource information. The element MAY be present. The <network> element has the following child elements: <vlan> for 802.1q VLAN Ientifier (e.g. 343). The element MAY be present. <VLANlabel> for Tag based VLANs (e.g. external-dmz). The element MAY be present . <address> for Internet Protocol(IP) network address. The element MAY be present . <gateway> for gateway Internet Protocol(IP) network address. The element MAY be present . <allocation> for Address allocation mechanism: dynamic, static. The element MAY be present . <status> for Current state of the instance: active, inactive. The element MAY be present . <action> for Actions applicable to instances of the Network type: up, down. The element MAY be present . 4.2.2.6.3. <storage> The <storage> element provides the IaaS details storage resource information.The element MAY be present. The <storage> element has the following child elements: <size> for Storage size in gigabytes of the instance. The element MAY be present. Shao Weixiang, et al. Expires June 30, 2012 [Page 35] Internet-Draft Cloud Service Broker December 2011 <status> for Current status of the instance. The element MAY be present . <action> for Actions applicable to instances of the Storage type: online, offline, backup, snapshot, resize. The element MAY be present . 4.2.2.6.4. <NetworkInterface> The <NetworkInterface> element provides client device (e.g. network adapter) information.The element MAY be present. The <NetworkInterface> element has the following child elements: <interface> for Identifier that relates the link to the link's device interface. The element MAY be present. <mac> for MAC address associated with the link's device interface. The element MAY be present . <status> for Current status of the instance. The element MAY be present . <ip> for Internet Protocol(IP) network address of the link. The element MAY be present . <gateway> for gateway Internet Protocol(IP) network address. The element MAY be present . <allocation> for Address allocation mechanism: dynamic, static. The element MAY be present . 4.2.2.6.5. <storagelink> The <storagelink> element provides a link from a Resource to a target Storage instance. The element MAY be present. The <storagelink> element has the following child elements: <deviceid> for Device identifier. The element MAY be present. <mountpoint> for Point to where the storage is mounted in the guest OS. The element MAY be present . <status> for Current status of the instance. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 36] Internet-Draft Cloud Service Broker December 2011 4.2.2.7. <PaaS> The <PaaS> element provides the details PaaS comsumption information. The element MAY be present. The <PaaS> element may has the following child elements: <Link> for Links to other resources that are in relationship to the PaaS information (e.g. a XML document of PaaS information requested by CSR ). See Section 4.1.2.3.2.5. 4.2.2.8. <SaaS> The <SaaS> element provides the details SaaS comsumption information. The element MAY be present. The <SaaS> element may has the following child elements: <Link> for Links to other resources that are in relationship to the SaaS information (e.g. a XML document of SaaS information requested by CSR ). See Section 4.1.2.3.2.5. 4.2.2.9. <DSaaS> The <DSaaS> element provides the details DSaaS comsumption information. The element MAY be present. The <DSaaS> element has the following child elements: <Link> for Links to other resources that are in relationship to the DSaaS information (e.g. a XML document of DSaaS information requested by CSR ). See Section 4.1.2.3.2.5. <DataObject> for Data Object information. See Section 4.2.2.9.1. <ContainerObject> for Container Object information. See Section 4.2.2.9.2. <DomainObject> for Domain Object information. See Section 4.2.2.9.3. <QueueObject> for Queue Object information. See Section 4.2.2.9.4. <CapabilityObject> for Capability Object information. See Section 4.2.2.9.5. Shao Weixiang, et al. Expires June 30, 2012 [Page 37] Internet-Draft Cloud Service Broker December 2011 4.2.2.9.1. <DataObject> The <DataObject> element provides the DSaaS details file resource information within a filesystem. The element MAY be present. The <DataObject> element has the following child elements: <mimetype> Mime type of the data contained within the value field of the data object. The element MAY be present. <metadata> Metadata for the data object. The element MAY be present . <objectURI> URI for the data object. The element MAY be present . <objectID> ID for the data object. The element MAY be present . <parentURI> parent URI for the data object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <value> The data object value. The element MAY be present . <status> Current state of the data object. The element MAY be present . 4.2.2.9.2. <ContainerObject> The <ContainerObject> element provides the DSaaS details directory resource information within a filesystem. The element MAY be present. The <ContainerObject>element has the following child elements: <metadata> Metadata for the Container object. The element MAY be present . <objectURI> URI for the container object. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 38] Internet-Draft Cloud Service Broker December 2011 <objectID> ID for the container object. The element MAY be present . <parentURI> parent URI for the container object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <exports> A structure for each protocol enabled for this container: OCCI, iSCSI, NFS, FCOE. The element MAY be present . <snapshots> URI(s) of the SnapShot containers. The element MAY be present . <children> children objects in the container. The element MAY be present . <status> Current state of the container object. The element MAY be present . 4.2.2.9.3. <DomainObject> The <DomainObject> element provides the DSaaS details storage system information. The element MAY be present. The <DomainObject> element has the following child elements: <metadata> Metadata for the Domain object. The element MAY be present . <objectURI> URI for the Domain object. The element MAY be present . <objectID> ID for the Domain object. The element MAY be present . <parentURI> parent URI for the Domain object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 39] Internet-Draft Cloud Service Broker December 2011 <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <enabled>The enable state of the domain: "true" or "false". The element MAY be present . <children> children objects in the container. The element MAY be present . 4.2.2.9.4. <QueueObject> The <QueueObject> element provides the DSaaS details queue information, a special class of container object and are used to provide first-in, first-out access when storing and retrieving data. The element MAY be present. The <QueueObject> element has the following child elements: <metadata> Metadata for the Queue object. The element MAY be present . <objectURI> URI for the Queue object. The element MAY be present . <objectID> ID for the Queue object. The element MAY be present . <parentURI> parent URI for the Queue object. The element MAY be present . <domainURI> URI of the owning domain. The element MAY be present . <capabilitiesURI> URI to the capabilities for the object. The element MAY be present . <status> Current state of the Queue object. The element MAY be present . 4.2.2.9.5. <CapabilityObject> The <CapabilityObject> element provides the DSaaS details Capability information, a special class of container object . The element MAY be present. The <CapabilityObject>element has the following child elements: Shao Weixiang, et al. Expires June 30, 2012 [Page 40] Internet-Draft Cloud Service Broker December 2011 <type> Capability object type: Cloud Storage System-Wide Capabilities, Storage System Metadata Capabilities, Data System Metadata Capabilities, Data Object Capabilities, Container Capabilities, Domain Capabilities,Queue Object Capabilities. The element MAY be present . <objectURI> URI for the Capability object. The element MAY be present . <objectID> ID for the Capability object. The element MAY be present . <parentURI> parent URI for the Capability object. The element MAY be present . <capabilities> A tag list of capabilities supported by the corresponding object. The element MAY be present . <children> children capabilities objects. The element MAY be present . Shao Weixiang, et al. Expires June 30, 2012 [Page 41] Internet-Draft Cloud Service Broker December 2011 5. Examples This section provides examples of both the Publish and Consumer interfaces. Note that due to RFC formatting conventions, this section often splits HTTP across lines whose content would exceed 72 characters. A backslash character marks where this line folding has taken place. This backslash and its trailing CRLF and whitespace would not appear in the actual protocol contents. Besides, also note that the indentation of the XML content is only provided for readability: actual messages will follow strict XML syntax, which allows for, but does not require, indentation. 5.1. Publish Example Figure 4 shows the subscription/notification mechanism the Publish interface is based on, as defined in Section 4.1. The csb subscribes for information at the Cloud (message A1.), and the Cloud accepts the subscription (A2). Notifications are triggered by the Cloud (A3.) and acknowledged by the csb (A4.). csb cloud | | | A1. HTTP POST (csb subscription) | |--------------------------------------------->| | A2. 200 OK | |<---------------------------------------------| | | . . . . | | | |--+ collect | | | | |<-+ info | B1. HTTP PUT (csb notification) | |<---------------------------------------------| | B2. 200 OK | |--------------------------------------------->| | | . . . . Figure 4: Publish Example: Sequence Diagram Shao Weixiang, et al. Expires June 30, 2012 [Page 42] Internet-Draft Cloud Service Broker December 2011 The rest of this section includes a full dump of the messages associated with the previous sequence diagram, specifically: 1. the subscription (A1), in an <csbrequest> 2. the Cloud accepting the subscription (A2), in an <csbresponse> 200 OK; 3. a notification (A3), in a <csbnotification> 4. the ack to the notification (A4), in 200 message A1. csb -> Cloud (HTTP POST,publish request) ------------------------------------------ POST /csb/publish HTTP/1.1 Content-Length: 870 Content-Type: application/csb-publish+xml Host: csb.example.net:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.0.1 (java 1.5) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <csbpublish version="1.0" xmlns="urn:ietf:params:xml:ns:csb-publish"> <csbrequest> <subscription action="create" seqnumber="1" id="p0T65U"> <expires>600</expires> <frequency>20</frequency> </subscription> </csbrequest> </csbpublish> A2. csb <- Cloud (200 to POST, request accepted) --------------------------------------------- HTTP/1.1 200 OK X-Powered-By: Servlet/2.5 Server: Sun GlassFish Communications Server 1.5 Content-Type: application/csb-publish+xml;charset=ISO-8859-1 Content-Length: 506 Date: Mon, 08 Feb 2011 16:53:34 GMT <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <csbpublish version="1.0" xmlns="urn:ietf:params:xml:ns:csb-publish"> <csbresponse status="200" reason="OK: Request accepted"/> Shao Weixiang, et al. Expires June 30, 2012 [Page 43] Internet-Draft Cloud Service Broker December 2011 </csbpublish> B1. csb <- Cloud (HTTP PUT, event notification from Cloud) --------------------------------------------------- POST /csb/publish HTTP/1.1 Server: Sun GlassFish Communications Server 1.5 Content-Length: 1870 Content-Type: application/csb-publish+xml Date: Mon, 08 Feb 2011 16:53:39 GMT <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <csbpublish version="1.0" xmlns="urn:ietf:params:xml:ns:csb-publish" > <csbnotification seqnumber="1" id="QQ6J3c"> <Cloud-Service-Provider> <Cloud-Service-Provider-id>a1b2c3d4 </Cloud-Service-Provider-id> <Cloud-Service-Provider-status>active </Cloud-Service-Provider-status> <Cloud-Service-Provider-URI>......... </Cloud-Service-Provider-URI> </Cloud-Service-Provider> <Cloud-Service> <Cloud-Service-id>w1x2y3z4</Cloud-Service-id> <Cloud-Service-status>active</Cloud-Service-status> <Cloud-Service-URI>.........</Cloud-Service-URI> <IaaS-support> <compute-support> <architecture>......</architecture> <cores >......</cores> <hostname>......</hostname> <speed>......</speed> <memory>......</memory> <status>......</status> </compute-support> <Network-support> <vlan>......</vlan> <VLANlabel>......</VLANlabel> <address>......</address> <gateway>......</gateway> <allocation>......</allocation> </Network-support> <Storage-support> <size>......</size> <status>......</status> </Storage-support> </IaaS-support> </Cloud-Service> Shao Weixiang, et al. Expires June 30, 2012 [Page 44] Internet-Draft Cloud Service Broker December 2011 <Cloud-Service> <Cloud-Service-id>w2x3y4z5</Cloud-Service-id> <Cloud-Service-status>active</Cloud-Service-status> <Cloud-Service-URI>.........</Cloud-Service-URI> <DSaaS-support> <DataObject-support> <metadata>.....</metadata> <objectURI>.....</objectURI> <objectID>.....</objectID> <parentURI>.....</parentURI> <domainURI>.....</domainURI> <capabilitiesURI>.....</capabilitiesURI> <Mimetype>.....</Mimetype> <value>.....</value> </DataObject-support> <Container-support> <metadata>.....</metadata> <objectURI>.....</objectURI> <objectID>.....</objectID> <parentURI>.....</parentURI> <domainURI>.....</domainURI> <capabilitiesURI>.....</capabilitiesURI> <exports>.....</exports> <snapshots>.....</snapshots> <children>.....</children> </Container-support> <Domain-support> <metadata>.....</metadata> <objectURI>.....</objectURI> <objectID>.....</objectID> <parentURI>.....</parentURI> <domainURI>.....</domainURI> <capabilitiesURI>.....</capabilitiesURI> <children>.....</children> <Location>.....</Location> </domain-support> <Queue-support> <metadata>.....</metadata> <objectURI>.....</objectURI> <objectID>.....</objectID> <parentURI>.....</parentURI> <domainURI>.....</domainURI> <capabilitiesURI>.....</capabilitiesURI> <queueValues>.....</queueValues> </Queue-support> </DSaaS-support> </Cloud-Service> <Cloud-Service> Shao Weixiang, et al. Expires June 30, 2012 [Page 45] Internet-Draft Cloud Service Broker December 2011 <Cloud-Service-id>w3x6y6z9</Cloud-Service-id> <Cloud-Service-status>active</Cloud-Service-status> <Cloud-Service-URI>.........</Cloud-Service-URI> <PaaS-support> <link> <rel>example CSP1's work flow</rel> <href>...</href> </link> </PaaS-support> </Cloud-Service> <Cloud-Service> <Cloud-Service-id>w4x7y6h0</Cloud-Service-id> <Cloud-Service-status>active</Cloud-Service-status> <Cloud-Service-URI>.........</Cloud-Service-URI> <SaaS-support> <link> <rel>example CSP2's sms service</rel> <href>...</href> </link> </SaaS-support> </Cloud-Service> <encryption>false</encryption> </csbnotification> </csbpublish> B2. csb -> Cloud (200 to PUT) ------------------------------ HTTP/1.1 200 OK 5.2. Consumer Example The following example assumes the interested Requester/Consumer already knows the HTTP URL where an csb is listening for Consumer messages. Figure 5 shows the HTTP-based transaction between the Requester/ Consumer and the csb. The Requester sends a consumer request as payload of an HTTP POST message (1.), and the csb provides an answer in an HTTP 200 OK message (2.). Shao Weixiang, et al. Expires June 30, 2012 [Page 46] Internet-Draft Cloud Service Broker December 2011 Requester/Consumer CSB | | | 1. HTTP POST (Consumer request) | |--------------------------------------------->| | | | | | |--+ Parse request | | | and see if | |<-+ any cloud | | applies | 2. 200 OK (Consumer response) | |<---------------------------------------------| | | |--+ Parse response and | | | start job | |<-+ with Cloud reported by csb | | | . . . . Figure 5: Consumer Example: Sequence Diagram The rest of this section includes a full dump of the messages associated with the previous sequence diagram, specifically: 1. the Consumer request (1), in a <CloudServiceRequest> (HTTP POST, Content-Type 'application/csb-consumer+xml'); 2. the Consumer response (2), in an <CloudServiceResponse> (HTTP 200 OK, Content-Type 'application/csb-consumer+xml'). 1. Requester/Consumer -> CSB (HTTP POST, Consumer request) ------------------------------------------ POST /csb/Consumer HTTP/1.1 Content-Length: 870 Content-Type: application/csb-consumer+xml Host: csb.example.net:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.0.1 (java 1.5) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <csbconsumer version="1.0" xmlns="urn:ietf:params:xml:ns:csb-consumer"> <CloudServiceRequest> <IaaS> <compute> Shao Weixiang, et al. Expires June 30, 2012 [Page 47] Internet-Draft Cloud Service Broker December 2011 <architecture>......</architecture> <cores >......</cores> <hostname>......</hostname> <speed>......</speed> <memory>......</memory> <status>......</status> </compute> <Network> <vlan>......</vlan> <VLANlabel>......</VLANlabel> <address>......</address> <gateway>......</gateway> <allocation>......</allocation> </Network> <Storage> <size>......</size> <status>......</status> </Storage> </IaaS> </CloudServiceRequest> </csbconsumer> 2. Requester/Consumer <- CSB (200 to POST, Consumer response) --------------------------------------------- HTTP/1.1 200 OK X-Powered-By: Servlet/2.5 Server: Sun GlassFish Communications Server 1.5 Content-Type: application/csb-consumer+xml;charset=ISO-8859-1 Content-Length: 506 Date: Mon, 08 Feb 2011 16:33:34 GMT <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <csbconsumer version="1.0" xmlns="urn:ietf:params:xml:ns:csb-consumer" > <CloudServiceResponse reason="Resource found" status="200"> <response-job-info> <job-id>0GX1jCYZ8WBa</job-id> <job-status>success</job-status> <expires>3600</expires> <Cloud-service-URI>http://xyz.example.com/IaaS?%E5%8D%97% -E4%BA%AC%E5%9C%B0%E5%9B%BE&um=9-hsTdK1BYKGvAOErJDTBA </Cloud-service-URI> </response-job-info> <IaaS> <compute> <architecture>......</architecture> <cores >......</cores> <hostname>......</hostname> Shao Weixiang, et al. Expires June 30, 2012 [Page 48] Internet-Draft Cloud Service Broker December 2011 <speed>......</speed> <memory>......</memory> <status>......</status> </compute> <Network> <vlan>......</vlan> <VLANlabel>......</VLANlabel> <address>......</address> <gateway>......</gateway> <allocation>......</allocation> </Network> <Storage> <size>......</size> <status>......</status> </Storage> </IaaS> </CloudServiceResponse> </csbconsumer> Shao Weixiang, et al. Expires June 30, 2012 [Page 49] Internet-Draft Cloud Service Broker December 2011 6. Cloud Service Publish Interface XML Schema This section gives the XML Schema Definition [W3C.REC-xmlschema-1- 20041028], [W3C.REC-xmlschema-2-20041028] of the "application/ csb-publish+xml" format. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace="urn:ietf:params:xml:ns:csb-publish" elementFormDefault="qualified" blockDefault="#all" xmlns="urn:ietf:params:xml:ns:csb-publish" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> IETF OPSAWG CSB 1.0 This is the schema of the IETF OPSAWG CSB Publish Interface package. The schema namespace is urn:ietf:params:xml:ns:csb-publish </xsd:documentation> </xsd:annotation> <!-- ############################################################# SCHEMA IMPORTS ############################################################# --> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"> <xsd:annotation> <xsd:documentation> This import brings in the XML attributes for xml:base, xml:lang, etc </xsd:documentation> </xsd:annotation> </xsd:import> <!-- ##################################################### Extensible core type Shao Weixiang, et al. Expires June 30, 2012 [Page 50] Internet-Draft Cloud Service Broker December 2011 ##################################################### --> <xsd:complexType name="Tcore"> <xsd:annotation> <xsd:documentation> This type is extended by other (non-mixed) component types to allow attributes from other namespaces. </xsd:documentation> </xsd:annotation> <xsd:sequence/> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:complexType> <!-- ##################################################### TOP LEVEL ELEMENT: csbpublish ##################################################### --> <xsd:complexType name="csbpublishType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:choice> <xsd:element ref="csbrequest" /> <xsd:element ref="csbresponse" /> <xsd:element ref="csbnotification" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:choice> </xsd:sequence> <xsd:attribute name="version" type="version.datatype" use="required" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="csbpublish" type="csbpublishType" /> <!-- ##################################################### Shao Weixiang, et al. Expires June 30, 2012 [Page 51] Internet-Draft Cloud Service Broker December 2011 csbrequest TYPE ##################################################### --> <!-- csbrequest --> <xsd:complexType name="csbrequestType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="subscription" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="csbrequest" type="csbrequestType" /> <!-- subscription --> <xsd:complexType name="subscriptionType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="expires" type="xsd:nonNegativeInteger" minOccurs="0" maxOccurs="1" /> <xsd:element name="frequency" type="xsd:nonNegativeInteger" minOccurs="0" maxOccurs="1" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> <xsd:attribute name="id" type="id.datatype" use="required" /> <xsd:attribute name="seqnumber" type="xsd:nonNegativeInteger" use="required" /> <xsd:attribute name="action" type="action.datatype" use="required" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="subscription" type="subscriptionType" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 52] Internet-Draft Cloud Service Broker December 2011 <!-- ##################################################### csbresponse TYPE ##################################################### --> <!-- csbresponse --> <xsd:complexType name="csbresponseType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> <xsd:attribute name="status" type="status.datatype" use="required" /> <xsd:attribute name="reason" type="xsd:string" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="csbresponse" type="csbresponseType" /> <!-- ##################################################### csbnotification TYPE ##################################################### --> <!-- csbnotification --> <xsd:complexType name="csbnotificationType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Cloud-Service-Provider" /> <xsd:element ref="Cloud-Service" /> <xsd:element ref="encryption-support" minOccurs="0" /> <xsd:element ref="label" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 53] Internet-Draft Cloud Service Broker December 2011 </xsd:sequence> <xsd:attribute name="id" type="id.datatype" use="required" /> <xsd:attribute name="seqnumber" type="xsd:nonNegativeInteger" use="required" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="csbnotification" type="csbnotificationType" /> <!-- Cloud-Service-Provider --> <xsd:complexType name="Cloud-Service-ProviderType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="Cloud-Service-Provider-id" type="id.datatype"/> <xsd:element name="Cloud-Service-Provider-status" type="CSPstatus.datatype" /> <xsd:element name="Cloud-Service-Provider-URI" type="xsd:anyURI" minOccurs="0" maxOccurs="1" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Cloud-Service-Provider" type="Cloud-Service-ProviderType" /> <!-- Cloud-Service--> <xsd:complexType name="Cloud-ServiceType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="Cloud-Service-id" type="id.datatype"/> <xsd:element name="Cloud-Service-status" type="CSstatus.datatype"/> <xsd:element name="Cloud-Service-URI" type="xsd:anyURI" minOccurs="0" maxOccurs="1" /> <xsd:choice> <xsd:element ref="IaaS-support" minOccurs="0" /> <xsd:element ref="PaaS-support" minOccurs="0" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 54] Internet-Draft Cloud Service Broker December 2011 <xsd:element ref="SaaS-support" minOccurs="0" /> <xsd:element ref="DSaaS-support" minOccurs="0" /> </xsd:choice> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Cloud-Service" type="Cloud-ServiceType" /> <!-- IaaS-support--> <xsd:complexType name="IaaS-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:element ref="compute-support" minOccurs="0" /> <xsd:element ref="network-support" minOccurs="0" /> <xsd:element ref="storage-support" minOccurs="0" /> <xsd:element ref="NetworkInterface-support" minOccurs="0" /> <xsd:element ref="storagelink-support" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="IaaS-support" type="IaaS-supportType" /> <xsd:complexType name="compute-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="architecture" type="xsd:string" minOccurs="0" /> <xsd:element name="cores" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="hostname" type="xsd:string" minOccurs="0" /> <xsd:element name="speed" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="memory" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="status" type="computestatus.datatype" minOccurs="0" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 55] Internet-Draft Cloud Service Broker December 2011 <xsd:element name="action" type="computeaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="compute-support" type="compute-supportType" /> <xsd:complexType name="network-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="vlan" type="id.datatype" minOccurs="0"/> <xsd:element name="VLANlabel" type="label.datatype" minOccurs="0"/> <xsd:element name="address" type="xsd:string" minOccurs="0" /> <xsd:element name="gateway" type="xsd:string" minOccurs="0" /> <xsd:element name="allocation" type="allocation.datatype" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:element name="action" type="networkaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="network-support" type="network-supportType" /> <xsd:complexType name="storage-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="size" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="status" type="storagestatus.datatype" minOccurs="0" /> <xsd:element name="action" type="storageaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> Shao Weixiang, et al. Expires June 30, 2012 [Page 56] Internet-Draft Cloud Service Broker December 2011 </xsd:complexContent> </xsd:complexType> <xsd:element name="storage-support" type="storage-supportType" /> <xsd:complexType name="NetworkInterface-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="interface" type="id.datatype" minOccurs="0"/> <xsd:element name="mac" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:element name="ip" type="xsd:string" minOccurs="0" /> <xsd:element name="gateway" type="xsd:string" minOccurs="0" /> <xsd:element name="allocation" type="allocation.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="NetworkInterface-support" type="NetworkInterface-supportType" /> <xsd:complexType name="storagelink-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="deviceid" type="id.datatype" minOccurs="0" /> <xsd:element name="mountpoint" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="storagelink-support" type="storagelink-supportType" /> <!-- PaaS-support--> <xsd:complexType name="PaaS-supportType"> Shao Weixiang, et al. Expires June 30, 2012 [Page 57] Internet-Draft Cloud Service Broker December 2011 <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <!-- further study--> <xsd:element ref="Link" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="PaaS-support" type="PaaS-supportType" /> <!-- SaaS-support--> <xsd:complexType name="SaaS-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SaaS-support" type="SaaS-supportType" /> <!-- DSaaS-support--> <xsd:complexType name="DSaaS-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:element ref="DataObject-support" minOccurs="0" /> <xsd:element ref="ContainerObject-support" minOccurs="0" /> <xsd:element ref="DomainObject-support" minOccurs="0" /> <xsd:element ref="QueueObject-support" minOccurs="0" /> <xsd:element ref="CapabilityObject-support" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> Shao Weixiang, et al. Expires June 30, 2012 [Page 58] Internet-Draft Cloud Service Broker December 2011 <xsd:element name="DSaaS-support" type="DSaaS-supportType" /> <xsd:complexType name="DataObject-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="mimetype" type="xsd:string" minOccurs="0" /> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataObject-support" type="DataObject-supportType" /> <xsd:complexType name="ContainerObject-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="exports" type="xsd:string" minOccurs="0" /> <xsd:element name="snapshots" type="xsd:string" minOccurs="0" /> <xsd:element name="children" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> Shao Weixiang, et al. Expires June 30, 2012 [Page 59] Internet-Draft Cloud Service Broker December 2011 <xsd:element name="ContainerObject-support" type="ContainerObject-supportType" /> <xsd:complexType name="DomainObject-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="enabled" type="boolean.datatype" minOccurs="0" /> <xsd:element name="children" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DomainObject-support" type="DomainObject-supportType" /> <xsd:complexType name="QueueObject-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="QueueObject-support" type="QueueObject-supportType" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 60] Internet-Draft Cloud Service Broker December 2011 <xsd:complexType name="CapabilityObject-supportType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="type" type="Capabilityobjecttype.datatype" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="CapabilityObject-support" type="CapabilityObject-supportType" /> <!-- label --> <xsd:element name="label" type="label.datatype" /> <!-- encryption --> <xsd:element name="encryption-support" type="boolean.datatype" /> <!--Link --> <xsd:complexType name="LinkType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="rel" type="xsd:string" minOccurs="0" /> <xsd:element name="href" type="xsd:anyURI" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Link" type="LinkType" /> <!-- Shao Weixiang, et al. Expires June 30, 2012 [Page 61] Internet-Draft Cloud Service Broker December 2011 #################################################### DATATYPES #################################################### --> <xsd:simpleType name="version.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="1.0" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="id.datatype"> <xsd:restriction base="xsd:NMTOKEN" /> </xsd:simpleType> <xsd:simpleType name="status.datatype"> <xsd:restriction base="xsd:positiveInteger"> <xsd:pattern value="[0-9][0-9][0-9]" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="CSPstatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="deactivated" /> <xsd:enumeration value="unavailable" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="CSstatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="deactivated" /> <xsd:enumeration value="unavailable" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="computestatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="inactive" /> <xsd:enumeration value="suspended" /> </xsd:restriction> </xsd:simpleType> Shao Weixiang, et al. Expires June 30, 2012 [Page 62] Internet-Draft Cloud Service Broker December 2011 <xsd:simpleType name="networkstatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="inactive" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="storagestatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="online" /> <xsd:enumeration value="offline" /> <xsd:enumeration value="degraded" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="action.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="create" /> <xsd:enumeration value="update" /> <xsd:enumeration value="remove" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="computeaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="start" /> <xsd:enumeration value="stop" /> <xsd:enumeration value="restart" /> <xsd:enumeration value="suspend" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="networkaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="up" /> <xsd:enumeration value="down" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="storageaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="online" /> <xsd:enumeration value="offline" /> <xsd:enumeration value="backup" /> <xsd:enumeration value="snapshot" /> <xsd:enumeration value="resize" /> </xsd:restriction> </xsd:simpleType> Shao Weixiang, et al. Expires June 30, 2012 [Page 63] Internet-Draft Cloud Service Broker December 2011 <xsd:simpleType name="allocation.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="dynamic" /> <xsd:enumeration value="static" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="boolean.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="true" /> <xsd:enumeration value="false" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Capabilityobjecttype.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="Cloud Storage System-Wide Capabilities" /> <xsd:enumeration value="Storage System Metadata Capabilities" /> <xsd:enumeration value="Data System Metadata Capabilities" /> <xsd:enumeration value="Data Object Capabilities" /> <xsd:enumeration value="Container Capabilities" /> <xsd:enumeration value="Domain Capabilities" /> <xsd:enumeration value="Queue Object Capabilities" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="label.datatype"> <xsd:restriction base="xsd:NMTOKEN" /> </xsd:simpleType> </xsd:schema> Figure 6 Shao Weixiang, et al. Expires June 30, 2012 [Page 64] Internet-Draft Cloud Service Broker December 2011 7. Cloud Service Consumer Interface XML Schema This section gives the XML Schema Definition [W3C.REC-xmlschema-1- 20041028], [W3C.REC-xmlschema-2-20041028] of the "application/ csb-consumer+xml" format. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace="urn:ietf:params:xml:ns:csb-consumer" elementFormDefault="qualified" blockDefault="#all" xmlns="urn:ietf:params:xml:ns:csb-consumer" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation> IETF OPSAWG csb 1.0 This is the schema of the IETF OPSAWG CSB Consumer interface Package. The schema namespace is urn:ietf:params:xml:ns:csb-consumer </xsd:documentation> </xsd:annotation> <!-- ############################################################# SCHEMA IMPORTS ############################################################# --> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"> <xsd:annotation> <xsd:documentation> This import brings in the XML attributes for xml:base, xml:lang, etc </xsd:documentation> </xsd:annotation> </xsd:import> <!-- ##################################################### Shao Weixiang, et al. Expires June 30, 2012 [Page 65] Internet-Draft Cloud Service Broker December 2011 Extensible core type ##################################################### --> <xsd:complexType name="Tcore"> <xsd:annotation> <xsd:documentation> This type is extended by other (non-mixed) component types to allow attributes from other namespaces. </xsd:documentation> </xsd:annotation> <xsd:sequence/> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:complexType> <!-- ##################################################### TOP LEVEL ELEMENT: csbconsumer ##################################################### --> <xsd:complexType name="csbconsumerType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:choice> <xsd:element ref="CloudServiceRequest" /> <xsd:element ref="CloudServiceResponse" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:choice> </xsd:sequence> <xsd:attribute name="version" type="version.datatype" use="required" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="csbconsumer" type="csbconsumerType" /> <!-- ##################################################### Shao Weixiang, et al. Expires June 30, 2012 [Page 66] Internet-Draft Cloud Service Broker December 2011 CloudServiceRequest TYPE ##################################################### --> <!-- CloudServiceRequst --> <xsd:complexType name="CloudServiceRequestType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="job-info" minOccurs="0" /> <xsd:element ref="IaaS" minOccurs="0" /> <xsd:element ref="PaaS" minOccurs="0" /> <xsd:element ref="SaaS" minOccurs="0" /> <xsd:element ref="DSaaS" minOccurs="0" /> <xsd:element ref="encryption" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="CloudServiceRequest" type="CloudServiceRequestType" /> <!-- ##################################################### CloudServiceResponse TYPE ##################################################### --> <!-- CloudServiceResponse --> <xsd:complexType name="CloudServiceResponseType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="response-job-info" minOccurs="0" /> <xsd:element ref="IaaS" minOccurs="0" /> <xsd:element ref="PaaS" minOccurs="0" /> <xsd:element ref="SaaS" minOccurs="0" /> <xsd:element ref="DSaaS" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" Shao Weixiang, et al. Expires June 30, 2012 [Page 67] Internet-Draft Cloud Service Broker December 2011 maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> <xsd:attribute name="status" type="status.datatype" use="required" /> <xsd:attribute name="reason" type="xsd:string" /> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="CloudServiceResponse" type="CloudServiceResponseType" /> <!-- #################################################### ELEMENTS #################################################### --> <!-- job-info --> <xsd:complexType name="job-infoType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:choice> <xsd:element name="job-id" type="id.datatype"/> <xsd:element name="action" type="action.datatype"/> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:choice> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="job-info" type="job-infoType" /> <!-- response-job-info --> <xsd:complexType name="response-job-infoType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> Shao Weixiang, et al. Expires June 30, 2012 [Page 68] Internet-Draft Cloud Service Broker December 2011 <xsd:choice> <xsd:element name="job-id" type="id.datatype"/> <xsd:element name="job-status" type="xsd:string"/> <xsd:element name="expires" type="xsd:nonNegativeInteger"/> <xsd:element name="Cloud-service-URI" type="xsd:anyURI" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:choice> </xsd:sequence> <xsd:anyAttribute namespace="##other" processContents="lax" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="response-job-info" type="response-job-infoType" /> <!-- IaaS--> <xsd:complexType name="IaaSType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:element ref="compute" minOccurs="0" /> <xsd:element ref="network" minOccurs="0" /> <xsd:element ref="storage" minOccurs="0" /> <xsd:element ref="NetworkInterface" minOccurs="0" /> <xsd:element ref="storagelink" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="IaaS" type="IaaSType" /> <xsd:complexType name="computeType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="architecture" type="xsd:string" minOccurs="0" /> <xsd:element name="cores" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="hostname" type="xsd:string" minOccurs="0" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 69] Internet-Draft Cloud Service Broker December 2011 <xsd:element name="speed" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="memory" type="xsd:nonNegativeInteger" minOccurs="0" /> <xsd:element name="status" type="computestatus.datatype" minOccurs="0" /> <xsd:element name="action" type="computeaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="compute" type="computeType" /> <xsd:complexType name="networkType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="vlan" type="id.datatype" minOccurs="0"/> <xsd:element name="VLANlabel" type="label.datatype" minOccurs="0"/> <xsd:element name="address" type="xsd:string" minOccurs="0" /> <xsd:element name="gateway" type="xsd:string" minOccurs="0" /> <xsd:element name="allocation" type="allocation.datatype" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:element name="action" type="networkaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="network" type="networkType" /> <xsd:complexType name="storageType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="size" type="xsd:nonNegativeInteger" Shao Weixiang, et al. Expires June 30, 2012 [Page 70] Internet-Draft Cloud Service Broker December 2011 minOccurs="0" /> <xsd:element name="status" type="storagestatus.datatype" minOccurs="0" /> <xsd:element name="action" type="storageaction.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="storage" type="storageType" /> <xsd:complexType name="NetworkInterfaceType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="interface" type="id.datatype" minOccurs="0" /> <xsd:element name="mac" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:element name="ip" type="xsd:string" minOccurs="0" /> <xsd:element name="gateway" type="xsd:string" minOccurs="0" /> <xsd:element name="allocation" type="allocation.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="NetworkInterface" type="NetworkInterfaceType" /> <xsd:complexType name="storagelinkType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="deviceid" type="id.datatype" minOccurs="0" /> <xsd:element name="mountpoint" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="networkstatus.datatype" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> Shao Weixiang, et al. Expires June 30, 2012 [Page 71] Internet-Draft Cloud Service Broker December 2011 </xsd:complexType> <xsd:element name="storagelink" type="storagelinkType" /> <!-- PaaS--> <xsd:complexType name="PaaSType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="PaaS" type="PaaSType" /> <!-- SaaS--> <xsd:complexType name="SaaSType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SaaS" type="SaaSType" /> <!-- DSaaS--> <xsd:complexType name="DSaaSType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element ref="Link" minOccurs="0" /> <xsd:element ref="DataObject" minOccurs="0" /> <xsd:element ref="ContainerObject" minOccurs="0" /> <xsd:element ref="DomainObject" minOccurs="0" /> <xsd:element ref="QueueObject" minOccurs="0" /> <xsd:element ref="CapabilityObject" minOccurs="0" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 72] Internet-Draft Cloud Service Broker December 2011 <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DSaaS" type="DSaaSType" /> <xsd:complexType name="DataObjectType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="mimetype" type="xsd:string" minOccurs="0" /> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataObject" type="DataObjectType" /> <xsd:complexType name="ContainerObjectType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="exports" type="xsd:string" minOccurs="0" /> <xsd:element name="snapshots" type="xsd:string" minOccurs="0" /> <xsd:element name="children" type="xsd:string" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" Shao Weixiang, et al. Expires June 30, 2012 [Page 73] Internet-Draft Cloud Service Broker December 2011 maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ContainerObject" type="ContainerObjectType" /> <xsd:complexType name="DomainObjectType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="enabled" type="boolean.datatype" minOccurs="0" /> <xsd:element name="children" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DomainObject" type="DomainObjectType" /> <xsd:complexType name="QueueObjectType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="metadata" type="xsd:string" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> Shao Weixiang, et al. Expires June 30, 2012 [Page 74] Internet-Draft Cloud Service Broker December 2011 </xsd:complexType> <xsd:element name="QueueObject" type="QueueObjectType" /> <xsd:complexType name="CapabilityObjectType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="type" type="Capabilityobjecttype.datatype" minOccurs="0" /> <xsd:element name="objectURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="objectID" type="id.datatype" minOccurs="0" /> <xsd:element name="parentURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="domainURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="capabilitiesURI" type="xsd:anyURI" minOccurs="0" /> <xsd:element name="status" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="CapabilityObject" type="CapabilityObjectType" /> <!-- encryption --> <xsd:element name="encryption" type="boolean.datatype" /> <!--Link --> <xsd:complexType name="LinkType"> <xsd:complexContent> <xsd:extension base="Tcore"> <xsd:sequence> <xsd:element name="rel" type="xsd:string" minOccurs="0" /> <xsd:element name="href" type="xsd:anyURI" minOccurs="0" /> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Link" type="LinkType" /> <!-- #################################################### Shao Weixiang, et al. Expires June 30, 2012 [Page 75] Internet-Draft Cloud Service Broker December 2011 DATATYPES #################################################### --> <xsd:simpleType name="version.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="1.0" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="id.datatype"> <xsd:restriction base="xsd:NMTOKEN" /> </xsd:simpleType> <xsd:simpleType name="status.datatype"> <xsd:restriction base="xsd:positiveInteger"> <xsd:pattern value="[0-9][0-9][0-9]" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="computestatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="inactive" /> <xsd:enumeration value="suspended" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="networkstatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="active" /> <xsd:enumeration value="inactive" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="storagestatus.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="online" /> <xsd:enumeration value="offline" /> <xsd:enumeration value="degraded" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="action.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="update" /> <xsd:enumeration value="remove" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 76] Internet-Draft Cloud Service Broker December 2011 </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="computeaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="start" /> <xsd:enumeration value="stop" /> <xsd:enumeration value="restart" /> <xsd:enumeration value="suspend" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="networkaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="up" /> <xsd:enumeration value="down" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="storageaction.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="online" /> <xsd:enumeration value="offline" /> <xsd:enumeration value="backup" /> <xsd:enumeration value="snapshot" /> <xsd:enumeration value="resize" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="allocation.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="dynamic" /> <xsd:enumeration value="static" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="boolean.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="true" /> <xsd:enumeration value="false" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Capabilityobjecttype.datatype"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="Cloud Storage System-Wide Capabilities" /> <xsd:enumeration value="Storage System Metadata Capabilities" /> <xsd:enumeration value="Data System Metadata Capabilities" /> Shao Weixiang, et al. Expires June 30, 2012 [Page 77] Internet-Draft Cloud Service Broker December 2011 <xsd:enumeration value="Data Object Capabilities" /> <xsd:enumeration value="Container Capabilities" /> <xsd:enumeration value="Domain Capabilities" /> <xsd:enumeration value="Queue Object Capabilities" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="label.datatype"> <xsd:restriction base="xsd:NMTOKEN" /> </xsd:simpleType> </xsd:schema> Figure 7 Shao Weixiang, et al. Expires June 30, 2012 [Page 78] Internet-Draft Cloud Service Broker December 2011 8. Security Considerations The csb network entity has two primary interfaces, Publish and Consumer, that carry sensitive information and must therefore be appropriately protected and secured. These two interfaces, uses Hypertext Transfer Protocol (HTTP) as the mechanism for clients to connect to an csb to request cloud resources. In the case of the HTTP use, any binding using the two interfaces MUST be capable of being transacted over TLS, as described in RFC 2818 [RFC2818]. Finally, it is worthwhile to also discuss authorization issues related to the specification. Neither the Publishing nor the Consumer interface provide an explicit means for implementing authentication, i.e., they do not envisage protocol messages to make sure, for instance, that only authorized requesters/consumers can make use of the services provided by a csb. Nevertheless, considering both the interfaces are transported in well-established protocols (HTTP), support for such an functionality can be expressed by means of the authentication mechanisms provided by the protocol themselves. Therefore, any csb-aware entity (applications, clients, Cloud Service Providers, Media Resource Broker itself) MUST support the HTTP Digest access authentication. That said, the usage of such Digest access authentications is recommended and not mandatory, which means csb-aware entities MAY exploit it in deployment. Shao Weixiang, et al. Expires June 30, 2012 [Page 79] Internet-Draft Cloud Service Broker December 2011 9. IANA Considerations There are several IANA considerations associated with this specification. 9.1. application/csb-publish+xml MIME Type MIME media type name: application MIME subtype name: csb-publish+xml Mandatory parameters: none Optional parameters: Same as charset parameter application/xml as specified in RFC 3023 [RFC3023]. Encoding considerations: Same as encoding considerations of application/xml as specified in RFC 3023 [RFC3023]. Security considerations: See Section 10 of RFC 3023 [RFC3023] and Section 8 of RFCXXXX [[NOTE TO RFC-EDITOR/IANA: Please replace XXXX with the RFC number of this specification.]]. Interoperability considerations: none. Published specification: This document. Applications which use this media type: This document type has been used to support a Cloud Service Broker (csb) entity. Additional Information: Magic Number: None File Extension: .xdf Macintosh file type code: "TEXT" Intended usage: COMMON Author/Change controller: The IETF. 9.2. application/csb-consumer+xml MIME Type Shao Weixiang, et al. Expires June 30, 2012 [Page 80] Internet-Draft Cloud Service Broker December 2011 MIME media type name: application MIME subtype name: csb-consumer+xml Mandatory parameters: none Optional parameters: Same as charset parameter application/xml as specified in RFC 3023 [RFC3023]. Encoding considerations: Same as encoding considerations of application/xml as specified in RFC 3023 [RFC3023]. Security considerations: See Section 10 of RFC 3023 [RFC3023] and Section 8 of RFCXXXX [[NOTE TO RFC-EDITOR/IANA: Please replace XXXX with the RFC number of this specification.]]. Interoperability considerations: none. Published specification: This document. Applications which use this media type: This document type has been used to support a Cloud Service Broker (csb) entity. Additional Information: Magic Number: None File Extension: .xdf Macintosh file type code: "TEXT" Intended usage: COMMON Author/Change controller: The IETF. 9.3. URN Sub-Namespace Registration for csb-publish Please register the URN name space "urn:ietf:params:xml:ns:csb-publish", with the ID of "csb-publish". The template is in Section 6. 9.4. URN Sub-Namespace Registration for csb-consumer Please register the URN name space "urn:ietf:params:xml:ns:csb-consumer", with the ID of "csb-consumer". The template is in Section 7. Shao Weixiang, et al. Expires June 30, 2012 [Page 81] Internet-Draft Cloud Service Broker December 2011 9.5. XML Schema Registration for csb-publish Please register the schema for csb-publish: URI: urn:ietf:params:xml:ns:csb-publish ID: csb-publish Filename: csb-publish Registrant Contact: IETF OPSAWG (opsawg@ietf.org) Schema: The XML for the schema is in Section 6 of this document. 9.6. XML Schema Registration for csb-consumer Please register the schema for csb-consumer: URI: urn:ietf:params:xml:ns:csb-consumer ID: csb-consumer Filename: csb-consumer Registrant Contact: IETF OPSAWG (opsawg@ietf.org) Schema: The XML for the schema is in Section 7 of this document. Shao Weixiang, et al. Expires June 30, 2012 [Page 82] Internet-Draft Cloud Service Broker December 2011 10. References 10.1. Normative References [CCUCWP] Open Cloud Manifesto, "Cloud Computing Use Cases White Paper V4.0", 2010. [CSAguide] Cloud Security Alliance, "Security Guidance for Critical Areas of Focus in Cloud Computing V2.1", 2009. [DMTF CIMI] Distributed Management Task Force, "Cloud Infrastructure Management Interface(CIMI) Model and REST Interface over HTTP", DMTF DSP0263, 2011. [DMTF OVF] Distributed Management Task Force, "Open Virtualization Format Specification V1.1.0", DMTF DSP0243, 2010. [ITU-T FGCC Ecosystem] ITU-T Focus Group Cloud Computing, "Draft deliverable on Introduction to the cloud ecosystem: definitions, taxonomies, use cases, high level requirements", 2011. [NIST RA] National Institute of Standards and Technology, "NIST Special Publication 500-292 Cloud Computing Reference Architecture", 2011. [OGF OCCI] Open Grid Forum, "Open Cloud Computing Interface", 2011. [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996. [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. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. Shao Weixiang, et al. Expires June 30, 2012 [Page 83] Internet-Draft Cloud Service Broker December 2011 [SNIA CDMI] Storage Networking Industry Association, "Cloud Data Management Interface V1.0", 2010. [USG CCDD] National Institute of Standards and Technology, "NIST US Government Cloud Computing Technology Roadmap Volume III Technical Considerations for USG Cloud Computing Deployment Decisions", 2011. [W3C.CR-wsdl20-20051215] Chinnici, R., Moreau, J., Ryman, A., and S. Weerawarana, "Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language", W3C CR CR-wsdl20-20051215, December 2005. [W3C.REC-soap12-part1-20030624] Hadley, M., Mendelsohn, N., Moreau, J., Gudgin, M., and H. Nielsen, "SOAP Version 1.2 Part 1: Messaging Framework", World Wide Web Consortium FirstEdition REC-soap12-part1- 20030624, June 2003, <http://www.w3.org/TR/2003/REC-soap12-part1-20030624>. [W3C.REC-soap12-part2-20030624] Nielsen, H., Mendelsohn, N., Moreau, J., Hadley, M., and M. Gudgin, "SOAP Version 1.2 Part 2: Adjuncts", World Wide Web Consortium FirstEdition REC-soap12-part2-20030624, June 2003, <http://www.w3.org/TR/2003/REC-soap12-part2-20030624>. 10.2. Informative References [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs Parameter for "Bucket" Media Types", RFC 4281, November 2005. Shao Weixiang, et al. Expires June 30, 2012 [Page 84] Internet-Draft Cloud Service Broker December 2011 Authors' Addresses Shao Weixiang ZTE Corporation Email: shao.weixiang@zte.com.cn Hu Jie ZTE Corporation Email: hu.jie@zte.com.cn Bhumip Khasnabish ZTE Corporation Email: bhumip.khasnabish@zteusa.com Shao Weixiang, et al. Expires June 30, 2012 [Page 85]