14.7.2. OptaWeb 配送経路のバックエンドモジュール
バックエンドモジュールには、Red Hat ビルドの OptaPlanner を使用して配送経路を最適化するサーバー側のアプリケーションが含まれています。最適化は CPU を集中的に使用する計算であり、最大限に能力を発揮するには I/O 操作を回避する必要があります。移動コスト (時間または距離) を最小限に抑えることが主な目的の 1 つであるため、OptaWeb 配送経路では RAM メモリーに移動コストの情報を保持します。OptaPlanner は、解を出す時に、ユーザーが入力した全場所間の移動コストを把握しておく必要があります。この情報は、距離行列 と呼ばれる構造に保存されます。
新しい場所を入力すると、OptaWeb 配送経路は新しい場所と、それ以外でこれまでに入力されたすべての場所との間の移動コストを計算して、距離行列にその移動コストを保存します。移動コストの計算は、GraphHopper の経路エンジンで実行されます。
バックエンドモジュールは、以下のような機能を追加で実装します。
- 永続性
- フロントエンドの WebSocket 接続
- データセットの読み込み、エクスポート、およびインポート
バックエンドコードのアーキテクチャーの詳細は、「OptaWeb 配送経路のバックエンドアーキテクチャー」 を参照してください。
次のセクションでは、開発モードでバックエンドを設定して実行する方法を説明します。
14.7.2.1. OptaWeb 配送経路のバックエンドモジュールの実行
バックエンドモジュールは、Quarkus 開発モードで実行できます。
前提条件
- OptaWeb 配送経路が 「OptaWeb 配送経路の手動での設定および実行」 の説明どおりに設定されている。
手順
-
rhdm-7.11.0-decision-services-quickstarts/optaweb-8.5.0.Final-redhat-00004/optaweb-vehicle-routing/optaweb-vehicle-routing-backend
ディレクトリーに移動します。 開発モードでバックエンドを実行するには、次のコマンドを入力します。
mvn compile quarkus:dev