第3章 従業員勤務表スターターアプリケーションのソースコードに関する概要


従業員勤務表スターターアプリケーションは、以下の主要コンポーネントで設定されています。

  • Red Hat Business Optimizer を使用して勤務表のロジックを実装して、REST API を提供する サーバー
  • gwt ライブラリーを使用してユーザーインターフェイスを実装し、REST API でサーバーを呼び出す クライアント

クライアントとサーバーの間でコードを共有し、これらのコンポーネントを個別にビルドし使用することができます。特に、異なるユーザーインターフェイスを実装して、REST API でサーバーを呼び出すことができます。

主なコンポーネント 2 つに加え、従業員勤務表テンプレートには、ランダムなソースデータのジェネレーター (デモやテスト目的で便利) やベンチマークアプリケーションが含まれます。

モジュールおよび主要なクラス

従業員勤務表テンプレートの Java ソースコードには複数の Maven モジュールが含まれます。これらのモジュールごとに、個別の Maven プロジェクトファイル (pom.xml) が含まれていますが、これは共通のプロジェクトで構築するために設計されています。

モジュールには、Java クラスなど複数のファイルが含まれます。このドキュメントでは、全モジュールと、従業員勤務表計算の主な情報を含むその他のファイルとクラスをリストします。

  • employee-rostering-benchmark モジュール: 乱数データを生成し、ソリューションをベンチマーク化する追加のアプリケーションが含まれます。
  • employee-rostering-distribution モジュール: readme ファイルが含まれます。
  • employee-rostering-docs モジュール: ドキュメントファイルが含まれます。
  • employee-rostering-gwtui モジュール: gwt ツールキットを使用して開発したユーザーインターフェイスを使用するクライアントアプリケーションが含まれます。
  • employee-rostering-server モジュール: Red Hat Business Optimizer を使用して勤務表の計算を行うサーバーをアプリケーションが含まれます。

    • src/main/resources/org/optaweb/employeerostering/server/solver/employeeRosteringScoreRules.drl ファイル: Red Hat Business Optimizer の計算用のルールが含まれます。これらのルールは、Drools ルール言語で記述されています。ルールを修正して、従業員勤務表のロジックを変更できます。
    • src/main/java/org.optaweb.employeerostering.server.roster/rosterGenerator.java クラス: デモおよびテスト目的でランダムな入力データを生成します。必要な入力データを変更する場合には、生成器も合わせて変更してください。
  • employee-rostering-shared モジュール: サーバーとクライアントアプリケーション間で共有されるデータ構造が含まれます。特に、src/main/java/org/optaweb/employeerostering/shared/* では、このモジュールには以下のクラスを含む勤務表計算の入力データを定義する Java クラスが含まれます。

    • employee/EmployeeAvailability.java は、従業員の空き情報を定義します。時間枠ごとに、従業員の空き状況と、従業員の希望する時間枠を指定できます。
    • employee/Employee.java は従業員を定義します。従業員には名前とスキル一覧があり、契約に従って仕事に従事します。スキルは、EmployeeSkillProficiency オブジェクトで表現します。
    • roster/Roster.java は計算した勤務表情報を定義します。
    • shift/Shift.java は、従業員を割り当て可能なシフトを定義します。シフトは、時間枠とスポットで定義します。たとえば、レストランでは、Kitchen のスポットで、February 20 8AM-4PM の時間枠のシフトなどがあります。複数のシフトを、特定のスポットと時間枠に定義できます。今回の例では、このスポットと時間枠には複数の従業員が必要です。
    • skill/Skill.java は、従業員が持つスキルを定義します。
    • spot/Spot.java は、従業員を配置可能なスポットを定義します。たとえば、レストランでは Kitchen をスポットとして指定できます。
    • contract/Contract.java は、さまざまな期間の従業員の労働時間を制限する契約を定義します。
    • tenant/Tenant.java はテナントを定義します。テナントごとに、独立したデータセットを表します。あるテナントのデータが変更されても、他のテナントには影響がありません。

      employee-rostering-shared モジュールにも、他の共有アーティファクトが含まれます。

    • *View.java クラスは、他の情報から計算する値のセットを定義します。クライアントアプリケーションは、REST API 経由でこれらの値を読み取りますが、書き込みはできません。
    • *RestService.java インターフェイスは REST API を定義します。サーバーとクライアントアプリケーションのいずれも、これらのインターフェイスの実装を個別に定義します。
  • employee-rostering-shared-gwt モジュール: GWT クライアントアプリケーションに必要なクラスが含まれます。
  • employee-rostering-webapp モジュール: アプリケーション全体 (クライアントとサーバー) のビルドに必要な HTML と他のファイルが含まれます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat