Consumability of vdsm via libvdsm.so

Saggi Mizrahi smizrahi at redhat.com
Tue Aug 14 14:20:34 UTC 2012


I have an Idea, having json rpc for the over HTTP and 2 way json RPC over openstacks' messaging abstraction layer.

This means we have 1 actual code base, the interfaces are on the transport layer.
And if you choose to use messaging you (in the future) get 2 way communication which means we can use.
Json-RPC notification for events. And that we (in the future) might fit to an openstack cluster.

I still think generating the java bindings is preferable as it will have to be done and having it generated straight from the schema is ideal.


----- Original Message -----
> From: "Adam Litke" <agl at us.ibm.com>
> To: "Ayal Baron" <abaron at redhat.com>
> Cc: "Saggi Mizrahi" <smizrahi at redhat.com>, arch at ovirt.org
> Sent: Tuesday, August 14, 2012 10:09:28 AM
> Subject: Re: Consumability of vdsm via libvdsm.so
> 
> On Mon, Aug 13, 2012 at 04:54:18PM -0400, Ayal Baron wrote:
> > 
> > 
> > ----- Original Message -----
> > > 
> > > 
> > > ----- Original Message -----
> > > > From: "Yaniv Kaul" <ykaul at redhat.com>
> > > > To: "Adam Litke" <agl at us.ibm.com>
> > > > Cc: arch at ovirt.org
> > > > Sent: Monday, August 13, 2012 11:49:21 AM
> > > > Subject: Re: Consumability of vdsm via libvdsm.so
> > > > 
> > > > 
> > > > 
> > > > On 08/13/2012 06:21 PM, Adam Litke wrote:
> > > > 
> > > > 
> > > > Hi all,
> > > > 
> > > > We just finished a lively discussion regarding the ongoing
> > > > effort
> > > > to
> > > > stabilize
> > > > the vdsm API using a C library called libvdsm.  There are many
> > > > things
> > > > that need
> > > > discussion, but I would like to focus this thread on one in
> > > > particular:
> > > > 
> > > > Can ovirt-engine consume libvdsm via JNI?
> > > > 
> > > > libvdsm provides a full-featured C interface to the vdsm API
> > > > using
> > > > GObject.
> > > > Java bindings are provided automatically by jGIR[1].  The
> > > > library
> > > > communicates
> > > > with vdsmd using an internal transport which is not exposed to
> > > > end
> > > > users
> > > > (including ovirt-engine).  I would like to learn from folks
> > > > with
> > > > deep
> > > > Java
> > > > knowledge if this approach is workable.  What are the technical
> > > > challenges to
> > > > integrating in this way?  Please save discussion of AMQP and
> > > > other
> > > > bindings for
> > > > other threads.
> > > > 
> > > > Thanks!
> > > > 
> > > > [1] https://live.gnome.org/JGIR
> > > > How mature/maintained is JGIR?
> > > > Last commit seems to be 2010-02-09.
> > > > The author is: Alexander Kurtakov <akurtako at redhat.com>
> > > > His status in our organizational chart:
> > > > Employee Type: Ex-employee
> > > It will need some work to get it up to par with the rest of the
> > > gobject generators
> > 
> > It's been dead since 2009, that doesn't seem very promising
> > (http://www.ohloh.net/p/java-gobject-introspection)
> > 
> > It also states: "It also includes a custom GLib/GObject interface
> > layer adapted from gstreamer-java." and looking at gstreamer-java
> > yields: "An unofficial/alternative set of java bindings for the
> > gstreamer multimedia framework"
> > 
> > Again, doesn't look like something you want to base your API on.
> > Sounds to me like the 'free' java bindings come at a very high cost
> > (bringing JGIR up to date and maintaining it).
> > 
> > What are the alternatives?
> 
> There are two other alternatives (and one bad idea) that come to
> mind:
> 
> 1.) Generate our own Java bindings to libvdsm.so during the vdsm
> build process.
> 
> I prefer this option from an API cleanliness POV because the
> transport code
> would only be written once (in libvdsm.so).  This form of generation
> should be
> simple because we are just wrapping the library so it can be called
> via JNI.
> 
> 
> 2.) Generate a native Java "library" that is equivalent to
> libvdsm.so.
> 
> This gets us into the business of libvirt-style bindings generation
> which I
> think is a mistake.  It opens the door to us maintaining parallel
> implementations of "libvdsm"s (one per language).
> 
> 
> -1.) Standardize the transport around JSON-RPC and make that the
> supported
> interface.
> 
> I am only mentioning it because I am certain someone will bring it
> up.  I think
> it's a bad idea and it's off-topic for this particular thread anyway.
> 
> --
> Adam Litke <agl at us.ibm.com>
> IBM Linux Technology Center
> 
> 



More information about the Arch mailing list