...

SOAP over SMTP を用いた 非同期型メッセージングの提案と評価

by user

on
Category: Documents
10

views

Report

Comments

Transcript

SOAP over SMTP を用いた 非同期型メッセージングの提案と評価
情報処理学会第68回全国大会
3K-6
SOAP over SMTP を用いた
非同期型メッセージングの提案と評価
森 晃†
南山大学 大学院 数理情報研究科†
青山 幹雄‡
南山大学 数理情報学部 情報通信学科‡
1. はじめに
2.2. SOAP メッセージの識別
Web サービスは同期型双方向メッセージングを
基本とする.長時間処理が必要なサービスでは,サ
ービス要求のメッセージを送信後に長時間の待ち合
わせが必要となる.本研究では,SOAP (Simple
Object Access Protocol) over SMTP (Simple Mail
Transfer Protocol)により,要求に対する応答を待
機することなく連続して要求が送信可能な一方向と
双方向の非同期型メッセージングの方法を提案する.
非同期型のメッセージングでは,要求と応答の対
応関係がないため,SOAP メッセージに ID を付加
し対応関係を明確にする以下の方法が考えられる.
(1) SMTP ヘッダへの Message-ID の付加
(2) SOAP ヘッダへの ID 要素の付加
識別方法の特徴を表 1 に示す.本稿では,(2)の
SOAP ヘッダへの ID 付加を用いる.(2)には,トラ
ンスポートの問題であるメッセージの識別を上位プ
ロトコルである SOAP 内で管理しなければならな
いという短所はあるが,リクエスト/レスポンス以
外の任意の対応関係を表現できる.
表 1:メッセージ識別方法の性質
2. 非同期型 Web サービスの実現
2.1. SOAP over SMTP による非同期型メッセ
ージング
以下の理由により非同期型メッセージングのトラ
ンスポートプロトコルに SMTP を用いる[1].
(1)SMTP
ヘッダ
(1) 一方向のメッセージングが可能
(2) 企業間などでファイアウォールを透過
(3) 既存のメールサーバを利用可能
(2)SOAP
ヘッダ
メール
サーバ
SOAP over SMTP
プロトコルヘッダ
(メールヘッダ)
To:[email protected]
SOAPエンベロープ
SOAPヘッダ
クライアント
アプリケーション
<From>○○○</From>
<ID>△△△</ID>
SOAPボディ
Web
サービ ス A
Web
サービ ス B
Asynchronous Messaging with SOAP over SMTP and its
Evaluation
† Akira Mori, Graduate School of Mathematical Sciences and
Information Engineering, Nanazan University
‡ Mikio Aoyama, Faculty of Mathematical Sciences and
Information Engineering, Nanzan University
HTTPSender
SOAP
over
HTTP
同期型
Webサーバ
SOAPoverSMTP
Apache James
TransportListener
(Mailet)
Axis
Engine SMTPSender
メール
サーバ
Axis Engine
Apache Axis
Web
サービ ス C
図 1:非同期型 Web サービスアーキテクチャ
Handler
Webサービス
クライアント
メールサーバ
SOAP over SMTP を用いた一方向メッセージン
グとして Apache Axis を拡張した SMTPSender
(Handler)を実装した.
図 2 の上段に既存の同期型メッセージング,下段
に提案する非同期型の一方向メッセージングを示す.
プロバイダ
ネット
ワーク
短所
SOAP のセキュリテ
ィメカニズムで保護
されない
トランスポートの問
題であるメッセージ
識別を上位プロトコ
ルで管理
3. 一方向メッセージングの実現
クライアントアプリケーション
Web サービス間のメッセージ通信として SOAP
over SMTP を実現する.SOAP over SMTP の非同
期メッセージングを図 1 に示すアーキテクチャで実
現する.Web サービスプロバイダとしてメールサ
ーバを使用する.電子メールと同様に Web サービ
ス用のメールアドレスを指定して SOAP メッセー
ジを送信することで,プロバイダが提供するサービ
スを利用する.
クライアント
長所
SOAP と独立にトランス
ポート上でメッセージ識
別が可能
一対多の対応関係,リク
エスト/レスポンス以外の
関連のあるメッセージの
対応関係を表現可能
非同期型
図 2:一方向メッセージング
SMTPSender は各 Handler で処理された SOAP
メッセージのバインディングヘッダに SMTP ヘッ
ダを付加し,Web サービスを提供するメールサー
バにリクエストメッセージを送信する.SOAP メッ
セージはメールサーバに配置した ApacheJames が
1-259
情報処理学会第68回全国大会
受信し,プロバイダ側の Axis に渡される.Axis は
このメッセージを解読し Web サービスを利用する.
3 つの要素を含めたコールバック型の双方向型メ
ッセージングのアーキテクチャを図 3 に示す.
Apache James
James
Apache
SMTPSender
Transport
Listener
Handler
1)要求・応答
2)メッセージ受信
メッセージのIDの
Handler
照合・発信元の特定
Axis
Webサービス
要求メッセージ
情報を保持
Axis Engine
3)イベント駆動による
応答の返信
(Mailet)
MailServer
クライアントアプリケーション
4)要求メッセージの
情報を保存
応答
メッセージ
の送信
3)イベント駆動による
2)応答メッセージの問合せ
応答の返信
Apache Axis
Axis
Webサービス
1) 要求と応答の対応関係を ID,送信者情報によ
り特定する Handler
2) メッセージ受信 Handler
3) イベント駆動により応答をクライアントに返
信する Handler
POP
受信
(Mailet)
MailServer(プロバイダ)
(1)を用いた双方向メッセージングの実現には次
の要素が必要となる.
POP
失敗
POP
失敗
MailServer(クライアント)
双方向メッセージングの実現には,次の 2 つの方
法が考えられる.
Transport
Listener
要求メッセージの送信
Axis Engine
クライアントアプリケーション
4. 双方向メッセージングの実現
(1) コールバック型:プロバイダからの応答メッ
セージによってクライアントのメッセージ受
信ハンドラを起動
(2) POP(Post Office Protocol)型:クライアントが
周期的にサーバからの応答メッセージを受信
Apache James
Apache
Handler 1)SMTPSender
図 4:POP 型双方向メッセージング
5. 非同期メッセージングの評価
5.1. 一方向メッセージング
Apache Axis を拡張して,一方向メッセージング
を行う処理時間の長いサービスを同期型と非同期型
で利用したときの利用効率を比較した.非同期型に
よって,連続でサービスを利用した場合にクライア
ントのサービス処理時間を大幅に削減し,効率のよ
いサービス利用を可能にした.
5.2. 双方向メッセージング
提案した双方向型のメッセージングにより,要求
と応答の対応関係を明確にした非同期型メッセージ
ングが可能となる.しかし,コールバック型はリア
ルタイムな受信が可能な一方で,クライアントへの
サーバ機能の追加による複雑化が問題となる.また,
POP 型はサーバに対し複数回の問合せが必要とな
るが,クライアントの構造がシンプルなため,負荷
の軽減や構築の容易さの点で有効であると考える.
6. 関連研究
Apache Axis
図 3:コールバック型双方向メッセージング
送 信 時 に SOAP ヘ ッ ダ に WS-Addressing の
MessageID,From 要素を付加し,4)で要求メッセ
ージの情報を一時的に保存する.応答メッセージを
2)が受信し,1)で要求メッセージとの照合を行い,
3)で発信元へイベント駆動により応答を返信する.
(2)を用いた双方向メッセージングの実現にはコ
ールバック型の 3)の要素に加えて,応答メッセー
ジが着信しているか否かをクライアント側のメール
サーバに問い合わせる Handler が必要となる.
(2)を用いた POP 型双方向メッセージングのアー
キテクチャを図 4 に示す.クライアントは 1)で要
求メッセージを送信後,2)でメールサーバに対して
応答メッセージの有無を周期的に問い合わせる.送
信メッセージの ID に対応する応答メッセージが着
信している場合に 3)で発信元へイベント駆動によ
り応答を返信する.未到着の場合は,POP により
周期的に問合せを繰り返す.
非同期型 Web サービスの実現方法として WSDL
を拡張し,非同期型のトランスポートをバインディ
ングしたスタブを生成する WSIF(Web Service
Invocation Framework)がある[2].WSDL から直
接サービスを呼び出し SOAP に非依存な非同期型
メッセージングを実現しているが,独自のバインデ
ィングを用いるため互換性が問題となる.
7. まとめと今後の課題
本稿では,非同期型 Web サービスを実現するた
めに一方向,双方向のメッセージング方法を提案し
た.今後は提案した 2 つの双方向メッセージング方
法を設計,実装しその利便性を評価する.
参考文献
[1] 森 晃, 青山 幹雄, SMTP を用いた非同期型 Web サ
ービスの提案と評価, 情報処理学会ソフトウェア工
学研究会, Vol.2005-SE-147, Mar. 2005, pp.73-80.
[2] M.Narayanan, Approaches to Asynchronous
Web Services, 2003, http://www.128.ibm.com/
developeworks/webservices/library/ws-asoper.
1-260
Fly UP