目次


IBM Cloud 上の Weather Data サービスと Business Rules サービスを利用して、事業運営に関する意思決定を自動化する, 第 1 回

サンプル Weather Cancellation サービスを導入する

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: IBM Cloud 上の Weather Data サービスと Business Rules サービスを利用して、事業運営に関する意思決定を自動化する, 第 1 回

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:IBM Cloud 上の Weather Data サービスと Business Rules サービスを利用して、事業運営に関する意思決定を自動化する, 第 1 回

このシリーズの続きに乞うご期待。

気象事象は事業運営に影響を与えます。気象事象が発生するか、発生しそうになると、企業は事業運営への影響を軽減するためのアクションを取ります。気象事象に対応して気象データを考慮した上で、事業運営に関する意思決定が行われるように自動化することで、企業はよりスマートに事業を運営できるようになります。

IBM のクラウド・プラットフォームである IBM Cloud 上には、組織が意思決定を自動化するために利用できる新しい数々のサービスがあります。具体的には、これらのサービスを組み合わせて利用して、例えば気象警報といったイベントに対し、ビッグデータ・アナリティクスに基づくビジネス・プロセスを呼び出すなどのアクションを取るという方法で、意思決定を自動化することができます。

アプリケーションで特定の場所に関する現在の気象情報を分析するには、Weather Company Data サービスを利用できます。アプリケーションで事業運営のための意思決定ロジックを自動化する際には、Business Rules サービスを利用できます。さらに、Node-RED Starter ボイラープレートを利用すれば、Node-RED のビジュアル・ツールでサービスとデバイスを関連付けることができます。

この全 2 回からなるシリーズでは、上述の IBM Cloud サービスを結合して、ビジネス・ルールを実行するという方法で気象データを考慮した意思決定を自動化する手順を説明します。ビジネス意思決定を自動化すると、通知の送信、価格の調整、プロモーションの生成、モノのインターネット (IoT) デバイスのトリガー、ビジネス・プロセスの開始などといった、さまざまなアクションをいくつでも実行できるようになります。

この第 1 回では、IBM Cloud サービスをセットアップして、ビジネス・ルール・プロジェクト、ビジネス・オブジェクト・モデル、そしてメインとなる気象による意思決定処理を作成します。

第 2 回ではルールとルール・フローを定義し、それらのルールを IBM Cloud 上にデプロイして、Node-RED サービスによって Weather Data サービス、Business Rules サービス、通知サービスをオーケストレーションします。

サンプル Acme Bus Weather Cancellation サービス

この記事では、サンプル Acme Bus Weather Cancellation サービスを作成する方法を段階的に説明します。このサンプルは、業務上の意思決定において気象データを使用する方法をデモンストレーションするものです。このチュートリアル・シリーズを通じてアセンブルするサービスは、短期的な気象予報に依存して道路状況が安全でなくなるかどうかを判断する、バス輸送システムをシミュレーションします。このサービスの場合はビジネス・ロジックを実行して、バス・ツアーをキャンセルする必要があるかどうかを判断します。

IBM Cloud サービスのオーケストレーションは、Node-RED サービスを利用して行います。まず、ビジネス・プロセスが Weather Data サービスに対し、特定の地理的位置の気象データをリクエストします。この地理的位置は、予定されているバス・ツアーの出発点を表します。気象データが Business Rules サービスに取り込まれると、このサービスによって、予定されているバス・ツアーの続行またはキャンセルが決定されます。以下のスクリーン・キャプチャーに、Acme Bus Weather Cancellation サービスの概要が示されています。

Acme Bus Weather Cancellation サービスの概要図
Acme Bus Weather Cancellation サービスの概要図

アプリケーションを作成するための前提条件

以下のテクノロジーとソフトウェアの知識が必要です。

  • Node-RED および IBM Cloud 上の Node-RED Starter ボイラープレート
  • IBM Cloud 上の Business Rules サービス
  • IBM Cloud 上の Weather Company Data サービス
  • Eclipse ベースの Rule Designer ツール (ビジネス・ルール・プロジェクトの開発方法とビジネス・ルールの作成方法についても把握している必要があります)

サンプル Acme Bus Weather Cancellation サービスを作成するには、以下のアカウントとソフトウェアがセットアップされている必要があります。

ステップ 1. Node-RED スターター・アプリケーションを作成する

IBM Cloud サービス・カタログの「Boilerplates (ボイラープレート)」セクションから、Node-RED スターター・アプリケーションを新規に作成します。

  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 (Cloud Foundry アプリケーションの作成)」ウィンドウで、「App Name (アプリケーション名)」フィールドにアプリケーションの一意の名前を入力します。このチュートリアルでは、アプリケーションの名前として「Weather and Business Rules App」と入力します。
  6. 他のフィールドはデフォルト値のままにして、「Create (作成)」をクリックします。
  7. アプリケーションが作成されて起動するまで待ちます。起動すると、ステータスが「Running (実行中)」に変わります (以下のスクリーン・キャプチャーを参照)。 Weather and Business Rules と名付けられた Node-RED IBM Cloud アプリケーションのスクリーン・キャプチャー
    Weather and Business Rules と名付けられた Node-RED IBM Cloud アプリケーションのスクリーン・キャプチャー

    Node-RED フロー・エディターを開くには、スターター・アプリケーションのリンク (このチュートリアルの場合、Weather-and-Business-Rules-App.mybluemix) をクリックします。

  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 スターター・アプリケーションにバインドします。
  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 スターター・アプリケーションにバインドします。
  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 サービスでは、REST (Representational State Transfer) API を使用して、1 日の予報、1 時間ごとの予報、日中の予報を取得できるようになっています。また、現在の気象条件や履歴データを取得することもできます。

XOM (Execution Object Model) は、ビジネス・ルール・エンジンがルールを実行するために使用する Java クラス一式です。アプリケーションを構築するには、Weather Data サービス API から返されたデータの JSON (JavaScript Object Notation) オブジェクト・モデルに対応するサンプル Java XOM にアクセスする必要があります。

選択肢は 2 つあります。1 つは、Java XOM を手作業で作成することです。Weather Data サービスの JSON スキーマに含まれる属性とオブジェクトを参照し、対応するクラスを作成して属性とゲッターおよびセッターを含めることで、Java XOM を作成できます。もう 1 つの方法として、JSON と Java のコンバーターを使用して、API から返された JSON オブジェクトを Java オブジェクトに変換することもできます。

  1. Rule Designer を開いて、ワークスペースを作成します。
  2. 「Rule (ルール)」をクリックして「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 プロジェクトがプロジェクトのリストに追加されていることを確認できるはずです。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. このルール・プロジェクトの XOM として気象データ Java プロジェクトをインポートするために、「Decision Service Map (意思決定サービス・マップ)」の「Set up a Decision Service (意思決定サービスのセットアップ)」ノードに含まれる「Import XOM (XOM のインポート)」をクリックします。
  5. 「Java execution object model (Java 実行オブジェクト・モデル)」を選択してから「OK」をクリックします。
  6. 「Properties for WeatherDataRuleProject (WeatherDataRuleProject のプロパティー)」ウィンドウで「WeatherDataXOM」チェック・ボックスを選択し、「OK」をクリックします。
  7. 「Decision Service Map (意思決定サービス・マップ)」で、気象データ Java XOM から BOM を作成します。「Set up a Decision Service (意思決定サービスのセットアップ)」ノードに含まれる「Create BOM (BOM の作成)」をクリックします。
  8. 「New BOM Entry (新規 BOM エントリー)」ウィンドウの最初の画面では、デフォルト値を変更せずに「Next (次へ)」をクリックします。
  9. 「XMO を参照 (Browse XOM)」をクリックし、「Choose a XOM Element (XOM 要素の選択)」で「platform:/WeatherDataProject」を選択してから「OK」をクリックします。
  10. 使用可能なすべてのパッケージを選択して、「Finish (完了)」をクリックします。このステップによって作成されるのは、XOM に含まれる属性ごとのゲッターとセッターが含まれるデフォルト BOM と、各 XOM クラスに含まれる属性のデフォルトの言語化です。作成されたデフォルトの BOM と言語化は、必要に応じてカスタマイズできます。
  11. 「Problems (問題)」ビューを表示します。用語「forecast」が重複していることを通知するエラーが表示されているはずです。エラー・メッセージをダブルクリックして対応する COM クラス・エディターを開きます。ここで、用語の言語化を変更できます。
  12. 「Class Verbalization (クラスの言語化)」セクションで、「Term (用語)」テキスト・ボックスの横にある「Edit (編集)」をクリックします。
  13. 「Edit Term (用語の編集)」ウィンドウで、「Singular (単数形)」フィールドの値を「forecast」から「Hourly Weather」に変更して、「OK」をクリックします。開いているエディターの内容を保存します。

ステップ 5. 意思決定処理を作成し、そのシグニチャーを定義する。

このセクションでは、意思決定処理を作成し、そのシグニチャーを定義します。シグニチャーには、意思決定処理で使用する入力パラメーターと出力パラメーターを含めます。Acme Bus Weather Cancellation サービスの場合、入力パラメーターのセットは、気象データ・サービスから返される一連の BOM クラスです。

意思決定の出力はルールを実行した結果であり、Acme サービスでは、ブール値フラグとメッセージがその結果に該当します。意思決定処理のシグニチャーに入力と出力を追加するには、変数セットを作成し、その変数セットに Weather Data サービス 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 (意思決定処理の概要)」プロパティー・ウィンドウを示すスクリーン・キャプチャー
    「Decision Operation Overview (意思決定処理の概要)」プロパティー・ウィンドウを示すスクリーン・キャプチャー
  4. 「Rule Project Map (ルール・プロジェクト・マップ)」ビューに戻ります。「Decision Service Map (意思決定サービス・マップ)」で、変数セットを追加します。「Define decision operation (意思決定処理の定義)」ノードに含まれる「Go to operation map (意思決定サービスの表示)」をクリックします。
  5. 「Select an operation (処理の選択)」ウィンドウで「OK」をクリックします。
  6. 変数セットを作成して変数を追加するために、「WeatherDataDecision Operation Map (WeatherDataDecision 処理マップ)」「Design Signature (シグニチャーの設定)」ノードに含まれる「Add variable set (変数セットの追加)」リンクをクリックします。 意思決定処理マップを示すスクリーン・キャプチャー
    意思決定処理マップを示すスクリーン・キャプチャー
  7. 変数セットの名前として「WeatherDataRuleVariables」と入力してから「Finish (完了)」をクリックします。
  8. 新しい変数セットが作成されて開いたら、「Add (追加)」ボタンを使用して、以下のスクリーン・キャプチャーに示されている、意思決定処理の入力と出力を表す変数を追加します。最後に必ず変更内容を保存してください。 ビジネス・ルール・プロジェクト内に定義された変数セット
    ビジネス・ルール・プロジェクト内に定義された変数セット
  9. 変数セットを意思決定処理の入力パラメーターおよび出力パラメーターとしてバインドするには、「WeatherDataDecision Operation Map (WeatherDataDecision 処理マップ)」「Design Signature (シグニチャーの設計)」ノードに含まれる「Bind variables (変数のバインド)」をクリックします。意思決定処理エディターで「Signature (シグニチャー)」タブが開きます。
  10. 以下のスクリーン・キャプチャーに示されているように、ルール・セット変数を「Input - Output Parameters (入力 - 出力パラメーター)」または「Output Parameters (出力パラメーター)」のいずれかとして追加します。 意思決定処理の入力/出力パラメーターの定義を示すスクリーン・キャプチャー
    意思決定処理の入力/出力パラメーターの定義を示すスクリーン・キャプチャー
    「Eligible variables (適格な変数)」セクションで各変数を選択して右クリックし、「se as input and output (入力および出力として使用)」または「Use as output (出力として使用)」のいずれかを選択します。最後に必ず変更内容を保存してください。

まとめ

シリーズ「IBM Cloud 上の Weather Data サービスと Business Rules サービスを利用して、事業運営に関する意思決定を自動化する」の第 1 回では、サンプル Acme Bus Weather Cancellation サービスを導入するための手順を完了しました。この手順では、IBM Cloud 上で Node-RED スターター・アプリケーションを作成し、そのアプリケーションに新しく作成した Weather Data サービスと Business Rules サービスのインスタンスをバインドしました。続いて Java XOM プロジェクトを作成し、Rule Designer にスターター・コードをインポートしてから、ルール・プロジェクトと BOM を作成しました。そして作成したBOM に、気象データ・オブジェクト・モデルとそのモデルに対応する基礎的な気象関連の意思決定処理を含め、意思決定処理のパラメーターを定義しました。

第 2 回では、意思決定処理の定義をさらに進め、気象データとルール・フローを使用する単純なビジネス・ルールを作成し、意思決定処理を IBM Cloud にデプロイします。その後、気象データの呼び出し、ビジネス・ルール・サービス、HTTP 通知サービスをオーケストレーションする Node-RED フローを定義します。このフローを HTTP Acme Bus Weather Cancellation サービスとして公開し、Weather Data サービスからの気象状況に基づいて行われたバス・ツアー・キャンセルの意思決定を利害関係者に通知できるようにします。

謝辞

この記事を詳しくレビューして、内容を改善するための思慮深い提案をしてくれた Uzma Siddiqui に感謝の言葉を贈ります。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=1058015
ArticleTitle=IBM Cloud 上の Weather Data サービスと Business Rules サービスを利用して、事業運営に関する意思決定を自動化する, 第 1 回: サンプル Weather Cancellation サービスを導入する
publish-date=02152018