[occi-wg] Request for POX representation
Csom Gyula
csom at interface.hu
Thu May 20 06:20:03 CDT 2010
Hi!
After analyzing the issue I kindly ask you to consider POX as an official OCCI representation
format. Namely in order to have a programmatic interface that is easy to implement and maintain we
(as a potential OCCI user) request a domain specific and extensible XML representation format.
## 1./ Features
---
We request a POX representation format that 1. is domain specific, strongly typed, and free
from other domains, and 2. is extensible, supports user defined elements and/or attributes.
1. The scheme has its own XML namespace and
2. is free from XML elements of orthogonal domains (like GUI, eg. XHTML)
3. Different kind of OCCI entities (compute, network, storage) are mapped to individual XML
schema elements.
4. Different entity attributes are mapped to either individual XML (sub)elements or attributes
(though we prefer the former, eg. attributes as XML subelements).
5. This also applies to links, and
6. actions eg. just as attributes they are handled in a strongly typed manner rather than in a
generic way.
7. The scheme is extensibe (depending on the design decision under 4, it supports either the
XSD any element or the anyAttribute or both).
## 2./ Intentions
---
We need a programmatic interface that is easy to implement and maintain:
1. It builds upon technologies that are in common practice. We do not consider HTTP Header
format to meet this criteria. XML, REST seem to be the common hypermedia format in the
REST world and especially within the Cloud API space [2].
Bottom line: REST itself seems to support/encourage multiple formats. Thus I do not say
that using HTTP Header is not RESTful, I just say that it doesn't seem to be a common
REST format.
2. It supports separation of concerns. Being a programmatic interface, it at least separates
"busines" logic (eg. data and methods) from UI (eg. user interaction). We do not consider
the upcoming X/HTML+RDFa format to meet this criteria. We've found 2 issues with the format
- one is trivial, the second is less trivial:
1. X/HTML intends to be a user interaction language, and RDFa to be a data annotion
language for foreign markups (typically? for UI markups). Thus the upcoming format
intermixes UI and data in its roots.
2. X/HTML elements and RDFa attributes are strongly coupled. Depending on the host (eg.
X/HTML) structure the same RDFa sequence can result in different data structures. Thus
an agent must be aware of the UI structure in order to build the data structure it is
interested in. According to my preliminary examination this primarily effects recursive
data structures [3] but may effect other data structures, too. Meanwhile OCCI seems to
already have such structures, since categories might have child categories. Also OCCI
may want to support more complex entities later (like services, and service groups which
are again recursive in their nature).
One more thing. XML and JSON seems to be equally prefered by cloud providers [2]. We simply made
our decision based upon the selected CMS platform: OpenNebula. It currently supports POX.
We will likely refine our request based upon feedbacks, so
comments and criticism are welcome!
Kind regards,
Gyula Csom
---
[1] Scheme samples: request.xml, response.xml illustrate the scheme (strongly typed elements, with
user defined extensions). It tries to model a new compute request.
[2] Existing Cloud APIs and formats
* OpenNebula OCCI API: REST + POX (http://www.opennebula.org/documentation:rel1.4:occiug)
* Amazon EC2 API: SOAP
* ElasticHosts API: REST + Plain text, or JSON (http://www.elastichosts.com/cloud-hosting/api)
* IBM WebSphere CloudBurst API: REST + JSON
(http://www.ibm.com/developerworks/websphere/techjournal/0911_amrhein/0911_amrhein.html)
* Sun Cloud API: REST + JSON (http://kenai.com/projects/suncloudapis/pages/Home)
* RedHat delta cloud API: REST + POX, and custom formats (http://deltacloud.org/api.html)
[3] RDFa samples: foaf.html, extract.rb illustrate strong coupling between X/HTML and RDFa, eg.
the same RDFa sequence can result in different data structures. The foaf.html is the sample file,
extract.rb is a simple Ruby script that extracts data into turtle, NT and XML formats. Builds
upon the rdf_context lib (http://github.com/gkellogg/rdf_context).
[4] About our project:
Our customer, the National Information Infrustructure Institute
(http://www.niif.hu/en) wants to provide public cloud services for the Hungarian academic sector, and
use a private cloud for its own purposes. The project is the initial step in this direction.
At the technical side generally we are interested in an open, future-proof solution, especially
OpenNebula as the cloud platform, and OCCI as the cloud interface.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: request.xml
Type: text/xml
Size: 453 bytes
Desc: request.xml
Url : http://www.ogf.org/pipermail/occi-wg/attachments/20100520/67081917/attachment.xml
-------------- next part --------------
A non-text attachment was scrubbed...
Name: response.xml
Type: text/xml
Size: 455 bytes
Desc: response.xml
Url : http://www.ogf.org/pipermail/occi-wg/attachments/20100520/67081917/attachment-0001.xml
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/occi-wg/attachments/20100520/67081917/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: extract.rb
Type: application/octet-stream
Size: 686 bytes
Desc: extract.rb
Url : http://www.ogf.org/pipermail/occi-wg/attachments/20100520/67081917/attachment.obj
More information about the occi-wg
mailing list