Skip To Content

WebSocket で JSON を受信

WebSocket で JSON を受信入力コネクタを使用すると、汎用 JSON として書式設定されたイベント データを、ArcGIS GeoEvent Server でホストされている WebSocket で受信して適合させることができます。 標準的な GeoEvent Server 構成では、クライアントは wss://<machine_name>.<domain>:6143/path として書式設定されたエンドポイントに登録し、データを送信することを想定する必要があります。ここで、path は、入力コネクタの [URL パス] パラメーターに指定された値です。

この入力コネクタはサーバーとして実行され、クライアント アプリケーションに GeoEvent Server への登録とデータ送信を許可します。 クライアントとして実行され、サーバーの WebSocket からブロードキャストされたデータの受信に登録する入力コネクタをお探しの場合は、外部 WebSocket を購読 (JSON) の使用をご検討ください。

JSON 配列として整理されたイベント データ

使用上の注意

WebSocket で JSON を受信入力コネクタを使用する際には、以下の点に注意してください。

  • この入力コネクタを使用し、GeoEvent Server でホストされている WebSocket 経由で、汎用 JSON として書式設定されたデータを受信します。
  • この入力コネクタは、汎用 JSON インバウンド アダプターと WebSocket インバウンド トランスポートを組み合わせます。
  • この入力コネクタはサーバーとして動作し、クライアント アプリケーションが登録でき、GeoEvent Server にデータを送信するための WebSocket を提供します。
  • このアダプターは、フィーチャ JSONGeoJSON とは異なり、汎用 JSON を解釈します。 なお、GeoJSON とフィーチャ JSON は、いずれも汎用 JSON のバリアントです。これらの特有の形式を処理するため、異なる GeoEvent Server アダプターが使用されます。
  • JSON 構造の詳細については、Esri Community ブログ記事「JSON Data Structures - Working with Hierarchy and Multicardinality」をご参照ください。
  • JSON 配列で整理した一般的なイベント データを、上に示します。
  • アダプターは、単一の JSON レコードと、配列に整理された JSON レコードの両方を処理します。
  • 汎用 JSON レコードには、ジオメトリを表すデータを含める必要はありません。
  • アダプターでは、X、Y、Z 属性値からポイント ジオメトリを構築することができます。
  • このコネクタは、WebSocket (ws) プロトコルと WebSocket Secure (wss) プロトコルの両方をサポートしています。
  • WebSocket エンドポイントにデータを送信するクライアントは、ws://<machine_name>.<domain>:6180/path を使用する必要があります。
  • この入力コネクタには [Learning Mode] パラメーターが含まれています。Learning Mode により、入力コネクタは構築したジオイベント定義を修正することができます。 このパラメーターの目的とは、受信したイベント データが可変的なスキーマやデータ構造を持つことを一時的に許可することです。 入力コネクタは、受信したデータ レコードのサンプルを使用して可変的なデータ構造について学習し、これまでに観測されなかった新しい属性フィールドを既存のジオイベント定義に付加します。

    ジオイベント定義のリアルタイム変更を許可すると、ジオイベント サービスのリアルタイム解析の設計に悪影響が及ぶことがあります。 ベスト プラクティスとして、インバウンド イベント データでスキーマのばらつきが予期される場合は、Learning Mode をできる限り短い期間で使用し、インバウンド データで予期されるすべてのバリエーションをサポートするジオイベント定義を生成することをお勧めします。 次に、Learning Mode をオフにして、自動生成されたジオイベント定義をコピーし、運用環境に配置するために調整することができます。

パラメーター

WebSocket で JSON を受信入力コネクタのパラメーターを次に示します。

パラメーター説明

名前

GeoEvent Manager で参照用として使用される入力コネクタの記述名。

URL パス

完全な URL エンドポイントには、プロトコル、ホスト名または IP アドレス、ポートとパスが含まれます。 このコネクタでは、URL のパスだけが指定されることを想定しています。 デフォルトは [/ws] です。

登録には完全な URL が使用され、ws://<machine_name>.<domain>:6180/pathwss://<machine_name>.<domain>:6143/path のようになります。

たとえば、[URL パス] が「/SampleRecords」と指定される場合、WebSocket Secure URL にデータを送信するクライアントは wss://PS000123.esri.com:6143/SampleRecords を使用します (esri.com ドメイン上のコンピューター PS000123 の場合)。

ジオイベント定義の作成

インバウンド イベント データに新しいジオイベント定義を使用するか、既存のジオイベント定義を使用するかを指定します。 GeoEvent Server がインバウンド データ属性フィールドおよびデータ タイプを理解するには、ジオイベント定義が必要です。

  • [はい] – 最初に受信したイベント レコードのスキーマに基づき、新しいジオイベント定義が作成されます。
  • [いいえ] – 新しいジオイベント定義は作成されません。 インバウンド イベント データのスキーマに一致する、既存のジオイベント定義が選択されます。

ジオイベント定義名 (新規)

(条件)

新しいジオイベント定義に与えられる名前。 指定した名前を持つジオイベント定義がすでに存在する場合、既存のジオイベント定義が使用されます。 最初に受信したデータ レコードを使用し、後続のデータ レコードで予期されるスキーマを決定します。新しいジオイベント定義は、最初のデータ レコードのスキーマに基づいて作成されます。

このパラメーターは、[ジオイベント定義の作成][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

ジオイベント定義名 (既存)

(条件)

受信したデータを適合して、GeoEvent Service によって処理されるイベント データを作成する際に使用する、既存のジオイベント定義の名前。

このパラメーターは、[ジオイベント定義の作成][いいえ] に設定されている場合に表示され、[はい] に設定されている場合は非表示になります。

デフォルト空間参照

座標値が、想定されている WGS84 地理座標系システムの緯度と経度の値ではない属性フィールド値をもとにジオメトリを作成するか、受信したジオメトリ文字列に空間参照が含まれない場合に使用される空間参照の Well-Known ID (WKID)。 WKID または Well-Known Text (WKT) を含む属性フィールドの WKT 値または名前が指定されることもあります。

JSON オブジェクト名

受信した JSON データ内の下部構造のルート ノードとして使用される JSON 要素の名前。 [JSON オブジェクト名] を使用して JSON 要素を名前で指定する場合、アダプターは、オブジェクト名が指定した要素名と一致する部分構造を検索します。 特定された部分構造内のデータだけが考慮されます。 この設定を空白のままにすると (デフォルト)、最上位の JSON オブジェクトが JSON 構造全体のルートとして使用されます。

推定される日付形式

日付時間値として予期される文字列表現を一致させ、それを Java Date 値に変換するために使用されるパターン。 パターンの形式は、Java SimpleDateFormat クラス変換に従います。

GeoEvent Server では、日付/時間値を ISO 8601 標準で表すことを推奨していますが、日付値として一般的に認識されている日付/時間値の文字列表現のいくつかは、[推定される日付形式] パターンを指定しなくても Java Date 値に変換することができます。 次に例を示します。

  • "2019-12-31T23:59:59" – ISO 8601 標準形式
  • 1577836799000 – Java Date (紀元からの時間を示す Long 型整数、UTC)
  • "Tue Dec 31 23:59:59 -0000 2019" – 一般的な Web サービス文字列形式
  • "12/31/2019 11:59:59 PM" – 米国で使用される一般的な形式 (12 時間形式)
  • "12/31/2019 23:59:59" – 米国で使用される一般的な形式 (24 時間形式)

受信した日付/時間の値が、上記の 5 つ以外の形式で表される場合は、GeoEvent Server が日付/時間値を適合する方法を把握できるよう、推定される日付形式パターンを指定する必要があります。

フィールドからジオメトリを作成

入力コネクタが、属性として受信した座標値を使用してポイント ジオメトリを作成するかどうかを指定します。 デフォルトは [いいえ] です。

  • [はい] – 指定したイベント属性の値を使用し、ポイント ジオメトリを作成します。
  • [いいえ] – ポイント ジオメトリは作成されません。 属性フィールドには、ジオメトリとして解釈される値が含まれているか、イベント レコードが非空間である (ジオメトリがない) と想定されます。

X ジオメトリ フィールド

(条件)

ポイント位置の X 座標部 (水平や経度など) を含むインバウンド イベント データの属性フィールド。

このパラメーターは、[フィールドからジオメトリを作成][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

Y ジオメトリ フィールド

(条件)

ポイント位置の Y 座標部 (垂直や緯度など) を含むインバウンド イベント データの属性フィールド。

このパラメーターは、[フィールドからジオメトリを作成][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

Z ジオメトリ フィールド

(条件)

ポイント位置の Z 座標部 (深さや高度など) を含むインバウンド イベント データのフィールド名。 空白のままにすると、Z 値が省略されて、2D ポイント ジオメトリが作成されます。

このパラメーターは、[フィールドからジオメトリを作成][はい] に設定されている場合に表示され、[いいえ] に設定されている場合は非表示になります。

ラーニング モード

[ラーニング モード] を有効にするか無効にするかを指定します。 [ラーニング モード][はい] に設定されている場合、インバウンド アダプターが作成し、維持しているジオイベント定義に新しいフィールドが付加されます。

  • [はい] – ラーニング モードが有効になります。 ジオイベント定義は、異なるスキーマを持つイベント レコードの新規フィールドで更新されます。
  • [いいえ] – ラーニング モードは有効になりません。 ジオイベント定義は修正されません。

[ラーニング モード] は、入力コネクタが構築したジオイベント定義を修正できるようにする場合に便利です。 このパラメーターの目的とは、受信したイベント データが可変的なスキーマやデータ構造を持つことを一時的に許可することです。 入力コネクタは、受信したデータ レコードのサンプルを使用して可変的なデータ構造について学習し、これまでに観測されなかった新しい属性フィールドを既存のジオイベント定義に付加します。

ジオイベント定義のリアルタイム変更を許可すると、ジオイベント サービスのリアルタイム解析の設計に悪影響が及ぶことがあります。 インバウンド イベント データでスキーマのばらつきが予期される場合は、[ラーニング モード] をできる限り短い期間で使用し、インバウンド データで予期されるすべてのバリエーションをサポートするジオイベント定義を生成することをお勧めします。 その後でラーニング モードをオフにし、自動生成されたジオイベント定義をコピーして、本番デプロイメント用に調整することができます。


このトピックの内容
  1. 使用上の注意
  2. パラメーター