この章では、アウトバウンドWebサービスおよび変換WebサービスなどのOracle B2B Webサービスについて説明します。また、Webサービスを保護する方法について説明します。
この章では、次の項目について説明します。
Oracle B2Bでは、Oracle JDeveloperでドキュメント詳細を取得するためのWebサービスが公開されています。これらはパートナに直接接続しているWebサービスであり、ユーザーはOracle B2Bにメッセージを送信できます。同様に、Oracle B2Bでは、Oracle B2Bにデプロイされたアグリーメントに基づいて、メッセージを受信し、処理してパートナに送信するために、バックエンドに対して公開されたWebサービスが提供されています。
Oracle B2B Webサービスを使用するには、Oracle JDeveloperでアプリケーション内にWebサービス・プロキシを作成します。WebサービスのWebサービス記述言語(WSDL)ファイルは、Oracle B2Bがインストールされているシステム上の次のURLで入手できます。
http://host_name:port_number/b2b/services/
URIを指定せず、サーブレットのURLパターンのみを接尾辞として付けたURLをWebブラウザに入力すると、ダウンロードできるWSDLのリストが表示されます(セキュリティ制限はありません)。
Oracle B2Bには、次のWebサービスAPIがあります。
アウトバウンドWebサービスAPIでは、組込み内部リスニング・チャネルが提供されます。詳細は、第21.2項 アウトバウンドWebサービスの使用を参照してください。
変換WebサービスAPIが、HL7、EDIなどのネイティブ・ペイロードをXML書式に変換するために公開されています。詳細は、第21.3項 変換Webサービスの使用を参照してください。
問合せAPIは、Oracle B2Bの構成済の詳細を取得するのに役立ちます。詳細は、第21.4項 問合せAPIの使用を参照してください。
Oracle B2B Webサービスのセキュリティ
Oracle Web Services Managerを使用すると、Webサービスのランタイムとフローに影響を及ぼすことなく、様々なタイプのポリシーを統合できます。また、サービス・インフラストラクチャのセキュリティが提供されます。署名、暗号化/復号化、認証、認可、監査およびレポートが、このツールキットによって提供されます。したがって、このWebサービス実装は、セキュリティ、署名および暗号化の詳細には対応しません。Webサービス・メソッドには、セキュリティの詳細ではなく、ビジネス・ロジックが保持されます。Oracle Weblogic Serverコンソールにおいて適用されるポリシーに基づき、Webサービス・クライアントでは、セキュリティの詳細をWebサービス・ポートと関連付ける必要があります。
アウトバウンドWebサービスは組込み内部リスニング・チャネルとして公開され、メッセージはこのサービスにエンキューされます。soap:body
内の詳細およびヘッダーに基づいて、アグリーメント識別が行われ、メッセージはパートナにルーティングされます。
表21-1、表21-2および表21-3では、アウトバウンドWebサービスのリクエスト、レスポンスおよびフォルト通知メッセージのパラメータについて説明します。
表21-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ペイロードがネイティブ・フォーマットに変換され、同様にネイティブ・ドキュメントがXMLに変換されます。
注意: 非EDI XMLが送信されると、Oracle B2Bサーバーでアグリーメントが一致する場合には、変換された内容に、同じペイロードがそのまま含められます。 EDI XMLが変換のために送信され、かつ、バッチの一部としてドキュメントが含まれている場合、変換されたレスポンスではペイロードは変換されません。 |
注意: 変換Webサービス・リクエストは、レポートおよびメトリックの他のアウトバウンド・リクエストと区別されません。 |
注意:
|
このサービスは、指定されたXMLペイロードをネイティブ・ドキュメントに変換します。完全なエンベロープまたはトランザクション・セットのみの2つのレベルで変換できます。
この変換は、完全なネイティブ・ドキュメントを生成します。
前提条件:
有効なアウトバウンド・アグリーメントがデプロイ済であること。
取引パートナ名、ドキュメント・タイプ名、ドキュメント・プロトコル・バージョンおよびペイロードはサービスを起動するために必須です。
サポートされているプロトコル:
EDI X12
EDI EDIFACT
HL7
この変換は、返されるネイティブ・コンテンツ内にトランザクション・セットのみ生成します。
前提条件:
サービスは、Oracle B2Bでドキュメント・タイプとリビジョンが構成されていることを想定しています。
transactionSetOnly
要素をtrue
に設定する必要があります。サービス起動リクエストで取引パートナ名を指定しないでください。
transactionSetOnly
、documentTypeName
、documentProtocolVersion
およびpayload
の各要素はサービスを起動するために必須です。
サポートされているプロトコル:
EDI X12
このサービスは、指定されたネイティブ・ドキュメントをXMLに変換します。完全なネイティブ・ドキュメントまたはトランザクション・セットのみのどちらかを変換できます。
このサービスは、完全なネイティブ・ドキュメントをXMLに変換します。
前提条件:
有効なインバウンド・アグリーメントがデプロイ済であること。
取引パートナ名およびペイロードはサービスを起動するために必須です。
サポートされているプロトコル:
EDI X12
EDI EDIFACT
HL7
このサービスは、指定されたトランザクション・セットのXMLコンテンツを生成します。
前提条件およびサポートされているプロトコルは、「XMLToNativeService」と同じです。
表21-4に、変換Webサービス・メッセージ・パラメータを示します。
Table 21-4 変換Webサービスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
transactionSetOnly |
ブール |
変換対象がトランザクション・セットのみかどうか |
|
TPName |
文字列 |
取引パートナ名 |
|
documentTypeName |
文字列 |
ドキュメント・タイプ名 |
はい |
documentProtocolVersion |
文字列 |
ドキュメント・プロトコル・バージョン |
はい |
encoding |
文字列 |
エンコーディング・タイプ |
|
payload |
文字列 |
実際のペイロード |
はい |
FAonError |
文字列 |
エラーの場合のみFAを送信するかどうか |
|
追加ヘッダー |
|||
HeaderName |
文字列 |
任意の追加ヘッダー名 |
はい |
HeaderValue |
文字列 |
任意の追加ヘッダー値 |
はい |
ElementDelimiters |
文字列 |
||
Segment |
文字列 |
セグメント・デリミタ |
|
要素 |
文字列 |
要素デリミタ |
|
Subelement |
文字列 |
サブ要素デリミタ |
|
ReplacementCharacter |
文字列 |
置換文字 |
|
RepeatingSeparator |
文字列 |
繰返しセパレータ |
問合せAPIでは、Oracle B2Bから構成済の詳細が取得され、アプリケーションと共有されます。
アプリケーションからのメッセージ伝送を開始する前に、特定のパラメータに対してヘルス・チェック・リクエストが行われます。このチェックによって、構成が存在するかどうか、およびアクティブな構成の数がわかります。構成が見つからない場合、アプリケーションでは、B2Bで構成が見つからないというメッセージを出力して、レイヤー内のメッセージ・フローを停止できます。
次のAPIが提供されています。
Is Trading Partner Agreement Setup
は、特定の入力に対してアグリーメントが見つかった場合、trueを返します。パラメータの詳細は、第21.4.1項 Is Trading Partner Agreement Setupのパラメータを参照してください。
Get Trading Partner Agreement Information
は、アグリーメントの詳細を返します。パラメータの詳細は、第21.4.2項 Get Trading Partner Agreement Informationのパラメータを参照してください。
表21-5 Is Trading Partner Agreement Setupのリクエストのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
from |
文字列 |
ホスト名または識別値 |
いいえ |
to |
文字列 |
取引パートナ名または識別値 |
いいえ |
@type |
文字列 例: |
識別タイプ |
いいえ |
document |
文字列 例: |
送信される内部アプリケーション・ドキュメントまたはAIA EBOの名前 |
はい |
action |
文字列 例: |
取引パートナとの特定の相互作用を識別するサブ分類 |
はい |
表21-8 Get Trading Partner Agreement Informationのリクエストのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
from |
文字列 |
ホスト名または識別値 |
いいえ |
to |
文字列 |
取引パートナ名または識別値 |
いいえ |
@type |
文字列 例: |
識別タイプ |
いいえ |
document |
文字列 例: |
送信される内部アプリケーション・ドキュメントまたはAIA EBOの名前 |
いいえ |
action |
文字列 例: |
取引パートナとの特定の相互作用を識別するサブ分類 |
いいえ |
表21-9 Get Trading Partner Agreement Informationのレスポンスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
AgreementID |
文字列 |
一致したアグリーメントの一意のアグリーメントID |
はい |
B2BDocumentDef |
文字列 |
Oracle B2Bドキュメント・タイプの作成に使用されるOracle B2B内のドキュメント定義 |
はい |
B2BDocumentType |
文字列 |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・タイプ |
はい |
B2BDocumentRevision |
文字列 |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・リビジョン |
はい |
B2BDocumentProtocol |
文字列 |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・プロトコル名 |
はい |
Direction |
文字列 |
ドキュメントの方向 |
はい |
XSLTファイル |
文字列 |
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コンソールに表示されないため、WebサービスとそのポリシーのライフサイクルはOracle B2Bによって管理されます。
ポリシーを指定して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サービスの使用方法に関するメトリックは表示されません。