22 Oracle B2B Webサービスの使用
この章では、アウトバウンドWebサービスおよび変換WebサービスなどのOracle B2B Webサービスについて説明します。また、Webサービスを保護する方法について説明します。
この章の内容は以下のとおりです。
22.1 Oracle B2B 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では、組込み内部リスニング・チャネルが提供されます。詳細は、アウトバウンドWebサービスの使用を参照してください。
-
変換WebサービスAPIが、HL7、EDIなどのネイティブ・ペイロードをXML書式に変換するために公開されています。詳細は、変換Webサービスの使用を参照してください。
-
問合せAPIは、Oracle B2Bの構成済の詳細を取得するのに役立ちます。詳細は、問合せAPIの使用を参照してください。
Oracle B2B Webサービスのセキュリティ
Oracle Web Services Managerを使用すると、Webサービスのランタイムとフローに影響を及ぼすことなく、様々なタイプのポリシーを統合できます。また、サービス・インフラストラクチャのセキュリティが提供されます。署名、暗号化/復号化、認証、認可、監査およびレポートが、このツールキットによって提供されます。したがって、このWebサービス実装は、セキュリティ、署名および暗号化の詳細には対応しません。Webサービス・メソッドには、セキュリティの詳細ではなく、ビジネス・ロジックが保持されます。Oracle Weblogic Serverコンソールにおいて適用されるポリシーに基づき、Webサービス・クライアントでは、セキュリティの詳細をWebサービス・ポートと関連付ける必要があります。
22.2 アウトバウンドWebサービスの使用
アウトバウンドWebサービスは組込み内部リスニング・チャネルとして公開され、メッセージはこのサービスにエンキューされます。soap:body
内の詳細およびヘッダーに基づいて、アグリーメント識別が行われ、メッセージはパートナにルーティングされます。
次に示すSOAPヘッダーは、B2B Webサービスの場合、取引パートナのアグリーメントを見つけるために必要な情報を渡すために使用されます。
<To xmlns="http://com.oracle.b2b/soap">GlobalChips</To>
<DocVersion xmlns="http://com.oracle.b2b/soap">4010</DocVersion>
<From xmlns="http://com.oracle.b2b/soap">Acme</From>
<DocType xmlns="http://com.oracle.b2b/soap">850</DocType>
表22-1、表22-2および表22-3では、アウトバウンドWebサービスのリクエスト、レスポンスおよびフォルト通知メッセージのパラメータについて説明します。
表22-1 アウトバウンドWebサービス・リクエストのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
変更前 |
String |
ホスト名または識別値 |
いいえ |
変更後 |
String |
取引パートナ名または識別値 |
はい |
@type |
String 例: |
識別タイプ |
いいえ |
documentProtocolVersion |
String 例: |
ドキュメント・タイプ・バージョン |
はい* |
documentTypeName |
String 例: |
ドキュメント・タイプ名 |
はい* |
action |
String 例: |
ebMSアクション名 |
はい * |
service |
String 例: |
ebMSサービス名 |
はい * |
serviceType |
String 例: デフォルト: |
ebMSサービス・タイプ |
はい * |
messageId |
String 例: |
このパラメータで指定するメッセージIDは、 |
いいえ |
replyToMessageId |
String 例: |
この応答の宛先メッセージのメッセージIDをコラボレーションIDとともに保持します。 |
いいえ |
messageType |
String 例: INVALID (0) REQ (1) RESP (2) ACK (3) IN_BAND_EXCEPTION (4) OUT_OF_BAND_EXCEPTION (5 STATUS_REQ (6) STATUS_RESP (7) PULL (8) FUNCTIONAL_ACK (9) BATCH_REQ (10) OTHER (99) PING (11) PONG (12) TA1(13) |
メッセージのタイプ |
いいえ |
encoding |
String 例: デフォルト: |
エンコーディング形式 |
いいえ |
payload |
Xsd:anyType |
ペイロードを保持します |
はい |
attachment |
Xsd:anyType |
添付(存在する場合) |
いいえ |
*documentProtocolVersion
およびdocumentTypeName
が存在するか、action
、service
およびserviceType
が存在する必要があります。カスタムの一般的なケースではaction
のみが必要であり、その他は必要ありません。
表22-2 アウトバウンドWebサービス・レスポンスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
isTransmitted |
ブール |
|
はい |
表22-3 アウトバウンドWebサービス・フォルト・メッセージのパラメータ
ヘッダー | データ型 | 説明 |
---|---|---|
ExceptionMessage |
String |
フォルトが見つかった場合、例外スタック・トレースが伝送されます。 |
22.3 変換Webサービスの使用
変換Webサービスでは、HL7、EDIなどのXMLペイロードがネイティブ・フォーマットに変換され、同様にネイティブ・ドキュメントがXMLに変換されます。
ノート:
非EDI XMLが送信されると、Oracle B2Bサーバーでアグリーメントが一致する場合には、変換された内容に、同じペイロードがそのまま含められます。
EDI XMLが変換のために送信され、かつ、バッチの一部としてドキュメントが含まれている場合、変換されたレスポンスではペイロードは変換されません。
ノート:
変換Webサービス・リクエストは、レポートおよびメトリックの他のアウトバウンド・リクエストと区別されません。
ノート:
TranslateService
Webサービスは非推奨になっています。
22.3.1 XMLToNativeService
このサービスは、指定されたXMLペイロードをネイティブ・ドキュメントに変換します。完全なエンベロープまたはトランザクション・セットのみの2つのレベルで変換できます。
22.3.1.1 完全なエンベロープ
この変換では、エンベロープ・ヘッダー(X12のISAやGSなど)を含む、完全なネイティブ・ドキュメントが生成されます。
これはEDI - X12エンベロープとペイロードであり、個別のパラメータではありません。完全なエンベロープの場合は、transactionSetOnly
要素をfalse
に設定する必要があります。
前提条件:
-
有効なアウトバウンド・アグリーメントがデプロイ済であること。
-
取引パートナ名、ドキュメント・タイプ名、ドキュメント・プロトコル・バージョンおよびペイロードはサービスを起動するために必須です。
サポートされているプロトコル:
-
EDI X12
22.3.1.2 トランザクション・セットのみ
この変換では、返されるネイティブ・コンテンツ内に、交換ヘッダー、グループ・ヘッダーおよびトレーラの各セグメントを伴わないトランザクション・セットのみが生成されます。
前提条件:
-
サービスは、Oracle B2Bでドキュメント・タイプとリビジョンが構成されていることを想定しています。
-
transactionSetOnly
要素をtrue
に設定する必要があります。サービス起動リクエストで取引パートナ名を指定しないでください。 -
transactionSetOnly
、documentTypeName
、documentProtocolVersion
およびpayload
の各要素はサービスを起動するために必須です。
サポートされているプロトコル:
-
EDI X12
22.3.2 NativeToXMLService
このサービスは、指定されたネイティブ・ドキュメントをXMLに変換します。完全なネイティブ・ドキュメントまたはトランザクション・セットのみのどちらかを変換できます。
22.3.2.1 完全なエンベロープ
このサービスは、交換ヘッダー、グループ・ヘッダーおよびトレーラが含まれる完全なネイティブ・ドキュメントをXMLに変換します。
前提条件:
-
有効なインバウンド・アグリーメントがデプロイ済であること。
-
取引パートナ名およびペイロードはサービスを起動するために必須です。
サポートされているプロトコル:
-
EDI X12
-
EDI EDIFACT
-
HL7
22.3.2.2 トランザクション・セットのみ
このサービスは、指定されたトランザクション・セット(ST/SE)のXMLコンテンツを生成します。
前提条件およびサポートされているプロトコルは、"XMLToNativeService"と同じです。
22.3.3 変換Webサービスのパラメータ
表22-4に、変換Webサービス・メッセージ・パラメータを示します。
表22-4 変換Webサービスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
transactionSetOnly |
ブール |
変換がトランザクション・セットのみで行われる場合、つまり、 |
[-] |
TPName |
String 例: |
取引パートナ名 |
[-] |
documentTypeName |
String 例: |
ドキュメント・タイプ名 |
はい |
documentProtocolVersion |
String 例: |
ドキュメント・プロトコル・バージョン |
はい |
encoding |
String 例: |
エンコーディング・タイプ |
[-] |
payload |
String |
実際のペイロード |
はい |
FAonError |
String 例: |
|
[-] |
追加ヘッダー |
[-] |
[-] |
[-] |
HeaderName |
String 例: xsd:string |
任意の追加ヘッダー名 |
はい |
HeaderValue |
String 例: xsd:string |
任意の追加ヘッダー値 |
はい |
ElementDelimiters |
String |
[-] |
[-] |
セグメント |
String 例: |
セグメント・デリミタ |
[-] |
要素 |
String |
要素デリミタ |
[-] |
サブ要素 |
String |
サブ要素デリミタ |
[-] |
ReplacementCharacter |
String |
置換文字 |
[-] |
RepeatingSeparator |
String |
繰返しセパレータ |
[-] |
22.4 問合せAPIの使用
問合せAPIでは、Oracle B2Bから構成済の詳細が取得され、アプリケーションと共有されます。
アプリケーションからのメッセージ伝送を開始する前に、特定のパラメータに対してヘルス・チェック・リクエストが行われます。このチェックによって、構成が存在するかどうか、およびアクティブな構成の数がわかります。構成が見つからない場合、アプリケーションでは、B2Bで構成が見つからないというメッセージを出力して、レイヤー内のメッセージ・フローを停止できます。
次のAPIが提供されています。
-
Is Trading Partner Agreement Setup
は、特定の入力に対してアグリーメントが見つかった場合、trueを返します。パラメータの詳細は、Is Trading Partner Agreement Setupのパラメータを参照してください。 -
Get Trading Partner Agreement Information
は、アグリーメントの詳細を返します。パラメータの詳細は、Get Trading Partner Agreement Informationのパラメータを参照してください。
22.4.1 Is Trading Partner Agreement Setupのパラメータ
表22-5 Is Trading Partner Agreement Setupのリクエストのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
変更前 |
String |
ホスト名または識別値 |
いいえ |
変更後 |
String |
取引パートナ名または識別値 |
いいえ |
@type |
String 例: |
識別タイプ |
いいえ |
表22-6 Is Trading Partner Agreement Setupのレスポンスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
MatchedTPACount |
integer |
Oracle B2Bリポジトリ内にアクティブな状態で存在するアグリーメントの数 |
はい |
表22-7 Is Trading Partner Agreement Setupのフォルト・メッセージのパラメータ
ヘッダー | データ型 | 説明 |
---|---|---|
ExceptionMessage |
String |
フォルトが見つかった場合、例外スタック・トレースが伝送されます。 |
22.4.2 Get Trading Partner Agreement Informationのパラメータ
表22-8 Get Trading Partner Agreement Informationのリクエストのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
変更前 |
String |
ホスト名または識別値 |
いいえ |
変更後 |
String |
取引パートナ名または識別値 |
いいえ |
@type |
String 例: |
識別タイプ |
いいえ |
document |
String 例: |
送信される内部アプリケーション・ドキュメントまたはAIA EBOの名前 |
いいえ |
action |
String 例: |
取引パートナとの特定の相互作用を識別するサブ分類 |
いいえ |
表22-9 Get Trading Partner Agreement Informationのレスポンスのパラメータ
ヘッダー | データ型 | 説明 | 必須 |
---|---|---|---|
AgreementID |
String |
一致したアグリーメントの一意のアグリーメントID |
はい |
B2BDocumentDef |
String |
Oracle B2Bドキュメント・タイプの作成に使用されるOracle B2B内のドキュメント定義 |
はい |
B2BDocumentType |
String |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・タイプ |
はい |
B2BDocumentRevision |
String |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・リビジョン |
はい |
B2BDocumentProtocol |
String |
リクエストされたアプリケーション・ドキュメントおよびアクションに対してOracle B2Bで定義されているドキュメント・プロトコル名 |
はい |
方向 |
String |
ドキュメントの方向 |
はい |
XSLTファイル |
String |
Oracle B2B TPドキュメントを生成するためにAIAレイヤーによって使用されるXSLTファイル |
いいえ |
DCName |
String |
取引パートナ・アグリーメントに関連付けられたデリバリ・チャネル |
はい |
ExchangeProtocol |
String |
取引パートナとメッセージを交換するトランスポート・プロトコルのタイプ |
はい |
SyncMode |
True/False |
trueはリクエスト・レスポンス、falseは一方向 |
FTPおよびSMTPのオプション。HTTP/WSで必須。 |
表22-10 Get Trading Partner Agreement Informationのフォルト・メッセージのパラメータ
ヘッダー | データ型 | 説明 |
---|---|---|
ExceptionMessage |
String |
フォルトが見つかった場合、例外スタック・トレースが伝送されます。 |
22.5 Oracle B2B Webサービスの保護
B2Bで公開されるWebサービスは、構成の詳細が侵入者から見えないように保護する必要があります。Oracle Web Services Managerのポリシー・アプローチには、要件に基づいてWebサービスを保護する機能があります。
Webサービスのエンドポイントは、oracle.webservices.provider.ProviderConfig.addService(...)
APIを使用して動的およびプログラム的に登録されます。これらのエンドポイントはOracle Enterprise Manager Fusion Middleware Controlコンソールに表示されないため、WebサービスとそのポリシーのライフサイクルはOracle B2Bで管理されます。
制限
特定のエンドポイントについてのみポリシーを制御する方法はありません。どのようなポリシーを指定しても、すべてのエンドポイントに適用されます。
「Webサービス・ポリシー」フィールドをクリアして、すでに指定されているポリシーURIを削除することはできません。なんらかの文字列(noneなど)をフィールドに入力する必要があります。
Oracle Enterprise Manager Fusion Middleware Controlコンソールには、Oracle B2B Webサービスの使用方法に関するメトリックは表示されません。
ポリシーを指定してWebサービスのエンドポイントに関連付けるには:
例22-1 例
例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>