使用PHP的CIM / SMI-S客户端

时间:2012-02-07 20:30:49

标签: php storage wbem authorize.net-cim

我正在使用Web界面从存储阵列中提取信息。我想使用SMI-S我可以使用Java CIM客户端(SBLIM CIM客户端),但我真的希望有一种方法让PHP通过CIM提取信息。任何人都能指出我正确的方向吗?有没有办法可以通过http(端口5988)发送请求并解析xml响应?

如果有人能提出一个更好的方式,那就更好了。谢谢。

2 个答案:

答案 0 :(得分:2)

我不知道直接用PHP编写的CIM客户端,但通常可以将用Perl或Python编写的软件包集成到服务器端PHP中。

您还可以将命令行CIM客户端集成到PHP中,例如来自OpenPegasus的cimcli,但解析命令行客户端的输出可能不太方便。

我建议不要编写自己的CIM-XML解析器 - 在规范(DSP0200,DSP0201)中有许多细节需要注意,这肯定是一项重大任务。

对于Python,有一个PyWBEM CIM客户端可以很好地工作,即使项目没有太多活动。此外,还有用于Python的PowerCIM CIM客户端,它更新,但我还没有使用它。 PowerCIM提供CIM类作为Python类,而PyWBEM提供通用Python类,如CIMInstance或CIMClass。只需要处理两种不同的样式,为了集成到下一个更高层,比如PHP,在我看来,使用PyWBEM提供的通用样式会更好。

OpenWEM客户端上有Perl interface,但我没有相关经验。

安迪

答案 1 :(得分:1)

获取数组详细信息的SMI-S调用可能使用GetInstances()或EnumerateInstances(),它们基本上是预定义的方法。这些方法附带了OpenPegasus等库。如果您成功包含所需的库,则可以创建客户端变量,连接到CIM服务器并调用所需的方法。

如果您专门使用OpenPegasus,您可能需要知道如何在PHP中使用C ++,因为前者是在C ++中实现的。请参阅http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/