BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Web サービス プログラマーズ ガイド

 Previous Next Contents PDF で侮ヲ  

WebLogic Web サービスの概要

この章では、Web サービスの概要と WebLogic Server に実装する方法について説明します。

 


Web サービス

Web サービスは、分散型 Web ベース アプリケーションのコンポーネントとして共有および使用されるサービスのタイプです。これらのサービスは一般的に、CRM (又はカスタマ リレーションシップ マネージメント)、注文処理システムなどの既存のバックエンド アプリケーションとインタフェースします。

従来、ソフトウェア アプリケーション アーキテクチャは、メインフレーム上で実行する巨大なモノリシック システムまたはデスクトップ上で実行するクライアント アプリケーションの 2 つのカテゴリに分けられていました。これらのアーキテクチャはアプリケーションが扱うことを意図しているという目的においては効率よく機能しますが、閉鎖的で、Web の多様なユーザが簡単にアクセスすることができません。

ソフトウェア業界は、Web 上で動的に対話する疎結合なサービス指向アプリケーションの方向に向かっています。このアプリケーションは、大規模なソフトウェア システムを小規模なモジュラー コンポーネントまたは共有サービスに分割します。これらのサービスは別々のコンピュータ上に常駐することができ、多様なテクノロジを使用して実装できるにも関わらず、XML や HTTP などの標準の Web プロトコルを使用してパッケージ化され転送可能です。そのため、Web 上のすべてのユーザが簡単にアクセスできるようになります。

サービスの概念は新しいものではありません。RMI、COM、および CORBA は、すべてサービス指向テクノロジです。ただし、これらのテクノロジをベースにしたアプリケーションは、特定のベンダの特定のテクノロジを使用して記述されていることが要求されます。この要件は、一般的に Web 上のアプリケーションが広く受け入れられることの妨げになります。この問題を解決するために、Web サービスが異種環境から簡単にアクセスできるようにするための次の特性を共有するように定義されています。

 


Web サービスを使用する理由

Web サービスの主な利点は、次のとおりです。

Web サービスは、XML や HTTP などの標準の Web プロトコルを使用してアクセスされるので、Web 上の多様な異種アプリケーション (一般的に XML および HTTP を理解する) は自動的に Web サービスにアクセスでき、相互の通信が可能になります。

これらの異なるシステムには Microsoft SOAP ToolKit クライアント、J2EE アプリケーション、レガシー アプリケーションなどがあります。アプリケーション作成に使用されているプログラミング言語は、Java、C++、Perl などです。アプリケーションの相互運用性が Web サービスの目標であり、それは、パブリッシュされている業界標準をサービス プロバイダがどれだけ忠実に遵守しているかによって左右されます。

 


Web サービス規格

Web サービスは、次のコンポーネントで構成されています。

添付ファイル付き SOAP 1.1

SOAP (Simple Object Access Protocol) は、分散型環境で情報を交換するために使用する軽量 XML ベースのプロトコルです。WebLogic Server には、SOAP 1.1 仕様と添付ファイル付き SOAP 仕様のインプリメンテーションが含まれています。プロトコルの構成は以下のとおりです。

この情報は、HTTP またはその他の Web プロトコル上で転送可能な Multipurpose Internet Mail Extensions (MIME) エンコード パッケージ内に埋め込まれています。MIME は、非 ASCII メッセージをインターネット上で送信できるようにフォーマットするための仕様です。

注意: WebLogic Web サービスは SOAP 1.1 と 1.2 両方のリクエストを受け付けますが、作成するのは SOAP 1.1 の応答だけです。

次の例は、HTTP リクエスト内に埋め込まれている株取引情報用の SOAP リクエストを示しています。

POST /StockQuote HTTP/1.1
Host: www.sample.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastStockQuote xmlns:m="Some-URI">
<symbol>BEAS</symbol>
</m:GetLastStockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

WSDL 1.1

Web Services Description Language (WSDL) は、Web サービスを記述するための XML ベースの仕様です。WSDL ドキュメントは Web サービスによって提供されるメソッド、入力および出力パラメータ、および接続方法を記述します。

WebLogic Web サービスの開発者は、WSDL ファイルを作成する必要はありません。これらのファイルは WebLogic Web サービス開発プロセスの一部として自動的に生成されます。

次の例は参照用で GetLastStockQuote メソッドを含む株取引 Web サービス StockQuoteService を記述する WSDL ファイルを示しています。

<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://sample.com/stockquote.wsdl"
xmlns:tns="http://sample.com/stockquote.wsdl"
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
xmlns:xsd1="http://sample.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="GetStockPriceInput">
<part name="symbol" element="xsd:string"/>
</message>
<message name="GetStockPriceOutput">
<part name="result" type="xsd:float"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastStockQuote">
<input message="tns:GetStockPriceInput"/>
<output message="tns:GetStockPriceOutput"/>
</operation>
</portType>
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastStockQuote">
<soap:operation soapAction="http://sample.com/GetLastStockQuote"/>
<input>
<soap:body use="encoded" namespace="http://sample.com/stockquote"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://sample.com/stockquote"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
<soap:address location="http://sample.com/stockquote"/>
</port>
</service>
</definitions>

JAX-RPC

JAX-RPC は Sun Microsystems の仕様で、Web サービスを呼び出すクライアント API を定義します。

次の表で、JAX-RPC の中心的なインタフェースとクラスを簡単に説明します。

表1-1 JAX-RPC のインタフェースとクラス

javax.xml.rpc のインタフェースまたはクラス

説明

Service

主要なクライアント インタフェース。静的、動的呼び出しの両方で使用する。

ServiceFactory

Service インスタンスの生成に使用するファクトリ クラス。

Stub

Web サービスのオペレーションを呼び出すためのクライアント プロキシを表す。通常は、Web サービスの静的呼び出しに使用する。

Call

Web サービスを動的に呼び出すのに使用する。

JAXRPCException

Web サービスの呼び出し中にエラーが発生した場合に送出される例外。

JAX-RPC についての詳細は、Web サイト、http://java.sun.com/xml/jaxrpc/index.html を参照してください。

JAX-RPC を使用して Web サービスを呼び出す方法に関するチュートリアルについては、http://java.sun.com/webservices/docs/ea1/tutorial/doc/JAXRPC.html を参照してください。

UDDI 2.0

UDDI 仕様では、Web サービスの記述、既知のレジストリへの Web サービスの登録、他の登録済み Web サービスの検索などの標準的な方法が定義されています。

http://www.uddi.org を参照してください。

 


WebLogic Web サービスの機能

WebLogic Web サービス サブシステムには、以下の機能があります。

 


Web サービスの作成例および呼び出し例

WebLogic Server の WL_HOME\¥samples¥server¥src¥examples¥webservices ディレクトリには、WebLogic Web サービスの作成および呼び出しの方法として以下の例があります。WL_HOME は、WebLogic プラットフォームのメイン ディレクトリです。

上記の例の構築と実行についての詳細な説明は、次の Web ページを参照してください。

WL_HOME¥samples¥server¥src¥examples¥webservices¥package-summary.html

WebLogic Web サービスの作成と呼び出しの例は、このほかにも、Web Services dev2dev Download Page の Web サービスのページに掲載されています。

 


WebLogic Web サービスの作成 : 主な手順

以下は、WebLogic Web サービスを作成する高度な手順です。ほとんどの手順については、後述の章で詳しく説明します。

WebLogic Web サービスの作成 : 簡単な例,で、Web サービス作成例を簡単に説明します。

  1. WebLogic Web サービスを設計します。

    同期または非同期の Web サービスで、サービスを実装するバックエンド コンポーネントのタイプ、組み込みデータ型またはカスタム データ型のみを使用するサービスかどうか、送受信される SOAP メッセージをインターセプトする必要があるかどうか、などを決定します。

    WebLogic Web サービスの設計を参照してください。

  2. WebLogic Web サービスを実装します。

    Web サービスを構成するバックエンド コンポーネントの Java コードを記述します。必要であれば、SOAP メッセージをインターセプトする SOAP メッセージ ハンドラや XML と Java 間のデータ変換を行う独自のシリアライゼーション クラスなどを作成します。

    WebLogic Web サービスの実装を参照してください。

  3. WebLogic Web サービスをアセンブルし、パッケージ化します。

    すべての実装クラス ファイルを、適切なディレクトリ構造に収集して Web サービス デプロイメント記述子ファイルを作成し、サービスのサポート部分 (クライアント JAR ファイルなど) を作成し、すべてをデプロイメント EAR ファイルにパッケージ化します。

    簡素な Web サービスを作成する場合は、すべてのアセンブリ ステップを実行する servicegen Ant タスクを使用してください。やや複雑な Web サービスを作成する場合は、他の Ant タスクも使用するか、手動でアセンブルしてください。

    Ant タスクを使用した WebLogic Web サービスのアセンブルを参照してください。

  4. Web サービスにアクセスして Web サービスが期待通りに動作していることをテストするクライアントを作成します。Web サービス ホーム ページを使用して、作成した Web サービスをテストすることもできます。

    Web サービスの呼び出しを参照してください。

  5. WebLogic Web サービスをデプロイします。

    Web サービスをリモート クライアントで使用できるようにします。WebLogic Web サービスは標準 J2EE エンタープライズ アプリケーションとしてパッケージ化されているため、Web サービスのデプロイはエンタープライズ アプリケーションのデプロイと同じです。

    「デプロイメント」を参照してください。

  6. 必要であれば、Web サービスを UDDI レジストリでパブリッシュすることができます。UDDI を使用した Web サービスのパブリッシュと検索を参照してください。

 


バージョン 6.1、7.X の WebLogic Web サービスの相違点

WebLogic Web サービスは、WebLogic Server バージョン 6.1 とバージョン 7.X では異なっています。

 


サポートされていない機能

WebLogic Server では、以下の WSDL スキーマおよび XML スキーマの機能はサポートされていません。

 


XML ファイルの編集

WebLogic Web サービスを作成する際または呼び出す際は、web-services.xml Web サービス デプロイメント記述子ファイル、EJB デプロイメント記述子、Java Ant ビルド ファイルなどの XML ファイルを編集しなければならない場合があります。これらのファイルは、BEA XML エディタを使用して編集します。

注意: このマニュアルでは、ファイルおよび各要素で Web サービスがどのように記述されているかについて、プログラマの理解を助けるために、web-services.xml デプロイメント記述子を手動で作成、更新する方法について説明します。BEA XML エディタは、ファイルの更新にも使用できます。

BEA XML エディタは、XML ファイルを作成および編集するためのシンプルでユーザフレンドリな Java ベースのツールです。このツールでは、XML ファイルの中身を、階層的な XML ツリー構造と実際の XML コードの両方で表示します。このように、ドキュメントが 2 通りの方法で表示できるため、XML ドキュメントの編集には 2 つのオプションがあります。

BEA XML エディタは、指定した DTD または XML スキーマを基に XML コードを検証します。

使用方法の詳細については、BEA XML エディタのオンライン ヘルプを参照してください。

BEA XML エディタは、dev2dev Online からダウンロードすることができます。

 

Back to Top Previous Next