モジュールの概要
Receiverは、IoTデバイス(HTTP POST、MQTTサーバー、Websocketsサーバー)からデータを受信し、最終的に3rdパーティが発行したデータをサブスクライブします(MQTTサブスクライブ、Websocketsサブスクライブ)。認証とメッセージ検証のメカニズムを提供して、データのセキュリティと整合性を確保します。は、IoTデバイス (HTTP POST、MQTTサーバー、Websocketsサーバー) からデータを受信し、最終的に3rdパーティが発行したデータをサブスクライブします (MQTTサブスクライブ、Websocketsサブスクライブ)。認証とメッセージ検証のメカニズムを提供して、データのセキュリティと整合性を確保します。
Receiverが動作可能ないくつかのモードがあります (エンドポイントタイプ):
- MQTTサーバー - モジュールはMQTTブローカーとして実行されているため、デバイスはメッセージをサブスクライブまたは発行できます
- MQTT consumer - モジュールは既存のMQTTブローカーをサブスクライブし、そこからメッセージを受信します
- HTTP POST consumer - モジュールは、デバイスからのデータを含むHTTP POSTリクエストを受け入れます
- UDPサーバー - モジュールは、デバイスからのデータを含むUDPデータグラムを受け入れます
- Telnetサーバー/クライアント - モジュールはtelnetサーバーまたはtelnetクライアントとして実行されています
- Websocketsサーバー/クライアント - モジュールはWebsocketsサーバーまたはクライアントとして実行されています
- カスタム - モジュールはカスタム実装を使用しています
モジュールのライフサイクル
モジュールがデータを受信する方法に関係なく、メッセージがReceiver側に到着すると、次のプロセスが適用されます:
- メッセージはReceiverによって受信されます
- 認証フローが実行されます
- メッセージ形式が決定されます (XML、JSON、bytesなど)
- メッセージは正規化された内部形式に変換されます
- メッセージルールがチェックされます
- メッセージルールチェックを通過すると、メッセージは内部メモリに格納され、値はAudit(監査)モジュールに伝播されます (最後に受信したメッセージとして)
- 渡されない場合、メッセージは拒否/無視されます
認証
クライアントは、次の方法を使用して認証できます:
- basic/digest - ユーザー名/パスワードベースの認証
- client SSL certificate - クライアントは自身を認証するためにSSL証明書を提供します
- source IP - 特定のIPアドレスからのリクエストのみが許可されます
メッセージルール
Receiverによって収集された各メッセージは、構成で定義されたメッセージコンテンツルールを評価するReceiverのメッセージプロセッサによって処理されます (receivers[].messageRules を参照)。メッセージルールには次の3つのタイプがあります:
- Content constraint - モジュールは、メッセージに特定のコンテンツが含まれているかどうかをチェックします
- Structure constraint - モジュールは、メッセージに特定の構造が含まれているかどうかをチェックします
- Device ID filter - モジュールは、device IDがホワイトリストにあるかどうかをチェックします
メッセージルールを通過しない場合、メッセージは拒否されます。それ以外の場合、Receiverはそれらを内部ストレージに格納します。
ロール
このモジュールは次の役割をサポートします:
Module | Role | 許可された操作 |
---|
Receiver | SENSOR | コレクターにデータを送信できます (HTTP POST, MQTT_PUBLISH, ...) |
Receiver | VIEWER | GET /status, GET /data |
Receiver | EDITOR | GET /data, GET/status, DELETE /data |
モジュールのステータス
このモジュールは、次のいずれかのステータスになります:
Verticle | Status | 説明 |
---|
Receiver | UP | モジュールは稼働しています。特定の制限なしで動作します。 |
PAUSED | モジュールは一時停止しており、データを受信していません。"GET /"へのリクエストは、レスポンスコード405で終了します。 |
APIエンドポイント
このモジュールは、次のHTTPエンドポイントを提供します:
Path | Method | 説明 | URLパラメーター | 例 |
---|
/ | GET | ECHOメッセージ付きのプレーンテキストを返します(UP/DOWNステータスを検出するためにロードバランサーで使用する必要があります)ECHOメッセージ付きのプレーンテキストを返します (UP/DOWNステータスを検出するためにロードバランサーで使用する必要があります) |
| https://localhost:8001/ |
/status | GETReturns | JSON object that contains internal state of audit verticle (e.g. total count of sensors)Auditバーティクルの内部ステータス (センサーの合計数など) を含むJSONオブジェクトを返します |
| https://localhost:8001/status |
/config | POSTSets | the configuration to the module. ADMIN role is required. モジュールに構成を設定します。 ADMINロールが必要です | - POST body content = config in JSON format
| https://localhost:8001/config |
/reload | POSTForces | reloading configuration of module. ADMIN role is required. モジュールの構成を強制的に再読み込みします。 ADMINロールが必要です | | https://localhost:8001/reload |
/data | GET | Returns JSON array that contains data stored in receiver's internal memory Receiverの内部メモリに格納されているデータを含むJSON配列を返します | - order = "ASC" / "DESC" (default: "ASC")
- start = from timestamp (default: 0)
- stop = to timestamp
- receiver_id = receiver identification
- sensor_id = sensor identification
- limit = page size (default: 100)
| https://localhost:8001/data |
/data | DELETE | Receiverの内部メモリから指定されたデータを削除します | - order = "ASC" / "DESC" (default: "ASC")
- start = from timestamp (default: 0)
- stop = to timestamp
- receiver_id = receiver identification
- sensor_id = sensor identification
- limit = page size (default: 100)
| https://localhost:8001/data |
/pause | GET | Receiverバーティクルのステータスを直ちにPAUSEDに設定します。"GET /status"エンドポイントから応答を返します (上記を参照) |
| https://localhost:8001/pause |
/resume | GET | Receiverバーティクルのステータスを直ちにUPに設定します。"GET /status"エンドポイントから応答を返します (上記を参照) |
| https://localhost:8001/resume |
/logout | GET | 現在ログインしているユーザーのログアウトを実行します |
| https://localhost:8001/logout |