Execution Manager

目的

タスク実行をオーケストレーションし監視する。Execution Manager は実行コントラクトのライフサイクルを管理する——エッジデバイスへのコントラクトのプッシュ、オフライン期間中の予測状態の維持、再接続時の実際の状態との照合。クラウドサイドの計画とエッジサイドの実行を橋渡しする。

責務

  • 実行コントラクトをデバイスにプッシュする

  • ThingIO(テレメトリデータ)経由でコントラクトの実行を監視する

  • ライブ/予測/照合済みのステートマシンを維持する

  • コントラクトの失敗を検出し、回復のためにポリシーサービスに問い合わせる

  • 照合によって乖離が判明した場合に再計画を起動する

実行コントラクト

プラットフォームがデバイスにタスクを割り当てると、タスク定義、スコープされたアクション、および必要なデータ(例:Equator からのマップ抜粋)を含む 実行コントラクト をプッシュする。プッシュ時点で接続性が確認される。

詳細は 実行コントラクトパターン を参照。

デバイスステートマシン

    ┌────────────┐
    │    Live     │ ◄── Connected, real-time telemetry
    └─────┬──────┘
          │ connection lost
          ▼
    ┌────────────┐
    │ Projected  │ ◄── Offline, platform estimates based on contract
    └─────┬──────┘
          │ device reconnects
          ▼
    ┌────────────┐
    │ Reconciled │ ◄── Actual state corrects projection
    └─────┬──────┘
          │ divergence? → replan
          ▼
    ┌────────────┐
    │    Live     │
    └────────────┘

状態

意味

プラットフォームの挙動

ライブ

接続済み、リアルタイムテレメトリ

プラットフォームが実際の状態を直接把握

予測

オフライン、テレメトリなし

コントラクトスコープに基づいたプラットフォームの推定

照合済み

デバイスが再接続し、実際の状態を報告

実際の状態が予測を修正し、必要に応じて再計画を起動する

コントラクト失敗時のリカバリ

ハードコードではなく Policy Service が処理します:

  1. Execution Manager がコントラクトの失敗を検出

  2. 適用可能な回復戦略についてポリシーサービスに問い合わせる

  3. リカバリを実行:再試行、再割り当て、エスカレーション、保留、またはキャンセル

API サーフェス

操作

説明

POST /contracts

コントラクトをデバイスにプッシュする

GET /contracts/{id}

コントラクトのステータスを取得する

GET /contracts?device=&status=

コントラクトをクエリする

POST /contracts/{id}/reconcile

手動照合を起動する

依存関係

サービス

関係

Scheduler

実行する割り当てを受け取る

ThingIO

実行中にデバイスの状態を監視する(ThingsBoard テレメトリ経由)

Equator

コントラクトに空間データを含める

Policy Service

障害回復戦略

Planner

照合の乖離時に再計画を起動する

利用者

コンシューマー

用途

アプリケーション

実行の進捗を監視する

デバイス

コントラクトを受け取り実行する