Web サービスの内容

以下のトピックでは、Web サービスがどのようなものか、Web サービスの基盤となる基本的な技術、WebLogic Workshop で構築するWeb サービスが真にエンタープライズ レベルの Web アプリケーションである理由について説明します。

Web サービスとネットワーク

Web サービスは基本的に、標準的な方法で、ソフトウェア アプリケーションのリソースをネットワーク上で利用できるようにするものです。インターネット ブラウザのような他の技術でも、この点は同じでした。ブラウザでは、HTTP や HTML のような標準のインターネット技術を使用して、Web ページを利用できるようにします。ただし、一般にこれらの技術は、人間であるユーザが Web サーバ上のデータを自分で表示するための方法として使用されており、アプリケーション同士の通信や統合には適していません。Web サービスの技術が新しく画期的なのは、ソフトウェアが相互に対話したり、互いのリソースを利用したりできるようになる点です。Web サービスの技術を導入すると、2 つのアプリケーションが異なるオペレーティング システム上で稼動し、異なる言語で記述されていても、一方のアプリケーションが他方のアプリケーションを呼び出して、単純な作業や複雑な作業を実行することができます。つまり、Web サービスでは、すべてのクライアント アプリケーションが、その内部の実装にかかわらず、Web サービスで提供されるリソースを操作したり利用したりできます。

基本的な技術

Web サービスは以下の通信基準に準拠しているため、一般的なアクセス方法でリソースを公開できます。

  1. Web サービスはその機能を WSDL ファイルに記述して公開します。

  2. Web サービスは XML メッセージを使用して他のアプリケーションと通信します。

  3. Web サービスは HTTP のような標準的なネットワーク プロトコルを使用します。

WSDL

Web Service Description Language(WSDL)ファイルとは、Web サービスの処理方法や、他のソフトウェア アプリケーションが Web サービスに接続する方法を記述したものです。WSDL ファイルは Web サービスの取扱説明書と考えてください。この取扱説明書には Web サービスで提供されるリソースをユーザが利用する方法が述べられています。通常 WSDL はアクセスできるように公開され、潜在的なクライアントが WSDL ファイルを読み取るだけでサービスの処理方法を理解できるように詳細が提供されます。英語の文をフランス語に翻訳する Web サービスの場合、WSDL ファイルでは、英語の文を Web サービスに送信する方法や、フランス語の翻訳が要求したクライアントに返される方法を記述します。WSDL ファイルの詳細については、WSDL ファイル : Web サービスの記述を参照してください。

XML と SOAP

Extensible Markup Language(XML)メッセージは、異なるアプリケーション同士がネットワーク上で対話するための共通の言語を提供します。Web サービスを処理する場合、ユーザは Web サービスに対して処理の実行要求を含んだ XML メッセージを送信し、Web サービスはその処理の結果を含む別の XML メッセージを返信します。通常、これらの XML メッセージは SOAP 構文に従ってフォーマットされます。

Simple Object Access Protocol(SOAP)では、アプリケーションが互いのメソッドを呼び出し、データを相互に受け渡すための標準の形式を指定します。Web サービスの特定の要件によっては、SOAP 以外の形式の XML メッセージも使用できます。ただし、いずれの場合でも、XML メッセージの種類や必要な構文は WSDL ファイルでわかるため、適切な XML メッセージを送信および受信できるすべてのクライアント アプリケーションから Web サービスに広くアクセスすることができます。XML の詳細については、XML の概要を参照してください。

HTTP

インターネットや企業内イントラネットのようなネットワークを通じて他のアプリケーションにアクセスするために、Web サービスでは HyperText Transfer Protocol(HTTP) や Java Message Service(JMS)などの広く普及したプロトコルを使用して、要求の受信と応答の返信を行います。

Web サービスのアーキテクチャ

以下の図では、Web サービス(中央)、クライアント ソフトウェア アプリケーション(左)、データベースや他の Web サービスなど Web サービスが使用するリソース(右)の関係を示しています。Web サービスは、HTTP などの標準プロトコルを介して XML メッセージを交換することにより、クライアントやリソースと通信します。Web サービスがデプロイされている WebLogic Server は、ユーザが記述した Web サービスのコードに、受信する XML メッセージをルーティングします。Web サービスはインタフェースを記述した WSDL ファイルを公開し、他の開発者は WSDL を使用して、サービスにアクセスするようにコンポーネントを記述できます。

 

  

Web サービスのその他の特徴

Web サービスには以下のような特徴があるため、インターネットやイントラネット上の統合システムの構築に非常に適しています。

再利用性

他のコンポーネント技術と同様に、いったんコードを記述して Web サービスとして公開したら、そのコードはさまざまなアプリケーションから繰り返し使用できます。コードを記述しテストした後は、新しいアプリケーションでそのコードを簡単に使用できます。Web サービスは標準の XML プロトコルを使用しているため、そのコンポーネントは、従来のコンポーネント ベース技術のものよりも、一層幅広いユーザから利用される可能性があります。

柔軟性

Web サービスは、データの小さな断片ではなく拡張可能な XML ドキュメントを使用して通信するため、時間の経過に伴うデータや内容の変更にも容易に対応できます。また、ネットワーク上の 1 つのメソッド呼び出しに、多数のアクティビティを組み込みやすくなります。特にインターネットや企業のワイド エリア ネットワーク(WAN)のようなレイテンシの大きいネットワークでは、アプリケーションの効率性が大幅に向上します。

標準ベース

Web サービスは HTML や XML などの標準技術に基づいて構築されます。すべての Web サービス メッセージは SOAP という標準の XML メッセージング プロトコルで交換され、Web サービスのインタフェースは WSDL 標準のドキュメントで記述されます。これらの標準はすべて、Web サービスが構築されるプラットフォームとは完全に独立しています。

WebLogic Workshop とエンタープライズ Web サービス

WebLogic Workshop は、WebLogic Server の能力や信頼性、スケーラビリティが自動的に活用される Web サービス アプリケーションを、簡単に構築するための包括的なフレームワークです。さらに Workshop は、XML メッセージを介した通信、Web サービスの記述(WSDL ファイル)の作成、エンタープライズ レベルのバック エンド リソースへのアクセスなどに関する低レベルの詳細から開発者を分離します。

WebLogic Workshop は、エンタープライズで Web サービスを使用する際の要件に対応するため、追加の Web サービス機能も提供します。特に、WebLogic Workshop は以下のような特性を備えた Web サービスの構築に役立ちます。

非同期

多くのビジネス プロセスは完了するまでに一定の時間がかかりますが、従来のアーキテクチャでは長期間の処理を効率的に扱うことが困難でした。WebLogic Workshop では、会話とコールバックという概念を導入して、非同期 Web サービスを容易に構築できるようにしました。メッセージ同士の相関、メッセージ交換中の情報やステートの管理といった非同期メッセージングの一般的な問題は、会話によって管理できます。また、コールバックを使用して、処理の結果が用意されたことを Web サービスからクライアントに通知することができます。コールバックとは、Web サービスからクライアントに送信される Web サービスのメッセージです。この 2 つの機能を利用すると、長期間のビジネス プロセスを効率的かつ簡単に実装できます。

さらに WebLogic Workshop では、サーバの負荷にかかわらず Web サービスのメッセージが消失しないようにするため、メッセージ バッファとして JMS キューの使用をサポートしています。JMS は WebLogic Workshop Web サービスがバック エンド リソースと通信する際にも使用されます。

疎結合

Web サービスは本質的に疎結合です。つまり、情報は XML で交換され、それによって、Web サービスのクライアントと Web サービスの内部の実装は分離されます。このため Web サービスでは、ユーザと Web サービスの対話方法を決定するインタフェースまたは「パブリック コントラクト」を記述します。コントラクトで記述されたメッセージとインタフェースが守られる限り、Web サービスの内部実装(またはクライアント)は自由に変更できます。コントラクトを維持するには、Java から XML へ(または XML から Java へ)のマップ方法を変更するための単純な技術が必要です。内部実装が変更された場合に、最低限の作業で Web サービスのパブリック コントラクトを維持できるようにするためです。

信頼性、可用性、スケーラビリティ

WebLogic Workshop の Web サービスは作成が簡単ですが、最終的には標準の J2EE アプリケーションにコンパイルされます。つまり、作成される Web サービスは、WebLogic 上で稼動する J2EE アプリケーションで要求されてきた信頼性、スケーラビリティ、可用性のすべてを備えています。こうした特性はエンタープライズにデプロイされる Web サービスにとって絶対的な要件です。

複数のプロトコル

WebLogic Workshop では、HTTP で実行される Web サービスだけでなく、JMS キューを利用した Web サービスも作成できます。従って、Web サービスを使用して内部システムやイントラネットのリソースと簡単に通信できます。

関連トピック

WebLogic Workshop で Web サービスを構築する