[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

-------------- 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