DeviceAdmin

プレーン: データプレーン

目的

デバイス登録、ライフサイクル管理、アラート監視、OTA ステータスの可視化。DeviceAdmin は開発者およびオペレーター向けのプラットフォーム統合デバイス管理インターフェースです。デバイスの接続性とテレメトリのために ThingsBoard をラップし、OTA 更新ステータスのために hawkBit から読み取ります——いずれのシステムのネイティブ UI も直接公開しません。

DeviceAdmin はデバイスオーナーに対して3つの問いに答えます:

  • どのデバイスを持っているか? — 登録、メタデータ、フリート概要

  • デバイスは正常か? — アラート、接続ステータス、バッテリーレベル

  • デバイスは最新か? — ファームウェアバージョン、保留中の更新、アップグレード適格性

責務

  • デバイスの登録および登録解除(Provisioning Service に委任)

  • デバイスメタデータ(タイプ、モデル、ファームウェアバージョン、機能)を維持する

  • デバイスのリース状況と所有権チェーンを追跡する

  • アカウント間でデバイスを転送する(Provisioning Service に委任)

  • デバイスクレデンシャルの発行およびローテーション(Provisioning Service に委任)

  • ThingsBoard アラートの提示(バッテリー低下、オフライン、閾値違反)

  • OTA ステータスの可視化を提供する(現在のバージョン、保留中の更新、アップグレード履歴)

  • 他のサービスがクエリできるようにデバイスカタログを公開する

DeviceAdmin が提供しないもの

DeviceAdmin は意図的に以下を提供しません

  • 複雑なデータ処理や分析 — それは ThingIO の役割

  • ダッシュボード可視化 — それは ThingIO の役割

  • OTA アーティファクト管理やロールアウト管理 — それは OTAForge の役割

  • ThingsBoard UI への直接アクセス — ThingsBoard ダッシュボードはユーザーに公開されません

主要エンティティ

エンティティ

説明

デバイス

一意のプラットフォームIDを持つ登録済み IoT デバイス

デバイスタイプ

分類(AMR、清掃ロボット、MHE、PDA、センサー)

ファームウェア

バージョン追跡と更新の適格性

リース

所有権とリースチェーン(オーナー → オペレーター → サイト)

アラート

ThingsBoard から提示されるデバイスヘルスイベント(バッテリー、接続性、閾値)

UpdateStatus

デバイスの OTA 更新状態(現在のバージョン、保留中、履歴)

Provisioning Service との関係

DeviceAdmin はデバイス管理の唯一のエントリポイントです。デバイスが登録、転送、または廃止される場合、DeviceAdmin はクロスシステムのオーケストレーションを Provisioning Service に委任します——ThingsBoard、hawkBit、DotID を調整する独立したマイクロサービスです。

Developer / Operator
     │
     │  POST /devices/v1/enroll
     │  (device identity + metadata)
     │
     ▼
┌──────────────┐           ┌──────────────────────┐
│  DeviceAdmin  │──────────►│  Provisioning Service │
│               │  delegate │  /provisioning/v1/    │
│  Device mgmt  │◄──────────│                      │
│  Alerts       │  result   │  ├── ThingsBoard      │
│  OTA status   │           │  ├── hawkBit          │
└──────────────┘           │  └── DotID            │
                            └──────────────────────┘

開発者は ThingsBoard、hawkBit、Provisioning Service と直接やり取りすることはありません。DeviceAdmin が開発者に見える唯一のデバイス管理 API です。

Provisioning Service は デバイスプロビジョニング パターンに記載されている通り、複数のプロビジョニングシナリオ(工場、組み立て、フィールド)を処理します。DeviceAdmin は適切なシナリオにマッピングされる簡略化された登録 API を公開します。

アラート監視

DeviceAdmin は ThingsBoard のルールエンジンから基本的なデバイスヘルスアラートを提示します。これらはデバイスオーナーが対処する必要がある運用アラートです:

アラートタイプ

ソース

バッテリー低下

ThingsBoard ルールエンジン

"AMR-001 battery at 12%"

デバイスオフライン

ThingsBoard 接続性

"Sensor-042 disconnected for 15 min"

閾値違反

ThingsBoard ルールエンジン

"Temperature sensor-007 above 45°C"

登録失敗

Provisioning Service

"Device rejected: unknown manufacturer CA"

複雑なパターン検出(バッテリー劣化トレンド、ゾーン混雑、マルチデバイス相関)については、ThingIO を参照してください。

OTA ステータスの可視化

DeviceAdmin は hawkBit の Management API をクエリすることで OTA 更新ステータスの読み取り専用ビューを提供します。デバイスオーナーは以下を確認できます:

情報

ソース

説明

現在のバージョン

hawkBit ターゲット属性

インストール済みのソフトウェア/ファームウェア

保留中の更新

hawkBit デプロイメントアクション

ダウンロード/インストール待ちの更新

更新履歴

hawkBit アクションステータス

成功/失敗ステータス付きの過去のデプロイメント

アップグレード適格性

DeviceAdmin ロジック

デバイスをアップグレードすべきかどうか(タイプ、リース、ポリシーに基づく)

DeviceAdmin はアーティファクト、ディストリビューションセット、ロールアウトを作成しません ——それは OTAForge の責務です。DeviceAdmin はコンシューマー向けビュー(「自分のデバイスは最新か?」)であり、OTAForge はパブリッシャー向け管理(「このファームウェアをこれらのターゲットにプッシュする」)です。

API サーフェス

デバイス管理

操作

説明

POST /devices/enroll

新しいデバイスを登録する(プロビジョニングを起動)

GET /devices/{id}

デバイスの詳細と現在のステータスを取得する

GET /devices?type=&account=

フィルタリングしてデバイスを一覧表示する

PATCH /devices/{id}

デバイスメタデータを更新する

DELETE /devices/{id}

デバイスを廃止する(デプロビジョニングを起動)

POST /devices/{id}/credentials/rotate

全システムにわたってデバイスクレデンシャルをローテーションする

POST /devices/{id}/transfer

デバイスを別のアカウントに転送する

POST /devices/{id}/suspend

デバイスを一時停止する

POST /devices/{id}/reactivate

一時停止中のデバイスを再有効化する

アラート

操作

説明

GET /devices/{id}/alerts

デバイスのアクティブなアラートを取得する

GET /alerts?account=&severity=

フィルタリングしてアラートを一覧表示する

POST /devices/{id}/alerts/{alertId}/acknowledge

アラートを確認済みにする

OTA ステータス

操作

説明

GET /devices/{id}/software

現在のソフトウェア/ファームウェアバージョン

GET /devices/{id}/updates

保留中および過去の OTA 更新

GET /devices/{id}/updates/{actionId}

更新ステータスの詳細

GET /devices/updates?account=&status=

フリート全体の更新ステータス

実装

DeviceAdmin は FlexGalaxy カスタムサービスです(既製コンポーネントではありません):

側面

技術

フレームワーク

Java 21 (Spring Boot)

データベース

PostgreSQL(デバイスメタデータ、リースチェーン、アラート状態)

ThingsBoard 統合

REST API(デバイス CRUD、アラートサブスクリプション)

hawkBit 統合

REST API(読み取り専用:ターゲットステータス、デプロイメントアクション)

DotID 統合

Keycloak Admin API(M2M クライアントライフサイクル)

依存関係

サービス

関係

ThingsBoard

デバイスレジストリ、接続性、アラート(REST API 経由)

hawkBit

OTA 更新ステータス(Management API 経由の読み取り専用)

DotID

API 呼び出しを認証し、デバイス M2M クレデンシャルを発行する

Org Service

デバイス所有権のアカウント/テナントコンテキストを解決する

Provisioning Service

クロスシステムのデバイス登録、転送、廃止をオーケストレーションする

利用者

コンシューマー

用途

ThingIO

テレメトリ処理のためにデバイスアイデンティティを解決する

OTAForge

ロールアウトターゲティングのためにデバイスフリートを参照する

Scheduler

デバイスの機能と可用性をクエリする

Execution Manager

コントラクトをプッシュする前にデバイスの機能を解決する

アプリケーション

デバイスフリートをクエリおよび管理する

オペレーター

フリート概要、アラート監視、OTA ステータス