Web サービス

参加者は、コミュニティー・マネージャーによって提供される Web サービスを要求できます。 同様に、コミュニティー・マネージャーは、参加者によって提供されるよう Web サービスを要求できます。参加者やコミュニティー・マネージャーは、WebSphere Partner Gateway サーバーを起動して、Web サービスを取得します。WebSphere Partner Gateway は、プロキシーとして動作し、Web サービス要求を Web サービス・プロバイダーに渡し、プロバイダーからの同期的な応答をリクエスターに戻します。

ここでは、参加者やコミュニティー・マネージャーが使用する Web サービスの設定に関する以下の情報について説明します。

Web サービスの参加者の識別

コミュニティー・マネージャーによって、参加者が使用する Web サービスが提供される際、WebSphere Partner Gateway は、参加者の身元の識別 (ID) を要求します。 Web サービス要求を送付するときは、以下の 2 つの方法のいずれかで ID を設定します。

  1. <participant's_business_ID>/<console_user_name> の形式のユーザー ID (例: 123456789/joesmith) と、コンソール・ユーザー名のパスワードと同じパスワードによる HTTP 基本認証を使用します。
  2. 参加者の WebSphere Partner Gateway に前もってロードしてある SSL クライアント証明書を提示します。

コミュニティー・マネージャーが使用する Web サービスを参加者が提供する場合は、コミュニティー・マネージャーが Web サービスの呼び出しに使用するパブリック URL に照会ストリング「?to=<participant's business ID>」が含まれていることが必要でます。例えば、以下のようになります。

http://<IP_address>/bcgreceiver/Receiver?to=123456789

これにより、Web サービスのプロバイダーがビジネス ID 123456789 の参加者であることが WebSphere Partner Gateway に通知されます。

文書フロー定義の作成

文書フロー定義を設定するには、Web サービスを定義する WSDL (Web サービス記述言語) ファイルをアップロードするか、または Community Console を通して同等な文書フロー定義を手動で入力します。

Web サービスの WSDL ファイルのアップロード

Web サービスの定義は、拡張子 .wsdl の 1 次 WSDL ファイルに含まれている必要があります。この定義では、インポート・エレメントを使用して追加 WSDL ファイルをインポートすることができます。インポートするファイルがある場合、これらのファイルは、以下のいずれかの方法を使用して、1 次ファイルと共にアップロードできます。

例えば、1 次 WSDL ファイル helloworldRPC.wsdl に、次のインポート・エレメントが含まれているものとします。

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "bindingRPC.wsdl"/>

また、インポートされる WSDL ファイル bindingRPC.wsdl に、以下のインポート・エレメントが含まれているものとします。

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "port/porttypeRPC.wsdl"/>

ファイルには、以下が含まれている必要があります。

Name                   Path
 
 helloworldRPC.wsdl
 
 bindingRPC.wsdl
 
 porttypeRPC.wsdl               port¥

Web サービスの WSDL ファイル定義がアップロードされると、元の WSDL は検証マップとして保管されます。 (Web サービス・メッセージは、実際には WebSphere Partner Gateway によって検証されません。Web サービス・メッセージは、元のサービス・エンドポイント URL を使用して直接渡されます。) この WSDL は、プライベート WSDL と呼ばれます。

また、パブリック WSDL は、「パッケージのアップロード/ダウンロード」ページで指定されたターゲット URL で置き換えられたプライベート URL と共に保管されます。 パブリック WSDL は、ターゲットの URL (パブリック URL) で Web サービスを呼び出す Web サービスのユーザーに提供されます。WebSphere Partner Gateway は、その後、元の Web サービス・プロバイダーのプライベート URL であるゲートウェイに Web サービス要求を送付します。WebSphere Partner Gateway は、プロキシーとして動作し、プライベート・プロバイダー URL (Web サービス利用者には表示されない) に Web サービス要求を転送します。

プライベート WSDL およびパブリック WSDL (インポート・ファイルを含む) は、WSDL がアップロードされた後に Community Console からダウンロードできます。

Community Console を使用した WSDL ファイルのアップロード

WebSphere Partner Gateway では、WSDL ファイルをインポートすることができます。 Web サービスが単一の WSDL ファイルに定義されている場合は、WSDL ファイルを直接アップロードできます。Web サービスが複数の WSDL ファイルを使用して定義されている場合 (1 次 WSDL ファイル内に WSDL ファイルをインポートした場合)、WSDL ファイルは、ZIP アーカイブの形式でアップロードされます。

重要: ZIP アーカイブに格納された WSDL ファイルは、WSDL インポート・エレメントに指定されているディレクトリーに入れる必要があります。 例えば、以下のインポート・エレメントがあるものとします。
<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl"
 location="path1/bindingRPC.wsdl"/>
ZIP アーカイブ内のディレクトリー構造は、path1/bindingRPC.wsdl になります。

ここで、以下の例を考えて見ます。

<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl"
  location="bindingRPC.wsdl"/>.

bindingRPC.wsdl ファイルは、ZIP アーカイブ内のルート・レベルにあります。

単一の WSDL ファイルまたは ZIP アーカイブをアップロードするには、以下の手順を実行します。

  1. 「ハブ管理」>「ハブ構成」>「文書フロー定義」の順にクリックします。
  2. 「パッケージのアップロード/ダウンロード」をクリックします。
  3. 「WSDL パッケージ」の場合は、「はい」をクリックします。
  4. 「Web サービス・パブリック URL」の場合は、以下のステップの 1 つを実行します。
  5. 「参照」をクリックし、WSDL ファイルまたは ZIP アーカイブを選択します。
  6. ファイルをテスト・モードでアップロードする場合は、「データベースへのコミット」「いいえ」を選択します。「いいえ」を選択すると、ファイルはシステムにインストールされません。「メッセージ」ボックスに表示されているシステム生成メッセージを使用して、アップロード・エラーのトラブルシューティングを行います。システム・データベースにファイルをアップロードするには、「はい」を選択します。
  7. 現在データベース内にあるデータを置き換える場合は、「データの上書き」「はい」を選択します。データベースにファイルを追加する場合は、「いいえ」を選択します。
  8. 「アップロード」をクリックします。WSDL ファイルがシステムにインストールされます。
スキーマ・ファイルを使用したパッケージの検証

コンソールを使用してアップロードできる XML ファイルを記述する一連の XML スキーマが、WebSphere Partner Gateway のインストール・メディアで提供されています。 アップロード・ファイルは、このスキーマと照合して検証されます。 スキーマ・ファイルは、XML に準拠していないためにファイルをアップロードできない場合、エラーの原因を判断するのに役立つリファレンスです。ファイルは、wsdl.xsdwsdlhttp.xsd、および wsdlsoap.xsd で、有効な Web サービス記述言語 (WSDL) ファイルを記述するスキーマが含まれています。

ファイルは B2BIntegrate¥packagingSchemas にあります。

文書フロー定義の手動作成

同等の文書フロー定義を手動で入力する場合は、このセクションの手順に従います。また、プロトコル: Web サービスで文書フロー、アクティビティー、およびアクションの各項目を作成する必要もあります。アクションの要件およびその受信 SOAP メッセージとの関連に特に注意してください。

文書フロー定義のパッケージ/プロトコル/文書フロー/アクティビティー/アクション階層では、サポートされている Web サービスは以下のように表されます。

WebSphere Partner Gateway はアクションのネーム・スペースおよび名前を使用して、着信 Web サービス要求 SOAP メッセージを識別し、定義された参加者接続に基づいて適切に送付するため、アクションは重要な定義となります。 受信した SOAP メッセージの soap:body エレメントの最初の XML 子エレメントのネーム・スペースおよび名前は、WebSphere Partner Gateway の文書フロー定義の既知のアクションのネーム・スペースおよび名前と一致する必要があります。

例えば、文書リテラル SOAP バインディングの場合の Web サービス要求 SOAP メッセージが以下のようになるものとします。

<?xml version="1.0" encoding="UTF-8"?>
 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <nameAndAddressElt xmlns="http://www.helloworld.com/xsd/helloDocLitSchema">
    <titleElt xmlns="">Mr</titleElt>
    <nameElt xmlns="">Joe Smith</nameElt>
    <addressElt xmlns="">
     <numberElt>123</numberElt>
     <streetElt>Elm St</streetElt>
     <cityElt>Peoria</cityElt>
    </addressElt>
   </nameAndAddressElt>
  </soapenv:Body>
 </soapenv:Envelope>

WebSphere Partner Gateway は、以下のコードで定義されている Web サービス・アクションを探します。

{http://www.helloworld.com/xsd/helloDocLitSchema}:nameAndAddressElt

RPC バインディング・スタイル SOAP 要求メッセージは、以下のようになります。

<?xml version="1.0" encoding="UTF-8"?>
 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <ns1:helloWorldRPC soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/
 encoding/ xmlns:ns1="http://www.helloworld.com/helloRPC">
    <name xsi:type="xsd:string">Joe Smith</name>
   </ns1:helloWorldRPC>
  </soapenv:Body>
 </soapenv:Envelope>

WebSphere Partner Gateway は、以下のコードで定義されている Web サービス・アクションを探します。

{http://www.helloworld.com/helloRPC}:helloWorldRPC

RPC バインディングでは、SOAP 要求メッセージの soap:body の最初の子エレメントのネーム・スペースおよび名前が、関連 Web サービス操作のネーム・スペースおよび名前である必要があります。

文書リテラル・バインディングでは、SOAP 要求メッセージの soap:body の最初の子エレメントのネーム・スペースおよび名前が、Web サービスの入力「message」定義の 「part」 エレメントの XML 「element」 属性のネーム・スペースおよび名前である必要があります。

対話の作成

Web サービスの対話を作成するには、ソースとターゲットの両方に同じ Web サービス文書フロー・アクションを使用します。

対話を作成するには、以下の手順を実行します。

  1. 「ハブ管理」>「ハブ構成」>「文書フロー定義」の順にクリックします。
  2. 「対話の管理」をクリックします。
  3. 「対話の作成」をクリックします。
  4. 「ソース」の下で、「パッケージ: なし」>「プロトコル: Web サービス」>「文書フロー: <document flow> (Document Flow: < document flow)」>「アクション: <action> (Action: <action>)」を展開します。このステップを「ターゲット」列で繰り返します。
  5. ページの下部にある「アクション」リストから、「パススルー」を選択します (「パススルー」は、Web サービスに対して WebSphere Partner Gateway でサポートされている、唯一有効なオプションです)。

Web サービス・サポートの制限

WebSphere Partner Gateway では、以下の標準がサポートされています。

注:

Copyright IBM Corp. 2003, 2005