Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編
汎用カスタムアダプタの定義方法について説明します。汎用カスタムアダプタは,サービスアダプタ定義画面で定義できます。
1つの汎用カスタムアダプタは複数のオペレーションを持つことができます。1つのオペレーションごとにオペレーション名,通信モデル,要求電文,および応答電文の設計が必要です。
オペレーション名は,サービスリクエスタからのサービス部品呼び出しや,ビジネスプロセスのサービス呼出アクティビティからのサービス部品呼び出しで,オペレーションを区別するための識別名です。
255バイト以内で,汎用カスタムアダプタ内で一意な名称を付け,同じ汎用カスタムアダプタ内のほかのオペレーション名と重複しないように指定してください。
指定できる文字列および記号は次のとおりです。
汎用カスタムアダプタ内のプロトコルコンバータでは,汎用カスタムアダプタが呼び出されたときに,どのオペレーションが呼ばれたのかを識別するために使います。
汎用カスタムアダプタではオペレーションごとに通信モデルを選択できます。呼び出すサービス部品に合わせて,同期または非同期のどちらかを選択してください。
プロトコルコンバータが受け取る要求電文とプロトコルコンバータが応答する応答電文について,電文形式と電文フォーマットを設計します。ただし,通信モデルが非同期の場合,応答電文を返さないので,応答電文を定義する必要はありません。
電文形式は,XML形式とバイナリ形式が選べます。
電文フォーマットは,サービス部品の実行に利用する電文でXML形式のデータを扱うか,バイナリ形式(XML形式以外)のデータを扱うかによって形式が異なります。呼び出すサービス部品に合わせてXML形式とバイナリ形式のどちらかを選択し,呼び出すサービス部品の形式に合わせて,電文フォーマットを作成してください。
XML形式とバイナリ形式の違いについては,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4.2 電文フォーマットの種類」を参照してください。
XML形式のデータを扱う場合の電文フォーマットの作成については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4.3 電文フォーマット(XMLフォーマット定義ファイル)の作成方法」を,バイナリ形式(XML形式以外)のデータを扱う場合の電文フォーマットの作成については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4.4 電文フォーマット(バイナリフォーマット定義ファイル)の作成方法」を参照してください。
「3.3.16(1) オペレーションの設計」で設計したプロトコルコンバータが受けたい電文フォーマットと,サービスリクエスタやビジネスプロセスから要求するときの電文フォーマットが異なる場合,データ変換が必要です。電文のフォーマットは,サービスアダプタ定義画面で設定できます。
電文のデータ変換を行う場合,変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定し,データ変換定義画面でデータ変換を定義します。
データ変換の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「6. データ変換の定義」を参照してください。
プロトコルコンバータやカスタムアダプタ開発フレームワークが使用する定義ファイルを作成します。
作成した定義ファイルは,開発環境のサービスアダプタ定義画面で設定します。
次に作成するファイルの内容を説明します。
プロトコルコンバータは,アダプタコンテキストを通して,汎用カスタムアダプタに設定されたリソース内容を読み込めます。
プロトコルコンバータの動作に必要なファイルがあれば作成してください。
カスタムアダプタ開発フレームワークが使用するプロトコルコンバータのクラス名(パッケージ名を含む)を指定します。ファイル名は必ず「framework_properties.xml」にしてください。
カスタムアダプタ開発フレームワーク動作定義ファイルの設定内容については,「付録B.2(1) カスタムアダプタ開発フレームワーク動作定義ファイル」を参照してください。
プロトコルコンバータに関する設定を外部ファイル化したい場合など,必要に応じて作成するファイルです。このファイルは独自定義ファイルの一種で,汎用カスタムアダプタの定義時に使用します。ファイル名は必ず「customadapter_properties.xml」にしてください。
カスタムアダプタプロパティファイルの設定内容については,「付録B.2(2) カスタムアダプタプロパティファイル」を参照してください。
カスタムアダプタ用アプリケーション統合属性ファイルを用いることで,運用する環境に合わせて,汎用カスタムアダプタのパラメタを設定できます。カスタムアダプタ用アプリケーション統合属性ファイルを指定する場合,ファイル名は必ず「cscadapter_property.xml」にしてください。
アプリケーション統合属性ファイルの設定内容については,「付録B.2(3) カスタムアダプタ用アプリケーション統合属性ファイル」を参照してください。
アプリケーション統合属性ファイルを指定した場合,Session Bean属性の<pooled-instance>はアプリケーション統合属性ファイルで記載した値となります。
カスタムアダプタ定義ファイルを用いることで,データ変換時に電文の構造変換をスキップする機能(構造変換スキップ機能)を利用できます。カスタムアダプタ定義ファイルを指定する場合,ファイル名は必ず「csccustomadapter.properties」にしてください。
カスタムアダプタ定義ファイルの設定内容については,「付録B.2(4) カスタムアダプタ定義ファイル」を参照してください。
構造変換スキップ機能の設定方法について説明します。
要求電文のデータ変換では,ビジネスプロセスから受け取ったDOMツリーから,直接,バイナリ形式の要求電文を生成し,汎用カスタムアダプタに渡したいときに,構造変換スキップ機能を有効にできます。
応答電文のデータ変換では,汎用カスタムアダプタから返ってきたバイナリ形式の応答電文から生成したDOMツリーを,そのままビジネスプロセスに返したいときに,構造変換スキップ機能を有効にできます。
構造変換スキップ機能を設定するには,開発環境のサービスアダプタ定義(詳細)画面で,[独自定義ファイル]にカスタムアダプタ定義ファイルを設定する必要があります。
サービスアダプタ定義画面については,マニュアル「サービスプラットフォーム リファレンス」の「1.2.2 サービスアダプタ定義画面」を参照してください。
構造変換スキップ機能を使用するときの注意事項を次に示します。
プロトコルコンバータ(プロトコル変換処理)を実装するクラスファイルを作成します。作成するクラスファイルは,カスタムアダプタ開発フレームワークが提供するCSCMsgCustomProtocolConverterインターフェースを実装します。
プロトコルコンバータは,サービスプラットフォーム上で動くStateless SessionBeanの一部として動作します。そのため,クラスファイルを作成するときは,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」のEJBやStateless Session Beanに関する説明を参照してください。
CSCMsgCustomProtocolConverterインターフェースの詳細は,「付録B.1(1)(a) CSCMsgCustomProtocolConverterインターフェース」を参照してください。また,実装例については,「付録B.3 カスタムアダプタ開発フレームワークのサンプルプログラム」を参照してください。
プロトコルコンバータを実装するときに考慮する内容を次に示します。
1つの汎用カスタムアダプタは複数のインスタンスを持つことがありますが,その場合でもプロトコルコンバータのインスタンスは常に1つです。そのため,プロトコルコンバータはマルチスレッドでアクセスされることに注意して実装してください。
図3-31 汎用カスタムアダプタのインスタンスとプロトコルコンバータのインスタンスの関係
カスタムアダプタ開発フレームワークでは,プロトコルコンバータでのリソースの確保について,次の方法を推奨しています。
プロトコルコンバータでは,アダプタコンテキストを用いてアーカイブファイル内のリソースファイルにアクセスできます。アーカイブファイル内のリソースファイルにアクセスする場合,次の点に注意してください。
CSCMsgCustomProtocolConverterのinvokeメソッドの実行中にエラーが起きた場合,プロトコルコンバータは例外を生成して送出,またはフォルト情報を応答電文メッセージに格納します。
フォルト情報は,サービス部品呼び出し処理(CSCMsgCustomProtocolConverterのinvokeメソッド)の実行中に発生した業務上の障害を,カスタムアダプタ開発フレームワークに伝達するために使用します。
例外は,サービス部品呼び出し処理中に発生した通信エラーなどのシステム障害を,カスタムアダプタ開発フレームワークに伝達するために使用します。
フォルトを使用した場合と例外を使用した場合とでは,障害情報を受け取るサービスアダプタやビジネスプロセスでは次のような違いがあります。
カスタムアダプタ開発フレームワークで使用する次のJARファイルをクラスパスに指定してコンパイルする必要があります。
<サービスプラットフォームのインストールディレクトリ>\CSC\lib\csc_adapter.jar
また,サービスプラットフォームのAPIなどを使う場合は,別途必要なJARファイルを追加してコンパイルしてください。
汎用カスタムアダプタの開発で作成するJARファイルの総称を次のように分けています。
それぞれのJARファイルの作成方法について説明します。
jarコマンドを使用して,プロトコルコンバータクラスファイルとそれが使用するクラスファイルおよび,カスタムアダプタ開発フレームワーク動作定義ファイルをJARファイルにアーカイブします。
JARファイルにアーカイブする場合のディレクトリ構成,およびjarコマンドの指定例を次に示します。
表3-112 jarコマンドによってアーカイブするときのJARファイルのディレクトリ構成
ディレクトリ名 またはファイル名 |
説明 | 指定 |
---|---|---|
/ |
アーカイブ内のルートディレクトリです。 | ○ |
*.class |
プロトコルコンバータおよびそれらが依存するクラス(インターフェース)のクラスファイル(*.class)をパッケージ名に従ったディレクトリ階層で格納します。 | ○ |
framework_properties.xml |
カスタムアダプタ開発フレームワークが使用するプロトコルコンバータのクラス名(パッケージ名を含む)を指定します。 | ○※ |
* |
プロトコルコンバータが使用する任意のリソースファイルです。 ディレクトリを作成して,その中にファイルを格納できます。 |
− |
/META-INF/ |
管理情報を格納するディレクトリです。 jarコマンドによって自動的に作成されます。 |
− |
MANIFEST.MF |
マニフェストファイルです。 jarコマンドのmオプションを指定することで,アーカイブ内に自動的に作成されます。 |
− |
framework_properties.xml protocolconverter/CustomProtocolConverter.class lib/MyLib.class data/table.dat |
jar cf ..\MyProtocolConverter.jar .\ |
ライブラリJARファイルは一般のJARファイルと同じように作成してください。
ライブラリJARファイルの作成時の注意事項を次に示します。
表3-113 アーカイブ内のディレクトリおよびファイル構造が重複した場合の例
A.jarの構造 | B.jarの構造 | 説明 |
---|---|---|
myfile.txt |
− | A.jarのファイル「myfile.txt」が使用されます。 |
samedata.dat |
samedata.dat |
A.jarとB.jarのどちらのファイル「samedata.dat」が使用されたのか特定できません。ファイル名は重複させないでください。 |
dir/ |
dir/ |
ディレクトリの重複はかまいません。 |
− | dir/b.class |
B.jarのファイル「dir/b.class」が使用されます。 |
dir/same.class |
dir/same.class |
A.jarとB.jarのどちらのファイル「def/same.class」が使用されたのか特定できません。ファイル名は重複させないでください。 |
汎用カスタムアダプタの新規登録に必要なEARファイルを作成します。
EARファイルの作成は,jarコマンドを使用し,サービスプラットフォームが提供しているJARファイルをEARファイルにアーカイブします。
EARファイルにアーカイブする場合のディレクトリ構成,およびjarコマンドの指定例を次に示します。
表3-114 jarコマンドによってアーカイブするときのEARファイルのディレクトリ構造
ディレクトリ名 またはファイル名 |
説明 | 指定 |
---|---|---|
/ |
アーカイブ内のルートディレクトリです。 | ○ |
cscmsg_adpejb.jar |
次に示すファイルのコピーを格納します。<サービスプラットフォームのインストールディレクトリ>\CSC\lib\cscmsg_adpejb.jar |
○ |
/META-INF/ |
管理情報を格納するディレクトリです。 jarコマンドによって自動的に作成されます。 |
− |
MANIFEST.MF |
マニフェストファイルです。 jarコマンドのmオプションを指定することで,アーカイブ内に自動的に作成されます。 |
− |
jar cf ..\CustomAdapter.ear .\ |
汎用カスタムアダプタの追加時にEARファイルを設定します。汎用カスタムアダプタを追加したあとにEARファイルを修正する必要がある場合,汎用カスタムアダプタのサービスアダプタ定義画面で,EARファイルを入れ替えます。
入れ替えるEARファイルに含まれるEJB-JARファイル名は,汎用カスタムアダプタの追加時に設定したEARファイルのEJB-JAR名と同じにしてください。EJB-JARファイル名が異なる場合は,EARファイルを指定したときにエラーが発生し,EARファイルを設定できません。
汎用カスタムアダプタのサービスアダプタ定義画面で,EARファイルを入れ替える手順を次に示します。
汎用カスタムアダプタを定義する場合の手順を次に示します。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.