1.4.1 ビジネスメッセージの高信頼配信

電子商取引では,送信したビジネスメッセージが途中で紛失したり,同じビジネスメッセージを重複して受信したりすると,業務上大きな問題になるおそれがあります。こうした通信上のミスを防止するために,uCosminexus Message Service for ebXMLは,ビジネスメッセージの高信頼配信をサポートしています。

uCosminexus Message Service for ebXMLでは,受信側のMSHが送信するMSHシグナルによって,ビジネスメッセージが正しく,重複しないで配信されているかどうかを管理しています。ビジネスメッセージとMSHシグナルを合わせてebXMLメッセージと呼びます。

ebMS仕様では,どのくらい確実な配信ができるかの度合いによって高信頼配信のレベルを規定しています。高信頼配信のレベルを,QoSレベルといいます。QoSレベルは,CPAファイルの設定で決定します。ここでは,uCosminexus Message Service for ebXMLがサポートしているQoSレベルについて説明します。

CPAファイルでのQoSレベルの設定方法については,「2.3.1 QoSレベルの設定方法」を参照してください。

<この項の構成>
(1) Once and Only Once(推奨)
(2) At Least Once
(3) Best Effort

(1) Once and Only Once(推奨)

Once and Only Onceは,ビジネスメッセージを正確に,重複しないで配信することを保証するQoSレベルです。ビジネスメッセージの受信失敗時は,送信側のMSHが送信メッセージを再送します。ビジネスメッセージの重複受信時は,受信側のMSHが重複したビジネスメッセージを除去します。

高信頼配信のQoSレベルにOnce and Only Onceを選んだ場合の,ビジネスメッセージおよびMSHシグナルの送受信の流れを,次の図に示します。

図1-4 高信頼配信でのビジネスメッセージおよびMSHシグナルの送受信の流れ

[図データ]

  1. ビジネスメッセージの送信
    送信側のMSHがビジネスメッセージの送信に成功すると,受信側のMSHはMSHシグナルを送信側のMSHに送信します。そのあと受信側のMSHは,受信メッセージを業務アプリケーションに配信します。
  2. MSHシグナルの喪失
    受信側のMSHが送信したMSHシグナルが配信中に喪失すると,送信側のMSHでは送信メッセージの送信結果を確認できません。
  3. ビジネスメッセージの再送と除去
    一定期間MSHシグナルを受信できなかった送信側のMSHは,ビジネスメッセージを再送します。
    受信側のMSHは,受信メッセージが重複配信されていないかどうかをIDから判断し,重複配信と判断した場合は該当ビジネスメッセージを削除します。
  4. MSHシグナルの送信(成功)
    送信側のMSHは,MSHシグナルによってビジネスメッセージの配信に成功したかどうかを判断します。
    MSHシグナルには,次の2種類があります。
    • Acknowledgmentメッセージ
      配信に成功したときに送信されます。
    • Errorメッセージ
      配信に失敗したときに送信されます。

QoSレベルがOnce and Only Onceの場合,送信したビジネスメッセージとMSHシグナルをHTTPの別コネクション(非同期型)にするか,または同一コネクション(同期型)にするかを,CPAファイルで指定できます。

(2) At Least Once

Once and Only Onceがビジネスメッセージの再送および重複除去を保証するレベルなのに対して,At Least Onceでは,再送だけを保証します。uCosminexus Message Service for ebXMLでは,QoSレベルがAt Least Onceの場合もビジネスメッセージの重複除去をしますが,完全に重複除去できるという保証はしていません。

QoSレベルをAt Least Onceにするには,CPAファイル(MessagingCharacteristics要素)のackRequested属性の値を"always"に,duplicateElimination属性の値を"never"に設定します。

QoSレベルがAt Least Onceの場合,送信したビジネスメッセージとMSHシグナルをHTTPの別コネクション(非同期型)にするか,または同一コネクション(同期型)にするかを,CPAファイルで指定できます。

(3) Best Effort

Best Effortは,ビジネスメッセージの高信頼配信をしません。ビジネスメッセージ受信時にMSHシグナルを送らないため,送信側のMSHは,送信したビジネスメッセージが正確に相手に配信できたかどうかを判断できません。

高信頼配信のQoSレベルにBest Effortを選んだ場合の,ビジネスメッセージの送受信の流れを,次の図に示します。

図1-5 高信頼配信をしない場合のビジネスメッセージの送受信の流れ

[図データ]

  1. ビジネスメッセージAの送信
    送信側のMSHがビジネスメッセージの送信に成功すると,受信メッセージは受信側のMSHを経て業務アプリケーションに配信されます。
    ただし,送信側のMSHで送信メッセージを配信できたかどうかは確認できません。
  2. ビジネスメッセージBの送信
    送信側のMSHがビジネスメッセージの送信に失敗しても,送信側のMSHで送信メッセージを配信できたかどうかは確認できません。