ナビゲーションをスキップ

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

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

相互運用性

この章では、Web サービスの相互運用性の概要を説明し、最大限の相互運用性を備えた Web サービス作成に役立つヒントを提供します。

 


相互運用性の概要

Web サービスの基本的な特徴は、相互運用性があることです。つまり、ハードウェアやソフトウェアの相違にかかわらず、クライアントから Web サービスを呼び出すことができます。特に、相互運用性を確保するためには、以下の要素が異なっている場合でも Web サービス アプリケーションの機能が同じであることが要求されます。

たとえば、Solaris が搭載された Sun Microsystems のコンピュータで稼動している WebLogic Server で実行されている相互運用性を持つ Web サービスを、Visual Basic で記述された Microsoft .NET の Web サービス クライアントから呼び出すことができます。

最大限の相互運用性を確保するため、WebLogic Server では、Web サービスの生成時に以下の仕様およびバージョンをサポートします。

以下の節では、相互運用性に関して、Web サービス アプリケーションを作成する際に役立つヒントと情報を提供します。

 


ベンダ固有の拡張機能を使用しないこと

SOAP、WSDL、HTTP などの、Web サービスで使用されている仕様に対するベンダ固有の拡張実装を使用しないでください。このような拡張実装に依存する Web サービスを、それらを使用していないクライアント アプリケーションから呼び出そうとした場合、呼び出しに失敗することがあります。

 


最新の相互運用性テスト情報の常時更新

公開の相互運用性テストにより、Web サービス仕様のさまざまなベンダによる実装間の相互運用性に関する情報が提供されています。この情報は、WebLogic Server で、たとえば .NET による Web サービスなど、他のベンダが提供する Web サービスとの相互運用性を要件とする Web サービスを作成する場合に役立ちます。

警告 : BEA がこれらの相互運用性テストに参加している場合でも、そのことをもって、BEA がそれらのテストに参加している他のプラットフォームに対して自社の Web サービス実装の動作を正式に確認するものではありません。

次の Web サイトに、公開相互運用性テスト結果が掲載されています。

また、これらの Web サイトに掲載されているベンダ実装を使用して、作成した Web サービスの相互運用性を徹底的にテストすることもできます。

 


作成したアプリケーションのデータ モデルの理解

Web サービスの効果的な利用法は、既存アプリケーションの統合に役立つクロスプラットフォーム技術の提供です。既存のアプリケーションは、データ モデルが大きく異なっているため、作成した Web サービスで調整する必要があるのが一般的です。

たとえば、ある大企業の 2 つの会計システムを統合する Web サービス アプリケーションを作成しているとします。各会計システムのデータ モデルは類似していても、データ フィールドの名前、各顧客について保存される情報量など、多少の相違は存在します。各データ モデルを理解した上で、両者を調和させる中間的なデータ モデルを作成することはプログラマの力量にかかっています。この中間的なデータ モデルは、XML スキーマを使用して XML で表現されます。一方のみのデータ モデルに基づいて作成された Web サービス アプリケーションは、他のアプリケーションとの相互運用性が不十分となることが想像されます。

 


さまざまなデータ型の相互運用性の理解

Web サービス オペレーションのパラメータと戻り値のデータ型は、Web サービスの相互運用性を大きく左右します。次の表は、さまざまなデータ型の相互運用性の説明です。

表 19-1 各種データ型の相互運用性

データ型

説明

JAX-RPC 組み込みデータ型

プログラミングの追加なしで相互運用可能。

JAX-RPC 仕様では、XML スキーマの組み込みデータ型のサブセットを定義している。これらのデータ型はすべて、SOAP-ENC データ型に直接マップされるので、相互運用性がある。

WebLogic Server 組み込みデータ型

プログラミングの追加なしで相互運用可能。

WebLogic Server は、XML スキーマのすべての組み込みデータ型をサポートする。これらのデータ型はすべて、SOAP-ENC データ型に直接マップされるので、相互運用性がある。

WebLogic Server の組み込みデータ型の完全なリストについては、「サポートされる組み込みデータ型」を参照。

非組み込みデータ型

プログラミングの追加やツールのサポートにより相互運用可能。

非組み込みデータ型の Web サービスを作成する場合は、データの XML 表現を記述する XML スキーマ、Java 表現を記述する Java クラス、XML 表現と Java 表現間でデータを変換するシリアライゼーション クラスを作成する必要がある。WebLogic Server には、これらのオブジェクトを自動的に生成する servicegen Ant タスクおよび autotype Ant タスクが組み込まれている。ただし、これらの Ant タスクが生成した XML スキーマの相互運用性が不十分な場合があり、また、Java データ型があまりにも複雑なものであった場合は、XML スキーマの作成に失敗するおそれもある。このような理由で、「非組み込みデータ型の使い方」で説明するように、非組み込みデータ型が必要とするオブジェクトを手動で作成しなければならない場合がある。

さらに、Web サービスを呼び出すクライアント アプリケーションに、XML 表現とそのクライアント アプリケーションのプログラミング言語固有の表現間のデータ変換に必要なシリアライゼーション クラスが組み込まれていることを確認する必要がある。WebLogic Server では、Web クライアント アプリケーションが必要とするシリアライゼーション クラスを、clientgen Ant タスクを使用して生成することができる。ただし、作成した Web サービスを呼び出すクライアント アプリケーションが Java 以外の言語で記述されている場合は、シリアライゼーション クラスを手動で作成する必要がある。

 


SOAPBuilders Interoperability Lab Round 3 テストの結果

SOAPBuilders Interoperability Lab Round 3 テストに WebLogic Web サービスが参加した結果については、「http://webservice.bea.com:7001」を参照してください。このテストは、バージョン 8.1 の WebLogic Server を使用して実行されました。

テスト結果については、「http://webservice.bea.com/index.html#qz41」を、テストのソース コードについては、「http://webservice.bea.com/index.html#qz40」をそれぞれ参照してください。

SOAPBuilder Interoperability テストの詳細については、「http://www.whitemesa.com」を参照してください。

警告 : BEA がこれらの相互運用性テストに参加している場合でも、そのことをもって、BEA がそれらのテストに参加している他のプラットフォームに対して自社の Web サービス実装の動作を正式に確認するものではありません。

 


.NET との相互運用

WebLogic Web サービス クライアント アプリケーションから .NET Web サービスを呼び出すには、「クライアント アプリケーションおよび WebLogic Server からの Web サービスの呼び出し」で説明した手順に従います。clientgen Ant タスクを実行して Web サービス固有のクライアント JAR ファイルを生成する場合、wsdl 属性を使用して、デプロイされている .NET Web サービスの WSDL の URL を指定します。

.NET クライアント アプリケーションからデプロイされている WebLogic Web サービスを呼び出すには、Microsoft Visual Studio .NET を使用してアプリケーションを作成し、次に以下の例に従って Web 参照を追加して、デプロイされている WebLogic Web サービスの WSDL を指定します。Microsoft Visual Studio では、Web 参照の追加は、WebLogic clientgen Ant タスクの実行と同じです。

警告 : 次の例は、WebLogic Web サービスを .NET クライアント アプリケーションから呼び出すための 1 つの方法を示したものです。Microsoft Visual Studio .NET を使用して WebLogic (および他の) Web サービスを呼び出す方法に関する最新情報と詳細情報については、「Microsoft のドキュメント」を参照してください。

  1. Microsoft Visual Studio .NET を起動し、通常の方法でアプリケーションを作成します。
  2. 右ペインのソリューション エクスプローラで、作成したアプリケーションを右クリックして [Web 参照の追加] を選択します。ソリューション エクスプローラ ブラウザが開きます。
  3. ソリューション エクスプローラ ブラウザで、デプロイされている WebLogic Web サービスの WSDL を入力します。ブラウザが WSDL を受け付けると、[参照の追加] ボタンがアクティブになります。
  4. デプロイされている WebLogic Web サービスの WSDL を取得する方法の詳細については、「WebLogic Web サービスのホーム ページおよび WSDL の URL」を参照してください。

  5. [参照の追加] ボタンをクリックします。ソリューション エクスプローラに、WebLogic Web サービスが表示されます。
  6. Web サービスを呼び出すために使用するアプリケーション コンポーネント (ボタンなど) に、Web サービスの特定のオペレーションを呼び出すための Visual C# または Visual Basic コードを追加します。Visual Studio .NET は、ステートメント補完機能を使用してこのコードの記述を支援します。次の Visual C# コードは、SoapInteropBaseService Web サービスの echoString オペレーションを呼び出す単純な例を示しています。
WebReference1.SoapInteropBaseService s = new SoapInteropBaseService();
string s = s.echoString("Hi there!");

この例では、WebReference1 は前の手順で追加した Web 参照の名前です。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次