電子商取引では,送信したビジネスメッセージが途中で紛失したり,同じビジネスメッセージを重複して受信したりすると,業務上大きな問題になるおそれがあります。こうした通信上のミスを防止するために,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レベルの設定方法」を参照してください。
Once and Only Onceは,ビジネスメッセージを正確に,重複しないで配信することを保証するQoSレベルです。ビジネスメッセージの受信失敗時は,送信側のMSHが送信メッセージを再送します。ビジネスメッセージの重複受信時は,受信側のMSHが重複したビジネスメッセージを除去します。
高信頼配信のQoSレベルにOnce and Only Onceを選んだ場合の,ビジネスメッセージおよびMSHシグナルの送受信の流れを,次の図に示します。
図1-4 高信頼配信でのビジネスメッセージおよびMSHシグナルの送受信の流れ
QoSレベルがOnce and Only Onceの場合,送信したビジネスメッセージとMSHシグナルをHTTPの別コネクション(非同期型)にするか,または同一コネクション(同期型)にするかを,CPAファイルで指定できます。
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ファイルで指定できます。
Best Effortは,ビジネスメッセージの高信頼配信をしません。ビジネスメッセージ受信時にMSHシグナルを送らないため,送信側のMSHは,送信したビジネスメッセージが正確に相手に配信できたかどうかを判断できません。
高信頼配信のQoSレベルにBest Effortを選んだ場合の,ビジネスメッセージの送受信の流れを,次の図に示します。
図1-5 高信頼配信をしない場合のビジネスメッセージの送受信の流れ