ISIには以下の3つの基本構成があります。
同期メッセージング構成
非同期メッセージング(メッセージ保証なし)構成
非同期メッセージング(メッセージ保証あり)構成
それぞれの特長と用途について説明します。
同期メッセージング構成
図1.7 同期メッセージング構成
同期メッセージング構成では、サービス利用側から受け付けた要求メッセージを使用してサービスを呼び出し、呼び出したサービス提供側での処理結果を応答メッセージとしてサービス利用側へ返却までを同期処理(一筆書き)で行います。
サービス呼出しの前後でメッセージの変換や加工、検証などが実行できます。
サービス提供側の処理で失敗した場合、そのエラーをサービス利用側へ返却します。このとき、必要に応じて返却するエラー用メッセージをユーザが作成する必要があります。
処理結果を即時に必要とする業務に適しています。呼び出した側のシステムは応答を受け取るまで、次の業務に進めません。処理結果の応答を待てる場合は同期を使い、待てない場合は非同期を使用してください。
非同期メッセージング(メッセージ保証なし)構成
図1.8 非同期メッセージング(メッセージ保証なし)構成
非同期メッセージング(メッセージ保証なし)構成では、サービス利用側から受け付けた要求メッセージをインバウンドキューに格納したあと即座にサービス利用側へ復帰します。
ISIはサービス利用側とは非同期で動作し、インバウンドキューに格納された要求メッセージを取り出し、処理を開始します。サービス提供側を呼び出すにはアウトバウンドキューへメッセージを格納したあと、アダプタによるサービス呼出しやアプリケーションによるメッセージ処理が行われます。
サービス呼出しの前後でメッセージの変換や加工、検証などが実行できます。
サービス提供側の処理で失敗した場合、エラーをサービス利用側へ返却できません。このため、依頼した結果を別途確認する必要があります。
この構成では、システム停止やクラスタ運用時の切り換えが発生した場合、キューに格納されていたメッセージは保証されません。(システム停止時にメッセージは消失します。)
即時性は求めない場合や、サービス提供側(接続先システム)の影響を受けずに、サービス間を疎結合にしたい場合に適しています。
メッセージ保証よりも性能を重視する場合に使用してください。
非同期メッセージング(メッセージ保証あり)構成
図1.9 非同期メッセージング(メッセージ保証あり)構成
非同期メッセージング(メッセージ保証なし)構成と同じ特長に加えて、メッセージ保証や順番保証といった高信頼なメッセージング機能を提供します。
また、メッセージ蓄積機能を利用すると、ISI内部でエラーが発生した時の再送信や、接続先サービス側でデータを消失した場合の再送信が可能です。
この構成では、システム停止やクラスタ運用時の切り換えが発生した場合、キューに格納されていたメッセージが保証されます。(システム停止時にメッセージは消失しません。)
即時性は求めない場合や、サービス提供側(接続先システム)の影響を受けずに、サービス間を疎結合にしたい場合に適しています。
メッセージ保証や順番保証を重視する場合に使用してください。