この章では、Oracle B2B Webサービスの使用に関する情報について説明します。項目は次のとおりです。
Oracle B2Bでは、Oracle JDeveloperでドキュメントの詳細を取得するためのWebサービスが公開されています。これらは、パートナに直接接続しているWebサービスであり、ユーザーはメッセージをOracle B2Bに送信できます。同様に、Oracle B2Bには、メッセージを受信するバックエンドに対して公開されたWebサービスが用意されています。このサービスでは、Oracle B2Bにデプロイされているアグリーメントに基づいて、メッセージが処理されてパートナに送信されます。
Oracle B2B Webサービスを使用するには、Oracle JDeveloperでアプリケーションにWebサービス・プロキシを作成します。WebサービスのWeb Services Description Language(WSDL)ファイルは、Oracle B2Bがインストールされているシステム上の次のURLで入手できます。
http://host_name:port_number/b2b/services/
URIを指定せずに、サーブレットのURLパターンのみを接尾辞として付加したURLをWebブラウザに入力すると、ダウンロード可能なWSDLのリストが提供されます(セキュリティ制限はありません)。
Oracle B2Bには、次のWebサービスAPIが用意されています。
アウトバウンドWebサービスAPIでは、組込みの内部リスニング・チャネルが提供されます。詳細は、第20.2項「アウトバウンドWebサービスの使用」を参照してください。
変換WebサービスAPIは、HL7、EDIなどのネイティブ・ペイロードをXMLフォーマットに変換するために公開されています。詳細は、第20.3項「変換Webサービスの使用」を参照してください。
問合せAPIを使用すると、Oracle B2Bの構成済の詳細を取得できます。詳細は、第20.4項「問合せAPIの使用」を参照してください。
Oracle B2B Webサービスのセキュリティ
Oracle Web Services Managerを使用すると、Webサービスのランタイムとフローに影響を与えることなく、様々なタイプのポリシーを統合できます。また、サービス・インフラストラクチャのセキュリティが提供されます。署名、暗号化/復号化、認証、認可、監査およびレポート作成は、このツール・キットによって提供されます。したがって、このWebサービス実装では、セキュリティ、署名および暗号化の詳細は処理されません。Webサービスのメソッドには、セキュリティの詳細のかわりにビジネス・ロジックが保持されます。Webサービス・クライアントは、Oracle Weblogic Serverコンソールで実施されるポリシーに基づいて、セキュリティの詳細とWebサービス・ポートを関連付ける必要があります。
アウトバウンドWebサービスは、組込みの内部リスニング・チャネルとして公開され、メッセージはこのサービスにエンキューされます。soap:bodyの詳細とヘッダーに基づいて、アグリーメントの識別が実行され、メッセージがパートナにルーティングされます。
表20-1、表20-2および表20-3で、アウトバウンドWebサービスのリクエスト、レスポンスおよびフォルト通知メッセージのパラメータについて説明します。
表20-1 アウトバウンドWebサービス・リクエストのパラメータ
| ヘッダー | データ型 | 説明 | 必須 | 
|---|---|---|---|
| 
 from  | 
 文字列  | 
 ホスト名または識別値。  | 
 いいえ  | 
| 
 to  | 
 文字列  | 
 取引パートナ名または識別値。  | 
 はい  | 
| 
 @type  | 
 文字列 例:   | 
 識別タイプ。  | 
 いいえ  | 
| 
 documentProtocolVersion  | 
 文字列 例:   | 
 ドキュメント・タイプ・バージョン。  | 
 はい脚注1  | 
| 
 documentTypeName  | 
 文字列 例:   | 
 ドキュメント・タイプ名。  | 
|
| 
 action  | 
 文字列 例:   | 
 ebMSアクション名。  | 
|
| 
 service  | 
 文字列 例:   | 
 ebMSサービス名。  | 
|
| 
 serviceType  | 
 文字列 例:  デフォルト:   | 
 ebMSサービス・タイプ。  | 
|
| 
 messageId  | 
 文字列  | 
 このパラメータで指定するメッセージIDは、  | 
 いいえ  | 
| 
 replyToMessageId  | 
 文字列 例:   | 
 この返信の宛先となるメッセージのメッセージIDを、コラボレーションIDとともに格納します。  | 
 いいえ  | 
| 
 messageType  | 
 文字列  | 
 メッセージのタイプ。  | 
 いいえ  | 
| 
 encoding  | 
 文字列 例:  デフォルト:   | 
 エンコーディング・フォーマット。  | 
 いいえ  | 
| 
 payload  | 
 Xsd:anyType  | 
 ペイロードを格納します。  | 
 はい  | 
| 
 attachment  | 
 Xsd:anyType  | 
 添付(ある場合)。  | 
 いいえ  | 
脚注1 documentProtocolVersionとdocumentTypeName、またはaction、serviceおよびserviceTypeのいずれかが存在する必要があります。カスタムの一般的なケースで必要なのは、actionのみで、他は必要ありません。
変換Webサービスでは、HL7、EDIなどのXMLペイロードがネイティブ・フォーマットに変換されます。
表20-4、表20-5および表20-6で、変換Webサービスのリクエスト、レスポンスおよびフォルト通知メッセージのパラメータについて説明します。
| 
 注意: 非EDI XMLが送信された場合は、Oracle B2Bサーバーでアグリーメントが一致する場合にかぎり、変換後のコンテンツに同じペイロードがそのまま含まれます。EDI XMLが変換用に送信されるときに、バッチの一部としてドキュメントが含まれている場合は、変換後のレスポンスでペイロードは変換されません。  | 
| 
 注意: 変換Webサービスでは、EDI XMLペイロードがネイティブ・フォーマットに変換されますが、ネイティブ・ペイロードはXMLに変換されません。 | 
| 
 注意: 変換Webサービスのリクエストは、レポート作成およびメトリックについて、他のアウトバウンド・リクエストと異なる点はありません。 | 
表20-4 変換Webサービスのリクエストのパラメータ
| ヘッダー | データ型 | 説明 | 必須 | 
|---|---|---|---|
| 
 from  | 
 文字列  | 
 ホスト名または識別値。  | 
 いいえ  | 
| 
 to  | 
 文字列  | 
 取引パートナ名または識別値。  | 
 いいえ  | 
| 
 @type  | 
 文字列 例:   | 
 識別タイプ。  | 
 いいえ  | 
| 
 action  | 
 文字列 例:   | 
 ebMSアクション名。  | 
 いいえ  | 
| 
 documentProtocolVersion  | 
 文字列 例:   | 
 ドキュメント・タイプ・バージョン。  | 
 はい  | 
| 
 documentTypeName  | 
 文字列 例:   | 
 ドキュメント・タイプ名。  | 
 はい  | 
| 
 encoding  | 
 文字列 例:  デフォルト:   | 
 エンコーディング・フォーマット。  | 
 いいえ  | 
| 
 payload  | 
 Xsd:anyType  | 
 ペイロードを格納します。  | 
 はい  | 
問合せAPIでは、Oracle B2Bから構成済の詳細が取得され、複数のアプリケーションで共有されます。
アプリケーションからのメッセージ送信を開始する前に、特定のパラメータに対してヘルス・チェック・リクエストが実行されます。このチェックでは、構成が存在するかどうか、およびアクティブな構成の数が検出されます。構成が検出されない場合、アプリケーションでは、「B2Bで構成が検出されません」というメッセージを出力して、レイヤーでのメッセージ・フローを停止できます。
次のAPIが用意されています。
Is Trading Partner Agreement Setupは、特定の入力に対してアグリーメントが検出された場合、trueを返します。パラメータの詳細は、第20.4.1項「Is Trading Partner Agreement Setupのパラメータ」を参照してください。
Get Trading Partner Agreement Informationは、アグリーメントの詳細を返します。パラメータの詳細は、第20.4.2項「Get Trading Partner Agreement Informationのパラメータ」を参照してください。
表20-7 Is Trading Partner Agreement Setupのリクエストのパラメータ
| ヘッダー | データ型 | 説明 | 必須 | 
|---|---|---|---|
| 
 from  | 
 文字列  | 
 ホスト名または識別値。  | 
 いいえ  | 
| 
 to  | 
 文字列  | 
 取引パートナ名または識別値。  | 
 いいえ  | 
| 
 @type  | 
 文字列 例:   | 
 識別タイプ。  | 
 いいえ  | 
| 
 document  | 
 文字列 例:   | 
 送信対象の内部アプリケーション・ドキュメントまたはAIA EBOの名前  | 
 はい  | 
| 
 action  | 
 文字列 例:   | 
 取引パートナとの特定の取引を識別するサブ分類  | 
 はい  | 
表20-10 Get Trading Partner Agreement Informationのリクエストのパラメータ
| ヘッダー | データ型 | 説明 | 必須 | 
|---|---|---|---|
| 
 from  | 
 文字列  | 
 ホスト名または識別値。  | 
 いいえ  | 
| 
 to  | 
 文字列  | 
 取引パートナ名または識別値。  | 
 いいえ  | 
| 
 @type  | 
 文字列 例:   | 
 識別タイプ。  | 
 いいえ  | 
| 
 document  | 
 文字列 例:   | 
 送信対象の内部アプリケーション・ドキュメントまたはAIA EBOの名前  | 
 いいえ  | 
| 
 action  | 
 文字列 例:   | 
 取引パートナとの特定の取引を識別するサブ分類  | 
 いいえ  | 
表20-11 Get Trading Partner Agreement Informationのレスポンスのパラメータ
| ヘッダー | データ型 | 説明 | 必須 | 
|---|---|---|---|
| 
 AgreementID  | 
 文字列  | 
 一致するアグリーメントの一意のアグリーメントID  | 
 はい  | 
| 
 B2BDocumentDef  | 
 文字列  | 
 Oracle B2Bのドキュメント・タイプの作成に使用するOracle B2Bのドキュメント定義  | 
 はい  | 
| 
 B2BDocumentType  | 
 文字列  | 
 リクエストされたアプリケーション・ドキュメントおよびアクションに対して、Oracle B2Bに定義されているドキュメント・タイプ  | 
 はい  | 
| 
 B2BDocumentRevision  | 
 文字列  | 
 リクエストされたアプリケーション・ドキュメントおよびアクションに対して、Oracle B2Bに定義されているドキュメント・リビジョン  | 
 はい  | 
| 
 B2BDocumentProtocol  | 
 文字列  | 
 リクエストされたアプリケーション・ドキュメントおよびアクションに対して、Oracle B2Bに定義されているドキュメント・プロトコル名  | 
 はい  | 
| 
 direction  | 
 文字列  | 
 ドキュメントの方向  | 
 はい  | 
| 
 XSLTFile  | 
 文字列  | 
 Oracle B2B TPドキュメントを生成するためにAIAレイヤーで使用されるXSLTファイル  | 
 いいえ  | 
B2Bで公開されるWebサービスは、構成の詳細を侵入者から隠して保護する必要があります。Oracle Web Services Managerのポリシー・アプローチでは、ユーザーの要件に基づいてWebサービスを保護する機能が提供されています。
Webサービスのエンドポイントは、oracle.webservices.provider.ProviderConfig.addService(...) APIを使用してプログラムで動的に登録されます。これらのエンドポイントはOracle Enterprise Manager Fusion Middleware Controlコンソールに表示されないため、Oracle B2BがWebサービスとそのポリシーのライフサイクルを管理します。
ポリシーを指定してWebサービスのエンドポイントに関連付ける手順は、次のとおりです。
Oracle B2Bコンソールで、「管理」→「構成」タブに移動します。
「パージ不可」セクションの「Webサービス・ポリシー」フィールドに、適切な値を入力します。
エンドポイントのみを保護する場合はOracle Web Services ManagerポリシーのURIを入力し、RM、アドレッシングおよびロギングを取得するには<policy>タグ全体を入力します。次の例を参照してください。
使用可能なOracle WSMポリシーの一覧は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』の使用可能なOracle WSMセキュリティ・ポリシーに関する項を参照してください。
「保存」をクリックします。
ここで関連付けるポリシーに基づいて、WSDL URLはこのサービス用のプロキシ・クライアントの作成時に使用する必要のあるポリシーの詳細の発行/記述を開始します。
ポリシーの変更を反映するためにB2Bの再起動は必要ありません。
例
例1: セキュリティ・ポリシーoracle/wss_username_token_service_policyを適用するには、次のURIを「Webサービス・ポリシー」に入力します。
oracle/wss_username_token_service_policy
例2: 次のXMLを「Webサービス・ポリシー」に入力すると、セキュリティとRMポリシーが適用されます。
<policy><policy-references><policy-reference uri="oracle/wss_username_token_ service_policy" category="security"/><policy-reference uri="oracle/wsrm11_policy" category="wsrm"/></policy-references></policy>
制限事項
特定のエンドポイントについてのみポリシーを制御する方法はありません。指定したポリシーは、すべてのエンドポイントに適用されます。
「Webサービス・ポリシー」フィールドをクリアしても、すでに指定されているポリシーURIを削除することはできません。なんらかの文字列(「none」など)をフィールドに入力する必要があります。
Oracle Enterprise Manager Fusion Middleware Controlコンソールには、Oracle B2B Webサービスの使用に関するメトリックは表示されません。