TWiki> EGEE Web>ProviderSpecification (revision 2)EditAttachPDF

Information Provider Specification Proposal

Aim

The am of this proposal is to recommmend a specifiction for information providers and to define the framework in which they are used. We require this specification so that information providers can be easily written by the many different developers of the systems we use. By having a specification we can ensure that all the information providers can be used in the same framework. A framework is also needed to manage the information providers. The different systems that many require information, eg local fabric management systems, grid information systems or grid monitoring systems should all be able to interface with the framework. This proposal advocates the use of existing open standards, in particular the standards from the The Distributed Management Task Force DMTF.

DMTF Standards

The DMTF is a standards body which his heavly backed by major industrial players. At the core of the DMTF standards is the Common Information Model (CIM) schema and Web-Based Enterprise Management (WBEM).

The CIM schema is made up of two parts, the CIM meta schema of the CIM schema. The schema meta is a specification for descrbing schema. The CIM schema is a collection of defined schema which can be used for system management. The CIM schmea can easily be extendended by defining vendor extension. Profile are used to focus on a subset of the schema which is required for a particular task.

WBEM is a set of management and Internet standard technologies developed to unify the management of distributed computing environments. WBEM provides the ability for the industry to deliver a well-integrated set of standard-based management tools, facilitating the exchange of data across otherwise disparate technologies and platforms CIM-XML is a WBEM protocol that uses XML over HTTP to exchange CIM information. Theere also exists a specification for the CIM Query Language (CQL) which is heavliy influenced by SQL.

There exsits a number of open source implementations of the DMTF specification.

Open Pegasus

Open Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be portable and highly modular. It is coded in C++ so that it effectively translates the object concepts of the CIM objects into a programming model but still retains the speed and efficiency of a compiled language. Pegasus is designed to be inherently portable and builds and runs today on most versionsof UNIX(R), Linux, and Microsoft Windows. In addition, Open Pegasus is part of the Redhat Enterprise Linux Distribution.

Investigation into Open Pegasus

Setting up Open Pegasus on SLC4

Use apt-get to install the rpm from the SCL4 distribution

apt-get install tog-pegasus
Start the service
/etc/rc.d/init.d/tog-pegasus start

The file /etc/Pegasus/access.conf can be used to to restrict acess to the service.

Adding a provider to Open Pegasus

Open Pegasus requires two files; one MOF file which describes the information the provider producers and the information provider itself. Open Pegaus specifies and C++ API for information providers.

The MOF files are located in /usr/share/Pegasus/mof/ and the information providers are located in /usr/lib/Pegasus/providers/

Open Pegasus comes with

Testing Open Pegasus

Open Pegasus comes with an few example information providers, one of which is osinfo .
# /usr/bin/osinfo
OperatingSystem Information
  Host: pcitgd10.dyndns.cern.ch
  Name: Scientific Linux CERN SLC
   ( 2.6.9-22.0.1.EL.cern #1 Thu Nov 3 20:19:44 CET 2005 )
  Version: 2.6.9-22.0.1.EL.cern
  UserLicense: Unlimited user license
  Number of Users: 2 users
  Number of Processes: 96 processes
  OSCapability: 32 bit
  LastBootTime: Nov 23, 2006  9:34:41 (00100)
  LocalDateTime: Nov 23, 2006  16:14:29 (00100)
  SystemUpTime: 23988 seconds =  6 hrs, 39 mins, 48 secs

Experimenting with the Web Service Interface.

The command wbemexec can be used to experment with various XML requests. Using the osinfo get information from the osinfo information provider, create a file called request.xml with the following content.

<?xml version="1.0" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
 <MESSAGE ID="3075" PROTOCOLVERSION="1.0">
  <SIMPLEREQ>
   <IMETHODCALL NAME="EnumerateInstanceNames">
    <LOCALNAMESPACEPATH>
     <NAMESPACE NAME="root"/>
     <NAMESPACE NAME="cimv2"/>
    </LOCALNAMESPACEPATH>
    <IPARAMVALUE NAME="CLASSNAME">
     <CLASSNAME NAME="PG_OperatingSystem"/>
    </IPARAMVALUE>
   </IMETHODCALL>
  </SIMPLEREQ>
 </MESSAGE>
</CIM>

Running the command /usr/bin/wbemexec request.xml will generate the following response.

<?xml version="1.0" encoding="utf-8"?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="3075" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<IMETHODRESPONSE NAME="EnumerateInstanceNames">
<IRETURNVALUE>
<INSTANCENAME CLASSNAME="PG_OperatingSystem">
<KEYBINDING NAME="CreationClassName">
<KEYVALUE VALUETYPE="string">
CIM_OperatingSystem
</KEYVALUE>
</KEYBINDING>
<KEYBINDING NAME="CSCreationClassName">
<KEYVALUE VALUETYPE="string">
CIM_UnitaryComputerSystem
</KEYVALUE>
</KEYBINDING>
<KEYBINDING NAME="CSName">
<KEYVALUE VALUETYPE="string">
pcitgd10.dyndns.cern.ch
</KEYVALUE>
</KEYBINDING>
<KEYBINDING NAME="Name">
<KEYVALUE VALUETYPE="string">
Scientific Linux CERN SLC
</KEYVALUE>
</KEYBINDING>
</INSTANCENAME>
</IRETURNVALUE>
</IMETHODRESPONSE>
</SIMPLERSP>
</MESSAGE>
</CIM>

Extensions to Open Pegasus

One of the limitations to Open Pegasus is that information provider interface is a C++ API. The API is quite complex and limited to one language. Another limitation of the inferface is that it is not standardized.

CMPI standard from the open group

CIMPLE Cimbiote Perl one

Query

his language limitation has been extended by a number of open source projects. For example Cimbiote is an API for writing CIM informaiton providers in python.

-- LaurenceField - 23 Nov 2006

Edit | Attach | Watch | Print version | History: r6 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2006-11-23 - LaurenceField
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EGEE All webs login

This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Ask a support question or Send feedback