エッジ-クラウド照合パターン

背景

FlexGalaxy.AI プラットフォームは、断続的な接続環境で動作するエッジデバイス(ロボット、PDA)のフリートを管理します。デバイスがオフラインになると、プラットフォームはその実際の状態を観察できませんが、フリートの残りのデバイスに対して意思決定を継続しなければなりません。デバイスが再接続すると、その実際の状態はプラットフォームが予測したものと異なる場合があります。

これにより3つの問題が生じます:

  1. 状態乖離 — プラットフォームの予測状態とデバイスの実際の状態が一致しない場合がある

  2. 意思決定の整合性 — オフライン期間中に行われた意思決定は、誤っている可能性がある予測に基づいていた

  3. フリート調整 — 他のデバイスがオフラインデバイスの予測状態を前提に再計画されている可能性がある

正式な照合プロセスがなければ、プラットフォームはフリーズ(すべてのデバイスがオンラインになるまで待機)するか、非協調的な決定(オフラインデバイスを完全に無視)を下すかのいずれかになります。どちらも許容できません。

パターン

状態のライフサイクル

エッジ-クラウド照合は、実行コントラクト パターンで定義された3状態モデルの上に構築されています:

Live ──→ Projected ──→ Reconciled ──→ Live
         (offline)     (reconnects)

各遷移は特定のプラットフォーム挙動をトリガーします:

ライブ → 予測(接続断)

デバイスからのテレメトリが届かなくなった場合:

  1. Execution Manager がデバイスを 予測 状態としてマーク

  2. プラットフォームがアクティブな 実行コントラクト に基づいてデバイスの状態を推定し始める — 予測位置、タスク進捗、バッテリー消耗率

  3. デバイスのコントラクト済みタスクは ロック される — 他のデバイスに再割り当てできない

  4. Planner は接続済みデバイスのみを対象に再計画し、オフラインデバイスのタスクを利用不可として扱う

予測 → 照合済み(デバイス再接続)

デバイスがオンラインに戻り、実際の状態を報告した場合:

  1. Execution Manager が 予測状態実際の状態 を比較

  2. 乖離は次のように分類されます:

乖離タイプ

影響

位置

ロボットがラック B-12 にいると予測されているが、実際には充電ステーションにいる

中 — タスク未完了

タスク完了

予測では 60% 完了、実際には 100% 完了

低 — 想定以上の結果

タスク失敗

予測では進行中、実際には失敗して保留中

高 — リカバリが必要

バッテリー

予測では 45%、実際には 18%

高 — 即時充電が必要な可能性

乖離なし

予測状態が実際と一致

なし — ライブ状態として再開

  1. プラットフォームが差異を処理する間、デバイスは 照合済み 状態に入ります

照合済み → ライブ(乖離解消)

照合の結果は乖離の深刻度と種類によって異なります:

シナリオ

解決策

乖離なし

即座にライブ状態へ遷移

軽微な乖離(位置ずれ、タスク完了)

状態を更新し、ライブ状態へ遷移

大きな乖離(タスク失敗、バッテリー残量危機的)

再計画をトリガーし、リカバリのために Policy Service に問い合わせ

大きな乖離が検出された場合:

  1. Execution Manager が適用可能な障害回復戦略について Policy Service に問い合わせ

  2. Planner が再接続デバイスの修正された状態を考慮した グローバル再計画 をトリガー

  3. 再計画が割り当てに影響する場合、他のデバイスが更新されたコントラクトを受け取る可能性がある

フリート全体の照合

複数のデバイスが同時に再接続した場合(例:ネットワーク障害が解消された後):

Device A reconnects ──┐
Device B reconnects ──┤──→ Batch reconciliation ──→ Single global replan
Device C reconnects ──┘

プラットフォームは、複数の連続した再計画のトリガーを避けるため、短いウィンドウ内で照合イベントをバッチ処理します。単一のグローバル再計画がすべての照合済み状態を一度に組み込みます。

結果

メリット

  • フリーズしないフリート — オフラインデバイスがコントラクトを保持する間も、プラットフォームは接続済みデバイスで動作を継続

  • 二重割り当てなし — 予測状態により、オフラインデバイスがまだ実行中の可能性がある作業の再割り当てを防止

  • グレースフルな修正 — 予測が誤っている場合、プラットフォームは失敗せずに進路を修正

  • ポリシー駆動のリカバリ — 乖離解消はハードコードされたロジックではなく、アプリケーション定義のポリシーに従う

トレードオフ

  • 予測精度の経時劣化 — デバイスがオフラインである時間が長いほど、予測状態の信頼性が低下します。動的な環境(繁忙な倉庫)は予測可能な環境(清掃ルート)よりも早く乖離します

  • 照合ストーム — 大規模なネットワーク復旧により、多数の同時照合イベントが発生する可能性があり、バッチ処理とコストのかかる再計画が必要になる場合があります

  • 再計画のカスケード — 1台のデバイスの状態を修正すると、特に倉庫オペレーションのような密結合環境では、他のデバイスの再割り当てに波及する可能性があります

設計上の決定事項

  • 予測タスクは再割り当てされずロックされる — これは意図的な選択です。予測タスクを再割り当てすると、元のデバイスが再接続して作業を完了した際に重複が発生するリスクがあります。タスクの遅延コストは、競合する実行のコストよりも低いです。

  • エッジ・プランナーがローカル適応を処理 — 二層計画モデルにより、エッジデバイスはクラウドとの照合なしにローカルの障害物に対応できます。戦略レベルの乖離(タスク完了、失敗、位置)のみがクラウド照合をトリガーします。

WES — マルチステップ・タスクの乖離

AMR が倉庫でアイテムをピックしており、4回のピックのうち2回を完了した後に接続を失った場合:

  • 予測状態: AMR がピック3のためにラック C-3 へ向かっている(移動時間に基づく推定)

  • 実際の状態: AMR はピック3を完了したが、通路の閉塞に遭遇し、ラック C-3 で待機中

再接続時:

  1. 照合により検出:位置は予測と一致するが、タスク進捗が想定以上であり、デバイスが閉塞により保留中

  2. Policy Service の返答:ピック4を別の AMR に再割り当て、この AMR を充電へ

  3. Planner が利用可能な AMR 全体で残りのピックを再計画

ClearJanitor — 予測より早く完了

清掃ロボットが夜間清掃ルート中に接続を失った場合:

  • 予測状態: フロア3の 70% が清掃済み(経過時間とルートに基づく)

  • 実際の状態: フロア3の 100% が清掃済み(ロボットが予測より速く移動)

再接続時:

  1. 照合により検出:ネガティブな意味での乖離なし — ロボットは想定以上の結果を達成

  2. 状態を更新し、ロボットはライブ状態へ遷移

  3. 追加フロアが待機中の場合、Scheduler は予定より早く次のジョブを割り当てる可能性があります