Red Hat Business Optimizer 向け従業員勤務表スターターアプリケーションの Red Hat OpenShift Container Platform へのデプロイメント

Red Hat Decision Manager 7.0

Red Hat Customer Content Services

概要

本書は、Red Hat Decision Manager 7.0 にアドオンとして含まれている OptaShift Employee Rostering サンプルを実行して使用する方法を説明します。

前書き

ビジネスルールの作成者は、Red Hat Decision Manager ディストリビューションに含まれる employee-rostering スタータープロジェクトを OpenShift に簡単にデプロイして、Red Hat Business Optimizer 機能をテストして操作できます。

前提条件

  • employee-rostering スターターアプリケーションが含まれる Red Hat Decision Manager アドオンディストリビューションをダウンロードしている。
  • デプロイした OpenShift 環境にアクセスできる。詳細は、使用する OpenShift 製品のドキュメンテーションを参照してください。

第1章 OpenShift への従業員勤務表デモのインストールおよび実行

Red Hat Business Optimizer Employee Rostering スターターアプリケーションを OpenShift インスタンスにデプロイできます。

デプロイメントファイルの準備

  1. アドオンディストリビューション (rhdm-7.0.0-add-ons.zip) を展開します。
  2. アドオンアーカイブから展開した employee-rostering zip ファイルを展開します。

    注記

    employee-rostering zip ファイルを展開すると、optashift-employee-rostering-7.5.0.Final-redhat-4 ディレクトリーが作成されます。このディレクトリーは、後続の手順でベースフォルダーになります。ファイルおよびディレクトリーの名前で使用されるバージョン番号は、本書で使用するバージョンよりも新しい場合があります。

このアプリケーションは、以下のいずれかの方法で OpenShift に簡単にデプロイできます。

  1. S2I (Source to Image) テンプレートを使用。このテンプレートは、Git リポジトリーからアプリケーションのソースをプルし、デプロイメント時にビルドします。
  2. ディストリビューションに提供されるビルド前バイナリーアプリケーションアーカイブを使用。この場合、テンプレートは環境を準備しますが、アプリケーションは再ビルドしません。
注記

S2I アプローチには、バイナリーデプロイメントよりもはるかに多くのリソースが必要です。OpenShift 環境で使用可能なメモリーが 2GB よりも少ない場合 (たとえば OpenShift Online Starter 階層を使用する場合) は、バイナリーデプロイメントアプローチを選択する必要があります。

1.1. S2I (Source to Image) テンプレートを使用したデプロイメント

手順

  1. OpenShift web コンソールにログインし、右上の Import YAML/JSON をクリックします。
  2. Add to Project ドロップダウンメニューで追加するプロジェクトを選択するか、Create Project を選択して新たに作成します。プロジェクトを新たに作成する場合は、プロジェクト名、表示名、および説明を入力します。
  3. Browse ボタンをクリックして、optashift-employee-rostering-template.yaml ファイルに移動します。optashift-employee-rostering-7.5.0.Final-redhat-4 ディレクトリーから、sources > openshift > templates の順にクリックすると、このファイルが見つかります。
  4. Create をクリックします。

    図1.1 テンプレートのアップロードウィンドウ

    optashift ER s2i step one
  5. Add Template ダイアログボックスで Continue をクリックして、デフォルト設定を許可します。

    図1.2 テンプレートの追加ウィンドウ

    optashift ER s2i step two
  6. Import YAML/JSON ダイアログボックスで、Create をクリックして、デフォルト設定を使用します。

    図1.3 テンプレートの設定ウィンドウ

    optashift ER s2i step three
  7. Success ダイアログボックスで、Close をクリックします。
  8. ビルドとデプロイメントが完了するのを待ちます。これには数分かかる場合があります。デプロイメントが完了したら、右上の、陰影付きバーの上にあるリンクをクリックしてアプリケーションを開きます。

    図1.4 デプロイメントの完了と、作成されたリンク

    optashift ER s2i step four
    注記

    リンクをクリックしても web アプリが開かない場合は、ブラウザーページをハードリフレッシュします。

1.2. ビルド前バイナリーを使用したデプロイメント

手順

  1. バイナリーデプロイメントの準備をします。

    注記

    バイナリーデプロイメントには、oc コマンドラインツールを使用する必要があります。インストール手順については OpenShift ドキュメンテーションを参照してください。

    1. optashift-employee-rostering-7.5.0.Final-redhat-4 ディストリビューションディレクトリーから、binaries ディレクトリーを開きます。
    2. optashift-employee-rostering-webapp-7.5.0.Final-redhat-4.warsources ディレクトリーにコピーします。
    3. ファイルの名前を ROOT.war に変更します。この名前は、アプリケーションサーバーが、サーバーのルートコンテキストにファイルをデプロイするのに使用します。
  2. コマンドラインで、sources ディレクトリーに移動します。
  3. 以下のコマンドを使用してプロジェクトを作成します。

    oc new-project optashift-demo --display-name="Employee Rostering Demo"
    注記

    または、既存プロジェクトを使用できます。この手順の optashift-demo の部分を、使用するプロジェクト名に変更します。

  4. ビルドおよびデプロイメント設定を作成します。optashift-employee-rostering-template-binary.yaml テンプレートファイルを使用して、OpenShift 設定 (ブラウザーにアクセスできるように、アプリケーションを公開するためのルートなど) を指定します。

    oc process -f openshift/templates/optashift-employee-rostering-template-binary.yaml -n optashift-demo | oc create -f - -n optashift-demo
  5. バイナリーファイルをアップロードして、デプロイメントを開始します。

    oc start-build employee-rostering --from-file=ROOT.war
  6. OpenShift web UI を使用して、デプロイしたアプリケーションの詳細を表示します。Routes セクションのリンクをクリックして、スターターアプリケーションを開きます。

    図1.5 デプロイした Employee Rostering スターターアプリケーションを使用する OpenShift web コンソール

    optashift ER binary success

第2章 従業員勤務表スターターアプリケーションの概要

従業員勤務表スターターアプリケーションは、組織内のさまざまな場所に従業員を割り当てます。たとえば、アプリケーションを使用して、病院での看護師のシフト、レストランでの従業員のシフト、作業者の組み立てラインのシフトを割り当てます。

従業員勤務表を最適なものにするには、多くの変数を考慮する必要があります。たとえば、作業場所が異なれば、求められるスキルが異なります。また、従業員の中には、特定の時間帯に勤務できない場合や、特定の時間帯への勤務を希望する場合があります。アプリケーションウィンドウの上部にあるタブを使用して、これらの変数に指定できます。

重要

現行リリースの従業員勤務表スターターアプリケーションでは、事前に定義した日数で決められた分のシフトを入力します。日数またはシフト数を変更することはできません。したがって、プロダクションタスクにこのアプリケーションを使用することはできません。ただし、システムにスキル、スポット、または従業員の値を入力したあとも、その値を更新することはできます。

図2.1 従業員勤務表のツールバー

opta tabs

2.1. 従業員勤務表に関するソース情報の入力

テナント

アプリケーションウィンドウの右上にある TENANT フィールドで、事前に定義したテナントから 1 つ選択できます。各テナントは、独立したデータセットを表します。テナントのデータを変更しても、その他のテナントには影響しません。

テナントを切り替えて、独立したデータセットを複数使用できます。たとえば、複数の勤務地用に従業員の勤務表を複数作成できます。

スキル

スキルセクションでは、勤務表内の作業場所に必要となるスキルをすべて設定できます。たとえば、レストランの 24 時間シフトには、勤務人数やレストラン営業などの一般的なスキルに加え、調理、給仕、送迎、ホスティングサービスのスキルが必要になります。

このようなスキルを入力するには、Skills タブをクリックします。

各スキルに対して以下を行います。

  1. Skill Name フィールドにスキルの名前を入力します。
  2. Add をクリックします。
opta skill name

スポット

スポットは、その企業での様々な場所を参照します。たとえば、レストランには、バー、バス停、受付、様々なキッチンエリア、給仕エリア、オフィスなどがあります。Skills タブで入力した一覧から、必要なスキルを選択できます。以下の表は、スポットと、各スポットで必要なスキルの例を示しています。

表2.1 スポットの例

名前

必要なスキル

Bar

Serving

Bussing Station 1

Bussing

Bussing Station 2

Bussing

Front Counter

Hosting, Cash register

Grill

Cooking

Prep

Food prep

Soups

Cooking

Serving area 1

Serving

Serving area 2

Serving

Office

HR

各スポットで、以下を行います。

  1. 画面下部の Spot Name フィールドにスポット名を入力します。
  2. Required Skill ドロップダウンメニューから、必要なスキルを選択します。
  3. Add をクリックします。

図2.2 スポット名の例

opta spot name

従業員

Employees タブには、その企業で働いている従業員一覧と、各自のスキルが含まれています。この一覧から、必要に応じて従業員のスキルを複数設定できます。

各従業員に対して、以下を行います。

  1. 画面下部の Employee Name フィールドに名前を入力します。
  2. Skills フィールドを入力し、表示される提案一覧からアイテムを選択して、関連スキルを選択します。スキルを複数指定する場合は、先に進む前にこのプロセスを繰り返します。
  3. Add をクリックします。

図2.3 従業員の名前フィールド

opta name

スポットの勤務表 (Spot Roster)

スポットの勤務表は、営業時間内の全シフト (時間枠) を示すテーブルで、各シフトのスポットはすべて従業員に割り当てる必要があります。必要なスポットは、赤い長方形で示されます。

シフトごとに、各スポットに従業員を複数指定できます。シフトにスポットが必要ない場合は、そのスポットを勤務表から完全に削除できます。

特定のシフトに新しいスポットを追加するには、セルの青い + アイコンをクリックします。必要なスポットをシフトから完全に削除するには、グリッドのセルにある青い X アイコンをクリックします。

図2.4 スポットの勤務表の例

opta spot roster

図2.5 スポットアイコンの詳細 (ロック、編集、削除、追加)

opta spot icons

2.2. 最適な従業員勤務表の作成

手順

  1. 必要に応じて、シフトとスポットに、必要な従業員を入力します。

    1. スポットの 編集 アイコンをクリックすると、「Select employee」モーダルウィンドウが開きます。
    2. 一覧から従業員を選択し、Assign ボタンをクリックします。
    3. その従業員は、指定したスポットにロックされ、Sover では変更できません。
    4. スポットで ロック をクリックして、Solver で割り当てを変更できるようにします。
    5. 削除 アイコンをクリックして、スポットへの従業員の割り当てを元に戻します。
  2. Solve ボタンをクリックして、最適なソリューションを作成します。

エンジンが完全に最適な結果を作成するには 30 秒かかります。

最適な結果が利用できる場合は、Spot Roster ウィンドウで、各スポットおよびシフトに割り当てた従業員の名前が表示されます。

従業員の勤務表 (Employee Roster)

従業員の勤務表は、スポットの勤務表と同じ列を表示しますが、行には、従業員の名前と、指定したシフトで各従業員が割り当てられているスポットを表示します。

図2.6 従業員の勤務表の例

opta emp roster

2.3. 従業員のアベイラビリティーの設定

従業員の勤務表画面で、従業員のシフト希望を設定します。このエンジンは、最適なソリューションを作成する際にその希望に対応しようとします。シフトにある 3 つのボタンの中から 1 つクリックして、従業員の希望を指定します。

図2.7 従業員のシフト希望

opta prefs

上の図の左側から順に、以下の希望を示しています。

  1. 勤務できない
  2. 希望しないが勤務可能
  3. 勤務を希望

何も選択しない場合は、そのシフトに対する希望がないことを示しています。

従業員のアベイラビリティーを変更するには、Solve ボタンをクリックして、新しいスケジュールを作成します。

注記

「勤務できない」オプションは、病欠または休暇の従業員にも適用されます。シフトの直前に従業員が病欠の電話をしてきた場合は、マネージャーがその従業員の予定を「勤務できない」にして、新しいスケジュールを作成します。

2.4. 制約

このスターターアプリケーションの Red Hat Business Optimizer ルールは、ハード制約およびソフト制約を使用します。最適化時に、エンジンがハード制約を違反しない可能性があります。たとえば、従業員が勤務できない (または病欠) 場合 、もしくは 1 つのシフトの 2 つのスポットで働くことができないなどです。エンジンは、ソフト制約 (特定のシフトで勤務しないという従業員の希望など) に順守しようとしますが、最適なソリューションには違反が必要だと判断した場合は違反できます。

付録A バージョン情報

本ドキュメントの最終更新日: 2018 年 7 月 3 日

法律上の通知

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.