Re: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider?
Kirk Augustin <[email protected]>
| Newsgroups | gmane.network.open-pegasus.general |
|---|---|
| Message-ID | <[email protected]> |
If the mapping document allowed for formulas, such as when a result property was actually derived from a calculation of several data source values, then perhaps it would be useful. There would still need to be some stubs filled out by the programmer, but as long as all the basic stubs were generated, it would still save time and not be hard for the programmer to find and decide what needed final hand tailoring. Being independent of underlying hardware is one of the problems. While the client wants to be hardware independent as much as possible, the provider usually should not be. In the case of hardware diagnostics, the goal was to have the vendor deliver a hardware specific diagnostic providers with each item they ship, and for the diagnostic to then produce a result generically interpretable by existing client diagnostic harnesses. Even things that seem industry standards in hardware, such as SMART for hard drives, turns out not to be very generic. While SMART creates a standard for hard drive self tests, each manufacturer uses different areas of the standard. So a diagnostic provider for one brand of drive would have to evaluate different results criteria than a provider for another brand. But then all different brand providers could unify the result into a generic criteria, such as mean run time failure rate, or predicted lifespan. I have not kept up with the latest profiles and standards, but I would assume there is still a lot not perfectly defined in the schema yet. Kirk & Trish Augustin 11821 NW McNamee Rd Portland, OR 97231 ________________________________ From: "Chatterjee, Biswapratap" <[email protected]> To: "[email protected]" <[email protected]>; "[email protected]" <[email protected]>; "[email protected]" <[email protected]>; "[email protected]" <[email protected]>; "[email protected]" <[email protected]>; "[email protected]" <[email protected]> Sent: Tue, November 23, 2010 2:39:42 AM Subject: RE: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? Hi all, I thought of putting some light into what I am exactly planning for – 1. Please find below the look and feel of the software. I intend the developer to only sketch the schema diagram abstracting his underlying architecture. I have generated a sample schema diagram using my “DCSGP” tool. J 2. After completing the sketch, the developer presses the “Generate Your Provider” button which starts writing the CMPI provider C/C++ files, schema mofs and registration mofs, by collecting information from the graph. 3. The generated CMPI provider will be using a Postgresql persistent database which will create tables for the supported classes and associations (applying rdbms foreign key concepts) by using information from the graph. 4. The steps in point number 3 will be done during the initialization of the CMPI provider. 5. Later on when the cim client fires queries like gi, ni, ei, an ,a, rn , r – those will be translated into sql-queries and the result will be sent back to the cim client. 6. The data source from where the provider will collect information to fill up its CIMInstances will be a “dynamic link library” with a generic interface like – “map<data-type, data-value> getObjectInformation( <object-type>, <keys> )”. 7. So in this way I think the provider can become independent of the data source which it uses to build its CIMInstances. 8. A meta-information like “a mapping document, xls sheet” when parsed will guide the software to directly map data source properties with provider properties. Problems: 1. Not all values from the data source are directly mappable to CIM Instance properties (contrary to point 8). They need some conversions. Should the software ask the developer to write explicit stubs in such cases? 2. Executing methods in SMIS? How generic they are if we strictly want to follow specifications? i.e. if someone follows the specification for creating a volume, does he become independent of the underlying hardware? Regards, Biswapratap. ________________________________ From:[email protected] [mailto:[email protected]] Sent: Tuesday, November 23, 2010 2:18 AM To: [email protected]; [email protected]; [email protected]; Chatterjee, Biswapratap; [email protected] Subject: RE: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? For those of you that have not seen the DMTF work in this area, I recommend that you look at: http://www.dmtf.org/sites/default/files/standards/documents/DSP2023_1.0.0b.zip What you will find is a much more comprehensive set of xsd’s used to define profiles. The primary mission of a profile is to define the service interfaces needed to satisfy a particular set of use cases. The primary mission of a provider is to host the profile conformant interfaces and the code required to mediate between those interfaces and specific implementations. Such implementations may sometimes be static, sometimes cached, and sometimes served dynamically. As I see the problem outlined, it is to provide information about a particular type of implementation in a machine readable form so that a code generator can map between the profile specified interfaces and the mediation required to access the implementation. More than likely, this work can/should be independent of the CIM server implementation, (i.e. Pegasus.) George From:Kirk Augustin [mailto:[email protected]] Sent: Monday, November 22, 2010 3:11 PM To: Dodgson, David S; Steve Peters; Chatterjee, Biswapratap; [email protected] Subject: Re: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? Sounds good but, "data items are populated by a separate service which monitors the state of our device and calls Pegasus when a change needs to be made", is not at all trivial. It seems to me that this separate device is much more complex than providers themselves should be. And it is sort of backwards. The whole point of providers is to just act as a go between to allow client access to an unknown source of data. The actual source of data should not be calling Pegasus, but the other way around, because Pegasus is not where the data is actually to be stored. I think that to make providers easier to automate, one would want to make more assumptions about the various possible actual databases and persistent storage sources for properties, and to allow for the generation and configuration of default code to do the dynamic access and mapping. Kirk & Trish Augustin 11821 NW McNamee Rd Portland , OR 97231 ________________________________ From:"Dodgson, David S" <[email protected]> To: Steve Peters <[email protected]>; "Chatterjee, Biswapratap" <[email protected]>; Kirk Augustin <[email protected]>; "[email protected]" <[email protected]> Sent: Mon, November 22, 2010 6:35:17 AM Subject: RE: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? I presented a paper at the SNIA Storage Developer Conference entitled "Automatic Generation of SMI Providers". It describes the method we use to automatically generate a provider based on the .mof files used by the Storage Management Initiative. The paper is also supposed to be published with the Management Developers Conference that completed last week. The SDC presentation should be available in one or two months. In it I describe how we generate our provider from the .mof files. We use SimpleWBEM along with a number of enhancements we wrote to do this. The provider handles all data items but functions need to be coded individually. In our case, the data items are populated by a separate service which monitors the state of our device and calls Pegasus when a change needs to be made. This method may or may not be useful to others depending on how much customization is required. ________________________________ From:Steve Peters [mailto:[email protected]] Sent: Monday, November 22, 2010 2:22 AM To: Chatterjee, Biswapratap; Kirk Augustin; [email protected] Subject: RE: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? Look at Cimple ( Simple Wbem). This comes very close to a tool to write a provider. Steve Peters PMC-Sierra ________________________________ From:Chatterjee, Biswapratap [mailto:[email protected]] Sent: Sunday, November 21, 2010 10:50 PM To: Kirk Augustin; [email protected] Subject: RE: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? Hi Kirk, Thanks a lot for the reply. I exactly thought in the same lines as you do, but then if the developer also had the option to share some information about its data source (binary from where the provider expects data); like a stub sitting in-between the data source and provider (providing a generic interface to gather data), and a mapping document (like an xls sheet) acting as a meta-information which directs the automation process to generate codes mapping provider properties to the data source’s properties. I don’t know whether these things are possible. I am just throwing ideas, maybe we hit something. I just want to know the possibilities of such an idea. Regards, Biswapratap. From:Kirk Augustin [mailto:[email protected]] Sent: Monday, November 22, 2010 12:04 PM To: Chatterjee, Biswapratap; [email protected] Subject: Re: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? And I think the answer is no. Whenever I need to write a provider, I always start off with the same boiler plate basic provider, but there is no way to automate the creation of the rest. Some is hardware specific, data persistent specific, protocol specific, relative to other machines, relative to processes and their states, etc. HP had an SDK to make producing a provider much easily, but there will always be a need to write a significant portion of any provider yourself. You can automate the created of a provider to satisfy a schema, but that only creates objects with storage space for property values. It can't ever fill in the property values. You always have to write the code to do that. Kirk & Trish Augustin 11821 NW McNamee Rd Portland , OR 97231 ________________________________ From:"Chatterjee, Biswapratap" <[email protected]> To: "[email protected]" <[email protected]> Sent: Sun, November 21, 2010 9:36:05 PM Subject: Question for Provider Developers - It is possible to completely automate the process of writing a CMPI provider? Hi all, This question has been banging in my head for quite some time. “It is possible to completely automate the process of writing a CMPI provider?” I have been putting lot of effort in making this possible. Since, I have always believed that writing a provider is a repetitive task. If it is a standard, then we have a set of guidelines to write it, we just have to develop an intelligent software who can understand the guidelines on its own and automate the process of provider development. The developer should only worry about the schema diagram that abstracts its hardware/architecture. Something like – “Draw your schema and get your provider shared object”. If you feel this is an interesting topic than we can take this discussion to the next level about – “Possible ways to accomplish this objective”. Waiting for your replies and ideas …. Regards, Biswapratap.