エンタープライズ:ニュース 2003/05/13 01:29:00 更新


Webサービスをよりフレキシブルにするためには (1/6)

SOAPとJava メッセージサービスは、Webサービスにおいて非同期通信時に必須なテクノロジーだ。この記事では、Webサービスの概念から仕組み、何が重要視されているのかを解説していく。
by David Chappell and Tony Hong, XML Magazine,February/March 2003 Issue, Fawcette Technical Publications, Inc.

 最近までWebサービスは、HTTPを用いてリクエストとリプライが行われる同期型モデルだと見られていた。Webサービスにおける最初の利用形態は、RPC(Remote Procedure Call)であり、構造は分散コンポーネントである。この見方は自然、且つIT業界で当たり前とされてきた。しかし、非同期メッセージングを行うという見解もある。この方法であれば、データの移動と処理に対する信頼性、そして柔軟性を同期型メッセージングと同等にすることが難しいといわれている。Java Message Service(JMS)のように、今日のWebサービス標準でデプロイメントである、非同期メッセージングトランスポート層の上でSOAPのやり取りを行うことは、より拡張性があるものへと広がっていく可能性を意味するのだ。

 このテクノロジーを利用する分野として最もポピュラーなのは、クリティカルなビジネスインテグレーションのシナリオだ。代表的なものといえば、EDI(Electronic Data Interchange)やEAI(Enterprise Application Integration)、B2B(Business To Business)であり、それぞれがより合理的、且つ低コスト、スタンダードベースというアプローチを模索している。また、確実なデリバリや疎結合、ビジネスオリエンテッドなトランザクションに適した簡素的なインターフェイス、ドキュメントオリエンテッドな非同期インタラクション、ワイヤープロトコルとトランスポートメカニズムのサポートなどの項目において、何らかの手法で同期型のRPCを置きかえることを願っている。

 それでは、非同期SOAPメッセージにおける確実なトランスポートとして、JMSがどのように使われているかを見てみよう。 また、確実なWebサービスのインバケーションという意味においては、どのようにJMSが使えるかを確認する必要がある。サンプルソースコードのダウンロードは可能だが、XMethodsとのライセンス契約が必要である。

Image1.gif

Figure 1■Multiparty同期コミュニケーションの概念図


 多くのWebサービスは同期型のRPCモデルを使っている。サービスは適切な粒度のインターフェイスでエクスポーズ、そしてWebサービスクライアントはRPCスタイルのインタラクションをインボークする。 1つのRPCスタイルの環境においてすべてのアプリケーションとサービスは、単一のコミュニケーションストリームに参加する。 それはマルチ・パーティのコミュニケーションが可能であり、達成することに必要とされる。リアルタイム性を持ったサービスによる情報提供が行われる場合など、幾つかのケースにおいて同期型モデルが必要である。もし、何らかの理由でダウンストリームが到達されない場合、リクエストを行ったアプリケーションと、そのアップストリームの処理は、アプリケーションコードによりエラー処理を対応しなければならない。

 状態を正常に保つためには、信頼できる非同期コミュニケーションをシステムすべてが与えられる時間に対し、対応させる必要は無い。信頼できる非同期コミュニケーションの場合では、シンプルなクライアント、サーバインタラクションの関係でさえ、クライアントがリクエストする要求に対し、サービスがインボークされる必要は無い。クライアントは、リクエストを非同期のトランスポートに受け渡すことで、その時の対話を完了する。そして、クライアント自身はプロセスを終了するが、サービスが再びアベイラブルになった際、サービスインボケーションが始まることになる。

      | 1 2 3 4 5 6 | 次のページ

[David Chappell, Tony Hong,XML Magazine]