First Previous Next Last 開発ガイド  05/16/03 09:21:28 

第8章    Webサービスの概要

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

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

 
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サービスおよびWorkbench

Novell exteNd Workbenchは、JAX-RPC標準に基づいてWebサービスを作成、配備、および維持するためにプロバイダが使用できるJ2EE指向のIDEです。つまり、Webサービスは、J2EE互換サーバに配備できるJ2EE WAR (Web Archive)にパッケージ化されます。また、Workbenchは、JAX-RPCに準拠するJavaベースのWebサービスコンシューマを開発するために使用することもできます。

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

機能

説明

jBroker\xaa Web

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

Web Serviceウィザード

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

Registry Manager

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

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

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

 
Top of section

jBroker\xaa Web

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

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

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

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

 
Top of section

Web Serviceウィザード

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

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

devWebServicesRemoteInterface

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

 
Top of section

Registry Manager

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

For more information    詳細については、『ツールガイド』の章「 Registry Manager」を参照してください。

 
Top of section

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

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

For more information    詳細については、『ツールガイド』の章「 WSDLエディタ」を参照してください。

    First Previous Next Last 開発ガイド  05/16/03 09:21:28 

Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.