参加者は、コミュニティー・マネージャーによって提供される Web サービスを要求できます。 同様に、コミュニティー・マネージャーは、参加者によって提供されるよう Web サービスを要求できます。参加者やコミュニティー・マネージャーは、WebSphere Partner Gateway サーバーを起動して、Web サービスを取得します。WebSphere Partner Gateway は、プロキシーとして動作し、Web サービス要求を Web サービス・プロバイダーに渡し、プロバイダーからの同期的な応答をリクエスターに戻します。
ここでは、参加者やコミュニティー・マネージャーが使用する Web サービスの設定に関する以下の情報について説明します。
コミュニティー・マネージャーによって、参加者が使用する Web サービスが提供される際、WebSphere Partner Gateway は、参加者の身元の識別 (ID) を要求します。 Web サービス要求を送付するときは、以下の 2 つの方法のいずれかで ID を設定します。
コミュニティー・マネージャーが使用する 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 の 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 からダウンロードできます。
WebSphere Partner Gateway では、WSDL ファイルをインポートすることができます。 Web サービスが単一の WSDL ファイルに定義されている場合は、WSDL ファイルを直接アップロードできます。Web サービスが複数の WSDL ファイルを使用して定義されている場合 (1 次 WSDL ファイル内に WSDL ファイルをインポートした場合)、WSDL ファイルは、ZIP アーカイブの形式でアップロードされます。
<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 アーカイブをアップロードするには、以下の手順を実行します。
https://<target_host:port>/bcgreceiver/Receiverこの URL は一般に、ターゲットに定義されている実動 HTTP ターゲットと同じになります。
https://<target_host:port>/bcgreceiver/Receiver?to=<participant_business_ID>
コンソールを使用してアップロードできる XML ファイルを記述する一連の XML スキーマが、WebSphere Partner Gateway のインストール・メディアで提供されています。 アップロード・ファイルは、このスキーマと照合して検証されます。 スキーマ・ファイルは、XML に準拠していないためにファイルをアップロードできない場合、エラーの原因を判断するのに役立つリファレンスです。ファイルは、wsdl.xsd、wsdlhttp.xsd、および wsdlsoap.xsd で、有効な Web サービス記述言語 (WSDL) ファイルを記述するスキーマが含まれています。
ファイルは B2BIntegrate¥packagingSchemas にあります。
同等の文書フロー定義を手動で入力する場合は、このセクションの手順に従います。また、プロトコル: Web サービスで文書フロー、アクティビティー、およびアクションの各項目を作成する必要もあります。アクションの要件およびその受信 SOAP メッセージとの関連に特に注意してください。
文書フロー定義のパッケージ/プロトコル/文書フロー/アクティビティー/アクション階層では、サポートされている Web サービスは以下のように表されます。
{<operation_namespace>}:<operation_name>
{<namespace_of_identifying_xml_element = first_child_of_soap:body>}: <name_of _identifying_xml_element = first_child_of_soap:body>
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 サービス文書フロー・アクションを使用します。
対話を作成するには、以下の手順を実行します。
WebSphere Partner Gateway では、以下の標準がサポートされています。