<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.6.6">
</HEAD>
<BODY>
Have you had an opportunity to look at the blog at <A HREF="http://www.techponder.org">techponder.wordpress.com</A>? I've tried to explain the architecture of LMI in considerable detail, and would like feedback if this is useful.<BR>
<BR>
There are two parts to OpenLMI: Providers and Clients.<BR>
<BR>
<IMG SRC="cid:1392216639.4461.22.camel@RD230" ALIGN="bottom" BORDER="0"><BR>
<BR>
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.<BR>
<BR>
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.<BR>
<BR>
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.<BR>
<BR>
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.<BR>
<BR>
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. <BR>
<BR>
All client applications communicate with the OpenPegasus CIMOM using WBEM.<BR>
<BR>
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.<BR>
<BR>
So, the question becomes:<BR>
<BR>
* 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.<BR>
<BR>
* 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.<BR>
<BR>
* 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.<BR>
<BR>
On Wed, 2014-02-12 at 08:56 +0800, MaShimiao wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Hi, Russ
Thank you for replying in time.
On 02/11/2014 06:24 PM, Russell Doty wrote:
<FONT COLOR="#737373">&gt; Ah, this helps.</FONT>
<FONT COLOR="#737373">&gt;</FONT>
<FONT COLOR="#737373">&gt; LMI Providers, like Services or Users can be written in C or Python.</FONT>
I have found APIs which used to write Providers in C or Python. And tried to use them write a simple one.
<FONT COLOR="#737373">&gt;</FONT>
<FONT COLOR="#737373">&gt; LMI client applications - applications that call LMI functions - can be written in C, C++, Python or Java.</FONT>
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
<FONT COLOR="#737373">&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt; On Feb 11, 2014, at 11:17 AM, MaShimiao &lt;<A HREF="mailto:mashimiao.fnst@cn.fujitsu.com">mashimiao.fnst@cn.fujitsu.com</A>&gt; wrote:</FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt; Hi, Russ</FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt; Thanks for your reply.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; On 02/11/2014 05:50 PM, Russell Doty wrote:</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; Java is fully supported for developing client applications. As an example, the JBoss team has developed an application that uses LMI with JON.</FONT>
<FONT COLOR="#737373">&gt;&gt; I don't know about that.</FONT>
<FONT COLOR="#737373">&gt;&gt; Is there any open source codes about it?</FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; Can you tell us something about the application you are working on and what capabilities you need from LMI?</FONT>
<FONT COLOR="#737373">&gt;&gt; I'm researching OpenLMI. I want to know what OpenLMI supports and what not support.</FONT>
<FONT COLOR="#737373">&gt;&gt; According to the web, OpenLMI supports Java Interface. And you said it fully supported.</FONT>
<FONT COLOR="#737373">&gt;&gt; But as Tom&#225;&#353; said, there is no Java code with OpenLMI.</FONT>
<FONT COLOR="#737373">&gt;&gt; If I want to write an application which works like lmiservice or lmiuser, what do I need to</FONT>
<FONT COLOR="#737373">&gt;&gt; call and how?</FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt; Best regards</FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; Best regards,</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; Russ</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; On Feb 11, 2014, at 10:24 AM, MaShimiao &lt;<A HREF="mailto:mashimiao.fnst@cn.fujitsu.com">mashimiao.fnst@cn.fujitsu.com</A>&gt; wrote:</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; On 02/11/2014 04:49 PM, Tom&#225;&#353; Smetana wrote:</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; On Tue, 11 Feb 2014 12:08:41 +0800</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; MaShimiao &lt;<A HREF="mailto:mashimiao.fnst@cn.fujitsu.com">mashimiao.fnst@cn.fujitsu.com</A>&gt; wrote:</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; Hi, everyone</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; I'm new to openlmi.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; On the web of openlmi, Java is said to be supported by openlmi.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; After reading codes of openlmi, I find c/c++ and python can be</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; used to write openlmi Apps.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; But, there is no codes related to Java.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;&gt; Could you tell me how to write Java Apps?</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; Hello,</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;    we don't use Java for anything in OpenLMI however since it's based on WBEM</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; Thank you, Tom&#225;&#353;.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; But on the web <A HREF="http://www.openlmi.org/">http://www.openlmi.org/</A>, it is said</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; &#8220;Interfaces provided by OpenLMI include C/C++, Python, Java, and a CLI.&#8221; and</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; &quot;Call system management functions from C/C++, Python, Java, or CLI.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; &quot;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; Does Java Interface have been supported by OpenLMI or it will be supported in the future?</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; standards any JSR48 implementation should work for you.  The only one shipped</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; in Fedora or RHEL is the SBLIM project one: we ship the Java code as well as</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; the javadoc and some manual: yum search sblim-cim-client should show you the</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; packages.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; Got it.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; Feel free to ask more questions but please be aware that we don't have any</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; experience writing Java clients.  However we'll try to help.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; Thanks again.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;&gt; Regards,</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; Regards.</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; _______________________________________________</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; openlmi-devel mailing list</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; <A HREF="mailto:openlmi-devel@lists.fedorahosted.org">openlmi-devel@lists.fedorahosted.org</A></FONT>
<FONT COLOR="#737373">&gt;&gt;&gt;&gt; <A HREF="https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel">https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel</A></FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; _______________________________________________</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; openlmi-devel mailing list</FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; <A HREF="mailto:openlmi-devel@lists.fedorahosted.org">openlmi-devel@lists.fedorahosted.org</A></FONT>
<FONT COLOR="#737373">&gt;&gt;&gt; <A HREF="https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel">https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel</A></FONT>
<FONT COLOR="#737373">&gt;&gt;</FONT>
<FONT COLOR="#737373">&gt;&gt; _______________________________________________</FONT>
<FONT COLOR="#737373">&gt;&gt; openlmi-devel mailing list</FONT>
<FONT COLOR="#737373">&gt;&gt; <A HREF="mailto:openlmi-devel@lists.fedorahosted.org">openlmi-devel@lists.fedorahosted.org</A></FONT>
<FONT COLOR="#737373">&gt;&gt; <A HREF="https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel">https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel</A></FONT>
<FONT COLOR="#737373">&gt; _______________________________________________</FONT>
<FONT COLOR="#737373">&gt; openlmi-devel mailing list</FONT>
<FONT COLOR="#737373">&gt; <A HREF="mailto:openlmi-devel@lists.fedorahosted.org">openlmi-devel@lists.fedorahosted.org</A></FONT>
<FONT COLOR="#737373">&gt; <A HREF="https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel">https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel</A></FONT>
<FONT COLOR="#737373">&gt;</FONT>

_______________________________________________
openlmi-devel mailing list
<A HREF="mailto:openlmi-devel@lists.fedorahosted.org">openlmi-devel@lists.fedorahosted.org</A>
<A HREF="https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel">https://lists.fedorahosted.org/mailman/listinfo/openlmi-devel</A>
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>