[occi-wg] Fwd: Support Documentation for Today's Meeting
garymazzaferro at gmail.com
Mon Oct 5 11:11:42 CDT 2009
I have some comments as well, -inline
Tino Vazquez wrote:
> Hi Richard,
> comments interspersed,
> On Thu, Oct 1, 2009 at 10:40 PM, Richard Davies
> <richard.davies at elastichosts.com> wrote:
>> First of all, congratulations to Ignacio, Tino and the UCM team on producing
>> the first implementation of an OCCI draft - real progress and good work!
>> I wasn't on the call, but have had a quick look through the links which
>> Ignacio sent.
> Thanks a lot. *blush*
Working with the OpenNebula for the past few days, its great progress on
the first OCCI implementation. :-)
>> One thing which this brings home to me is that there is still significant
>> work to tie down unresolved areas the OCCI draft so that implementations
>> will actually be interoperable.
>> This isn't to criticize the UCM team at all - they have done a good job
>> working from a draft specification and invented plausible mechanisms to fill
>> gaps where they have found them.
>> Nevertheless, I can see quite a few areas in the their draft specs which
>> clearly (& necessarily) go beyond what the Sep 21 specification draft (the
>> last which I read) had actually defined.
> Indeed, we took the liberty of implementing things that weren't
> present in the OCCI specification in order to dynamize the
> discussions. In any case, we don't regard our implementation as final
> (not even close) and we are open to make the neccessary changes to
> comply as much as possible with the specification (always taking our
> possibilities into account).
>> Taking one example from their site:
>> <SWAP size="1024" dev="sda2"/>
>> <DISK image="ab5c9770-7ade-012c-f1d5-00254bd6f386" dev="sda1"/>
>> <FS size="512" format="ext3" dev="sda3"/>
>> <NIC network="23" ip="192.168.0.9"/>
>> This uses XML nesting to specify when storage and network resources and
>> linked into a compute resource, and has solved several issues such as the
>> local devices to be used for the storage resources and naming of interfaces.
>> By contrast, the Sep 21 specification suggests having separate entries for
>> each resource, and linking them together using mechanisms similar to the
>> HTTP Link header (with no example given). The spec doesn't yet say anything
>> about how local devices should be specified.
> I agree that the specification should indicate how to link storage and
> network to virtual machines more clearly.
The OCCI document was initially intended to be laid out like an atom
doc. One big long document, in its rudimentary form. This brought up
issues with any restful implementation and the impacts of document
dynamic data (attribute values) and the ability to take advantage of
web caches. The notion of links were introduced to mediate restful
principles, but there was a great assumption that everyone's
interpretation of linking and attribute layout was consistent to atom
implementation. This information never made it into the occi documentation.
here is a sample of the atom from wikipedia
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03" />
This is Richard Davies' version from an email in April:
<title>Debian GNU/Linux 5.0 Virtual Appliance</title>
<summary>Base installation of Debian GNU/Linux 5.0</summary>
<disk id="file1" href="virtual-disk.vmdk" size="148251374"/>
<meter rate="0.10" currency="USD" unit="hours">35.27</meter>
Here is Sam Johnston's version from one of the docs showing links:
<title>Virtual Machine #1</title>
<summary>Sample Compute Resource</summary>
<link href="/47bb7df8-587e-47fa-bd89-6f2f81c14b19" />
href="urn:uuid:4cc8cf62-69a4-4650-9e8c-7d4c516884df" title="Hard Drive"/>
In these examples, you can clearly see each occi attribute is commonly
defined in its own XML element, more like a property than an attribute.
The link is clearly represented differently, in an alternate form. The
use of alternate forms would not be used for occi in order to reduce
It looks like the linking adds a significantly more complexity to the
document and the client.
My Opinion on this matter:
I think there is confusion on the how terminology is applied to the occi
document and technologies like XML. An occi attribute is NOT an XML
attribute, at least not yet. In both Sam's and Richard's examples,
neither clearly shows that occi attributes are defined as XML elements
or XML attributes. In both Richard's and SAM's forms, the application of
occi attributes to XML are inconsistent leading to significant confusion
on how to implement.
This may be a mute point for the next few weeks, since we are moving
forward with a text representation in the occi specification.
> Not sure what you mean by local devices, could you please elaborate
> more on this?
>> Another example: UCM do not use any extra management verbs.
>> By contrast the Sep 21 spec hints that some will exist, but does not define
>> any of them.
> You are rigth, the verbs should be specified. We chose another
> mechanism using updates through PUT to achieve the same thing (more
> RESTful in my opinion, but also suffering from it, as changing a state
> is not always guaranteed)
Whether the implementation is restful will be determined by the use and
control of web caches. I don't think you can get away with RESTful
principles without managing document/data consistency at the web caches.
Once cache management is implemented it shouldn't be too difficult to
improve document/data consistency. The more I look into RESTful
principles and implementations, I seem to be drawing to the conclusion
RESTful principles has little to no value for small documents as seen
here with occi and other web apis. I'm also beginning to challenge the
gains of implementing web cache controls in comparison to native occi
request traffic loads.
>> My feeling is that the main areas where the UCM team have had to innovate
>> their own solutions are very similar to the list of areas which I had
>> previously highlighted as needing resolution in my mail:
>> However, I'd also be keen for the UCM team themselves to write down a list
>> of the areas where they believe that they had to go beyond the actual
>> written OCCI drafts to produce something workable.
> >From our experience, the spec needs to define clearly the states that
> a COMPUTE resource can be in. From the last conf call the general
> feeling was that it would be very difficult to agree on one state
> machine diagram. I vouche for trying to agree on a minimal one, or at
> least, as Sam suggested, have a registry were the states are well
> defined. We will be then be happy to implement the mangement verbs
> instead of relying in the PUT method we currently use.
> Other issue is aligned with something you point out in your mail, that
> is, the attributes of the resources. We completely agree with the idea
> of adding units (as OVF does), although I don't know which will be the
> best to do so (a string separated by a space with "numbers units", or
> an extra attribute for each attribute that needs units to be
> defined?). This will make the spec more flexible.
I think units are the best bet, they do not exclude using raw numeric
values. I do have a concern using raw numeric values with large
volumes. Volumes in terms of TB, PB or EB, may not be able to be
generated or parsed by many web tools, libraries and languages.
> Also, the state should be part of the COMPUTE attributes (in fact, we
> added it in our implementation because we needed it to update the
> COMPUTE state).
> About the decission of theformat of the representations I think it
> will be shooting our own foot to ask implementators to support each
> three formats, even if we do so for interoperabilities sake. We need
> to chose between one or take into consideration Sam's proposal of
> using HTTP headers for the metadata.
I believe we should pick ONE format for now. I believe Thijs acting as
chairman, mandated text only for this version of the document.
I'm not convinced Sam's proposal is the one we should be using. If
RESTful principals appear to be impracticable or do not provide any
gains and if Sam's proposal brings us to rpc efficiencies, shouldn't we
move to a more standard RPC or SOA/SOAP mechanism instead of reinventing
the wheel ?
>> And I'd be equally keen for Sam to take a careful look through the UCM links
>> below, identify every place that the UCM implementation doesn't look like
>> what he had expected and tighten the draft in these areas to either the UCM
>> solution or whatever he had intended to write but not yet written.
>> Ignacio Martin Llorente wrote:
>>> Because we are now (at 16:00 CEST) discussing the OpenNebula OCCI
>>> implementation, I am sending some links with relevant info:
>>> - OpenNebula OCCI API Specification: http://www.opennebula.org/doku.php?id=documentation:rel1.4:occidd
>>> - Usage Guide: http://www.opennebula.org/doku.php?id=documentation:rel1.4:occiug
>>> Ignacio M. Llorente, Full Professor (Catedratico): http://dsa-research.org/llorente
>>> DSA Research Group: web http://dsa-research.org and blog http://blog.dsa-research.org
>>> OpenNebula Open Source Toolkit for Cloud Computing: http://www.OpenNebula.org
>>> RESERVOIR European Project in Cloud Computing: http://www.reservoir-fp7.eu
> Constantino Vázquez, Grid Technology Engineer/Researcher:
> DSA Research Group: http://dsa-research.org
> Globus GridWay Metascheduler: http://www.GridWay.org
> OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org
> occi-wg mailing list
> occi-wg at ogf.org
More information about the occi-wg