この章では、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サービスの使用に関するメトリックは表示されません。