Web サービスの概要

Web サービスは、インターネット経由でプログラマチックに起動可能な関連アプリケーション機能の集合です。 企業は Web サービスを動的にミックス・アンド・マッチすることで、 最小のプログラミングで複雑なトランザクションを実行できます。 Web サービスによって、世界中のバイヤーとセラーは互いをディスカバーしあい、ダイナミックに連携して、 最小限のやりとりで、リアルタイムにトランザクションを実行できます。

Web サービスは、自己完結型で、自己記述型、しかもモジュラー・アプリケーションであり、相互の Web で公開し、 探し出す、起動することができます。

Web サービスは自己完結型です。 クライアント・サイドに追加のソフトウェアは必要ありません。  初心者の場合は、XML および HTTP クライアントのサポートがあるプログラム言語が適しています。  サーバー・サイドには、Web サーバーとサーブレット・エンジンが必要です。クライアントとサーバーは、 別々の環境に実装できます。  Web サービスでは、コードを 1 行も記述せずに既存のアプリケーションを使用可能にすることができます。

Web サービスは自己記述型です。 クライアントとサーバーは、 要求メッセージおよび応答メッセージ・フォーマットとコンテンツだけを認識する必要があります。 メッセージ・フォーマットの定義は、メッセージと共に伝搬されます。 そのため、外部メタデータ・リポジトリーまたはコード生成ツールは、必要ありません。 

Web サービスはモジュラーです。 ワークフロー技法を使用するか、 Web サービス実装からより下位の層にある Web サービスをいくつか呼び出すかして単純な Web サービスをいくつかまとめることで、 複雑な Web サービスを作ることができます。

Web サービスはプラットフォームに依存していません。 Web サービスは、多様なコンピューティング・プラットフォームおよびプログラム言語にわたって Web サービスとクライアントの間のインターオペラビリティーをプロモートするために設計された、 オープンな XML ベース標準の簡潔なセットを基礎としています。

Web サービスにはいろいろあります。例えば、演劇レビュー記事、天気予報、クレジット・チェック、株式相場、旅行情報、 または航空会社の旅行予約プロセスなどです。 これらの自己完結型ビジネス・サービスは、それぞれ自社または他社の他のサービスと簡単に統合して、 完全なビジネス・プロセスを作成できるアプリケーションとなっています。 このインターオペラビリティーにより、企業はインターネットを介したさまざまな Web サービスを動的に公開、ディスカバー、 およびバインドすることができます。

Web サービスのカテゴリー

Web サービスは 3 つのカテゴリーにグループ化できます。

ビジネス情報。 企業は、情報を消費者や他の企業と共用します。この場合、Web サービスを使用すると、 活動範囲を広げることができます。ビジネス情報 Web サービスの例には、ニュース・ストリーム、天気予報、株式相場などがあります。

ビジネス・インテグレーション。 企業は顧客に対し、 「有料」のトランザクション・サービスを提供します。 この場合、企業は付加価値提供業者のグローバル・ネットワークの一員となり、 このネットワークを商取引に利用できるようになります。 ビジネス・インテグレーション Web サービスの例としては、入札およびオークションの e-マーケットプレイス、 予約システム、クレジット・チェックなどがあります。

ビジネス・プロセスの外部化。 ビジネス自体は、グローバル・バリュー・チェーンを作成することによって、 競合相手から差別化します。この場合、Web サービスを使用して動的にプロセスを統合します。 ビジネス・プロセスの具体的な Web サービスの例には、特定の製品の製造、組み立て、卸流通、 小売販売を結合する異なる会社関連の提携があります。

サービスの役割および相互作用

Web サービス・アーキテクチャーのネットワーク・コンポーネントは、 1 つまたは複数の基本的な役割 (サービス・プロバイダー、サービス・ブローカー、 およびサービス・クライアント) を果たすことができます。

バインディングでは、サービスを正常に完了するために必要なすべての環境的な前提条件が確立されます。 環境面での前提条件の例には、セキュリティー、トランザクション・モニター、HTTP 可用性などがあります。 これらの役割の関係については図 1 で説明しています。

図 1. サービスの役割および相互作用

図 1 は、サービス・ブローカー、サービス・プロバイダー、およびサービス・リクエスター間の対話を表しています。

Web サービスの標準

インターネット標準の主要な属性の 1 つは、この標準が、 実装ではなくプロトコルに焦点を当てているというところにあります。 インターネットは、異機種混合のテクノロジーで構成されており、共用プロトコルによって、正常に相互運用しています。 これによって、個々のベンダーがインターネット上で 1 つの標準を強制することはなくなります。 オープン・ソース・ソフトウェア開発は、ベンダーによる標準の実装のインターオペラビリティーを維持するために、 重要な役割を担っています。

以下の標準は、Web サービスで重要な役割を果たしています - Universal Description, Discovery and Integration (UDDI)、 Web サービス記述言語 (WSDL)、Web サービス・インスペクション言語 (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 を参照してください。

SOAP は、HTTP およびその他のインターネット・プロトコルにおけるメッセージングに関する、XML ベースの標準です。 この標準は、非集中分散環境で情報交換するための単純なプロトコルです。 このプロトコルは、XML に基づき、以下の 3 つの部分で構成されています。
  • メッセージの内容およびその内容の処理方法を記述する、フレームワークを定義するエンベロープ。
  • アプリケーションで定義済みのデータ型のインスタンスを表現するエンコード規則の集合。
  • リモート・プロシージャー・コールおよび応答の表現規則。
SOAP が経路指定メッセージのメッセージ・パスを定義することによって、 ディスカバーされた Web サービスのバインディングおよび使用法が可能になります。 SOAP は、UDDI から Web サービスを照会するために使用できます。SOAP について詳しくは、www.w3.org/TR/SOAP を参照してください。

図 2. SOAP、UDDI、WSIL、および 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 サービス標準も、 Rational® Developer 製品でサポートされています。以下はその内容です。
JAX-RPC
JAX-RPC は XML ベース RPC 用 Java™ API (Java API for XML-based RPC) の略語です。JSR 101 と呼ばれる場合もあります。 これは、リモート・プロシージャー・コール (RPC) および XML を使用する Web サービスと Web サービス・クライアントを作成するための Java アプリケーション・プログラミング・インターフェース (API) と規則について記述する仕様です。 この仕様 は、Java から WSDL、WSDL Java へのマッピングを標準化し、Java プラットフォームで Web サービスおよび Web サービス・クライアントを 開発およびデプロイするためのコア API を提供します。 詳しくは、正式の仕様を参照してください。
JSR-109 および JSR-921
JSR 109 および JSR 921 (エンタープライズ Web サービスの実装) は、J2EE 環境 (具体的に言うと、Web、EJB、およびクライアント・アプリケーション・コンテナー) で Web サービスをデプロイしルックアップするためのプログラミング・モデルとランタイム・アーキテクチャーを定義します。 その主な目的の 1 つは、ベンダー間で実装を相互運用可能にすることです。 詳しくは、正式な仕様を参照してください。
WS-S
Rational Developer 製品は OASIS Web Services Security 1.0 標準をサポートしています。 この標準のさまざまなコンポーネントについて詳しくは、以下を参照してください。

Web サービスについて詳しくは、www.ibm.com/developerworks/webservices を参照してください。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005