では、実際に SOAPメッセージの交換によるシステム間連携の仕組みを見ていくことにしましょう。ここで出てくるのが次の3つのプロセスです。
3つのプロセスは1つのシナリオに基づいて理解することができます。それは、以下のようなものです。
「サービスを作成したら、インターネットにその情報を公開する。そして、サービスを利用したい側は、そのサービスを発見し、必要な情報を取得する。情報が集まったらサービスと通信し、利用を開始する。これによって連携が開始される。」
実際に連携するとなった際、SOAP のメッセージが送信され、サービスに対して引数を与えたり、戻り値を受け取るなどしてサービスが1つのアプリケーションの中に取り込まれていくわけです。では、SOAPメッセージのやりとりを行うにあたっては、どのような構造が必要なのか、その例を見ておくことにしましょう。
以下に示した図 は、実際にメッセージの交換を行い、アプリケーション間連携を実現するための仕組みです。マイクロソフトにおけるSOAPの実装もこの手法を用いています。この処理の流れは、先に示したシナリオを実際のシステムに置き換えたものだと思えば理解するのは簡単です。
このようにして、アプリケーション間連携はSOAPメッセージの交換によって実現されます。このシステムとシステムの間に流れているメッセージは、前回紹介した構造を持っていることはいうまでもありません。
このようにシステムをつなぐ接着剤としてSOAPが働くことが分かりました。しかし、SOAPだけでは解決できないいくつかの問題があります。例えば、動的にどうやってサービスを発見するのか。そして、そのサービスの提供する機能をどのようにして取得するのかという点です。これが解決しないとせっかくのメリットが享受できなくなってしまいます。
そこで、いくつかのベンダが集まり、これらの問題点を解決するべく仕様を策定することになります。それが、WSDLやUDDIといった、最近話題となっている関連技術になります。では、これらおのおのの仕様を作成する活動の中では何を目的としているのかをまとめておくことにしましょう。
- UDDI
UDDI は、「Universal Description, Discovery, and Integration」というプロジェクトを指します。このプロジェクトでは、マイクロソフト、IBM、Ariba といった企業が中心になって活動を行っています。この活動の中で策定されているUDDI の仕様では、Webサービスがインターネットで公開された際の、動的な利用を支えるためのレジストリ機構を提供しています。端的にいうとYahooのようなディレクトリサービスに似ています。
Webサービスの利用者は、どのようなサービスがどこにあり、そしてどのように利用したらいいかを知る必要があります。インターネット上にさまざまなWebサービスの提供者が登場すると、いちいち彼らを探して連絡を取り、サービスを利用するのに必要な情報を取得していくのは大変です。
そのためUDDI では、レジストリとしてWebサービスの登録機能を持たせてあります。利用者はSOAPメッセージを利用してUDDI レジストリへアクセスし、必要な情報を取り出し、Webサービスの利用を進めていくことができるようになります。このUDDIレジストリには、電話帳などと同じような構成(図を参照)でサービスの登録情報を持っています。この機構に対して利用者は必要な検索を行い、利用したいサービスを探し当てることができるようになっています。
UDDIは、サービスの利用者に対してWebサービス発見のための機能を与え、Webサービス提供者には、レジストリへのサービス登録の機会を与えることによってビジネスチャンスを提供します。
- WSDL
WSDLは、「Web Service Description Language」の略です。今までマイクロソフト、IBM がそれぞれ持っていた技術であるNASSL(Network Accessible Service Specification Language)、SCL(Service Contract Language)、SDL(Service Description Language)といった技術を包括的に統合したものです。
WSDLは、UDDI などによって発見されたWebサービスをいざ使用しようとしたときに利用される情報です。ここでいう情報とは、Web サービスによって提供されているメソッドやパラメータの情報、つまり、呼び出しを行うための規約がこの中に記述されています。WSDLによって得た情報をサービスの利用者は、その情報に基づいて自らのシステムからサービスを呼び出せるように準備を行い、そして、サービス利用者とサービス提供者が通信しあうようになります。
つまり、Web サービスを利用するためには、
という流れになることが分かります。
このようにして動的なサービスの発見やアプリケーションへの取り込みが実現されていくことになるのです。
Copyright © ITmedia, Inc. All Rights Reserved.