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

例: DUNS

識別タイプ

いいえ

documentProtocolVersion

String

例: 4010

ドキュメント・タイプ・バージョン

はい*

documentTypeName

String

例: 850

ドキュメント・タイプ名

はい*

action

String

例: PurchaseOrder

ebMSアクション名

はい *

service

String

例: OrderProcessing

ebMSサービス名

はい *

serviceType

String

例: string

デフォルト: string

ebMSサービス・タイプ

はい *

messageId

String

例: 123456789

このパラメータで指定するメッセージIDは、APP_Messageを作成するために使用されます。

いいえ

replyToMessageId

String

例:<reply_msgID>:collaborationID

この応答の宛先メッセージのメッセージ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

例: ISO-8859-1

デフォルト: UTF-8

エンコーディング形式

いいえ

payload

Xsd:anyType

ペイロードを保持します

はい

attachment

Xsd:anyType

添付(存在する場合)

いいえ

*documentProtocolVersionおよびdocumentTypeNameが存在するか、actionserviceおよびserviceTypeが存在する必要があります。カスタムの一般的なケースではactionのみが必要であり、その他は必要ありません。

表22-2 アウトバウンドWebサービス・レスポンスのパラメータ

ヘッダー データ型 説明 必須

isTransmitted

ブール

trueの場合、メッセージは正常にOracle B2Bに伝送されました。それ以外の場合はfalseです。

はい

表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に設定する必要があります。サービス起動リクエストで取引パートナ名を指定しないでください。

  • transactionSetOnlydocumentTypeNamedocumentProtocolVersionおよび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

ブール

変換がトランザクション・セットのみで行われる場合、つまり、transactionSetOnlytrueに設定されている場合、Oracle B2Bはトランザクション・セット(ST/SE)のみをXMLからネイティブに変換します。falseの場合は、完全なエンベロープが変換に使用され、結果には完全なペイロード(エンベロープおよびトランザクション・セット)が含まれます。

[-]

TPName

String

例: Acme

取引パートナ名

[-]

documentTypeName

String

例: 850

ドキュメント・タイプ名

はい

documentProtocolVersion

String

例: 4010

ドキュメント・プロトコル・バージョン

はい

encoding

String

例: UTF-8

エンコーディング・タイプ

[-]

payload

String

実際のペイロード

はい

FAonError

String

例: TrueまたはFalse

trueの場合、エラーの際にFAが送信されます。falseの場合、FAは送信されません。

[-]

追加ヘッダー

[-]

[-]

[-]

HeaderName

String

例: xsd:string

任意の追加ヘッダー名

はい

HeaderValue

String

例: xsd:string

任意の追加ヘッダー値

はい

ElementDelimiters

String

[-]

[-]

セグメント

String

例: 0x2d

セグメント・デリミタ

[-]

要素

String

要素デリミタ

[-]

サブ要素

String

サブ要素デリミタ

[-]

ReplacementCharacter

String

置換文字

[-]

RepeatingSeparator

String

繰返しセパレータ

[-]

22.4 問合せAPIの使用

問合せAPIでは、Oracle B2Bから構成済の詳細が取得され、アプリケーションと共有されます。

アプリケーションからのメッセージ伝送を開始する前に、特定のパラメータに対してヘルス・チェック・リクエストが行われます。このチェックによって、構成が存在するかどうか、およびアクティブな構成の数がわかります。構成が見つからない場合、アプリケーションでは、B2Bで構成が見つからないというメッセージを出力して、レイヤー内のメッセージ・フローを停止できます。

次のAPIが提供されています。

22.4.1 Is Trading Partner Agreement Setupのパラメータ

表22-5表22-6および表22-7では、Trading Partner Agreement Setupのメッセージのパラメータについて説明します。

表22-5 Is Trading Partner Agreement Setupのリクエストのパラメータ

ヘッダー データ型 説明 必須

変更前

String

ホスト名または識別値

いいえ

変更後

String

取引パートナ名または識別値

いいえ

@type

String

例: DUNS

識別タイプ

いいえ

表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表22-9および表22-10では、Trading Partner Agreement Informationのメッセージのパラメータについて説明します。

表22-8 Get Trading Partner Agreement Informationのリクエストのパラメータ

ヘッダー データ型 説明 必須

変更前

String

ホスト名または識別値

いいえ

変更後

String

取引パートナ名または識別値

いいえ

@type

String

例: DUNS

識別タイプ

いいえ

document

String

例: Sales Order

送信される内部アプリケーション・ドキュメントまたはAIA EBOの名前

いいえ

action

String

例: Update

取引パートナとの特定の相互作用を識別するサブ分類

いいえ

表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サービスのエンドポイントに関連付けるには:

  1. Oracle B2Bコンソールで、「管理」→「構成」タブに移動します。
  2. 「パージ不可」セクションの「Webサービス・ポリシー」フィールドに、適切な値を入力します。

    エンドポイントのみを保護するには、Oracle Web Services ManagerポリシーURIを入力します。RM、アドレッシングおよびロギングを取得するには、<policy>タグ全体を入力します。次の例を参照してください。

    使用可能なOracle WSMポリシーのリストは、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』Java EE WebサービスでサポートされるOWSMポリシーはどれかに関する項を参照してください。

  3. 「保存」をクリックします。

    ここで関連付けられるポリシーに基づいて、WSDL URLによって、このサービスのプロキシ・クライアントの作成時に使用する必要があるポリシー詳細のパブリッシュ/記述が開始されます。

    ポリシーの変更を反映するためにB2Bを再起動する必要はありません。

例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>