サービス指向アーキテクチャーへの Web サービス・アプローチ
サービス指向アーキテクチャー (SOA) 環境で Web サービスを使用できます。
Web サービスを使用して SOA を実装できます。Web サービスで主要な点は、 プラットフォームとプログラム言語から独立した標準インターネット・プロトコルを介してアクセスできる、 機能的なビルディング・ブロックを作成することです。 これらのサービスは、新規アプリケーションであることも、 あるいはそれらをネットワーク対応にするために、 既存のレガシー・システムを改良しただけのものであることもあります。 サービスは、別のサービスに依存して、その目標を達成できます。
- サービス・プロバイダー。
サービス・プロバイダーは、Web サービスを作成し、 そのインターフェースを公開して、サービス・レジストリーへの情報にアクセスします。 各プロバイダーは、公開するサービス、セキュリティーと利便性をトレードオフする方法、 サービスに価格を付ける方法、または無料サービスを他の価値のために利 用する方法を決定する必要があります。 プロバイダーは、所定のブローカー・サービスに対してサービスをリストする際のカテゴリーと、 サービスを使用するために必要な取引先の契約の種類も決定する必要があります。
- サービス・ブローカー。
サービス・ブローカー (サービス・レジストリー とも呼ばれる) は、 Web サービス・インターフェースおよび実装アクセス情報を、 潜在的なすべてのサービス・リクエスターに使用できるようにする役割があります。 ブローカーのインプリメンターは、ブローカーのスコープを決定します。 パブリック・ブローカーがインターネット全体で使用可能であるのに対して、 プライベート・ブローカーには限定された対象者 (例えば、社内イントラネットのユーザー) しかアクセスできません。 さらに、提供される情報の量についていくつかの決定を行う必要があります。 一部のブローカーは、リスト内容の多さを専門にしています。 信頼性の高いリスト・サービスを提供するブローカーもあります。 また、幅広いサービスをカバーするブローカーもあれば、業界内に焦点を当てるブローカーもあります。 一部のブローカーは、他のブローカーをカタログします。 ビジネス・モデルによっては、 ブローカーは検索要求、リストの数、またはリストの精度を最大化 を試行できます。 Universal Description, Discovery and Integration (UDDI) 仕様には、 Web サービスに関する情報を公開したり、検出したりする方法が定義されています。
- サービス・リクエスター
サービス・リクエスター、すなわち Web サービス・クライアントは、 その Web サービスのいずれかを呼び出すために、 さまざまな検索操作を使用してブローカー・レジストリー内の項目を検索した後、 サービス・プロバイダーにバインドします。

SOA の特性:
- クライアントはサービスに結合されます。 したがって、サーバーの統合は、クライアント・アプリケーション・プログラムの有効範囲外で行なわれます。
- 新旧の機能ブロック、すなわちアプリケーションとシステムは、 サービスとして機能するコンポーネントにカプセル化されます。
- 機能コンポーネントとそのインターフェースが分離されるため、 新規インターフェースをより容易に接続できます。
- 複合アプリケーション内で、ビジネス・プロセスの制御を分離できます。 ビジネス・ルール・エンジンを取り込んで、 定義済みビジネス・プロセスのワークフローを制御することができます。 このエンジンは、ワークフローの状態によって、それぞれのサービスを呼び出します。
- サービスは、実行時に動的に取り込むことができます。
- バインディングは、構成ファイルを使用して指定されるため、 新しいニーズに容易に適用することができます。
サービス指向アーキテクチャーのプロパティー:
- Web サービスは自己完結型 (self-contained) です。
クライアント・サイドでは、ソフトウェアを追加する必要はありません。 開始に際しては、 Extensible Markup Language (XML) および HTTP クライアントをサポートするプログラム言語を使用すれば十分です。 サーバー・サイドで必要なのは、Web サーバーと SOAP サーバーです。 コードを 1 行も作成せずに、 既存のアプリケーションを Web サービス用に使用可能にすることができます。
- Web サービスは自己記述型です。
クライアントとサーバーのいずれも、 要求と応答メッセージのフォーマットと内容以外は何も認識せず、管理しません。(疎結合アプリケーション統合) メッセージ・フォーマットの定義は、 メッセージとともに伝送されます。 外部メタデータ・リポジトリーやコード生成ツールは必要ありません。
- Web サービスは、インターネットを介した公開、検索、および呼び出しが可能です。
このテクノロジーは、確立された軽量のインターネット基準 (HTTP など) を使用して、 既存のインフラストラクチャーを活用します。 必要なその他の標準としては、 SOAP、Web サービス記述言語 (WSDL)、および UDDI があります。
- Web サービスは言語に非依存であり、相互運用が可能です。
クライアントとサーバーは、異なる環境に実装することができます。 Web サービス対応にするために既存のコードを変更する必要はありません。
- Web サービスは本質的にオープンであり、業界標準です。
XML および HTTP は、Web サービスの主な技術基盤です。 Web サービス・テクノロジーの大部分は、オープン・ソース・プロジェクトを使用して構築されています。
- Web サービスは動的です。
動的 e-business は、Web サービスを使用して実現されます。 これは、UDDI と WSDL では、Web サービスの記述とディスカバリーを自動化できるためです。
- Web サービスは構成可能です。
単純な複数の Web サービスは、ワークフロー技法の使用、 あるいは Web サービス実装からの下位層の Web サービスの呼び出しにより、 より複雑なサービスへと集約できます。 Web サービスを 1 つにチェーニングすると、 より高水準のビジネス機能を実行できます。 このチェーニングにより、開発時間が短縮され、 最良の実装が可能になります。
- Web サービスは疎結合です。
従来のアプリケーション設計では、 両端での緊密な相互接続に依存していました。 Web サービスでは、より単純なレベルでの調整を行う必要があります。 これにより、サービスの統合をより柔軟に再構成することがサポートされるようになります。
- Web サービスはプログラマチックなアクセスを提供します。
このアプローチは、グラフィカル・ユーザー・インターフェースを提供せず、 コード・レベルで作動します。 サービス利用者は、Web サービスへのインターフェースを把握している必要がありますが、 サービスの実装の詳細は知らなくてもかまいません。
- Web サービスは、既存のアプリケーションをラップする機能を提供します。
既存のスタンドアロン・アプリケーションは、Web サービスをインターフェースとして実装することにより、SOA に容易に統合することができます。