【问题标题】:CIM/SMI-S Client with PHP带有 PHP 的 CIM/SMI-S 客户端
【发布时间】:2012-02-07 20:30:49
【问题描述】:

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

如果有人能提出更好的方法,那就太好了。谢谢。

【问题讨论】:

    标签: php storage wbem authorize.net-cim


    【解决方案1】:

    我不知道直接用 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,但我没有这方面的经验。

    安迪

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多