ヘッダーをスキップ
Oracle® Fusion Middleware Oracle B2Bユーザーズ・ガイド
11gリリース1 (11.1.1.9)
B61381-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

21 Oracle B2B Web サービスの使用

この章では、アウトバウンドWebサービスおよび変換WebサービスなどのOracle B2B Webサービスについて説明します。また、Webサービスを保護する方法について説明します。

この章では、次の項目について説明します。

21.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があります。

Oracle B2B Webサービスのセキュリティ

Oracle Web Services Managerを使用すると、Webサービスのランタイムとフローに影響を及ぼすことなく、様々なタイプのポリシーを統合できます。また、サービス・インフラストラクチャのセキュリティが提供されます。署名、暗号化/復号化、認証、認可、監査およびレポートが、このツールキットによって提供されます。したがって、このWebサービス実装は、セキュリティ、署名および暗号化の詳細には対応しません。Webサービス・メソッドには、セキュリティの詳細ではなく、ビジネス・ロジックが保持されます。Oracle Weblogic Serverコンソールにおいて適用されるポリシーに基づき、Webサービス・クライアントでは、セキュリティの詳細をWebサービス・ポートと関連付ける必要があります。

21.2 アウトバウンドWebサービスの使用

アウトバウンドWebサービスは組込み内部リスニング・チャネルとして公開され、メッセージはこのサービスにエンキューされます。soap:body内の詳細およびヘッダーに基づいて、アグリーメント識別が行われ、メッセージはパートナにルーティングされます。

表21-1表21-2および表21-3では、アウトバウンドWebサービスのリクエスト、レスポンスおよびフォルト通知メッセージのパラメータについて説明します。

表21-1 アウトバウンドWebサービス・リクエストのパラメータ

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

from

文字列

ホスト名または識別値

いいえ

to

文字列

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

はい

@type

文字列

例: DUNS

識別タイプ

いいえ

documentProtocolVersion

文字列

例: 4010

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

はい脚注1

documentTypeName

文字列

例: 850

ドキュメント・タイプ名

action

文字列

例: PurchaseOrder

ebMSアクション名

service

文字列

例: OrderProcessing

ebMSサービス名

serviceType

文字列

例: string

デフォルト: string

ebMSサービス・タイプ

messageId

文字列

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

いいえ

replyToMessageId

文字列

例:
<reply_msgID>:collaborationID

この応答の宛先メッセージのメッセージIDをコラボレーションIDとともに保持します。

いいえ

messageType

文字列

メッセージのタイプ

いいえ

encoding

文字列

例: ISO-8859-1

デフォルト: UTF-8

エンコーディング形式

いいえ

payload

Xsd:anyType

ペイロードを保持します

はい

attachment

Xsd:anyType

添付ファイル(存在する場合)

いいえ


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

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

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

isTransmitted

ブール

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

はい


表21-3 アウトバウンドWebサービス・フォルト・メッセージのパラメータ

ヘッダー データ型 説明

ExceptionMessage

文字列

フォルトが見つかった場合、例外スタック・トレースが伝送されます。


21.3 変換Webサービスの使用

変換Webサービスでは、HL7、EDIなどのXMLペイロードがネイティブ・フォーマットに変換され、同様にネイティブ・ドキュメントがXMLに変換されます。


注意:

非EDI XMLが送信されると、Oracle B2Bサーバーでアグリーメントが一致する場合には、変換された内容に、同じペイロードがそのまま含められます。

EDI XMLが変換のために送信され、かつ、バッチの一部としてドキュメントが含まれている場合、変換されたレスポンスではペイロードは変換されません。



注意:

変換Webサービス・リクエストは、レポートおよびメトリックの他のアウトバウンド・リクエストと区別されません。


注意:

TranslateService Webサービスは非推奨になっています。

21.3.1 XMLToNativeService

このサービスは、指定されたXMLペイロードをネイティブ・ドキュメントに変換します。完全なエンベロープまたはトランザクション・セットのみの2つのレベルで変換できます。

21.3.1.1 完全なエンベロープ

この変換は、完全なネイティブ・ドキュメントを生成します。

前提条件:

  • 有効なアウトバウンド・アグリーメントがデプロイ済であること。

  • 取引パートナ名、ドキュメント・タイプ名、ドキュメント・プロトコル・バージョンおよびペイロードはサービスを起動するために必須です。

サポートされているプロトコル:

  • EDI X12

  • EDI EDIFACT

  • HL7

21.3.1.2 トランザクション・セットのみ

この変換は、返されるネイティブ・コンテンツ内にトランザクション・セットのみ生成します。

前提条件:

  • サービスは、Oracle B2Bでドキュメント・タイプとリビジョンが構成されていることを想定しています。

  • transactionSetOnly要素をtrueに設定する必要があります。サービス起動リクエストで取引パートナ名を指定しないでください。

  • transactionSetOnlydocumentTypeNamedocumentProtocolVersionおよびpayloadの各要素はサービスを起動するために必須です。

サポートされているプロトコル:

  • EDI X12

21.3.2 NativeToXMLService

このサービスは、指定されたネイティブ・ドキュメントをXMLに変換します。完全なネイティブ・ドキュメントまたはトランザクション・セットのみのどちらかを変換できます。

21.3.2.1 完全なエンベロープ

このサービスは、完全なネイティブ・ドキュメントをXMLに変換します。

前提条件:

  • 有効なインバウンド・アグリーメントがデプロイ済であること。

  • 取引パートナ名およびペイロードはサービスを起動するために必須です。

サポートされているプロトコル:

  • EDI X12

  • EDI EDIFACT

  • HL7

21.3.2.2 トランザクション・セットのみ

このサービスは、指定されたトランザクション・セットのXMLコンテンツを生成します。

前提条件およびサポートされているプロトコルは、「XMLToNativeService」と同じです。

21.3.3 変換Webサービスのパラメータ

表21-4に、変換Webサービス・メッセージ・パラメータを示します。

Table 21-4 変換Webサービスのパラメータ

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

transactionSetOnly

ブール

変換対象がトランザクション・セットのみかどうか


TPName

文字列

取引パートナ名


documentTypeName

文字列

ドキュメント・タイプ名

はい

documentProtocolVersion

文字列

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

はい

encoding

文字列

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


payload

文字列

実際のペイロード

はい

FAonError

文字列

エラーの場合のみFAを送信するかどうか


追加ヘッダー




HeaderName

文字列

任意の追加ヘッダー名

はい

HeaderValue

文字列

任意の追加ヘッダー値

はい

ElementDelimiters

文字列



Segment

文字列

セグメント・デリミタ


要素

文字列

要素デリミタ


Subelement

文字列

サブ要素デリミタ


ReplacementCharacter

文字列

置換文字


RepeatingSeparator

文字列

繰返しセパレータ



21.4 問合せAPIの使用

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

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

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

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

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

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

from

文字列

ホスト名または識別値

いいえ

to

文字列

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

いいえ

@type

文字列

例: DUNS

識別タイプ

いいえ

document

文字列

例: Sales Order

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

はい

action

文字列

例: Update

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

はい


表21-6 Is Trading Partner Agreement Setupのレスポンスのパラメータ

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

MatchedTPACount

integer

Oracle B2Bリポジトリ内にアクティブな状態で存在するアグリーメントの数

はい


表21-7 Is Trading Partner Agreement Setupのフォルト・メッセージのパラメータ

ヘッダー データ型 説明

ExceptionMessage

文字列

フォルトが見つかった場合、例外スタック・トレースが伝送されます。


21.4.2 Get Trading Partner Agreement Informationのパラメータ

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

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

from

文字列

ホスト名または識別値

いいえ

to

文字列

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

いいえ

@type

文字列

例: DUNS

識別タイプ

いいえ

document

文字列

例: Sales Order

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

いいえ

action

文字列

例: Update

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

いいえ


表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ファイル

いいえ


表21-10 Get Trading Partner Agreement Informationのフォルト・メッセージのパラメータ

ヘッダー データ型 説明

ExceptionMessage

文字列

フォルトが見つかった場合、例外スタック・トレースが伝送されます。


拡張パラメータ

表21-8および表21-9に示すパラメータに加えて、デリバリ・チャネル・タイプ(HTTP/WSなど)およびモード("one-way"または"request-response")を返す必要があります。取引パートナ問合せAPIコールは、SOAコンポーネントからの起動時にTPAConfigResponseのTPAコンテキストの一部として次の追加のフィールドを戻します。

表21-11 GetTPAConfigService問合せAPIパラメータ

パラメータ 説明

DCName

問い合せたTPに関連付けられているデリバリ・チャネル名。

ExchangeProtocol

DC名に関連付けられている交換プロトコル。

SyncMode

デリバリ・チャネルが構成されているモード。"True"のSyncModeは、レスポンス・メッセージ(レスポンスまたは確認)が戻ると予想されていることを示します。


表21-12 交換プロトコル構成詳細

交換プロトコル・タイプ チャネル構成 SynchMode

Generic WS

汎用SOAPの場合: 取引パートナのデリバリ・チャネル構成のレスポンス・モードの同期を選択します。WSDLベースの場合: チャネルを有効なWSDLに関連付ける必要があります。

汎用SOAPの場合: レスポンス・モードがTrueの場合はSyncMode = Trueです。それ以外の場合、同期モードがfalseに設定されます。

WSDLベースの場合: SyncModeがWSDL指定モードに設定されます。

汎用HTTP

リモート取引パートナのHTTPデリバリ・チャネル構成の"追加トランスポート・ヘッダー"パラメータとして"syncresponse=true"を追加します。

"syncresponse=true"が設定されている場合、SyncModeはTrueです。それ以外の場合はfalseです。

汎用電子メール

汎用ファイル(オプション)

汎用AQ (オプション)

汎用JMS (オプション)

汎用FTP (オプション)

汎用SFTP (オプション)

汎用MFT(オプション)

該当なし

SyncModeは常にfalseに設定されます。

AS1 (オプション)

AS2 (オプション)

ebMS-2.0 (オプション)

ebMS-1.0 (オプション)

RosettaNet-V02.00 (オプション)

RosettaNet-01.10 (オプション)

MLLP-1.0 (オプション)

HLLP -1.0(オプション)

取引パートナのデリバリ・チャネル構成の確認モードの同期を選択します

確認モードが同期に設定されている場合、SyncMode = Trueです。それ以外の場合、SyncMode = falseです。


21.4.3 GetParameterServiceパラメータ

トランスポート・バインディング情報を取得するため、Collaboration Messaging Framework(CMK)では、すべてのHTTPトランスポート・ヘッダーおよびCMKに渡されるMSG_IDに基づく対応する値を取得できる必要があります。

これは、CMKを流れるメッセージの処理に関連する取引パートナまたはチャネル情報を取得するためにCMKによって使用される取引パートナ問合せAPIに似ているWebサービスであるGetParameterServiceで行うことができます。このサービスを起動するには、次の入力パラメータが必要です:

表21-13 GetParameterServiceリクエストのパラメータ

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

messageId

文字列

このパラメータに指定されるビジネス・メッセージIDを使用して、トランスポート・ヘッダーを取得します。

はい

parameterName

文字列

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

はい


GetParameterService - レスポンス・パラメータ

レスポンス・メッセージには、すべてのHTTPヘッダーおよび対応する値の名前と値のペアが含まれます。ただし、この問合せAPIに表示されるトランスポート・ヘッダー・パラメータGetParameterServiceは、リスニング・チャネル・プロトコルによって異なります。

表21-14 GetParameterServiceのフォルト・メッセージのパラメータ

ヘッダー データ型 説明

ExceptionMessage

文字列

フォルトが見つかった場合、例外スタック・トレースが伝送されます。


21.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サービスのエンドポイントに関連付けるには、次の手順に従います。

  1. Oracle B2Bコンソールで、「管理」→「構成」タブに移動します。

  2. 「パージ不可」セクションの「Webサービス・ポリシー」フィールドに、適切な値を入力します。

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

    使用可能なOracle WSMポリシーのリストは、Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護の使用可能なOracle WSMセキュリティ・ポリシーを参照してください。

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

    ここで関連付けられるポリシーに基づいて、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サービスの使用方法に関するメトリックは表示されません。