question about openlmi

Russell Doty rdoty at redhat.com
Wed Feb 12 14:58:42 UTC 2014


Have you had an opportunity to look at the blog at
techponder.wordpress.com? I've tried to explain the architecture of LMI
in considerable detail, and would like feedback if this is useful.

There are two parts to OpenLMI: Providers and Clients.



LMI Providers go on the managed system, and do all of the work on the
managed system. They do operations like actually configure storage and
networks, add users, etc. These Providers implement an object based on
the DMTF CIM object models, especially SMASH and SMI-S. The DMTF object
models have been modified where needed to support Linux. Each Provider
implements a set of the object model, providing the set of attributes,
methods and associations to do things like format a block device.

There is a standard for writing interoperable Providers called CIMPLE.
The OpenLMI project is providing tooling for writing CIMPLE compliant
Providers in either C or Python.

The LMI Providers are integrated through an Object Broker, which is
OpenPegasus. The individual Providers are installed and registered
against OpenPegasus. OpenPegasus provides a standard interface called
WBEM. WBEM handles security and authentication, and communicates with
client applications using XML over https. The XML is defined in the WBEM
specification, and supports the object model implemented in the
Providers. Thus, WBEM presents a low level DMTF CIM based API to client
applications.

WBEM is language neutral. You can write directly to the WBEM XML over
https interface. However, this is difficult, so we are providing a set
of client language bindings to WBEM. These language bindings include C,
C++, Python, and Java. Other language bindings are available, such as
Ruby, but are not currently supported in the LMI project.

These client language bindings all use the same WBEM interface to talk
to the Pegasus CIMOM. They are interface libraries that provide an easy
to use interface between the client language and WBEM. For example, the
Java interface presents the OpenLMI Object Model as POJO (Plain Old Java
Objects), allowing you to take full advantage of the object orientated
nature of Java to develop client applications. The Python language
binding presents the OpenLMI object model as native Python objects. 

All client applications communicate with the OpenPegasus CIMOM using
WBEM.

We are offering a Python based OpenLMI client called LMIShell. LMIShell
builds on the Python language binding by offering a set of convenience
functions to address things like authentication. We are building on the
LMIShell infrastructure by writing a set of Python scripts to perform
common operations. We encourage people to develop additional LMI scripts
to perform needed functions. LMIShell also includes a CLI interface.
This CLI interface can be used interactively or called from bash
scripts.

So, the question becomes:

* Do you need low level management functions that perform management
tasks that are not currently supported by OpenLMI? If so, you will need
to write a new Provider.

* Do you need client applications or tools that call existing LMI
functions? If so, you can write these client applications or tools
directly to WBEM, or you can access WBEM through one of the language
bindings.

* If you want to write client applications or tools in Java, you will
need to work directly with the low level OpenLMI object model. You can
examine the LMIShell scripts to see how this low level API is
structured; this is generally easier than trying to understand the
object model directly from the documentation, at least at first.

On Wed, 2014-02-12 at 08:56 +0800, MaShimiao wrote:

> Hi, Russ
> Thank you for replying in time.
> On 02/11/2014 06:24 PM, Russell Doty wrote:
> > Ah, this helps.
> >
> > LMI Providers, like Services or Users can be written in C or Python.
> I have found APIs which used to write Providers in C or Python. And tried to use them write a simple one.
> >
> > LMI client applications - applications that call LMI functions - can be written in C, C++, Python or Java.
> That's what I really can't understand.
> What's LMI functions?
> Are they functions which is contained in Python scripts deployed in the directory /usr/lib/python2.7/site-packages/lmi ?
> If they are, I don't think it's a good idea to call Python scripts to write C, C++ or Java applications.
> 
> Best regards
> >
> >> On Feb 11, 2014, at 11:17 AM, MaShimiao <mashimiao.fnst at cn.fujitsu.com> wrote:
> >>
> >> Hi, Russ
> >>
> >> Thanks for your reply.
> >>> On 02/11/2014 05:50 PM, Russell Doty wrote:
> >>> Java is fully supported for developing client applications. As an example, the JBoss team has developed an application that uses LMI with JON.
> >> I don't know about that.
> >> Is there any open source codes about it?
> >>
> >>>
> >>> Can you tell us something about the application you are working on and what capabilities you need from LMI?
> >> I'm researching OpenLMI. I want to know what OpenLMI supports and what not support.
> >> According to the web, OpenLMI supports Java Interface. And you said it fully supported.
> >> But as Tomáš said, there is no Java code with OpenLMI.
> >> If I want to write an application which works like lmiservice or lmiuser, what do I need to
> >> call and how?
> >>
> >> Best regards
> >>
> >>>
> >>> Best regards,
> >>> Russ
> >>>
> >>>>> On Feb 11, 2014, at 10:24 AM, MaShimiao <mashimiao.fnst at cn.fujitsu.com> wrote:
> >>>>>
> >>>>> On 02/11/2014 04:49 PM, Tomáš Smetana wrote:
> >>>>> On Tue, 11 Feb 2014 12:08:41 +0800
> >>>>> MaShimiao <mashimiao.fnst at cn.fujitsu.com> wrote:
> >>>>>
> >>>>>> Hi, everyone
> >>>>>>
> >>>>>> I'm new to openlmi.
> >>>>>> On the web of openlmi, Java is said to be supported by openlmi.
> >>>>>>
> >>>>>> After reading codes of openlmi, I find c/c++ and python can be
> >>>>>> used to write openlmi Apps.
> >>>>>> But, there is no codes related to Java.
> >>>>>>
> >>>>>> Could you tell me how to write Java Apps?
> >>>>>
> >>>>> Hello,
> >>>>>    we don't use Java for anything in OpenLMI however since it's based on WBEM
> >>>> Thank you, Tomáš.
> >>>> But on the web http://www.openlmi.org/, it is said
> >>>> “Interfaces provided by OpenLMI include C/C++, Python, Java, and a CLI.” and
> >>>> "Call system management functions from C/C++, Python, Java, or CLI.
> >>>> "
> >>>> Does Java Interface have been supported by OpenLMI or it will be supported in the future?
> >>>>
> >>>>> standards any JSR48 implementation should work for you.  The only one shipped
> >>>>> in Fedora or RHEL is the SBLIM project one: we ship the Java code as well as
> >>>>> the javadoc and some manual: yum search sblim-cim-client should show you the
> >>>>> packages.
> >>>> Got it.
> >>>>>
> >>>>> Feel free to ask more questions but please be aware that we don't have any
> >>>>> experience writing Java clients.  However we'll try to help.
> >>>> Thanks again.
> >>>>>
> >>>>> Regards,
> >>>>
> >>>> Regards.
> >>>> _______________________________________________
> >>>> openlmi-devel mailing list
> >>>> openlmi-devel at lists.fedorahosted.org
> >>>> https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel
> >>> _______________________________________________
> >>> openlmi-devel mailing list
> >>> openlmi-devel at lists.fedorahosted.org
> >>> https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel
> >>
> >> _______________________________________________
> >> openlmi-devel mailing list
> >> openlmi-devel at lists.fedorahosted.org
> >> https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel
> > _______________________________________________
> > openlmi-devel mailing list
> > openlmi-devel at lists.fedorahosted.org
> > https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel
> >
> 
> _______________________________________________
> openlmi-devel mailing list
> openlmi-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/openlmi-devel/attachments/20140212/684b11da/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LMIshell.png
Type: image/png
Size: 128224 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/openlmi-devel/attachments/20140212/684b11da/attachment-0001.png>


More information about the openlmi-devel mailing list