WebLogic Web サービス入門

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WebLogic Web サービスでサポートされる標準

Web サービスの標準を定義する仕様の多くは、業界全体で幅広く使用できるように記述されています。そのため、Oracle による特定の仕様の実装では、その仕様で考慮されているすべての使い方がサポートされていない場合もあります。

Oracle では、Web サービス仕様の考え得るあらゆる使用事例をサポートするよりも、Web サービス プラットフォームの相互運用性の方をより重要視しています。Web Services Interoperability Organization の Basic Profile 1.1 および Basic Security Profile 1.0 仕様に準拠し、それを Web サービス相互運用性の基準と見なしています。このガイドでは必ずしも Basic Profile 1.1 および Basic Security Profile 1.0 のすべての要件が説明されているわけではありません。ただし、Basic Profile 1.1 および Basic Security Profile 1.0 の要件を超えた機能が説明されています。

次の表に、Oracle 実装の一部として提供される Web サービス仕様を機能別にまとめます。

表 3-1 Web サービス仕様の Oracle 実装
機能
仕様
説明
メタデータ アノテーションに基づくプログラミング モデルとランタイム アーキテクチャ
WebLogic Server などの Java EE アプリケーション サーバで実行する Web サービスを Java で実装するためのプログラミング モデルとランタイム アーキテクチャ。
Web サービスのプログラミングを容易にするために、Java Web サービス (JWS) ファイルで使用できる標準アノテーション。
プログラミング API
Java Web サービスのコーディング、構築、デプロイメントに使用する標準ベースの API。統合されたスタックには、JAX-WS 2.1、JAXB 2.1、および SAAJ 1.3 が含まれます。
XML ベースのリモート プロシージャ呼び出し (RPC) に使用する Java API。
データ バインディング
XML スキーマを Java コード内の表現にバインドするために使用する実装。JAXB は、JAX-WS Web サービスでのみサポートされます。
XML スキーマを Java 型にバインドし、さまざまな方法で XML データにアクセスするための技術。XMLBeans は、JAX-RPC Web サービスのデフォルトのバインディング技術です。
Web サービスの記述
Web サービスを記述するための XML ベースの仕様。
Web サービスのポリシーを記述して通信するための、汎用的なモデルと対応する構文。
ポリシーに使用する抽象モデルと XML ベースの式の文法。
Web サービスとリクエストを行ったクライアントの間のデータ交換
分散型環境で情報を交換するために使用する軽量 XML ベースのプロトコル。
SOAP 1.1 仕様および SOAP with Attachments 仕様に準拠したメッセージの作成と消費に使用する実装。
セキュリティ
メッセージの内容の整合性と機密性を確保するセキュアな Web サービスを構築する際に使用できる SOAP (SOAP11、SOAP12) の拡張機能の標準セット。
WS-Policy フレームワークで使用するセキュリティ ポリシー アサーションのセット。
非同期通信
Web サービスとメッセージのアドレッシングを行うための、転送に依存しないメカニズム。
ソフトウェア コンポーネント、システム、またはネットワークに障害が発生した場合に、別々の WebLogic Server インスタンス上で動作する 2 つの Web サービスが確実に通信するため実装。この仕様は、JAX-RPC でのみサポートされます。
WS-Policy および WS-ReliableMessaging で使用する信頼性のあるメッセージングのためのドメイン固有のポリシー アサーション。
Web Services Security (WS-Security) 1.1 に基づく拡張。これらの拡張により、非同期通信を安全に実行できます。
Web Services Security (WS-Security) 1.1 および Web Services Trust Language (WS-Trust) 1.3 に基づく拡張。これらの拡張により、非同期通信を安全に実行できます。
公開 (登録と検索)
Web サービスの記述、既知のレジストリへの Web サービスの登録、他の登録済み Web サービスの検索など行う際の標準。
種類の異なる XML レジストリへのアクセスに使用する共通の標準 Java API。

以降の節では、これらの仕様について詳しく説明します。なお、仕様はアルファベット順に並べてあります。これら以外に WebLogic Web サービスでサポートされる仕様については、「WebLogic Web サービスでサポートされるその他の仕様」を参照してください。

JAX-WS 2.1 RI/JDK 6.0 の拡張に関する注意事項

このドキュメントで説明する API のサブセット (たとえば、com.sun.xml.ws.developer API) は、Sun Microsystems が提供する JDK 6.0 または JAX-WS 2 1 Reference Implementation (RI) の拡張としてサポートされます。これらの API は JDK 6.0 や WebLogic Server ソフトウェアの一部としては提供されないため、変更される可能性があります。以下にこのような API の例を示します (これらに限定されるものではありません)。

com.sun.xml.ws.api.server.AsyncProvider
com.sun.xml.ws.client.BindingProviderProperties
com.sun.xml.ws.developer.JAXWSProperties
com.sun.xml.ws.developer.SchemaValidation
com.sun.xml.ws.developer.SchemaValidationFeature
com.sun.xml.ws.developer.StreamingAttachment
com.sun.xml.ws.developer.StreamingAttachmentFeature
com.sun.xml.ws.developer.StreamingDataHandler

 


Apache XMLBeans 2.0

Apache XMLBeans 2.0 は、XML スキーマを Java 型にバインドし、さまざまな方法で XML データにアクセスするための技術を提供します。XMLBeans では、XML インスタンス データにアクセスして変更するための Java インタフェースおよびクラスを、XML Schema を使用してコンパイルします。XMLBeans は、JAX-RPC Web サービスのデフォルトのバインディング技術です。

 


Java API for XML Registries (JAX-R) 1.0

Java API for XML Registries (JAXR) は、さまざまな XML レジストリにアクセスするための共通の標準 Java API を提供します。XML レジストリは、Web サービスの構築、デプロイ、検索を可能にするインフラストラクチャです。

現在、XML レジストリのさまざまな仕様があり、特に知られているのは、OASIS と U.N./CEFACT が開発中の ebXML Registry and Repository 標準と、ベンダのコンソーシアムで開発中の UDDI 仕様です。

JAXR によって、Java ソフトウェア プログラマは、単一の使いやすい抽象 API を使用して、さまざまな XML レジストリにアクセスできるようになります。JAXR では、XML レジストリ内にコンテンツとメタデータを記述する共通の情報モデルによって、容易性と使いやすさを実現しています。

 


Java API for XML-based RPC (JAX-RPC) 1.1

ネームスペース : http://java.sun.com/xml/ns/jax-rpc

Java API for XML-based RPC (JAX-RPC) は、XML ベースのリモート プロシージャ呼び出し (RPC) に使用する Java API を定義した Sun Microsystems の仕様です。特に、これらの API は、SOAP 1.1 (分散型環境で情報を交換するための XML ベースのプロトコル) を使用して、Web サービスを呼び出したり、Web サービスから応答を取得したりするのに使用されます。

WebLogic Server には、JAX-RPC バージョン 1.1 仕様の必要な機能がすべて実装されています。また、『JAX-RPC を使用した WebLogic Web サービスの開始』の「データ バインディングについて」で説明するように、WebLogic Server 実装のオプション データ型もサポートされています。WebLogic Server には、この章で説明されていない JAX-RPC 仕様のオプション機能は実装されていません。

 


Java API for XML-based Web Services (JAX-WS) 2.1

ネームスペース : http://java.sun.com/xml/ns/jaxws

Java API for XML-based Web Services (JAX-WS) は、Java Web サービスのコーディング、構築、デプロイメントに使用する標準ベースの API です。「統合されたスタック」には、JAX-WS 2.1、Java Architecture for XML Binding (JAXB) 2.1、および SOAP with Attachments API for Java (SAAJ) 1.3 が含まれます。JAX-WS は、Web サービスおよび Web アプリケーション内で JAX-RPC に取って代わるものとして設計されています。

 


Java Architecture for XML Binding (JAXB) 2.1

ネームスペース : http://java.sun.com/xml/ns/jaxb

Java Architecture for XML Binding (JAXB) を使用すると、XML スキーマを Java コードの表現に簡単にバインドできます。これにより、XML 自体に関する知識がそれほどなくても、XML データと処理関数を、Java テクノロジに基づくアプリケーションに、簡単に組み込むことができます。

注意 : JAXB は、JAX-WS Web サービスでのみ使用できます。

 


Simple Object Access Protocol (SOAP) 1.1 および 1.2

ネームスペース : http://schemas.xmlsoap.org/wsdl/soap

Simple Object Access Protocol(SOAP) は、分散型環境で情報を交換するために使用する軽量 XML ベースのプロトコルです。WebLogic Server には、SOAP 仕様のバージョン 1.1 と 1.2 の独自の実装が含まれています。プロトコルの構成は以下のとおりです。

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

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

POST /StockQuote HTTP/1.1
Host: www.sample.com:7001
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>ORCL</symbol>
</m:GetLastStockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

WebLogic Web サービスは、デフォルトでは SOAP のバージョン 1.1 を使用します。バージョン 1.2 を使用する場合は、その Web サービスを実装する JWS ファイルでバインディング タイプを指定する必要があります。

 


SOAP with Attachments API for Java (SAAJ) 1.3

SOAP with Attachments API for Java (SAAJ) 仕様では、SOAP 1.1 仕様と SOAP with Attachments ノートに準拠するメッセージの作成と消費について記述されています。

API の javax.xml.soap というパッケージでは、MIME 添付ファイルを持つ SOAP メッセージの主要な抽象概念を提供しています。添付ファイルには、XML ドキュメント全体、XML フラグメント、画像、テキスト ドキュメント、または有効な MIME タイプを持つその他のコンテンツを使用できます。また、このパッケージでは、Web サービスとの要求および応答型の対話に関する単純なクライアントサイドのビューも提供しています。

 


Web Services Addressing (WS-Addressing) 1.0

ネームスペース : http://www.w3.org/2005/08/addressing

注意 : 現在のリリースでは、Web Services Addressing (August 2004 Member Submission) もサポートされます。

Web Services Addressing (WS-Addressing) 仕様は、Web サービスとメッセージのアドレッシングを行うための、転送に依存しないメカニズムを提供します。特に、この仕様では、Web サービスのエンドポイントを識別したり、メッセージ内のエンドポイント ID をエンド ツー エンドで保護したりするのに使用される多数の XML 要素が定義されています。

 


Web Services Description Language (WSDL) 1.1

ネームスペース : http://schemas.xmlsoap.org/wsdl

Web Services Description Language (WSDL) は、Web サービスを記述するための XML ベースの仕様です。WSDL ドキュメントには、Web サービス オペレーション、入力および出力パラメータ、およびクライアント アプリケーションから 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>

WSDL 仕様には、Web サービスを呼び出すときに使用できるさまざまなタイプのバインディングを指定するための、省略可能な拡張要素があります。WebLogic Web サービス ランタイムでは、次のとおりです。

 


Web Services for Java EE 1.2

Web Services for Java EE 1.2 仕様 (JSR-109) では、WebLogic Server などの Java EE アプリケーション サーバ上で実行される Web サービスを Java で実装するためのプログラミング モデルと実行時アーキテクチャを定義しています。特に、プログラマが次の 2 つのコンポーネントのいずれかを使用して Java EE Web サービスを実装することを規定しています。

また、標準 Java EE Web サービスのパッケージ化形式、デプロイメント モデル、実行時サービスについても記述されており、そのすべてを WebLogic Web サービスで実装しています。

 


Web Services Metadata for the Java Platform 2.0 (JSR-181)

新しい JDK 5.0 メタデータ アノテーション機能とプログラミング モデルを利用することをお勧めします。このプログラミング モデルでは、アノテーション付きの Java ファイルを作成し、Ant タスクを使用してそのファイルを標準の JSR の Java クラスまたは EJB の Java ソース コードに変換し、関連するアーティファクトをすべて自動的に生成します。

アノテーション付きの Java Web サービス (JWS) ファイル (簡単に「JWS ファイル」と呼びます) は、Web サービスの中核部分です。このファイルには Web サービスの動作を決定する Java コードが含まれています。JWS ファイルは、JDK 5.0 メタデータ アノテーションを使用して Web サービスの形式や特性を指定した、通常の Java クラス ファイルです。JWS ファイルで使用できる JWS アノテーションにはWeb Services Metadata for the Java Platform 仕様 (JSR-181) で定義された標準のアノテーションと、WebLogic 固有のものがあり、作成する Web サービスのタイプに応じて使い分けます。

注意 : JWS アノテーション ファイルを使用する以外の方法としては、標準の Java クラスまたは EJB をゼロからコーディングし、それに関連するアーティファクト (デプロイメント記述子ファイル、WSDL、ユーザ定義のデータ型のデータ バインディング アーティファクトなど) を手動で生成することで、WebLogic Web サービスを自分でプログラミングする方法があります。ただし、この方法は、難しく時間がかかるためお勧めできません。

 


Web Services Policy Attachment (WS-PolicyAttachment) 1.2

ネームスペース : http://schemas.xmlsoap.org/ws/2004/09/policy

Web Services Policy Framework (WS-Policy) 仕様では、ポリシーの抽象モデルと XML ベースの式の文法が定義されています。この Web Services Policy Attachment (WS-PolicyAttachment) 仕様では、ポリシーとポリシーの適用先のサブジェクトを関連付けるための、2 つの汎用メカニズムが定義されています。また、それらの汎用メカニズムを使用して、WS-Policy を WSDL や UDDI の記述に関連付ける方法も定義しています。

 


Web Services Policy Framework (WS-Policy) 1.2

ネームスペース : http://schemas.xmlsoap.org/ws/2004/09/policy

注意 : 現在のリリースでは、W3C の Web Services Policy Framework (WS-Policy) 1.5 (ネームスペース : http://www.w3.org/ns/ws-policy) もサポートされます。

WS-Policy 1.2 (Member Submission) 仕様では、Web サービスのポリシーを記述して通信するための、汎用的なモデルと対応する構文が提供されています。WS-Policy は、幅広いサービスの要件、優先事項、機能を記述するために、他の Web サービス仕様が使用したり拡張したりできる、構成の基本セットを定義しています。

 


Web Services Reliable Messaging (WS-ReliableMessaging) 1.1

ネームスペース : http://docs.oasis-open.org/ws-rx/wsrm/200702

Web Services Reliable Messaging (WS-ReliableMessaging) 仕様では、ソフトウェア コンポーネント、システム、またはネットワークに障害が発生した場合に、別々の WebLogic Server インスタンス上で動作する 2 つの Web サービスが確実に通信するための方法が規定されています。特に、ソース エンドポイントから送り先エンドポイントに送信されるメッセージの配信またはエラーの生成を保証する、相互運用性プロトコルを提供しています。

注意 : WS-ReliableMessaging 1.0 仕様は、下位互換性を維持する目的でサポートされています。ただし、WS-ReliableMessaging 1.1 クライアントが WS-ReliableMessaging 1.0 サーバと通信することはできません。

 


Web Services Reliable Messaging Policy (WS-ReliableMessaging Policy) 1.1

ネームスペース : http://docs.oasis-open.org/ws-rx/wsrmp/200702

Web Services Reliable Messaging Policy (WS-ReliableMessaging Policy) 仕様では、WS-Policy および WS-ReliableMessaging で使用する信頼性のあるメッセージングのためのドメイン固有のポリシー アサーションが定義されています。この仕様を使うことで、RM 送り先と RM ソースの要件を所定の順序で記述できます。

 


Web Services Secure Conversation Language (WS-SecureConversation) 1.3

ネームスペース : http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512

Web Services Secure Conversation Language (WS-SecureConversation) 仕様では、Web Services Security (WS-Security) 1.1 および Web Services Trust Language (WS-Trust) 1.3 に基づく拡張が定義されています。これらの拡張により、1 つ以上のメッセージにまたがる通信を保護できます。この仕様では、セキュリティ コンテキストを確立および共有し、そのセキュリティ コンテキスト (または共有秘密) からキーを派生させるためのメカニズムが定義されています。

 


Web Services Security (WS-Security) 1.1

ネームスペース : http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuritysecext-1.0.xsdhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsdhttp://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd

Web サービス セキュリティについての以下の説明は、2006 年 2 月の「Web Services Security: SOAP Message Security」と題された OASIS 標準 1.1 仕様から直接引用したものです。

この仕様は、整合性と機密性を確保するセキュアな Web サービスを構築する際に使用できる SOAP (SOAP11、SOAP12) の拡張の標準セットを提案するものです。この拡張セットのことを「Web Services Security: SOAP Message Security」または「WSS: SOAP Message Security」と呼びます。

この仕様には柔軟性があり、さまざまなセキュリティ モデル (PKI、Kerberos、SSL など) でセキュアな Web サービスを実現するための土台となるように設計されています。たとえばこの仕様では、複数のセキュリティ トークン フォーマット、複数の信頼ドメイン、複数のシグネチャ フォーマット、および複数の暗号化技術がサポートされています。トークン フォーマットおよびそれらを使用するためのセマンティクスは、関連付けられたプロファイル ドキュメントに定義されています。

この仕様は、主にセキュリティ トークンの伝播、メッセージの整合性、およびメッセージの機密性の 3 つのメカニズムを提供します。これらのメカニズムは、それだけでは Web サービス用の完全なセキュリティ ソリューションとはなりません。この仕様は、他の Web サービス拡張機能やより高いレベルのアプリケーション固有プロトコルと一緒に使用して、さまざまなセキュリティ モデルおよびセキュリティ技術を実現することができるビルディング ブロックです。

前述のメカニズムは、独立して使用することも (たとえばセキュリティ トークンを渡すため)、密接に統合して使用することもできます (たとえば、メッセージ全体やその一部に対して署名や暗号化を行い、署名や暗号化に使用するキーと関連付けられたセキュリティ トークンまたはトークン パスを提供するなど)。

WebLogic Web サービスでは以下のトークン プロファイルも実装しています。

詳細については、「OASIS Web Service Security」Web ページを参照してください。

 


Web Services Security Policy (WS-SecurityPolicy) 1.2

ネームスペース : http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702

Web Services Security Policy (WS-SecurityPolicy) では、WS-Policy フレームワークで使用するセキュリティ ポリシー アサーションのセットが定義され、WS-Security、WS-Trust、および WS-SecureConversation のコンテキストにおいてメッセージをどのように保護するかについて記述されています。

WebLogic Web サービスのすべての非同期機能 (コールバック、会話、Web サービスの信頼性のあるメッセージング) では、実装でアドレッシングを使用していますが、Web サービス プログラマは、追加のアドレッシング機能が必要な場合に、この仕様に準拠する API を単独で使用することもできます。

 


Web Services Trust Language (WS-Trust) 1.3

ネームスペース : http://schemas.xmlsoap.org/ws/2005/02/trust

Web Services Trust Language (WS-Trust) 仕様では、Web Services Security (WS-Security) 1.1 に基づく拡張を定義します。これらの拡張により、セキュリティ トークンを要求および発行するためのフレームワークを提供し、信頼関係を仲介します。

 


Universal Description, Discovery, and Integration (UDDI) 2.0

ネームスペース : urn:uddi-org:api_v2

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

 


WebLogic Web サービスでサポートされるその他の仕様


ページの先頭       前  次