Web サービスとは、インターネット上でプログラム的に呼び出し可能な、関連するアプリケーション機能のセットです。企業は Web サービスを動的に組み合わせることで、最小限のプログラミングで複雑なトランザクションを実行できます。 Web サービスにより、バイヤーとセラーは、世界中の至る所でお互いをディスカバーし、動的に接続し、人手による対話を最小限にして、リアルタイムにトランザクションを実行することが可能です。
Web サービスは、自己完結型、自己記述型のモジュラー・アプリケーションであり、Web の至る所で公開、探索、起動が可能です。
Web サービスは自己完結型です。 クライアント・サイドに追加のソフトウェアは必要ありません。 初心者の場合は、XML および HTTP クライアントのサポートがあるプログラム言語が適しています。 サーバー・サイドには、Web サーバーとサーブレット・エンジンが必要です。クライアントとサーバーは、 別々の環境に実装できます。 Web サービスでは、コードを 1 行も記述せずに既存のアプリケーションを使用可能にすることができます。
Web サービスは自己記述型です。 クライアントとサーバーは、 要求メッセージおよび応答メッセージ・フォーマットとコンテンツだけを認識する必要があります。 メッセージ・フォーマットの定義は、メッセージと共に伝送されます。 そのため、外部メタデータ・リポジトリーまたはコード生成ツールは、必要ありません。
Web サービスはモジュラーです。 ワークフロー技法を使用するか、 Web サービス実装からより下位の層にある Web サービスをいくつか呼び出すかして単純な Web サービスをいくつかまとめることで、 複雑な Web サービスを作ることができます。
Web サービスはプラットフォームに依存していません。 Web サービスは、多様なコンピューティング・プラットフォームおよびプログラム言語にわたって Web サービスとクライアントの間のインターオペラビリティーをプロモートするために設計された、 オープンな XML ベース標準の簡潔なセットを基礎としています。
Web サービスにはいろいろあります。例えば、演劇レビュー記事、天気予報、クレジット・チェック、株式相場、旅行情報、 または航空会社の旅行予約プロセスなどです。 これらの自己完結型ビジネス・サービスは、それぞれ自社または他社の他のサービスと簡単に統合して、 完全なビジネス・プロセスを作成できるアプリケーションとなっています。 このインターオペラビリティーにより、企業はインターネットを介したさまざまな Web サービスを動的に公開、ディスカバー、 およびバインドすることができます。
Web サービスは 3 つのカテゴリーにグループ化できます。
ビジネス情報。 企業は、情報を消費者や他の企業と共用します。この場合、Web サービスを使用すると、 活動範囲を広げることができます。ビジネス情報 Web サービスの例には、ニュース・ストリーム、天気予報、株式相場などがあります。
ビジネス・インテグレーション。 企業は顧客に対し、 「有料」のトランザクション・サービスを提供します。 この場合、企業は付加価値提供業者のグローバル・ネットワークの一員となり、 このネットワークを商取引に利用できるようになります。 ビジネス・インテグレーション Web サービスの例としては、入札およびオークションの e-マーケットプレイス、 予約システム、クレジット・チェックなどがあります。
ビジネス・プロセスの外部化。 ビジネス自体は、グローバル・バリュー・チェーンを作成することによって、 競合相手から差別化します。この場合、Web サービスを使用して動的にプロセスを統合します。 ビジネス・プロセスを外部化する Web サービスの例には、特定の製品の製造、組み立て、卸流通、および小売販売を結合するための、異企業間の連携があります。
Web サービス・アーキテクチャーのネットワーク・コンポーネントは、 1 つまたは複数の基本的な役割 (サービス・プロバイダー、サービス・ブローカー、 およびサービス・クライアント) を果たすことができます。
バインディングでは、サービスを正常に完了するために必要なすべての環境的な前提条件が確立されます。 環境面での前提条件の例には、セキュリティー、トランザクション・モニター、HTTP 可用性などがあります。 これらの役割の関係については図 1 で説明しています。
図 1. サービスの役割および相互作用
インターネット標準の主要な属性の 1 つは、この標準が、 実装ではなくプロトコルに焦点を当てているというところにあります。 インターネットは、異機種混合のテクノロジーで構成されており、共用プロトコルによって、正常に相互運用しています。 これによって、個々のベンダーがインターネット上で 1 つの標準を強制することはなくなります。 オープン・ソース・ソフトウェア開発は、ベンダーによる標準の実装のインターオペラビリティーを維持するために、 重要な役割を担っています。
以下の標準は、Web サービスで重要な役割を果たしています - Universal Description, Discovery and Integration (UDDI)、 Web Service Description Language (WSDL)、Web Service Inspection Language (WSIL)、 Simple Object Access Protocol (SOAP)、および Web Services Interoperability (WS-I)。 これらの標準の関係は図 2 に解説されています。
UDDI 仕様は、オープンでプラットフォームに依存しない標準を定義します。これによって各企業は、 グローバル・ビジネス・レジストリーで情報を共有し、そのレジストリー上でサービスをディスカバーし、 それらのサービスがインターネット経由で対話する方法を定義することができます。UDDI の詳細については、www.uddi.org を参照してください。
WSIL は、XML 対応のオープン仕様で、 使用可能な Web サービスとして何があるのかについて Web サイトをインスペクションする方法を指定することで、 サービス・プロバイダーのオファリング時に、 サービス記述への参照を可能にする分散サービス・ディスカバリー・メソッドを定義しています。 WSIL 文書は、Web サービスの記述を検索できる Web サイトのロケーションを定義します。 WSIL の主な目的は分散サービス・ディスカバリーであるため、WSIL 仕様は、Web サイト上に存在しているのに、 まだ UDDI レジストリーに登録されていない可能性のあるサービスを簡単にディスカバーできるようにすることで、 UDDI の補完的役割を果たします。 『UDDI と WSIL の関係』については本書の別のトピックで解説します。 WSIL について詳しくは、 www.ibm.com/developerworks/webservices/library/ws-wsilspec.html を参照してください。
WSDL は、ネットワーク上の Web サービスへのインターフェースとそのインスタンスを記述する XML ベースのオープン仕様です。 この仕様は拡張可能で、通信で使用されるメッセージ・フォーマットやネットワーク・プロトコルにかかわらず、 エンドポイントを記述できます。 ビジネスでは、UDDI や WSIL を経由したり、 電子メールや Web サイトを介して WSDL の URL をブロードキャストしたりすることで使用できる Web サービス用の WSDL 文書を作成できます。 WSDL については本書の別のトピックで解説します。WSDL について詳しくは、 www.w3.org/TR/wsdl を参照してください。
図 2. SOAP、UDDI、WSIL、および WSDL 間の関係
サービス・プロバイダーは、Web サービスをホストし、SOAP/HTTP や SOAP/JMS などのプロトコルを使用して、 そのサービスが利用できるようにします。Web サービスは WSDL 文書で記述されます。 この文書は、プロバイダーのサーバーまたは特別のリポジトリーに保管されています。 WSDL 文書は、UDDI Business Registry と WSIL 文書から参照できます。 これらには Web サービスの WSDL ファイルへのポインターが設定されています。
WS-I Simple SOAP Binding Profile と WS-I Attachments Profile は要件のアウトラインであり 、WSDL および Web サービス・プロトコル (SOAP/HTTP) のトラフィックが WS-I 準拠であることを主張するには、 この要件に従っていなければなりません。 Web サービスの WS-I 検証ツールは、現在 WS-I Simple SOAP Binding Profile 1.0 および Attachment Profile 1.0 をサポートしています。 この仕様を表示するには、次の WS-I Web サイトを参照し、 「Resources」の下で、「Documentation」を選択してください: http://www.ws-i.org
Web サービスについて詳しくは、www.ibm.com/developerworks/webservices を参照してください。