0

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

如果有人可以提出更好的方法,那也很棒。谢谢你。

4

2 回答 2

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 界面,但我没有这方面的经验。

安迪

于 2012-10-20T15:23:14.157 回答
1

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

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

于 2015-02-18T12:32:37.297 回答