文書フロー定義を設定するには、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」の 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 からダウンロードできます。
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 アーカイブをアップロードするには、以下の手順を実行します。
Web サービスが (コミュニティー・マネージャーから呼び出された) 参加者によって提供される場合は、参加者のパブリック URL と照会ストリングを入力します。例えば、http(s)://<target host:port>/bcgreceiver/Receiver?to=<participant business ID> と入力します。
コンソールを使用してアップロードできる XML ファイルを記述する一連の XML スキーマが、Business Integration Connect のインストール・メディアで提供されています。アップロード・ファイルは、このスキーマと照合して検証されます。スキーマ・ファイルは、XML に準拠していないためにファイルをアップロードできない場合、エラーの原因を判断するのに役立つリファレンスです。ファイルは、wsdl.xsd、wsdlhttp.xsd、および wsdlsoap.xsd で、有効な Web サービス記述言語 (WSDL) ファイルを記述するスキーマが含まれています。
ファイルは B2BIntegrate¥packagingSchemas にあります。
新規 Web サービスに対して必要な文書フロー定義を作成する最後のステップでは、ソースおよびターゲットとして同じ Web サービス文書フロー・アクションとの対話を設定します。
対話を作成するには、以下の手順を実行します。