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. サービスの役割および相互作用。
Web サービスについて詳しくは、www.ibm.com/developerworks/webservices を参照してください。