转载

机器条件监视

软件要求

  1. IBM Bluemix 帐户
  2. Java Cloudant Web Starter 样板包
  3. Business Rules 服务(将此添加到 Java Cloudant Web Starter 样板包中)
  4. Internet of Things 服务(将此添加到 Java Cloudant Web Starter 样板包中)
  5. Node.js 运行时应用程序(绑定已添加到 Java Cloudant Web Starter 包的服务 – 即 Business Rules 和 Internet of Things 服务,另外绑定 Cloudant 服务。)
  6. 能够访问 Maximo 实例的 REST 服务

回页首

硬件要求

  1. IBM Internet of Things 注册设备

回页首

架构概览

机器条件监视

机器条件监视的逻辑组件

该机器条件监视应用程序可分解为以下逻辑组件:

  1. 机器条件监视运行时环境
  2. 机器条件监视用户界面(UI)
  3. 机器条件监视数据库

机器条件监视应用程序与以下外部系统进行交互:

  1. IBM IoT Foundation
  2. IBM Maximo Asset Management

机器条件监视的物理组件

该机器条件监视应用程序在 IBM Bluemix 上运行,由以下组件组成,这些组件均可在 IBM Bluemix 上获得:

  1. Liberty for Java
  2. Cloudant DB 服务
  3. Business Rules 服务
  4. Internet of Things 服务
  5. Node.js 运行时环境

回页首

安装机器条件监视应用程序的前提条件

Bluemix:

在 IBM Bluemix 中使用 Java Cloudant Web Starter 样板代码创建一个 Web 应用程序。

  1. 将一个 Business Rules 服务添加到您的应用程序中。
  2. 将一个 Internet of Things 服务添加到您的应用程序中。

添加这些服务后,您的应用程序看起来应类似于下图:

机器条件监视

记下每个绑定的服务的所有 VCAP 凭据。在本示例中,该应用程序绑定了以下服务:

  1. Cloudant
  2. Business Rules
  3. Internet of Things

因此,有 3 组 VCAP 凭据(每组对应一个服务)。

Cloudant:

机器条件监视需要以下 Cloudant 数据库实例才能运行:

  1. invokedrules
  2. thingsmaxactionmappings
  3. thingsmaxassetcentricmappings
  4. thingsmaxdevicecentricmappings
  5. thingsmaxrulecentricmappings

这些数据库由机器条件监视应用程序在启动后创建。但是,如果未创建上述数据库,可以手动创建它们。

回页首

Business Rules 服务

Business Rules 是使用 Rules Designer 创建的。然后,可以将 Business Rules 部署在规则服务上,并且可以将它用在 Bluemix 上。

  1. 单击绑定到您的机器条件监视应用程序的 Business Rules 服务。记下 URL、用户名和密码。您需要使用它们在 Eclipse IDE 中创建 Rule Execution Server。
  2. 安装带 Designer 插件的 Eclipse。
  3. 安装后,在 Eclipse 中打开 Rules 透视图。
  4. 从以下 GitHub 位置的机器条件监视规则导入规则项目:

    机器条件监视规则

  5. 右键单击您的 RuleApp 项目,选择 RuleApp > Deploy。
  6. 机器条件监视
  7. 单击 Deploy 后,选择 Replace RuleApp version。
  8. 机器条件监视
  9. 选择“Create a temporary Rule Execution Server configuration”并输入您的 Bluemix Business Rule 服务的 URL、用户名和密码。
  10. 机器条件监视
  11. 单击 Finish。
  12. 记下该 REST 服务 URL。(该 URL 可通过从 Bluemix > Services > Business Rules > Decision Services 选项卡中选择该应用程序来获得。这提供了所有公开为 REST URL 的规则的超链接。单击上面部署的适当服务的超链接后,即可获得该 REST URL。)
  13. 使用您的用户名和密码登录到 Business Rules Server 网页来测试您的部署。
  14. 示例规则项目包含一个简单规则 - 检查温度是否高于 250 度。
  15. 要测试您的部署,可以使用下面给定的 JSON 有效负载,向规则服务发出一个 REST POST 请求。
  16. 下面给出的 POST 请求不会导致发生任何操作,可视为“安全的事件”。
    { “device”:{ “myName”:“bearing01″, “temp”:220  }, “asset”:{ “assetID”:“wheel01″, “assetType”:“wheel wagon”  }, “org”:{ “orgID”:“myorg”  } }
  17. 下面给出的 POST 请求要求执行一个操作。该操作可以是生成工作订单。
    { “device”:{ “myName”:“bearing01″, “temp”:280  }, “asset”:{ “assetID”:“wheel01″, “assetType”:“wheel wagon”  }, “org”:{ “orgID”:“myorg”  }  }
  18. 上述两个请求都返回一个 JSON 响应,但较低温度的请求的“message”字段没有内容,而拥有较高温度的事件拥有类似“The temperature is beyond acceptable range of 250 for device of”的内容。

回页首

安装机器条件监视引擎

要安装机器条件监视 Web 应用程序,需要将 machineconditionmonitoring-web.war 文件推送到您的 Bluemix 帐户。

此应用程序在 IBM Bluemix 上需要的最小磁盘空间量为 1GB。需要的最少内存量为 512MB,但您可能希望设置比此更高的内存量 - 例如 2GB。您为磁盘空间和内存分配的值取决于您的环境。

您可以使用 manifest.yml 文件更改磁盘空间和内存值。

确保您安装了最新版的 cf 工具。如果没有最新版本,可完成以下步骤来安装 cf 工具。

  1. 可以在 github.com 上的以下位置找到最新版本: https://github.com/cloudfoundry/cli/releases
  2. 选择适合您平台的安装程序并下载它。
  3. 解压安装程序并运行可执行代码。

完成以下步骤来安装机器条件监视应用程序:

  1. 在本地系统的命令提示符上,使用下面这条命令连接到 Bluemix。

    cf api https://api.ng.bluemix.net

  2. 使用下面这条命令登录到 Bluemix。

    cf login –u {Bluemix userid} –o {Bluemix organization} –s {Bluemix-space}

  3. 从下面的 GitHub 位置下载机器条件监视引擎的源代码:

    机器条件监视引擎

  4. 在 Eclipse IDE 中使用源代码构建一个 war 文件,并将它命名为“machineconditionmonitor-web.war”。
  5. 将该 Web 应用程序推送到您的 IBM Bluemix 帐户,并提供一个唯一的应用程序名称(下面的示例使用“machineconditionmonitor-web”作为应用程序名称)。

    cf push machineconditionmonitor-web

  6. 在 Bluemix 中,单击 Dashboard > 选择该应用程序(此示例使用应用程序名“machineconditionmonitor-web”) > Files and Logs 并导航到“server.xml”位置。此位置位于“app/.liberty/usr/servers/defaultServer/server.xml”下。
  7. 从 Bluemix 下载“server.xml”。
  8. 在本地系统中创建一个名为“defaultServer”的文件夹。
  9. 在此文件夹中添加“server.xml”文件,并将以下条目添加到“server.xml”文件中。

    <webContainer deferServletLoad="false"/>

    在“server.xml”中将该应用程序的名称更改为您提供的名称。

  10. 创建一个名为“apps”的文件夹,并将“machineconditionmonitoring-web.war”文件添加到该文件夹中。
  11. 将该 war 文件推送回 IBM Bluemix,提供您之前使用的唯一应用程序名称(下面的示例使用了“machineconditionmonitor-web”作为应用程序名称)

    cf push machineconditionmonitor-web –p defaultServer

创建资产设备映射和创建操作映射的 REST 服务

机器条件监视应用程序公开了以下 API。使用这些 API,您可以:

  1. 创建资产设备映射。
  2. 创建操作映射。

资产 API

HTTP 方法 描述 有效负载 返回值 URL
GET /assetMappings/assets 返回一个资产数组 JSON 数组 http://URL/assetMappings/assets
GET /assetMappings/assets/{assetId} 返回单个资产 JSONObject http://URL/assetMappings/assets/{assetId}
POST /assetMappings/assets 将一个资产持久保存在 Cloudant 中。请注意此资产应存在于 Maximo 中 JSONObject http://URL/assetMappings/assets
DELETE /assetMappings/assets/{assetId} 从 Cloudant 删除一个资产 http://URL/assetMappings/assets/{assetId}

操作 API

HTTP 方法 描述 有效负载 返回值 URL
GET /actionMappings/action 返回一个操作数组 JSON 数组 http://URL/actionMappings/action
GET /actionMappings/action/{actionId} 返回单个操作 JSONObject http://UEL/actionMappings/action/{actionId}
POST /actionMappings/action 将一个操作持久保存在 Cloudant 中。请注意,此操作应使用有效的用户名和密码指向一个有效的 URL JSONObject http://URL/actionMappings/action
DELETE /actionMappings/action/{assetId} 从 Cloudant 删除一个资产 http://URL/actionMappings/action/{actionId}

回页首

安装机器条件监视

要安装机器条件监视 UI,您需要将机器条件监视 Node.js 应用程序推送到您的 Bluemix 帐户。

完成以下步骤来安装机器条件监视 UI:

根据“安装机器条件监视应用程序”的 1-3 步中的说明,这一步要求您已经拥有‘cf’工具

  1. 在 IBM Bluemix 中的 Catalog 部分,在 Runtimes 部分选择 SDK for Node.js。
  2. 机器条件监视
  3. 输入一个唯一应用程序名称,例如 “ThingsMaxUI” 并单击 Create。
  4. 创建应用程序后,绑定(而不是添加)您之前创建的服务:

    a.Business Rules 服务

    b.Cloudant NoSQL DB 服务

    c.Internet of Things 服务

  5. 下图显示了绑定了服务的 Node.js 应用程序。
  6. 机器条件监视
  7. 为机器条件监视 Web 应用程序创建一个用户定义的环境变量

    a. 选择 Environment Variables 选项卡

    b. 单击 User-Defined

    c. 添加一个名为“runtimeapp”的环境变量,其中包含您的机器条件监视 Web 应用程序的 URL。下面的链接 http://machineconditionmonitor-web.mybluemix.net 是机器条件监视 Web 应用程序的 URL。

  8. 机器条件监视
  9. 在您本地系统的命令提示符上,使用下面这条命令连接到 Bluemix

    cf api https://api.ng.bluemix.net

  10. 使用下面这条命令登录到 Bluemix

    cf login –u {Bluemix userid} –o {Bluemix organization} –s {Bluemix-space}

  11. 从下面的 GitHub 位置下载机器条件监视:

    机器条件监视 UI

  12. 通过提供唯一的应用程序名称,将您的 Node.js 应用程序推送到您的 Bluemix 帐户(在下面的例子中,我提供了 “machineconditionmonitor-GUI” 作为名称)。
  13. cf push machineconditionmonitoring-GUI
  14. 在您的机器条件监视引擎中,调用 REST 服务,执行一次 POST 调用来在 Cloudant 数据库中填入特定于 Maximo 的数据。在此示例中,REST 服务在“machineconditionmonitor-web”上运行,所以要调用的 REST 服务为 http://machineconditionmonitor-web.mybluemix.net/actionMappings/action 。
  15. 下面给出了要使用的有效负载。
  16. {
    “thingsActionPassword”:“maximopassword”,
    “thingsActionUserId”:“maximouser”,
    “actionId”:“maximo”,
    “thingsActionURL”:“https://maximoURL/maximo_b1dk”
    }
  17. 将有效负载内容替换为适合您的实例的内容。
  18. 在 Cloudant 数据库中,调用绑定到机器条件监视引擎的 REST POST 服务 (https://username-for-cloudant-on-bluemix:password-for-cloudant-on-bluemix@username-for-cloudant-on-bluemix.cloudant.com/invokedrules/_index) 并使用以下有效负载。
  19. {“index”:{“fields”:[“deviceID”]}}
  20. 将 REST URL 中的用户名和密码替换为适合您的 Cloudant 数据库的 URL。

回页首

流程测试

  1. 浏览机器条件监视 UI 的 URL。从下拉列表中选择组织和资产。
  2. 最初,资产和设备之间不存在映射。单击“Add Device Mapping”创建映射。
  3. 上面的操作将显示 Bluemix 环境中针对同一个组织,用于 IoT Foundation 的设备列表。选择需要映射到资产的设备。这会显示规则链接。
  4. 添加规则的 REST URL,我们已在 Business Rules 服务中获得它。
  5. 从注册的设备发送一个设备事件,该设备的事件参数被设置为比最大允许阈值更高的值,以便生成一个工作订单。
  6. 工作订单生成后,可在机器条件监视 UI 中看到它。
正文到此结束
Loading...