Web サービスに対する文書フロー定義の設定

文書フロー定義を設定するには、Web サービスを定義する WSDL (Web サービス記述言語) ファイルをアップロードします。アップロード方法については、ハブの構成を参照してください。あるいは、Community Console を使用して、同等の文書フロー定義を手動で入力することもでいます。

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

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

パッケージ: なし (名前とコード)、バージョン N/A
プロトコル: Web サービス (名前とコード)、バージョン 1.0

文書フロー: '{<web service namespace>}:<web service name>' (名前とコード)。Web サービス・プロトコルの文書フローの間で固有である必要があります。これは通常は WSDL のネーム・スペースと名前です。
アクティビティー: 各 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 Business Integration Connect はアクションのネーム・スペースおよび名前を使用して、着信 Web サービス要求 SOAP メッセージを識別し、定義された参加者接続に送付するため、アクションは重要な定義となります。受信した SOAP メッセージの soap:body エレメントの最初の XML 子エレメントのネーム・スペースおよび名前は、WebSphere Business Integration Connect の文書フロー定義の既知のアクションのネーム・スペースおよび名前と一致する必要があります。

例えば、Web サービス要求 SOAP メッセージは以下のようになります (文書リテラル 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 Business Integration Connect は、以下のコードで定義されている 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 Business Integration Connect は、コード {http://www.helloworld.com/helloRPC}:helloWorldRPC で定義されている Web サービス・アクションを探します。

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

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

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"/>'
 

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

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

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

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

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

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

Business Integration Connect では、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 ファイルをアップロードする WSDL パッケージに対して「はい」を選択します。 「Web サービス・パブリック URL」に、(参加者から呼び出された) コミュニティー・マネージャーによって提供される Web サービスのパブリック URL を入力します。例えば、http(s)://<target host:port>/bcgreceiver/Receiver と入力します。この URL は一般に、ターゲットに定義されている実動 HTTP ターゲットと同じになります。

    Web サービスが (コミュニティー・マネージャーから呼び出された) 参加者によって提供される場合は、参加者のパブリック URL と照会ストリングを入力します。例えば、http(s)://<target host:port>/bcgreceiver/Receiver?to=<participant business ID> と入力します。

  4. 「参照」をクリックし、WSDL ファイルまたは ZIP アーカイブを選択します。
  5. ファイルをテスト・モードでアップロードする場合は、「データベースへのコミット」「いいえ」を選択します。「いいえ」を選択すると、ファイルはシステムにインストールされません。「メッセージ」ボックスに表示されているシステム生成メッセージを使用して、アップロード・エラーのトラブルシューティングを行います。システム・データベースにファイルをアップロードするには、「はい」を選択します。
  6. 現在データベース内にあるデータを置き換える場合は、「データの上書き」「はい」を選択します。データベースにファイルを追加する場合は、「いいえ」を選択します。
  7. 「アップロード」をクリックします。WSDL ファイルがシステムにインストールされます。

スキーマ・ファイルを使用したパッケージの検証

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

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

新規 Web サービスに対する対話の設定

新規 Web サービスに対して必要な文書フロー定義を作成する最後のステップでは、ソースおよびターゲットとして同じ Web サービス文書フロー・アクションとの対話を設定します。

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

  1. 「ハブ管理」>「ハブ構成」>「文書フロー定義」の順にクリックします。
  2. 「対話の管理」をクリックします。
  3. 「対話の作成」をクリックします。
  4. 画面の一番下にある「アクション」ドロップダウンから「パススルー」を選択します (WebSphere Business Integration Connect では、Web サービスに対して「パススルー」オプションのみが有効です)。

Copyright IBM Corp. 1997, 2004