第7章

Webサービスの基本事項

Webサービスは、ソース言語、オペレーティングシステム、またはアプリケーション機能の作成に使用されるハードウェアに関係なく、ビジネス間でアプリケーション機能を共有できるようにします。Webサービスでは、「標準のインターネットプロトコル」および「XMLベースのメッセージング」を使用してコンポーネント間での通信を可能にすることによって、実装における非互換性を解決します。

この章では、Webサービス技術の概要について紹介し、Webサービスの開発および使用に対するNovell exteNd Director 開発環境サポートについても説明します。トピックは次のとおりです。

 
Top of page

Webサービスについて

Webサービスは、標準化されたXMLベースのメッセージングプロトコルであるSOAP (Simple Object Access Protocol)を使用してWeb上でアプリケーション機能にアクセス可能な、モジュラーソフトウェアコンポーネントです。

アプリケーションでは、「HTTP要求および応答」に埋め込まれた「SOAPメッセージ」を使用してプロシージャコールおよび応答が処理される点以外はリモートプロシージャコールのようなWebサービスを呼び出します。つまり、アプリケーションでは、HTTP要求に埋め込まれたSOAPメッセージを、Webサービスに関連付けられているWebの場所に送信することによって、そのサービスを呼び出します。Webサービスでは、そのメッセージに対するアプリケーションロジックを実行した後、HTTP応答に埋め込まれた別のSOAPメッセージの形式でアプリケーション出力を返します。

For more information    SOAPメッセージの詳細については、www.w3.org/TR/SOAPを参照してください。

 
Top of page

Webサービスプロバイダ、コンシューマ、およびレジストリ

Webサービスアーキテクチャは、通常Webサービスのプロバイダ、コンシューマ、およびレジストリで構成されます。

devWebServicesArchitecture

Webサービス「プロバイダ」は、Webサービスを作成してホストする組織です。一般的に、プロバイダは、組織に関する情報や、Webサービスレジストリで提供されるサービスに関する情報を発行します。Webサービスレジストリは、組織のメンバーや他のビジネスが照会することが可能です。

Webサービス「コンシューマ」は、(通常は、Webサービスレジストリを照会して) Webサービスを検索した後、プロバイダとの接続を確立することによってサービスを実行します。これは、Webサービスとの「バインド」と呼ばれます。

Webサービスの「レジストリ」は、プログラム的な発行インタフェースおよび照会インタフェースによって、プロバイダおよびコンシューマが簡単にアクセスできるビジネス情報やサービス情報の集合です。

 
Top of page

Webサービスの提供

Webサービスプロバイダは、次の内容を実行します。

  1. Webサービスコンポーネントを作成して展開する

  2. Webサービスを説明するWSDLファイルを作成する

  3. 将来のコンシューマが検索して使用できるように、Webサービスに関する情報を発行する

 
Top of section

Webサービスコンポーネントの作成

プロバイダは、Webアプリケーションサーバを通常は使用して、アプリケーションロジックコンポーネントを作成し、ネットワークアクセス可能な場所に展開します。このようなロジックコンポーネントをWebサービス内に作成するために、プロバイダは、明確に定義されたSOAPメッセージを含むHTTP要求で適切なWebサービス機能を呼び出すことを可能にする「SOAPメッセージ処理インタフェース」を作成して展開します。

HTTP要求に埋め込まれたSOAPメッセージを送信することにより、コンシューマアプリケーションにサービスへのアクセスが提供されると、プロバイダは、アプリケーションロジックを実行して、HTTP応答に埋め込まれた別のSOAPメッセージにアプリケーション出力を返します。たとえば次のように使います。

devWebServiceProviderBind

 
Top of section

WSDLファイルの作成

Webサービスに関する情報を標準の形式で指定するために、プロバイダは、Webサービスの特徴を説明したWSDL (Web Services Description Language)ドキュメントを作成します。WSDLは、次の要素を使用してWebサービスを説明するXMLベースの形式です。

要素

含まれる定義

タイプ

メッセージコンテンツ内で指定されるデータタイプ

メッセージ

メッセージのデータ形式

ポートタイプ

エンドポイントのタイプおよびサポートされている操作

バインド

特定のポートタイプに対するメッセージ形式およびプロトコル詳細

ポート

各エンドポイントのネットワークアドレス

サービス

関連するエンドポイントのグループ

WSDLでは、「エンドポイント」によって、ネットワークアドレスだけでなく、そのアドレスで交換されるメッセージのプロトコルおよびデータ形式も指定されます。

WSDL仕様の柔軟性を考えると、WSDLドキュメントの情報は複雑になる場合があります。より簡単に理解するために、WSDLドキュメントは、本質的にWebサービスのインタフェースおよびポートの場所を指定するものであると見なすことができます。

For more information    WSDLの詳細については、www.w3.org/TR/wsdlを参照してください。

 
Top of section

Webサービス情報の発行

Webサービスを作成して展開すると、プロバイダは、1つまたは複数のレジストリでサービスやプロバイダ組織に関する情報を発行できます。この結果、将来のコンシューマは、使用可能なサービスを検索して、その使用方法について理解することができるようになります。

For more information    詳細については、Webサービスレジストリの使用を参照してください。

Webサービス情報を発行する別の方法は、Webページ、電子メール、個人通信などを使用して特定のコンシューマに情報を直接提供することです。これは、「直接発行」と呼ばれます。

 
Top of page

Webサービスの使用

Webサービスコンシューマは、Webサービスを使用するアプリケーションを作成します。通常、コンシューマは、Webサービスレジストリを照会することによって適切なWebサービスを検索します(Webサービスレジストリの使用を参照)。

提供されたWSDL情報から、コンシューマは、Webサービスの使用に必要な「SOAPメッセージ処理コード」を作成できます。コンシューマアプリケーションによってWebサービスが呼び出されると、SOAPメッセージ処理コードは、次のようにサービスに「バインド」されます。

  1. プロバイダへのHTTP接続を確立する

  2. 適切なWebサービスアプリケーションロジックを呼び出すようにプロバイダに通知する、HTTP要求に埋め込まれたSOAPメッセージを作成および送信する

  3. HTTP応答にSOAPメッセージが含まれる場合は、メッセージを(コンシューマアプリケーションで認識できるデータ形式に)変換してから、そのデータをアプリケーションに返す

コンシューマアプリケーションでは、これはリモートメソッドの呼び出しに類似しています。ただし、アプリケーションコードとWebサービスの間での通信には、標準のHTTP要求および応答に埋め込まれたSOAPメッセージが使用されます。たとえば次のように使います。

devWebServiceConsumerBind

 
Top of page

Webサービスレジストリの使用

Webサービスレジストリは、ネットワーク上でプログラム的にアクセスできるWebサービス情報のリポジトリです。プロバイダおよびコンシューマの両方がWebサービスレジストリを使用できます。

 
Top of section

レジストリについて

レジストリには、次のような情報を含めることができます。

カテゴリ

含まれる情報

ビジネス情報

名前、業種または製品カテゴリ、地理的位置、および企業ID番号(NAICSやDUNS番号など)

Webサービス情報

概要、ビジネスプロセスまたはカテゴリ、および技術情報(特定のビジネスのWebサービスへの接続と通信に関するもの)

ビジネスサービス情報

企業ホームページのURL、販売およびテクニカルサポートの連絡先情報、Web上でホストされていないビジネスサービスなど

指定ポインタ

サービスや他の技術ドキュメントに対するWSDLのURLアドレス

 
Top of section

レジストリデータ形式

レジストリには、ビジネスやサービスに関する情報が、UDDI (Universal Description, Discovery and Integration)またはebXML (Electronic Business XML)などの標準化されたXMLベースの形式で保存されます。レジストリをホストしているビジネスは通常、レジストリに発行してレジストリを照会するためのWebページ、GUI、またはプログラム的なインタフェースを提供します(その結果、プロバイダおよびコンシューマは、内部レジストリ実装に関する詳細を把握する必要がなくなります)。

For more information    UDDIの詳細については、www.uddi.orgを参照してください。ebXMLの詳細については、www.ebxml.orgを参照してください。

 
Top of section

パブリックレジストリおよびローカルレジストリ

ビジネスでは、パブリックレジストリまたはローカルレジストリを使用します。

 
Top of page

Webサービスについてさらに学習するには

特定のWebサービス技術の詳細について参照できるWebサイトは、次のとおりです。

トピック

サイト

SOAP

www.w3.org/TR/SOAP

HTTP

www.w3.org/Protocols

WSDL

www.w3.org/TR/wsdl

UDDI

www.uddi.org

ebXML

www.ebxml.org

 
Top of page

一般的なWebサービスの実装

基盤となるWebサービス技術(SOAP、WSDL、UDDI、ebXMLなど)について理解しておくことは重要ですが、そのようなレベルでのアプリケーションを開発は、たいていの場合効率的ではありません。そのため、これらの技術を一般的な構成要素にまとめることによって使いやすくなるように、より高いレベルでの実装が提供されています。実装には、次のものが含まれます。

たとえば、J2EEに精通したプログラマは、JAX-RPC実装を使用して、さらに簡単にWebサービスを開発したり、Webサービスにアクセスしたりできます。 SOAPについて熟知したり、手動でSOAPメッセージを処理する必要はありません。

Webサービスは、適切に設計および作成された場合、異なる実装間で「相互運用が可能」になります。たとえば、JAX-RPCクライアントでは.NET Webサービスにアクセスでき、.NETクライアントではJAX-RPC Webサービスにアクセスできるようになります。

 
Top of page

Webサービス展開ツール

exteNd Director 開発環境には、JAX-RPC標準に準拠したWebサービスを作成、展開、保守するためのツールがあります。すなわち、WebサービスはJ2EE Webアーカイブ(WAR)の形にアーカイブ化し、J2EEサーバに展開できます。また、JAX-RPCに準拠した、JavaベースのWebサービスコンシューマも開発できます。

WebサービスおよびWebサービスコンシューマを実装できるようにするために、開発環境では次のようなコア機能が備えられています。

機能

説明

WebサービスSDK

JAX-RPCに基づくコンパイラおよびSOAPランタイムを含む、exteNd Webサービスサポートのコア技術

Webサービスウィザード

WebサービスSDKコンパイラを呼び出して、WebサービスやWebサービスコンシューマに対してJavaクラスおよびWSDLファイルを生成できるようにするツール

レジストリマネージャ

Webサービスレジストリを照会および発行するためのツール

WSDLウィザードおよびWSDLエディタ

WSDLファイルを作成および編集するためのツール

exteNd Directorには、Webサービスの長所を充分に活かしたアプリケーションを容易に開発できるよう、上記以外にも高度な機能が組み込まれています。

For more information    上記以外のexteNd DirectorのWebサービス機能については、『Pageflow and Form Guide』を参照してください。

 
Top of section

WebサービスSDK

Novell exteNd WebサービスSDKは、Webサービスのプロバイダアプリケーションおよびコンシューマアプリケーションを開発して実行するための「コンパイラ」および「ランタイム環境」を含むJAX-RPC実装です。

Webサービスウィザードでは、WebサービスSDKコンパイラを使用して、Webサービスコンポーネント(スケルトン、結合、スタブ)およびWSDLファイルを作成します。開発者は、これらのコンパイラをコマンドラインから個別に呼び出すこともできます。

プロバイダとコンシューマは、必要なランタイム環境を提供するために、両方とも、アプリケーションでwssdk.jar(および一部のサポートJAR)を展開します。これには、スタブコンポーネントおよびスケルトンコンポーネントがSOAPメッセージをコンシューマアプリケーションとプロバイダアプリケーション間で渡される際に実行されるSOAPエンジンが含まれます。

For more information    詳細については、Web Services SDKヘルプを参照してください。

 
Top of section

Webサービスウィザード

Webサービスウィザードを使用すると、JavaクラスまたはWSDLファイルからWebサービスコンポーネントを作成できます。Webサービスウィザードでは、オブジェクトにアクセスするための「リモートインタフェース」だけでなく、コンシューマアプリケーションとWebサービス間でのSOAPメッセージ通信を処理する「スケルトン」Javaクラス、「結合」Javaクラス、および「スタブ」Javaクラスも生成します。生成されたコードは、JAX-RPCに基づきます。

プロバイダは、WAR (Web Archive)としてWebサービスを展開します。WARでは、スケルトンクラスおよび結合クラスによって、着信SOAPメッセージを処理する「サーブレット」が実装されます。コンシューマアプリケーションでは、SOAPメッセージをサーバに送信するスタブクラスのメソッドを呼び出すことによって、Webサービス機能にアクセスします。

devWebServicesRemoteInterface

For more information    詳細については、次を参照してください。

 
Top of section

レジストリマネージャ

レジストリマネージャは、プロバイダがWebサービスレジストリに発行できるようにし、コンシューマが、Webサービスレジストリを照会できるようにします。

For more information    詳細については、を参照してください。

 
Top of section

WSDLウィザードおよびWSDLエディタ

WSDLウィザードを使用すると、プロバイダは新しいWSDLドキュメントを作成できます。また、WSDLエディタを使用すると、プロバイダは既存のWSDLドキュメントを編集して使用できます。

For more information    詳細については、を参照してください。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...