BEA AquaLogic Service Bus エンコーディングハンドリング
BEA AquaLogic Service Bus はその製品特性上、 様々なシステムから送られてくるメッセージの様々なエンコーディング(*注1)に、柔軟に対応できるように設計されています。マ ルチバイト文字を扱うシステムとの連携においては、AquaLogic Service Bus がどのようにエンコーディングを扱うかを知る事が必要不可欠になります。複 数のトランスポートを扱う AquaLogic Service Bus では、可能な限りトラン スポート(プロトコル)の規約に沿うように実装されていますが、逆にそれがト ランスポート間の差を招き、単純ではありません。本ドキュメントでは、各ト ランスポートのエンコーディングの扱い方を説明します。なおドキュメントを 読み進むに当たり、以下の概略図を念頭に置いておくと分かりやすいでしょう。 Case.1は、メッセージフロー内から別のサービスへルーティングを行う例を表 し、Case.2はルーティングを伴わないフローを表しています。
(*注1) 但し、AquaLogic Service Bus が扱えるエンコーディングは、Java がサポートするエンコーディングに限ります。
HTTP/HTTPSトランスポートでは、外部からメッセージを受ける場面でのエ ンコーディングを、以下の情報のいずれかから優先度に従い決定し、処理しま す。
またメッセージを外部サービスに対して送信する場合のエンコーディング は、以下の情報のいずれかから優先度に従い決定します。
優先度は以下の表の通りです。
プロキシサービスrequest | ビジネスサービスrequest | |
1. Content-Type/charset属性 2. 要求エンコーディング設定値 3. デフォルト:iso-8859-1 | 1. 要求エンコーディング設定値 2. ($body更新時)汎用エンコーディング:UTF-8 3. 元となるメッセージのエンコーディング | |
プロキシサービスresponse | ビジネスサービスresponse | |
1. 応答エンコーディング設定値 2. ($body更新時)汎用エンコーディング:UTF-8 3. 元となるメッセージのエンコーディング | 1. Content-Type/charset属性 2. 応答エンコーディング設定値 3. デフォルト:iso-8859-1 |
なお、$body等のコンテキスト変数の詳細は、製品ドキュメント内のMessage Contextの項を参照して下さい。
e-mailトランスポートでは、プロキシサービスがe-mailを受信した際、メッ セージのエンコーディングを以下の情報のいずれかから優先度に従い決定し、 処理します。
またビジネスサービスからの送信の際のエンコーディングは、以下の情報 のいずれかから優先度に従い決定し、処理します。
優先度は以下の表の通りです。
プロキシサービスrequest | ビジネスサービスrequest | |
1. Content-Type/charset属性 2. 要求エンコーディング設定値 3. デフォルト:iso-8859-1 | 1. 要求エンコーディング設定値 2. ($body更新時)汎用エンコーディング:UTF-8 3. 元メッセージのエンコーディング |
fileおよびftpトランスポートでは、プロキシサービスによるファイルの読 み込み、およびビジネスサービスによる書き込み時のエンコーディングとも、 以下の優先度に従い決定し、処理します。
JMSトランスポートでは、プロキシサービスによるキュー/トピックの読み 出し、およびビジネスサービスによる書き出し時のエンコーディングとも、以 下の優先度に従い決定し、処理します。
なおJMSトランスポートでのエンコーディング処理は、JMSのByteMessage I/Fを使用した場合に限り行われます。