内容


通过 IBM Cloud 上的 Weather Data 和 Business Rules 服务自动制定运营业务决策,第 1 部分

首先创建一个 Weather Cancellation 服务样本

Comments

系列内容:

此内容是该系列 1 部分中的第 # 部分: 通过 IBM Cloud 上的 Weather Data 和 Business Rules 服务自动制定运营业务决策,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:通过 IBM Cloud 上的 Weather Data 和 Business Rules 服务自动制定运营业务决策,第 1 部分

敬请期待该系列的后续内容。

天气事件会影响业务运营。当发生或可能发生天气事件时,业务人员可以采取相应措施来减轻天气对其运营的影响。现在,通过对天气事件作出反应,并自动制定考虑了天气数据的运营决策,业务部门可以更明智地执行操作。

组织可以在 IBM Cloud 平台上找到一些新出现的服务,通过采取一些措施(比如根据大数据分析来调用一个业务流程来响应天气警报等事件),结合使用这些服务来帮助自动制定决策。

应用程序可以通过 Weather Company Data 服务分析某个特定位置的当前天气信息。应用程序可以通过 Business Rules 服务实现运营决策逻辑的自动化。您还可以使用一个 Node-RED 可视工具,通过 Node-RED Starter 样板将服务和设备连接在一起。

本系列包含两部分,将介绍如何组合这些 IBM Cloud 服务,以便通过执行业务规则来自动制定考虑了天气数据的决策。这些业务决策可能引起一系列的操作,比如发送通知、调整价格、生成促销信息、触发物联网 (IoT) 设备,或者发起业务流程。

在第 1 部分,将会设置 IBM Cloud 服务并创建业务规则项目、业务对象模型和主要的天气决策操作。

在第 2 部分,将会定义规则和规则流,将规则部署到 IBM Cloud 上,并使用 Node-RED 编排 Weather Data 服务、Business Rules 服务和通知服务。

一个 Acme Bus Weather Cancellation 服务样本

本文将逐步介绍如何构建 Acme Bus Weather Cancellation 服务样本。该样本演示了如何在运营决策中使用天气数据。本教程系列中组装的服务模拟了一个公共汽车运输系统,该系统依靠短期天气预报来确定路况是否变得不安全。该服务运行业务逻辑来确定是否需要取消某次公共汽车旅游。

您将使用 Node-RED 服务编排这些 IBM Cloud 服务。业务流程从 Weather Data 服务请求某个特定地理位置的天气数据,该位置代表一条计划好的公共汽车旅游路线的起始位置。天气数据传入到 Business Rules 服务中,由该服务决定是继续所计划的公共汽车旅游还是取消旅游。下面的屏幕截图给出了 Acme Bus Weather Cancellation 服务的概述。

Acme Bus Weather Cancellation 服务概述
Acme Bus Weather Cancellation 服务概述

构建您的应用程序需要做的准备工作

您应该熟悉以下技术和软件:

要构建 Acme Bus Weather Cancellation 服务样本,需要设置以下帐户和软件:

第 1 步.创建一个 Node-RED Starter 应用程序

从 IBM Cloud 服务目录的 Boilerplates 部分,创建一个新 Node-RED Starter 应用程序。

  1. 访问 www.bluemix.net
  2. 单击 Log in 并输入您的 IBM Cloud 用户名和密码。
  3. 在 IBM Cloud 仪表板上,单击 Create App
  4. 向下滚动到 Boilerplates 列表并单击 Node-RED Starter
  5. Create a Cloud Foundry App 窗口中,为 App Name 字段输入一个唯一名称。对于本教程,输入 Weather and Business Rules App
  6. 保留剩余默认值不变,单击 Create
  7. 等待您的应用程序被创建并启动。状态更改为 Running,如下面的屏幕截图所示。 Weather and Business Rules Node-RED Bluemix App
    Weather and Business Rules Node-RED Bluemix App

    要打开 Node-RED 流编辑器,请单击该 Starter 应用程序的链接,在本教程中为 Weather-and-Business-Rules-App.mybluemix.net

  8. 可选:在 IBM Cloud 中,从您的新 Node-RED 应用程序主页单击 Learn how to password-protect your instance,并按照步骤设置密码来保护您的 Node-RED 应用程序实例。

第 2 步.创建 Weather Data 和 Business Rules 服务,并将它们绑定到您的应用程序

  1. 从 IBM Cloud 仪表板,选择 Weather and Business Rules App 应用程序。(可以单击该行上除超链接外的任何地方,单击超链接会打开 Node-RED 编辑器。)
  2. 选择 Connections 选项卡,单击 Connect new 按钮。IBM Cloud 目录将会打开。
  3. 在目录中,搜索并选择 Business Rules 服务。
  4. Business Rules 服务页面上,单击 Create 按钮创建一个 Business Rules 服务实例,并将它绑定到 Node-RED Starter 应用程序。
  5. 在 Restage app 窗口中单击 Restage,以便允许重新载入 Weather and Business Rules App 并与新绑定的 Business Rules 服务一起重新启动。
  6. 完成重新载入且 Weather and Business Rules App 被列为 Running 后,再次单击 Connect new 按钮。IBM Cloud 目录将会打开。
  7. 从目录中,搜索并选择 Weather Company Data 服务。
  8. 在 Weather Company Data 服务页面上的 Pricing Plans 部分,选中默认值 Free Plan,单击 Create 按钮创建一个 Weather Company Data 服务实例,并将它绑定到 Node-RED Starter 应用程序。
  9. 在 Restage app 窗口中单击 Restage,以便允许重新载入 Weather and Business Rules App 并与新绑定的 Weather Company Data 服务一起重新启动。确保 Weather and Business Rules App 的状态被列为 Running。

第 3 步.设置 Rule Designer 并创建一个 Java XOM 项目

IBM Cloud 上的 Weather Data 服务有一个 Representational State Transfer (REST) API,用于检索每日、每小时和当天的预报数据。它还可以检索当前天气条件和历史数据。

Execution Object Model (XOM) 是一组 Java 类,业务规则引擎使用它们来运行规则。要构建该应用程序,需要访问一个样本 Java XOM,该 XOM 对应于 Weather Data 服务 API 返回的数据中的 JavaScript Object Notation (JSON) 对象模型。

您有两种选择。您可以手动创建 Java XOM,方法是引用 Weather Data 服务的 JSON 模式中的属性和对象,并创建包含属性、getter 和 setter 的相应类。或者,您可以使用一个 JSON-to-Java 转换器将 API 返回的 JSON 对象转换为 Java 对象。

  1. 打开 Rule Designer 并创建一个工作区。
  2. 单击 Rule 切换到该透视图。
  3. BluemixWeatherAndBusinessRules 下载并导入 Acme Bus Weather Cancellation 服务所使用的天气数据的 Java XOM 样本代码。
    1. 将样本代码解压到您想要使用的目录中。请注意,解压后的归档文件的根目录包含一个 WeatherDataXOM 子目录,稍后您会使用该子目录。
    2. Rule Explorer 视图,右键单击项目区域并单击 Import
    3. 选择 General > Existing Projects Into Workspace 并单击 Next
    4. 单击 Browse 并导航到步骤 a 中包含 WeatherDataXOM 子目录的目录。
    5. 您应该看到项目列表中显示了 WeatherDataXOM 项目。勾选它旁边的复选框,并单击 Finish 导入该项目。

第 4 步.创建一个规则项目,导入该 XOM,创建 BOM

现在创建一个业务规则项目,然后导入您在上一步中创建的 XOM。然后,利用该 XOM 创建 BOM。

  1. 从 Rule Designer 中的 Rule 透视图的 Rule Project Map 视图,打开 Decision Service Map。然后单击 Set up a Decision Service 节点中的 Create main rule project,如下面的屏幕截图所示。 Decision Service Map
    Decision Service Map
  2. New Rule Project 窗口,选择 Main Rule Project 并单击 Next
  3. 为该规则项目提供一个名称,单击 Finish。现在应该能在 Rule Explorer 视图中看到新的空规则项目。
  4. 要导入天气数据 Java 项目作为此规则项目的 XOM,请单击 Decision Service Map 的 Set up a Decision Service 节点中的 Import XOM
  5. 选择 Java execution object model 并单击 OK
  6. 选中 Properties for WeatherDataRuleProject 窗口中的 WeatherDataXOM 复选框,并单击 OK
  7. 在 Decision Service Map 中,利用 Weather Data Java XOM 创建一个 BOM。单击 Set up a Decision Service 节点中的 Create BOM
  8. 选择 New BOM Entry 窗口的第一个屏幕中的默认值,并单击 Next
  9. 单击 Browse XOM,在 Choose a XOM Element 下选择 platform:/WeatherDataProject,并单击 OK
  10. 选择所有可用的包并单击 Finish。这一步会创建一个包含来自 XOM 的每个属性的 getter 和 setter 的默认 BOM,还会创建来自每个 XOM 类的属性的默认言语表达。如果您愿意,可以自定义该 BOM 和言语表达。
  11. 转到 Problems 视图。可以看到一个指出术语 forecast 重复的错误。双击错误消息以打开相应的 BOM 类编辑器,可以在这里更改该术语的言语表达。
  12. 在 Class Verbalization 部分,单击 Term 文本框旁边的 Edit
  13. 在 Edit Term 窗口中,将 Singular 字段的值从 forecast 更改为 Hourly Weather,并单击 OK。保存打开的编辑器中的内容。

第 5 步.创建一个决策操作并定义它的签名

在本节中,您将创建一个决策操作并定义它的签名。该签名包含该决策所使用的输入和输出参数。对于 Acme Bus Weather Cancellation 服务,输入参数集是从 Weather Data 服务返回的 BOM 类。

该决策的输出是执行规则的结果,在 Acme 服务中是一个 Boolean 标志和一条消息。要向决策操作的签名添加输入和输出,可以创建一个变量集并添加变量,这些变量表示天气数据 API 返回的信息。

  1. 转到 Rule Project Map 视图。在 Decision Service Map 中,单击 Define decision operation 节点中的 Add decision operation
  2. New Decision Operation 窗口的 Name 字段中,输入 WeatherDataDecision 并单击 Finish
  3. 创建新决策操作后,它将会打开,您可以指定主要规则流以及组成签名的输入和输出参数,如下面的屏幕截图所示: Decision Operation Overview Properties 窗口
    Decision Operation Overview Properties 窗口
  4. 返回到 Rule Project Map 视图。在 Decision Service Map 中,添加一个变量集。单击 Define decision operation 节点中的 Go to operation map
  5. 单击 Select an operation 窗口中的 OK
  6. 要创建一个变量集并添加变量,请单击 WeatherDataDecision Operation Map 的 Design Signature 节点中的 Add variable set 链接,如下面的屏幕截图所示。 Decision Operation Map
    Decision Operation Map
  7. 输入 WeatherDataRuleVariables 作为变量集的名称,并单击 Finish
  8. 在打开的新变量集中,使用 Add 按钮添加以下变量来表示决策操作的输入和输出,如下面的屏幕截图所示。确保保存了更改。 业务规则项目中定义的变量集
    业务规则项目中定义的变量集
  9. 要绑定该变量集作为决策操作的输入和输出参数,请单击 WeatherDataDecision 操作图的 Design Signature 节点中的 Bind variables。决策操作编辑器中的 Signature 选项卡将会打开。
  10. 添加规则集变量作为 Input - Output ParametersOutput Parameters,如下面的屏幕截图所示。 决策操作中的输入/输出参数定义
    决策操作中的输入/输出参数定义

    通过右键单击选择 Eligible variables 部分的每个变量,并选择 Use as input and outputUse as output。确保保存了更改。

结束语

在“通过 IBM Cloud 上的 Weather Data 和 Business Rules 服务自动制定运营业务决策”系列的第 1 部分中,您完成了开始创建 Acme Bus Weather Cancellation 服务样本的步骤。您在 IBM Cloud 上创建了一个 Node-RED Starter 应用程序,并将它绑定到一个新的 Weather Data 服务和一个新的 Business Rules 服务。创建一个 Java XOM 项目并将一些 starter 代码导入 Rule Designer 中后,您创建了一个规则项目 BOM,包括天气数据对象模型和一个相应的天气相关决策操作的开头部分。最后,您定义了它的参数。

在第 2 部分,您将进一步定义该决策操作,创建使用天气数据的简单业务规则和一个规则流,并将该决策操作部署到 IBM Cloud。然后,您将定义一个 Node-RED 流来编排对 Weather Data 服务、Business Rules 服务和一个 HTTP 通知服务的调用。您将以 HTTP Acme Bus Weather Cancellation 服务形式公开这个流,根据来自 Weather Data 服务的天气条件来通知项目干系人:已作出取消公共汽车旅游的决策。

致谢

感谢 Uzma Siddiqui 详细评审并提供周到的建议来改进本文。


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Middleware, Cloud computing
ArticleID=1057253
ArticleTitle=通过 IBM Cloud 上的 Weather Data 和 Business Rules 服务自动制定运营业务决策,第 1 部分: 首先创建一个 Weather Cancellation 服务样本
publish-date=01242018