ホーム > 読んだ >

Webサービスの本質に迫る
ウェブサービスノホンシツニセマル

書誌

author吉田豊
publisher技術評論社
year『Software Design 2002.2』p.105-120

履歴

editor唯野
2002.3.2x読了
2002.3.2x公開
2002.6.15修正
2014.1.27修正

Web サービスを主にその構成要素と実装例から捉えた記事。Web サービスのような使われ方というのは CORBA でもよくいわれていたことなので、Web サービスにおける UDDI というのは、CORBA でいえばインタフェースリポジトリ(IR)に近いものだといえる。そして、それをもう一歩進めると CORBA でいうトレーダ・サービスのようなものになる。これは、分散システムにおいて始めからサービスの利用する相手を固定せず(=実行時に)、その提供者をインタフェースではなく *求める機能から* 検索する。こういうのを読むと、Web サービスというのは CORBA での IIOP というプロトコルを SOAP (XML) による HTTP メッセージでラップしたもの??という印象を受ける。CORBA ではホスト間での通信を行うために TCP/IP ベースの IIOP というプロトコルを規定したが、それを更に上位レイヤとなる HTTP でカプセル化したということである。

だから、(そういうサービスに対応した CORBA の ORB 実装があれば)それはそのまま Web サービスとしても転用できることになるが、XML ベースの方が何より敷居が低く、既存の HTTP 技術をそのまま適用できるというのは大きい。WebDAV による共有ファイルアクセスでもそうだが、Web がこれだけ広がると HTTP と Web ブラウザこそが環境の差異を吸収した誰にでも分かる実際のアプリケーション・レイヤということになり、そういう意味での HTTP の利用というアプローチは今後も増えるのではないかと思う。少し前だとこういう場合、Socket を意識させないというのがポイントだったようなイメージがあるが、TCP/IP、もっといえば HTTP まで意識させないというのが Web サービスというもののひとつの特徴ではなかろうか。

とはいえ Web サービスはまだまだ仕様的に未成熟な部分がある。もちろん、その成熟スピードは相当の勢いで進んでいるので、次世代 Web のトレンドのひとつになるのは間違いないが、問題は技術として Java + JAX API と .net Framework のどちらに注目すべきかである。現時点で最も有力なソリューションが Java 陣営なのは自明だが、MS の .net もベンダ依存とはなるものの中間言語による言語独立性は既存のエンジニアには魅力的に映る。結果、Java をめぐる動きは Web サービスというレベルでの対立としても現れていることになり、個人としては双方に注目せざるを得ない状態が続きそうである。

追記

C マガでも Web サービスの特集があったので、その内容も含めてマージするようにしました。但し、.net によるサンプルまでは扱っていません。(持ってないんだから当たり前ですが...) (2002.4.23)

抄録

Web サービスは Web としてアクセス可能なサービスそのものやそれによる連携を指す。Web をベースとすることでプラットフォームや言語独立となり、やりとりされるデータも XML メッセージとして処理される。そして、各サービスはそれぞれにインタフェースを持ち、クライアントによる検索を行うことができる。そのため Web サービスでは XML をベースとしながら SOAP (Simple Object Access Protocol : Web サービスのメッセージ)、WSDL (Web Service Description Language : Web サービスの記述)、UDDI (Universal Description, Discover and Integration : Web サービスのリポジトリ)などを利用する。つまり、サービス提供者は WSDL で記述したものを UDDI に登録し、サービス利用者も同じく WSDL で記述した問い合わせを UDDI に行って必要な機能を検索、そして後は当事者間でメッセージをやりとりするかたちになる。

WSDL による UDDI への登録

サービス利用者による UDDI への検索

サービス利用者側での Web サービスへのバインド

SOAP による Web サービスの呼び出し

Web サービスではサービスは Web サーバより提供されるが、それを介した後の、その実際のアプリケーションはどこで動いてもよいし、既存のものをラップしてもよい。しかし、現状では Java が XML サポートや関連ツールでの対応面で優れている。例えば、JAX API (Java API for XML)を用いることで、Web サービスに対する親和性を高めることができる。これは具体的に以下のものなどがある。

    全文を読まれる場合はログインしてください


    Up