On Thu, 2009-03-19 at 23:06 -0400, Ethan Rowe wrote:
> I'm a newcomer, so feel free to ignore me.  But, if RESTful design has
> become an increasingly important consideration in interactions between
> client and server (and it's my impression that it has), I think you
> might find that it fits better in this case to:
> * have the server issue a 202 Accepted response, with an response entity
> containing: possibly a URL to periodically check for results; possibly
> an estimate of time before the new resource is available
> * have the client periodically consult the relevant URL until the data
> is available

I've spent some time recently banging my head against the limitations of
REST for oVirt - the assumption that REST makes that everything is a
resource on which you execute a fixed number of actions is really nice
if you are dealing with something that looks like a resource fairly
naturally, but gets very annoying when that assumption is broken (like
VM's which can be started, stopped, shut down etc.)

We are in the process of implementing API's for oVirt now based on
QMF[1], a small layer on top of Qpid, an open source message bus; the
programming model of QMF is pretty nice since it abstracts all the
messaging etc. away nicely. From a coding point of view, you are dealing
with objects, call methods on them etc. and QMF/Qpid take care of
distributing changes throughout the messaing infrastructure.

Architecturally, everybody is a client connecting to a central broker,
even the server on which the objects really live; the logical client
gets a view of those objects, calling methods on them causes some method
on the server to be executed etc. We're using that to connect various
virtualized hosts together - each host is the 'server' for the VM's that
are running to it, and a client using the QMF API gets to see a
collection of all the VM's on all hosts, can start/stop etc. them
without the need to connect to individual hosts.

I am mostly mentioning this because it's an important new way of
connecting infrastructure together, and radically different from all the
other approaches I have seen. If anybody's interested in diving into
this a little more in the context of puppet, feel free to contact me. A
rough idea would be to have each client serve its facts and its current
catalog over QMF and have the puppetmaster expose appropriate methods to
retrieve an updated catalog.

Of course, this is not directly connected to the issue at hand (speeding
up storeconfigs), but it's got to do with messaging ;)

David

[1] http://qpid.apache.org/qpid-management-framework.html



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to