24 AS4ベースのメッセージ交換の有効化
この章では、Oracle B2Bで取引パートナ間のAS4ベースのメッセージ(通常はSOAPベース)交換を有効化する方法について説明します。
この章の構成は、次のとおりです。
24.1 AS4ベースのメッセージ交換の概要
Applicability Statement4 (AS4)は、必要なトランザクション機能を提供するための、Webサービス標準が集約された最新の標準です。受信確認の受取とエラー・メッセージを定義することによって例外処理を標準化し、メッセージ・コレオグラフィをサポートします。Webサービスを使用してドキュメントに依存しない安全な方法でペイロードを交換するために、Oracle B2Bは交換プロトコル・スタック内でAS4プロトコルをサポートしています。
AS4は、一方向プッシュ、一方向プル、信頼性、セキュリティなどの、Webサービスを介した様々な機能を提供します。AS4では、認証、メッセージ整合性、発信元の否認防止およびプライバシ機能でデータを保護します。
24.2 カスタムWSDLファイルによるAS4ベースのサービス・メッセージの交換
AS4ベース・メッセージは、インバウンドおよびアウトバウンド方向の両方でサポートされます。要件に応じたカスタマイズが可能なWeb Service Definition Language (WSDL)ファイルを作成するか、一般的なWebサービスを使用するか、またはアップロードする必要があります。
AS4 ebHandlerではSOAP 1.2が必須であり、SOAP 1.1に依存するBSP 1.1からの要件は適用されません。同様に、DESCRIPTION (WSDL)およびREGDATA (UDDI)は使用されないため、これらの要件は適用されません。SOAP 1.1の場合、SOAPフォルトはサービスから受信されます。
AS4では、ドキュメント・タイプのマッピングのピットフォールと、SOAPの操作とアクションに対するビジネス・プロセスを回避することによって、WSDLの複雑さが排除されるため、WSDLを指定する必要はありません。既存の汎用WSDLはSOAP 1.2サポートによって使用できます。
24.2.1 アウトバウンド・メッセージの交換
バックエンド・アプリケーション(Fabric/AQ/JMS/File/FTP/SFTP)からのメッセージは、他のメッセージと同じようにB2Bに送信されます。B2Bでは、From/To/ActionとService、またはFrom/To/DoctypeとDoc Revisionに基づいて、アグリーメント識別が発生します。
24.2.2 インバウンド・メッセージの交換
登録されているAS4 WSリスニング・チャネルに基づいて、取引パートナは適切なAS4ヘッダーを使用してメッセージを投稿できます。AS4エンドポイントは、「管理」→「リスニング・チャネル」を使用して登録できます。ドキュメントは、ユーザー・メッセージのSOAPヘッダーまたは通常のドキュメント識別フローに基づいて識別されます。メッセージは、AS4交換プラグインによって処理され、構成済のバックエンド・アプリケーションに配信されます。
http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/
AS4交換プラグインでは、トランスポート・レイヤーとしてWS-HTTPも使用されます。汎用SOAP交換では、これを交換の識別に使用します。AS4交換プラグインは汎用WSよりかなり前に追加されるため、交換がAS4として識別された場合、汎用交換は識別レイヤーをスキップします。
ドキュメントの識別はSOAPヘッダー「CollaborationInfo」→Action/Serviceの組合せに基づいて行われます。取引パートナの識別は、常にebMS 3.0仕様のPartyInfo→From/To partyIdおよびタイプの組合せに基づいて行われます。AS4には固有の識別子がないため、「管理」→「タイプ」の一部としてカスタム識別子を構成でき、同様にパートナ・プロファイル構成で使用できます。 デフォルトの識別子は、名前または他のdunsなどの識別子です。ただし、AS4には固有の識別子がありません(AS4識別子なし)
24.3 取引パートナとホストの設定
Oracle B2Bは、取引パートナとのAS4 Webサービス・ベースのメッセージ交換をサポートします。これは、バックエンド・アプリケーションからのペイロードを、B2Bバインディング、あるいはAQ、JMS、File、FTPまたはSFTPとのコンポジットによって開始することで実現されます。同様に、取引パートナにもAS4を使用して送信できます。
24.4 メッセージ・パーティション・チャネル
メッセージ・パーティション・チャネル(MPC)によって、送信者から受信者へのメッセージのフローを複数のフローにパーティション化して、個別に制御することや異なる方法で消費することが可能になります。
MPCでは、次のことが可能です。
-
転送優先度の設定: 一部のメッセージは、送信された順序に関係なく、他よりも高い優先度で転送されます。
-
受信者側でのメッセージのインフローの編成: 受信者はフローごとに異なる方法を指定できます。
次の図に、一方向プル・トランザクションのMPCワークフローの例を示します。
これは、Oracle B2Bの既存の順序付けメカニズムによって実現されます。バックエンド・アプリケーションからメッセージが「MPC」プロパティを使用して送信された場合、順序メッセージ・ターゲットとしてMPCが使用されます。これはappmessage表と順序マネージャ表に挿入されます。プル・メッセージ・リクエストが受信されるまで、B2Bはメッセージを処理できません。
プル・メッセージ・リクエストに基づいて、対応するメッセージが順序マネージャ表から取得され、イベント・キューにエンキューされます。メッセージは次に、From/To/Action/ServiceまたはFrom/To/Doctype/Docrevisionに基づいて、アグリーメント識別をパス・スルーします。アグリーメント構成に基づいて、メッセージは処理され、デリバリ・チャネル構成に従って取引パートナに送信されます。
メッセージの優先度付けは、プル・リクエストおよびレスポンスの一部として処理されます。
24.5 重複メッセージの検出
重複メッセージの検出機能を使用すると、メッセージIDに基づいてメッセージの重複を検出できます。AS4では、既存の重複検出機能が再利用されています。
デリバリ・チャネルの一部として構成できます。インバウンド・メッセージ・フローでは、重複検出が有効化されている場合、メッセージ重複が識別され、メッセージの送信者にフォルト・メッセージが送信されます。
例24-1 例 - 重複メッセージの検出
次のメッセージIDを使用して、メッセージが重複しているかどうかが検出されます。
eb:MessageInfo/eb:MessageId
24.6 P-Modeのパラメータ
B2Bでは、P-Modeパラメータをサポートします。次に、AS4機能に関連するパラメータの一覧を示します。
表24-1 P-Modeのパラメータと説明
P-Modeのパラメータ | 説明 |
---|---|
PMode.ID | 取引パートナ・プロファイル。識別子は構成可能です。 |
PMode.Agreement | アグリーメントIDは、アグリーメント参照の指定に使用されます。 |
PMode.MEP | メッセージ交換パターン(MEP)は、バックエンド・アプリケーションからからエンキューされたeventNameに基づきます。 |
PMode.MEPbinding | メッセージ交換パターン(MEP)は、バックエンド・アプリケーションからからエンキューされたeventNameに基づきます。取引パートナ・デリバリ・チャネル構成を使用できます。 |
PMode.Initiator.Party | エンキュー時に送信元パーティは常に開始者に設定されます |
PMode.Initiator.Role | エンキュー時にActionName/イベント名を設定してFromRoleを設定します |
PMode.Initiator.Authorization.username | Basic認証の場合はOWSM資格証明にAuthユーザーを設定します |
PMode.Responder.Party | エンキュー時に送信先パーティは常に応答者に設定されます |
PMode.Responder.Role | エンキュー時にActionName/イベント名を設定してToRoleを設定します |
PMode.Responder.Authorization.username | Basic認証の場合はOWSM資格証明にAuthユーザーを設定します |
Protocol.Address | デリバリ・チャネルのhttp部分が常に想定されるため、これに固有の構成を行う必要はありません。 |
Protocol.SOAPVersion | AS4デリバリ・チャネル構成で十分であり、常にSOAP 1.2が使用されます |
BusinessInfo.Service: | エンキューの一部として、ActionName/イベント名とサービスを指定するか、静的サービスの場合はカスタム・ドキュメント・プロトコルの一部として設定します |
BusinessInfo.Action | エンキューの一部として、ActionName/イベント名とアクションを指定するか、静的アクションの場合はカスタム・ドキュメント・プロトコルの一部として設定します |
BusinessInfo.Properties[]: | プロパティの追加はサポートされません |
ErrorHandling.Report.ReceiverErrorsTo | エラー/例外が発生した場合、B2Bは送信者に例外メッセージを送信します |
ErrorHandling.Report.AsResponse | エラー/例外が発生した場合、B2Bは送信者に例外メッセージを送信します |
[1].ErrorHandling.Report.ProcessErrorNotifyProducer | エラーは処理され、リクエスト・メッセージの状態は「エラー」に更新されます。 |
ErrorHandling.Report.DeliveryFailuresNotifyProducer | エラーは配信されず、エラー受信確認メッセージの状態は「エラー」に変更されます。 |
Security.WSSVersion | OWSM構成ハンドル |
Security.X509.Sign | OWSM構成ハンドル |
Security.X509.Signature.Certificate | OWSM構成ハンドル |
Security.X509.Signature.HashFunction | OWSM構成ハンドル |
Security.X509.Signature.Algorithm | OWSM構成ハンドル |
セキュリティ。X509.Encryption.Encrypt | OWSM構成ハンドル |
Security.X509.Encryption.Certificate | OWSM構成ハンドル |
Security.X509.Encryption.Algorithm | OWSM構成ハンドル |
Security.UsernameToken.username | OWSM構成ハンドル |
Security.UsernameToken.password | OWSM構成ハンドル |
Security.UsernameToken.Digest | OWSM構成ハンドル |
Security.UsernameToken.Created | OWSM構成ハンドル |
Security.PModeAuthorize | OWSM構成ハンドル |
Security.SendReceipt | OWSM構成ハンドル |
Security.SendReceipt.ReplyPattern | OWSM構成ハンドル |
24.7 ローカル・ポリシー・アタッチメント
LPA(ローカル・ポリシー・アタッチメント)を使用して、デリバリ・チャネルに複数のポリシーをアタッチできます。デリバリ・チャネル構成の一部として、OWSMポリシーを選択して特定のエンドポイントにアタッチします。
24.8 ユースケースのシナリオ
2つのパートナ間でドキュメントを交換するシナリオ。
24.8.1 インバウンド・メッセージング
信頼できるメッセージングを使用して特定のメッセージ・タイプを交換するように、MSHの送信と受信が構成されています。送信MSHによって、このタイプの署名されたメッセージが送信されます。
想定される結果では、受信MSHによって同期AS4非拒否受信確認が返されます。返された受信確認のNonRepudiationInformation要素の内容は、受信されたメッセージの署名と一致している必要があります。これは、メッセージ・ログ、メッセージ・トラッカまたはTCPモニタリング・ツール(あるいはその両方)を使用して判断されます。後者の場合はTLSを使用しないでください。