このトピックでは、標準技術としてのWebサービスの基礎知識を取り上げて説明します。
Webサービスとは
Webサービスには広義と狭義の二つがあります。
広義の「Webサービス」は、WEB通信を利用した、プログラミングでアクセス可能なサービスのすべてが含められます。
一方、狭義の「Webサービス」は、SOAP(Simple Object Access Protocol)やWSDL(Web Services Description Language)ベースのWebサービスに限定されます。SOAP/WSDLサービスと呼ぶことができます。
Webサービスという名前も、このSOAP/WSDLサービスから初めて使われたものと考えられます。
WEBサービス(広義)を実現する基礎技術としては、古典的な技術を代表するこのSOAPとWSDLのほかに,昨今急速に普及してきたREST(Representational State Transfer)があります。RESTベースのWEBサービスはRESTfulサービスと呼ばれております。
http://www.ibm.com/developerworks/jp/webservices/library/ws-restful/
高機能で複雑のSOAP/WSDLサービスと比べると、RESTfulサービスはシンプルで簡単に利用可能であるため、現在、後者のほうがWeb全体で広く受け入れられるようになっています。
とはいえ、歴史のこともあるため、とくに企業向けの大規模なシステムは、まだまだSOAP/WSDLサービス技術で構築されているほうが多いと考えられます。
このトピックやカテゴリは、狭義の「Webサービス」のみを対象としているため、特別な説明がない限り、文書に記述されている「Webサービス」という用語はすべて狭義の「Webサービス」を指しております。
Webサービスの特徴
Webサービスは、主に以下のような特徴があります。
- プラットフォーム独立
HTTP、SMTP、XML等の標準仕様を積極的に活用しているため、Webサービスの実装は特定のプラットフォームや言語に依存しません。
異なるプラットフォームで実装されているWebサービスは標準仕様に従って簡単に相互接続ができます。 - 実行時に動的に連携
WEBサービスは実行時に動的に連結されます。よってサービス指向アーキテクチャ(SOA)に従えば柔軟性、敏捷性(agile)とも優れる疎結合分散アプリケーション環境が簡易に実現できます。
WEBサービス連携の流れ
WEBサービス連携の流れは以次の三つの部分からなります。
- 登録
サービスを提供する側は、サービスの接続情報をどこかに登録しておきます。 - 接続情報の検索
サービスを使用する側は、サービスを利用するための接続情報をどこかで検索します。開発時と実行時の二つの場面があります。 - 接続
サービスを使用する側は、サービス接続情報を利用して、サービスを提供する側に接続して、サービスを利用します。
WEBサービスの関連仕様
WEBサービスの関連仕様は以下のものがあります。
- SOAP
メッセージフォーマットに関する仕様 - WSDL
サービス界面仕様の記述フォーマットに関する仕様 - UDDI
サービス連携をサポートするディレクトリに関する仕様および実装 - WSIL
UDDI の代替であり、また UDDI に対する補足でもあるサービス・ディスカバリー機構
SOAP
SOAP(Simple Object Access Protocol)とは、非集中、分散環境における情報交換のための軽量のプロトコルです。SOAPのメッセージはXMLを用いて符号化します。
SOAPは次の3つの部分から成ります。
- SOAPエンベロープ構成要素
何がメッセージの中にあるのか、誰がそれを処理すべきなのか、それは選択可能か必須かどちらなのかといったことを表現するための全体の枠組みを定義しています。 - SOAP符号化(encoding)規則
アプリケーションが定義したデータ型のインスタンスをやりとりするための直列化(serialization)のメカニズムを定義しています。 - SOAP RPC表現
RPCとそのレスポンスを表現するための規約を定義しています。
WSDL
WSDL(Web Services Description Language)とは、Webサービスを記述するための、XMLをベースとした言語仕様です
WSDLサービス定義仕様で用いられる概念は以下のものがあります。
- サービス(service)
- ポート(port)
- バインディング(binding)
- ポートタイプ(portType)
- 操作(operation)
- メッセージ(mssage)
- タイプ(types)
UDDI
UDDI(Universal Description, Discovery and Integration)とは、Webサービス用の検索システムのことです。
Webサービス公開者はUDDIレジストリにWebサービスの情報(どういうサービスか、どこにあるのか、誰のものか、など)を登録し、Webサービス利用者はUDDIレジストリに対して検索をし目的に合致したWebサービスを探し出すという仕組みです。
インターネット上で一般に公開するパブリックUDDIと、企業のイントラネット内などの閉じたネットワーク上で使用するプライベートUDDIに分類されます。
WSIL
WSIL(Web Service Inspection Language)とは、大掛かりなUDDI検索と手軽なWSDL交換の中間で、簡便で使いやすく、かつ、拡張可能なネットワーク上でのサービス検索の手段を提供するものです。
WSILは、直接、Webサービスを記述するのではなく、Webサービスを記述したWSDLへの参照や、Webサービスを登録したUDDIへの参照を記述したXMLドキュメントです。いわば、WSDLやUDDIを経由すれば、利用可能なWebサービスの一覧表を提供しようという試みです。