例: Itron現在値読取プロセス
この項では、非同期コマンドの例としてOpenWayアダプタでサポートされる現在値読取コマンドを示します。
Itron www.itron.com.ami.2008.10.data.wsdl定義には、現在値読取プロセスの一連のコマンドが含まれています。Smart Grid Gateway Adapter for Itron OpenWayは、ContingencyReadByEndpointsメソッドを呼び出してプロセスを開始します。返信には、フロー全体を識別する「要求トークンID」が含まれており、以降の通信で共有されます。Itron側では、使用量およびイベントを収集するためのジョブが構成されます。ジョブが開始していることをコール元(SGG)に知らせるために、Itronは「State = Initialized」が指定されたStatusChanged要求(www.itron.com.ami.2008.10.common.wsdlに定義されている)を送信します。Itronは別のStatusChanged要求を送信して、使用量を収集するプロセスが進行中であることをSGGに知らせます。使用量が収集されると、Itronは1つ以上のDataArrived要求をSGGに送信します。Itronは、使用量に関する内部要求を作成した後、最終的なStatusChanged要求をSGGに送信します。その完了通知は、プロセスで発生したエラーに関する情報を含めた返信(GetContingencyReadByEndpointsResult)を送信する必要があることをSGGに知らせます。
次のイメージは、このコマンドで使用されるプロセス・フローを示しています。
次に、このコマンドのSmart Grid Gateway実装の重要な機能の要約を示します。概念の多くは、カスタム同期コマンドを作成する際に適用できます。
コマンド活動 — 現在値読取(インターバル)
ビジネス・オブジェクト: D1-OnDemandReadInterval
ライフサイクルおよびアルゴリズム
次の表は、現在値読取(インターバル)コマンド活動で使用される重要なアルゴリズムの一部を示しています。
ライフサイクルの状態 | アルゴリズム |
---|---|
検証 |
ここに示す重要な機能は、特定のアルゴリズムではなく、プロセス・レベルで検証ロジックを実行する機能です。
|
接続準備完了 |
アウトバウンド通信レコードが作成されると、活動ビジネス・オブジェクトは「接続準備完了」状態から「通信進行中」状態に移動します。アウトバウンド通信が完了すると、次のデフォルト状態である「接続準備完了」に活動が移動します(活動は「通信進行中」から「接続準備完了」に戻ります)。アウトバウンド通信では、活動ビジネス・オブジェクトの「isOnDemandReadComplete」フラグ値も設定され、この場合は、特定の処理役割に対するアウトバウンド通信が作成されたことを示します。条件がtrueの場合、処理は次のアルゴリズムに移動します。
|
測定の待機中 |
|
アウトバウンド通信 — Itron - 偶発検針(インターバル)
ビジネス・オブジェクト: D8-ReadIntervalDR
スキーマ
Webサービス要求および応答の通信のペイロードが含まれているスキーマの部分は、sendDetail要素(D8-ContingencyReadRequestDRデータ領域を使用して構築された)およびresponseDetail要素(D8-ContingencyReadResponDtlDAデータ領域を使用して構築された)です。Itron構造に準拠するXMLの作成または解読に使用されるXSLは、これらの要素を基礎として使用します。
ライフサイクルおよびアルゴリズム
次の表は、偶発検針アウトバウンド通信で使用される重要なアルゴリズムの一部を示しています。
ライフサイクルの状態 | アルゴリズム |
---|---|
検証 |
|
応答待ち |
|
応答エラー |
|
完了 |
|
インバウンド通信 — Itron - StatusChanged
ビジネス・オブジェクト: D8-StatusChanged
このビジネス・オブジェクトは、インバウンドのStatusUpdate要求を処理します。最初の要求で作成された要求トークンIDが含まれています。「State = Completed」のスキーマ値および「取消済」または「成功」の結果を受け取ると、活動の次のコマンドをトリガーします。現在値読取の場合、次のコマンドはGetContingencyReadByEndpointsResultです。
スキーマ
sendDetailまたはresponseDetail要素が含まれている他の通信とは異なり、このビジネス・オブジェクトには、StatusChanged XSD定義の要素にマップする子要素を保持する入力要素が含まれています。
ライフサイクルおよびアルゴリズム
次の表は、ステータス変更済読取インバウンド通信で使用される重要なアルゴリズムの一部を示しています。
ライフサイクルの状態 | アルゴリズム |
---|---|
検証 |
|
応答の評価 |
|
アウトバウンド通信 — Itron - 現在値読取結果
ビジネス・オブジェクト: D8-ReadOnDemandReadResultDR
これはItron偶発検針API内にある2つのアウトバウンド要求の2番目です。アウトバウンド要求は要求トークンIDを送信します。応答には、偶発検針プロセスの実行時にItronサーバーによって収集されたエラー情報が含まれます。
スキーマ
Webサービス要求および応答の通信のペイロードが含まれているスキーマの部分は、sendDetail要素(D8-ReadODRResultRequestDRデータ領域を使用して構築された)およびresponseDetail要素(D8-ReadODRResultResponseDRデータ領域を使用して構築された)です。Itron構造に準拠するXMLの作成または解読に使用されるXSLは、これらの要素を基礎として使用します。
ライフサイクルおよびアルゴリズム
次の表は、現在値読取結果アウトバウンド通信で使用される重要なアルゴリズムの一部を示しています。
ライフサイクルの状態 | アルゴリズム |
---|---|
応答待ち |
|
応答の評価 |
|
サービス・スクリプト: Itron - DataArrived要求
このGroovyベースのサービス・スクリプトは、着信するDataArrived要求を処理します。構成に基づいてペイロードをファイル格納場所(クラウド実装の場合はクラウド・オブジェクト格納バケットを含む)に保存します。
スキーマ
スキーマは、Itron DataArrivedメッセージに密接にマップしています。D8-DataArrivedデータ領域が含まれます。
ステップ
ステップ10データの編集 – メインGroovyメソッドの呼出し
このステップでは、他のOUAFオブジェクトからGroovyスクリプトをトリガーする方法を示します。他のプログラミング言語のメイン・メソッドに似ています。この場合、Webサービスの起動メソッドによってコールされます。
ステップ20 – Groovyインポート
このステップでは、スクリプトに必要な他のクラスをインポートします。
ステップ30 – Groovyメンバー
-
マスター構成オブジェクトを検索します
-
マスター構成を使用してファイル格納詳細を検索します
-
ファイル・アダプタ・タイプを検索します
-
構成された生成スクリプトを使用してファイル名を計算します
-
バケット、ファイル名および他の詳細を使用して所定のURLを計算します
-
-
FileStorageAdapterビジネス・サービスを使用して目的の場所にファイルを保存します。
メッセージ・センダーXSL
現在値読取アウトバウンド通信によって作成されるアウトバウンド・メッセージでは、次のXSLファイルを使用します。
ContingencyReadByEndpoints
- 要求XSL: D8-ContinegencyReadByEndpointsRequest.xsl
- 応答XSL: D8-ContingencyReadByEndpointsResponse.xsl
GetContingencyReadByEndpointsResult
- 要求XSL: D8-GetContingencyReadByEndpointsResultRequest.xsl
- 応答XSL: D8-GetContingencyReadByEndpointsResultResponse.xsl
メッセージ・センダーの作成の詳細は、「メッセージ・センダーの作成」を参照してください。
インバウンドWebサービス
Itron現在値読取プロセスでは、次のインバウンドWebサービスを使用します。
D8-RequestStatusChangedService
- 操作名: StatusChanged
- スキーマ名: Itron — ステータス変更済ビジネス・オブジェクト
- 要求XSL: D8-RequestStatusChangedServiceRequest.xsl
- 応答XSL: D8-RequestStatusChangedServiceResponse.xsl
D8-DataSubscriberService
- 操作名: DataArrived
- スキーマ名: Itron — DataArrived要求スクリプト
- 要求XSL: D8-DataSubscriberServiceRequest.xsl
- 応答XSL: D8-DataSubscriberServiceResponse.xsl