[occi-wg] Semantics of OCCI API: nouns and verbs

Sam Johnston samj at samj.net
Thu Apr 16 14:01:46 CDT 2009


On Thu, Apr 16, 2009 at 6:16 PM, Richard Davies <
richard.davies at elastichosts.com> wrote:

> At present, the API draft specifies a single central entry point, on which
> a
> HTTP GET returns a complete description of all objects that a user has
> access to.
>
> For a user with a large number of servers, this could be a very expensive
> operation - the cloud will have to check with each individual
> virtualization
> host to get values such as the performance monitoring.
>
> It is probably good to offer this option, but the API should definitely
> ofter separate 'retrieve' operations (which are much cheaper) such as:
>
> - List UUIDs of all a user's objects, but do not describe them fully
> - Describe a single object fully given its UUID.
>

Again, good to see you guys are thinking about the details. The use cases I
am working on range from a single user workstation running an SOE image from
a secure hypervisor burnt into the motherboard to a great global grid
containing millions of objects.

In the former case there is no need for additional complexity because there
should only ever be a single workload. The latter case is provided for by
way of a flexible search service. It's not yet fully defined but here's a
taste (inspired by GData which I can assure you is a pleasure to use even
for arbitrarily large numbers of objects):

> Search service (SS) Attribute search It is possible to search for
> arbitrary attributes by specifying them in the full text search query string
> (e.g. "?q=cpu.cores:2") Category searchTo search for members of a given
> category (that is, any resource with a given Atom "term" or "label") do a
> HTTP GET request to "<entrypoint>/-/cat1/cat2":
>
>    - "/-/" denotes that the following fragments are to be interpreted as
>    categories
>    - multiple cateogries result in a logical AND query (e.g.
>    "/-/cat1/cat2" means "cat1 AND cat2")
>    - use pipe (|, URL encoded as %7C) for logical OR (e.g. "/-/cat1|cat2"
>    means "cat1 OR cat2")
>    - prefixing "-" negates a category (e.g. "/-/cat1/-cat2" means "cat1
>    AND NOT cat2")
>    - Atom schemes can be specified using curly braces (e.g. "/-/{urn:
>    example.com}public")
>    - any of these selectors can be combined (e.g. "/-/cat1%7Ccat2/-cat3"
>    means "(cat1 OR (NOT cat2)) AND (NOT cat3)")
>
> Full text searchFor full text search append "?q=<query>" to the entry
> point URI and make a HTTP GET request. An XML feed containing all matching
> resources will be returned.
>

The search service should also allow you to search on attributes so you can
do things like search for all servers tagged "linux" with over 4Gb RAM.

Search is important - it needs to be powerful (at least for full
implementations).

Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/occi-wg/attachments/20090416/d5a9ffcd/attachment.html 


More information about the occi-wg mailing list