特許第5976838号(P5976838)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマデウス エス.アー.エス.の特許一覧

特許5976838高信頼性・高性能のアプリケーションメッセージ配送のためのシステム
<>
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000003
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000004
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000005
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000006
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000007
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000008
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000009
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000010
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000011
  • 特許5976838-高信頼性・高性能のアプリケーションメッセージ配送のためのシステム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5976838
(24)【登録日】2016年7月29日
(45)【発行日】2016年8月24日
(54)【発明の名称】高信頼性・高性能のアプリケーションメッセージ配送のためのシステム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20160817BHJP
【FI】
   G06F12/00 531D
【請求項の数】21
【全頁数】20
(21)【出願番号】特願2014-549460(P2014-549460)
(86)(22)【出願日】2012年12月27日
(65)【公表番号】特表2015-513708(P2015-513708A)
(43)【公表日】2015年5月14日
(86)【国際出願番号】EP2012076937
(87)【国際公開番号】WO2013098316
(87)【国際公開日】20130704
【審査請求日】2015年10月1日
(31)【優先権主張番号】11306803.5
(32)【優先日】2011年12月29日
(33)【優先権主張国】EP
(31)【優先権主張番号】13/418,819
(32)【優先日】2012年3月13日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】509228994
【氏名又は名称】アマデウス エス.アー.エス.
【氏名又は名称原語表記】AMADEUS S.A.S.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】デ シャット, ポール
(72)【発明者】
【氏名】パレ, トーマス
(72)【発明者】
【氏名】パスカル, マシュー
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 国際公開第03/062993(WO,A2)
【文献】 特開2008−84246(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
アプリケーションメッセージ配送を提供する方法であって、
複数のログサーバのうちの少なくとも一部により、非同期的に、アプリケーション情報を含む複数のアプリケーションメッセージ、および、所定の間隔で、前記複数のアプリケーションメッセージと関連付けられた複数の制御メッセージを受信するステップと、
前記複数のログサーバの各々において、前記受信されたアプリケーションメッセージを複数のアプリケーションデータファイルに、前記受信された制御メッセージを複数の制御ファイルに保存するステップと、
前記複数のログサーバの各アプリケーションデータファイル内の保存されたアプリケーションメッセージの数を評価するために、前記複数のログサーバの各々について、前記複数のログサーバの各々によって非同期的に受信された前記複数のアプリケーションメッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージ番号を比較するステップと、
結果に基づき、サーバにより、前記複数のログサーバのうちの1つにおけるアプリケーションデータファイルのうちの1つを最適候補ファイルとして指定するステップと、
前記サーバから前記最適候補ファイルを後処理のために送付するステップと、を含み、
前記複数の制御メッセージの各々は前記複数のログサーバのうちの1つまたは複数のログサーバにより受信され、各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数のアプリケーションデータファイルのうちの最大数のアプリケーションメッセージを含むアプリケーションデータファイルである、方法。
【請求項2】
各制御メッセージはタイムスタンプを含む、請求項1に記載の方法。
【請求項3】
前記制御メッセージのうちの1つはオープン/クローズ制御メッセージであり、前記オープン/クローズ制御メッセージは、前記オープン/クローズ制御メッセージを受信したログサーバのうちの少なくとも1つにおいて、前記ログサーバのうちの少なくとも1つによって受信される続くアプリケーションメッセージを保存するために、前記アプリケーションデータファイルのうちの現在のアプリケーションデータファイルを閉じ、前記アプリケーションデータファイルのうちの新規のアプリケーションデータファイルを開くように命令する、請求項1に記載の方法。
【請求項4】
前記オープン/クローズ制御メッセージは、オープン/クローズ制御メッセージでない指定された数の制御メッセージを受信した後に、前記ログサーバのうちの少なくとも1つによって受信される、請求項3に記載の方法。
【請求項5】
各アプリケーションデータファイルは課金トランザクション・アプリケーションであり、各アプリケーションメッセージは旅行産業に関連するサービスの課金に関連する、請求項1に記載の方法。
【請求項6】
各オープン/クローズメッセージは、前記オープン/クローズメッセージと関連付けられたアプリケーションデータファイルのオープンを示すオープンメッセージ番号、および、前記ログサーバのうちの少なくとも1つによって受信されたアプリケーションデータファイルの順序で前記アプリケーションデータファイルを識別する前記オープン/クローズメッセージと関連付けられたアプリケーションデータファイルのクローズを示すクローズメッセージ番号を含む、請求項1に記載の方法。
【請求項7】
少なくとも2つのアプリケーションデータファイルが同数のアプリケーションメッセージを有するとき、各ログサーバによって受信された各アプリケーションデータファイルと関連付けられた各オープン/クローズメッセージを比較して、前記複数のアプリケーションデータファイルの中から選択された最適候補ファイルを決定するステップをさらに含み、前記最適候補ファイルはオープンメッセージおよびクローズメッセージの両方を含む、請求項6に記載の方法。
【請求項8】
前記最適候補ファイルが、前記複数のアプリケーションデータファイルに含まれる指定された率より少ないアプリケーションメッセージを損失したとき、前記最適候補ファイルとして決定されていないアプリケーションデータファイルから、前記最適候補ファイルのために、損失したアプリケーションメッセージの部分を取得するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記ログサーバのうちの少なくとも1つにより、クローズメッセージが受信されたとき、現在のアプリケーションデータファイルを終了するステップと、
前記ログサーバのうちの少なくとも1つにより、オープンメッセージが受信されたとき、新規のアプリケーションデータファイルを生成するステップと、
前記ログサーバのうちの少なくとも1つにより、前記クローズメッセージおよび前記オープンメッセージに基づいて、前記現在のアプリケーションデータファイルを終了し、前記新規のアプリケーションデータファイルを開くことによって、前記アプリケーションメッセージを同期させるステップと、をさらに含む、請求項6に記載の方法。
【請求項10】
所定の間隔での各制御ファイル内の前記保存された制御メッセージを比較するステップは、
各制御ファイルを選択することによって各アプリケーションデータファイルのために比較されるメッセージの数を減少させて、各アプリケーションデータファイルに含まれるアプリケーションメッセージを比較するのでなく、各制御ファイルに含まれる制御メッセージを比較するステップを含む、請求項1に記載の方法。
【請求項11】
前記アプリケーションメッセージは課金メッセージであり、前記アプリケーション情報は課金トランザクションのための情報である、請求項1に記載の方法。
【請求項12】
高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムであって、
前記システムは複数のログサーバを含み、各ログサーバは、
第1のプロセッサと、
前記第1のプロセッサに結合された第1のメモリと、を含み、前記第1のメモリは、前記第1のプロセッサによって実行されるとき、前記第1のプロセッサに、
前記複数のログサーバのうちの少なくとも一部により、非同期的に、アプリケーション情報を含む複数のアプリケーションメッセージ、および、所定の間隔で、前記複数のアプリケーションメッセージと関連付けられた複数の制御メッセージを受信させ、
前記複数のログサーバの各々において、前記受信されたアプリケーションメッセージを複数のアプリケーションデータファイルに、前記受信された制御メッセージを複数の制御ファイルに保存させる命令を含み、前記複数の制御メッセージの各々は前記複数のログサーバのうちの1つまたは複数のログサーバにより受信され、
前記システムは前記複数のログサーバに結合されたサーバを含み、前記サーバは、
第2のプロセッサと、
前記第2のプロセッサに結合された第2のメモリと、を含み、前記第2のメモリは、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、
前記複数のログサーバの各アプリケーションデータファイルに保存されたアプリケーションメッセージの数を評価するために、前記複数のログサーバの各々について、前記複数のログサーバの各々によって非同期的に受信された前記複数のアプリケーションメッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージの数を比較させ、
結果に基づき、前記複数のログサーバのうちの1つにおけるアプリケーションデータファイルのうちの1つを最適候補ファイルとして指定させ、
前記最適候補ファイルを後処理のために送付させる命令を含み、
各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数のアプリケーションデータファイルのうちの最大数のアプリケーションメッセージを含むアプリケーションデータファイルである、システム。
【請求項13】
各制御メッセージはタイムスタンプを含む、請求項12に記載のシステム。
【請求項14】
前記命令は、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、さらに、
各制御メッセージと関連付けられた各制御メッセージ番号を比較させて、前記複数のアプリケーションデータファイルから選択された最適候補ファイルを決定させ、
前記最適候補ファイルは、順に受信された制御メッセージ番号を有する最大数の制御メッセージを含む、請求項13に記載のシステム。
【請求項15】
オープン/クローズメッセージは、前記オープン/クローズメッセージを受信したログサーバのうちの少なくとも1つにおいて、前記ログサーバのうちの少なくとも1つによって受信される続くアプリケーションメッセージを保存するために、現在のアプリケーションデータファイルを閉じ、新規のアプリケーションデータファイルを開くように命令する制御メッセージである、請求項13に記載のシステム。
【請求項16】
各オープン/クローズメッセージは、前記オープン/クローズメッセージと関連付けられたアプリケーションデータファイルのオープンを示すオープンメッセージ番号、および、前記ログサーバのうちの少なくとも1つによって受信されたアプリケーションデータファイルの順序で前記アプリケーションデータファイルを識別する前記オープン/クローズメッセージと関連付けられたアプリケーションデータファイルのクローズを示すクローズメッセージ番号を含む、請求項15に記載のシステム。
【請求項17】
前記命令は、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、さらに、
少なくとも2つのアプリケーションデータファイルが同数のアプリケーションメッセージを有するとき、前記ログサーバのうちの少なくとも1つによって受信された各アプリケーションデータファイルと関連付けられたオープン/クローズメッセージを比較させて、前記最適候補ファイルを決定させ、前記最適候補ファイルはオープンメッセージおよびクローズメッセージの両方を含む、請求項16に記載のシステム。
【請求項18】
前記命令は、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、さらに、
前記最適候補ファイルが、前記複数のアプリケーションデータファイルに含まれる指定された率より少ないアプリケーションメッセージを損失したとき、前記最適候補ファイルとして決定されていないアプリケーションデータファイルから、前記最適候補ファイルのために、損失したアプリケーションメッセージの部分を取得させる、請求項17に記載のシステム。
【請求項19】
前記命令は、前記第1のプロセッサによって実行されるとき、前記第1のプロセッサに、
クローズメッセージが受信されたとき、現在のアプリケーションデータファイルを終了させ、
オープンメッセージが受信されたとき、新規のアプリケーションデータファイルを生成させ、
前記ログサーバのうちの少なくとも1つによって受信されたクローズメッセージおよびオープンメッセージに基づいて、前記現在のアプリケーションデータファイルを終了し、新規のアプリケーションデータファイルを開くことによって、各アプリケーションメッセージを同期させる、請求項16に記載のシステム。
【請求項20】
前記命令は、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、
各制御ファイルを選択することによって各アプリケーションデータファイルのために比較されるメッセージの数を減少させて、各アプリケーションデータファイルに含まれるアプリケーションメッセージを比較するのでなく、各制御ファイルに含まれる制御メッセージを比較させる、請求項12に記載のシステム。
【請求項21】
高信頼性かつ高性能の課金メッセージ配送のためのシステムであって、
前記システムは複数のログサーバを含み、各ログサーバは、
第1のプロセッサと、
前記第1のプロセッサに結合された第1のメモリと、を含み、前記第1のメモリは、前記第1のプロセッサによって実行されるとき、前記第1のプロセッサに、
前記複数のログサーバのうちの少なくとも一部により、非同期的に、各々が課金トランザクションのための情報を含む複数の課金メッセージ、および、所定の間隔で、前記複数の課金メッセージと関連付けられた複数の制御メッセージを受信させ、
前記複数のログサーバの各々において、前記受信された課金メッセージを複数の課金データファイルに、前記受信された制御メッセージを複数の制御ファイルに保存させる命令を含み、
前記システムは前記複数のログサーバに結合されたサーバを含み、前記サーバは、
第2のプロセッサと、
前記第2のプロセッサに結合された第2のメモリと、を含み、前記第2のメモリは、前記第2のプロセッサによって実行されるとき、前記第2のプロセッサに、
各課金データファイルに保存された課金メッセージの数を評価するために、前記複数のログサーバの各々について、前記複数の課金メッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージ番号を比較させ、
結果に基づき、前記サーバにより、前記課金データファイルのうちの1つを最適候補ファイルとして指定させ、
前記サーバから前記最適候補ファイルを後処理のために送付させる命令を含み、
各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数の課金データファイルのうちの大数課金メッセージを含む課金データファイルである、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大量の電子メッセージ配送の分野に関する。特に有効な、ただし限定的ではない適用例は、航空会社の課金トランザクションに関するものである。具体的には、本発明は、低信頼性ネットワークを介した、複数のログサーバへの、例えば課金情報を含む多数の非同期メッセージ(典型的には、1秒あたり、>8,000件のメッセージ)の配送に関し、ログサーバでは既定の期間の課金情報を含むログファイルが作成され、その期間の課金情報の処理は、課金データの損失が最も少ないログファイルにおいて実行される。
【背景技術】
【0002】
公知技術では、低信頼ネットワークを介して、またはユーザ・データグラム・プロトコル(UDP)のような非同期伝送プロトコルを用いて、データを伝送することが時として必要となり、それは、そのようなセッションレスでのネットワーク・トランザクションは、例えば伝送制御プロトコル(TCP)に基づくトランザクションよりも、スループットが高いからである。
【0003】
図1の従来技術によるシステムの例について考える。このようなサーバ103を基本とするシステムにより、課金情報を伝送する複数のアプリケーション123を実行することが可能である。同期トランザクションを用いてネットワーク105の容量を超える件数の課金トランザクションを実行する必要があるという理由で、またはトランザクション受信のACK(確認)応答をアプリケーションが待つことに応じたスループットの損失があるという理由で、ネットワーク105を介して非同期メッセージ125が送信される。非同期メッセージは、ログサーバ107により受信されるか、または受信されない。
【0004】
一方、ログサーバ107は、フォールトトレラントまたはハイアベイラビリティ・サーバではなく、従って低信頼である127と考えられる。受信されるすべてのメッセージは、課金システム131を用いて課金サーバ111で処理するために、ファイルシステム109に保存される(129)。
【発明の概要】
【発明が解決しようとする課題】
【0005】
使用されるメッセージングプロトコル125と、ログサーバ107の低信頼性127とによって、トランザクションが損失し得ると、理解されている。
【0006】
そこで、本発明の目的は、スループットを向上させるか、または少なくとも維持しつつ、信頼性のないネットワークを用いながらも、メッセージ配送の信頼性を著しく向上させることである。
【課題を解決するための手段】
【0007】
一態様によれば、本発明は、高信頼性かつ高性能のアプリケーションメッセージ配送を提供するコンピュータ実現による方法に関する。該方法は、少なくとも1つのデータ処理装置で実行される以下のステップを含む。
各アプリケーションサーバがアプリケーションに関連付けられている少なくとも1つのアプリケーションサーバに接続された複数のログサーバにおいて、アプリケーショントランザクション用のアプリケーション情報を含むアプリケーションメッセージを上記少なくとも1つのアプリケーションサーバから非同期的に受信することであって、各アプリケーションメッセージを上記複数のログサーバのうち少なくとも一部のログサーバにより受信することと、制御メッセージを所定の間隔で上記少なくとも1つのアプリケーションサーバから非同期的に受信することであって、各制御メッセージを上記複数のログサーバのうちの少なくとも一部のログサーバにより受信することと、
複数のログサーバの各々において、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存することと、受信した制御メッセージを制御ファイルに保存するとともに、オープン/クローズ制御メッセージを受信した場合は、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存し、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成することと、
所定の期間について、複数のログサーバの制御ファイルを比較することと、
この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定することと、その最適候補ファイルを後処理のために送付すること。
【0008】
従って、アプリケーションサーバにより送付されたアプリケーションメッセージのうちの一部が、ログサーバのうちの一部において受信されていない場合に、本発明により、それらのアプリケーションデータファイルを比較する必要なく、最も信頼性が高いアプリケーションデータファイルを決定することが可能であり、これにより、他のアプリケーションデータファイルは破棄される。
【0009】
オプションとして、本発明は、以下の随意の特徴のいずれかを備えることができる。
【0010】
一実施形態では、各ログサーバは、少なくとも1つのアプリケーションにそれぞれが関連付けられた複数のアプリケーションサーバに接続されている。
【0011】
効果的には、制御メッセージは、該アプリケーションサーバにより送信されたアプリケーションメッセージの数を含む。効果的には、制御メッセージは、一連の制御メッセージにおける制御メッセージの順序を一意に識別する識別子を含む。好ましくは、その識別子は、制御メッセージ番号である。効果的には、制御メッセージは、アプリケーションの識別子と該アプリケーションサーバのタイムスタンプのうちの少なくとも1つを含む。好ましくは、各制御メッセージは、アプリケーションの識別子と該アプリケーションサーバのタイムスタンプとを含む。
【0012】
好ましくは、制御メッセージを送付するための間隔は、所定の時間周期である。
【0013】
効果的には、オープン/クローズ制御メッセージは、一連の制御メッセージにおけるN番目の制御メッセージである。一実施形態では、Nは予め決められている。一実施形態では、N番目の制御メッセージは、その一連の制御メッセージにおける5番目の制御メッセージであり、所定の時間周期は2分周期である。
【0014】
効果的には、複数のログサーバからの所定の期間のアプリケーションデータファイルのセットであって、同じ開始点および停止点を持つアプリケーションデータファイルのセットから、最適候補ファイルが選択される。好ましくは、開始点と停止点は、オープン/クローズ制御メッセージの受信によって決定される。
【0015】
効果的な一実施形態によれば、最適候補ファイルは、ファイルの上記選択されたセットの中から、アプリケーションメッセージ損失率が最も低いファイルが選択される。効果的な一実施形態によれば、複数のアプリケーションデータファイルが同数のアプリケーションメッセージを有する場合に、最適候補ファイルは、アプリケーションメッセージ損失率が最も低いアプリケーションデータファイルのうち、制御メッセージ損失率が最も低いファイルが選択される。
【0016】
一実施形態において、損失したアプリケーションメッセージがある最適候補ファイルであって、その期間のアプリケーションメッセージの損失がx%を超えない最適候補ファイルは、ファイルの上記セットの中の他のファイルに存在する該損失アプリケーションメッセージによって増補され、xは予め決められている。一実施形態において、xは、15から45の間に含まれる。
【0017】
効果的には、複数のログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてアプリケーションデータファイルが決定されると、サーバは、その最適候補ファイルをアプリケーション処理のために送付する。
【0018】
一実施形態では、アプリケーションは、航空会社の課金トランザクション・アプリケーションである。
【0019】
別の態様によれば、本発明は、ソフトウェアプログラム命令を含む非一時的なコンピュータ可読媒体に関し、その場合、少なくとも1つのデータ処理装置によるソフトウェアプログラム命令の実行の結果として、本発明の方法の実施を含むオペレーションが実行される。
【0020】
本発明の別の態様は、高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムに関する。該システムは、
少なくとも1つのアプリケーションサーバの出力に接続された複数のログサーバであって、
各ログサーバは、アプリケーション情報を含むアプリケーションメッセージと制御メッセージとを、上記少なくとも1つのアプリケーションサーバから非同期的に受信するように構成されており、
各ログサーバは、さらに、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存し、受信した制御メッセージを制御ファイルに保存し、オープン/クローズ制御メッセージを受信した場合には、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存することで、その閉じたアプリケーションデータファイルを複数のアプリケーションデータファイルに追加し、さらに、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成するように構成されている、複数のログサーバと、
上記複数のログサーバに接続されたサーバであって、所定の期間について複数のログサーバの制御ファイルを比較し、この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定し、その最適候補ファイルを後処理のために送付するように構成されている、サーバと、を備える。
【0021】
オプションとして、システムは、複数のアプリケーションサーバと、これら複数のアプリケーションサーバのいずれかのプロセッサで実行される複数のアプリケーションと、を備え、アプリケーションサーバの各々は、ログサーバの各々の入力に接続された出力を有する。
【0022】
別の態様によれば、本発明は、高信頼性かつ高性能な課金メッセージ配送を提供することにより損失の問題を解決するものであり、アプリケーショントランザクション用の課金情報を含む課金メッセージを複数のログサーバの各々に非同期的に送付し;所定の間隔で制御メッセージを複数のログサーバの各々に非同期的に送付し;複数のログサーバの各々において受信した課金メッセージを現在の課金データファイルに保存し;複数のログサーバの各々において受信した制御メッセージを制御ファイルに保存するとともに、オープン/クローズ制御メッセージを受信した場合は、現在の課金データファイルを閉じて、その閉じた課金データファイルを複数の課金データファイルに追加し、さらに新規の課金データファイルを現在の課金データファイルとして作成し;ログサーバの各々からの複数の課金データファイルの中から所定の期間の最適候補としての課金データファイルを決定し、その最適候補ファイルを課金処理のために送付する。
【0023】
本発明のさらに別の態様により、高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムを開示し、それは、
1つのアプリケーションサーバ上でアプリケーショントランザクションの少なくとも一部を実行する少なくとも1つのアプリケーションと、
上記少なくとも1つのアプリケーションサーバの出力に接続された複数のログサーバと、を備え、
上記少なくとも1つのアプリケーションサーバは、トランザクション用の情報を含むアプリケーションメッセージと制御メッセージとを、複数のログサーバの各々に非同期的に送付するように構成されており、
各ログサーバは、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存し、受信した制御メッセージを制御ファイルに保存し、オープン/クローズ制御メッセージを受信した場合には、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存し、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成するように構成されており、
上記複数のログサーバに接続されたサーバであって、所定の期間について複数のログサーバの制御ファイルを比較し、この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定し、その最適候補ファイルを後処理のために送付するように構成されている、サーバをさらに備える、ことを特徴とする。
【0024】
好ましくは、アプリケーションは、課金トランザクションの少なくとも一部を実行する課金アプリケーションである。好ましくは、アプリケーションメッセージは、課金に関連するデータを含む課金メッセージである。好ましくは、アプリケーションデータファイルは、課金データファイルである。
【0025】
本発明の別の態様は、本発明による方法のステップを実行することが可能な命令を含むコンピュータプログラム・プロダクトに関する。
【図面の簡単な説明】
【0026】
図1図1は、従来技術によるシステムのシステム図である。
図2図2は、本発明のアーキテクチャのシステム図である。
図3図3は、制御メッセージのデータ構造の説明図である。
図4図4は、伝送される制御メッセージのタイプの一覧である。
図5図5は、課金メッセージを送信するアプリケーションにより実行される処理のフローチャートである。
図6図6は、メッセージを受信するログサーバにより実行される処理のフローチャートである。
図7図7は、最適候補ログファイルの処理のフローチャートである。
図8図8は、選択された最適候補ファイルの品質を向上させるフローチャートである。
図9図9は、メッセージがアプリケーションサーバから4つのログサーバのクラスタに伝送される例示的な一実施形態の簡略図である。
図10図10は、本システムのサーバのうちのいずれかの内部アーキテクチャの図である。
【発明を実施するための形態】
【0027】
本発明は、アプリケーションにより送信される通知メッセージの配送に、ログサーバのクラスタを用いて対処するものであることが想起される。各アプリケーションは、すべての冗長ログサーバに一度に通知する。各ログサーバは、通知メッセージのこのストリームを別々の管理できるファイルに分割する。システムは、クラスタにおいて最も信頼性の高いファイルを継続的に決定し、そのファイルを受け取り手に転送する。
【0028】
オプションとして、本発明は、効果的ではあるものの随意である以下の特徴のいずれかを備えることができる。
【0029】
制御メッセージは、課金アプリケーションの識別子を含む。好ましくは、制御メッセージは、さらに、アプリケーションサーバのタイムスタンプ、アプリケーション(例えば、課金アプリケーション)により送信された制御メッセージの数、アプリケーションにより送信されたアプリケーションメッセージ(例えば、課金メッセージ)の数、のうちのいずれかを含む。各アプリケーションは、所定の時間周期で制御メッセージを送付するための規定の間隔を有し、また、オープン/クローズ制御メッセージは、一連の制御メッセージにおけるN番目ごとの制御メッセージである。効果的な一実施形態によれば、N番目の制御メッセージは、その一連の制御メッセージにおける5番目の制御メッセージであり、また、所定の時間周期は2分である。システムは、それら複数のログサーバからの所定の期間のファイルのセットであって、同じ開始点および停止点を持つファイルのセットから選択された最適候補ファイルを生成することにより、課金システムによる処理用のファイルを選択する。好ましくは、最適候補ファイルは、ファイルの上記選択されたセットからのものであって、メッセージ損失率が最も低いファイルである。最適候補ファイルは、メッセージの損失があって、その期間について損失したメッセージが30%を超えない場合に、ファイルの上記セットの最適候補ファイル以外のファイルに存在する該損失メッセージを複写することにより、増補することが可能である。好ましくは、複数のログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定したら、サーバは、その最適候補ファイルをアプリケーション処理のために送付する。
【0030】
図2は、本発明の好ましい実施形態を実現するシステムを示している。システムは、複数のアプリケーション201(a)〜(c)を有する。これらのアプリケーションは、単一のサーバ上で実行される複数の異なるアプリケーション201(a)〜(c)、複数のサーバ103上で実行される単一のアプリケーション201(a)、または複数の異なるサーバ上で実行される複数のアプリケーション201(a)〜201(c)の組み合わせ、とすることができる。アプリケーション201(a)〜(c)の各々は、非同期アプリケーションメッセージをログサーバ203(a)‐(b)に送付する。アプリケーションメッセージは、アプリケーションに関連する情報を含んでいる。例えば、アプリケーションメッセージは、課金、顧客プロファイルなどのうちのいずれかに関連するデータを含み得る。2つのログサーバ203(a)‐(b)を図示しているものの、ログサーバの数は、好ましくは2より大きいことは理解されるであろう。アプリケーションは、航空会社の課金トランザクションデータを対象としているものであるが、本発明のシステムにおいて、他のタイプのアプリケーションにより、他のデータを送付することが可能である。
【0031】
ログサーバ203(a)‐(b)の各々は、ログサーバ・インスタンス205と課金プラグイン207とを有し、これにより、受信したアプリケーションデータメッセージを現在のアプリケーションデータファイル209(a)に書き込み、制御メッセージを制御ファイル211に書き込む。この場合、同じアプリケーションメッセージが、アプリケーションサーバ201(a)〜(c)からすべてのログサーバ203(a)‐(b)に送信される。場合によっては、すべてログサーバ203(a)‐(b)が同じアプリケーションメッセージを受信する。しかしながら、実際には、それらのアプリケーションメッセージのうちの少なくとも一部は、すべてのログサーバ203(a)‐(b)によっては受信されないことがある。
【0032】
制御メッセージは、本明細書で後述する間隔で送信されて、現在のアプリケーションデータファイル209(a)を閉じさせるものであり、これにより、所定の期間の課金アプリケーションメッセージをそれぞれ表す複数のアプリケーションデータファイル209(b)‐(c)が作成される。
【0033】
制御メッセージには2つの目的がある。第1に、これらのメッセージは、ファイル209(a)〜(c)へのアプリケーションメッセージ・ストリームの分割を(再)同期させるために用いられる。各ログサーバで、同期したファイルを作成するためには、ストリームにおける同じ点でストリームを分割することが極めて重要である。第2に、各制御メッセージは、同期ファイルから最適候補を選択するために、相関アルゴリズムによって用いられる。このため、制御メッセージの要約が制御ファイル211に保存される。
【0034】
課金セクションは、相関バッチ213と、相関出力215と、送信バッチ217とを含み、これらが、アプリケーションデータファイル209(a)〜(c)の最適候補を決定して、その最適候補を課金フレームワーク219に送付することを担当する。
【0035】
図3は、伝送されるとき、および制御ファイル211に保存されるときの、制御メッセージの構造を示している。同じ制御メッセージが、アプリケーションサーバ201(a)〜(c)からすべてのログサーバ203(a)‐(b)に送信される。場合によっては、すべてのログサーバ203(a)‐(b)が同じ制御メッセージを受信する。しかしながら、実際には、それらの制御メッセージのうちの少なくとも一部は、すべてのログサーバ203(a)‐(b)によっては受信されないことがある。
【0036】
アプリケーション201(a)〜(c)により送信される各制御メッセージは、好ましくは、少なくとも4つの要素を有する。
【0037】
制御メッセージは、この制御メッセージの発信元であるアプリケーションサーバを識別するアプリケーション識別子303を含む。各アプリケーション201(a)〜(c)は、そのアプリケーションを一意に識別するアプリケーション識別子303を有する。この要素によって、いくつかの異なる課金アプリケーションが、同じクラスタ(すなわち、ログサーバ203(a)‐(b))に、データメッセージおよび制御メッセージを送信することが可能となる。クラスタでは、メッセージを送信元ごとに区別することが容易に可能である。
【0038】
タイムスタンプ305は、送信元アプリケーションサーバにおけるシングルリファレンスタイムを示している。すべての同期ステップは、送信元アプリケーションサーバのタイムスタンプ305に基づいている。これによって、サーバ203(a)‐(b)のクラスタにおいて通常見られるクロックの不一致が回避される。この特徴は、アプリケーションサーバ201(a)、201(b)、201(c)の数が大きい場合にこそ、最も効果的である。
【0039】
制御メッセージ番号307は、現在の制御メッセージの固有連番識別子を示している。この番号によって、ログサーバは、前の制御メッセージが損失したかどうかを知ることができる。例えば、あるログサーバで相次いで受信された2つの制御メッセージが、1より大きい増分で異なる制御メッセージ番号307を示している場合、それは、該ログサーバにより少なくとも1つの制御メッセージが受信されなかったことを意味する。
【0040】
アプリケーションメッセージ番号309は、アプリケーション201(a)〜(c)により送信されたアプリケーションメッセージの数を示している。各ログサーバは、自身が実際に受信したアプリケーションメッセージの数を知っているので、従って、各ログサーバは、この値に基づいて、損失したアプリケーションメッセージの数を把握する。
【0041】
メッセージ311のタイプは、送付されている制御メッセージのタイプを示している。
【0042】
図4は、アプリケーション201(a)〜(c)からログサーバ203(a)〜(b)に送付される制御メッセージのタイプを示している。アプリケーション・スタート(Application‐Start)403は、アプリケーションが起動したことを示すものであり、従って、新規のアプリケーションデータファイルが作成されなければならない。このような制御メッセージの結果として必然的な制御メッセージは、アプリケーションのシャットダウン時に現在のアプリケーションデータファイル209(a)を閉じるアプリケーション・ストップ(Application‐Stop)409である。
【0043】
インターバルタイマ405はX周期ごとにメッセージを送信し、この場合、Xは、例えば2分であることが好ましい。例えばN=5として、アプリケーション201(a)〜(c)により送信されるN番目ごとのチェックポイントは、分割チェックポイントと呼ばれるものであって、ログサーバ203(a)‐(b)によりストリームを分割するために用いられ、ログサーバは、現在のアプリケーションデータファイル209(a)を閉じて、次の連続したアプリケーションメッセージのセットが保存される新規のファイルを作成する。このような分割によって、1つのアプリケーションデータファイルに停止点が生成され、新規のアプリケーションデータファイルに開始点が生成される。このように、N番目のチェックポイント制御メッセージを受信したときに現在のアプリケーションデータファイルが閉じられ、その後、現在のアプリケーションデータファイルとなる新規のアプリケーションデータファイルが作成される。
【0044】
それぞれの開始点および停止点は、伝送の順番を識別することを可能とする制御メッセージ番号307に関連付けられる。従って、同じ開始点を持つアプリケーションデータファイルを識別することは容易である。また、同じ停止点を持つアプリケーションデータファイルを識別することも容易である。よって、ストリームの分割だけではなく、いくつかのログサーバのアプリケーションデータファイルの比較を容易に実現することができる。
【0045】
チェックポイントが損失する可能性もあるので、ログサーバ203(a)‐(b)は、そのような損失を、制御メッセージの制御メッセージ番号307を用いて検出する。一方、制御メッセージ番号は、分割点を逃したかどうかについても、ログサーバに通知するものである。[制御メッセージ番号のモジュロN=0]システムの要求に応じて、5以外の値を用いることが可能である。
【0046】
非分割チェックポイントが損失した場合、ログサーバ203(a)‐(b)は、その損失イベントを単に制御ファイル211に書き込む。制御ファイル211に損失イベントがあると、相当するアプリケーションデータファイルの信頼性が低下する。
【0047】
分割チェックポイントが損失した場合、ログサーバ203(a)‐(b)は、(分割チェックポイントを受信したかのように)現在のアプリケーションデータファイル209(a)を閉じて、新規のアプリケーションデータファイルを開く。しかしながら、この現在のアプリケーションデータファイルおよび新規のアプリケーションデータファイルは、分割チェックポイントでクローズ/オープンされたものではないので、同期がずれている。これに応じて、制御ファイル211は、逃したチェックポイントの損失イベント、新規ファイル作成のイベントによって、そのタイムスタンプと共に、更新される。アプリケーションデータファイルのクローズのイベントはない。これによって、相関アルゴリズムに、分割チェックポイントが損失したことを通知する。
【0048】
エンド・オブ・ピリオド(END‐OF‐PERIOD)制御メッセージ407は、アプリケーションにより決められた時点で、アプリケーション201(a)〜(c)によって送信される。典型的には、この制御メッセージは、課金アプリケーションの場合、2稼働日を区切るため、深夜に送信される。基本的に、このメッセージは、課金アプリケーションとログサーバとの間の完全な再同期を強いるものである。すべての内部カウンタはゼロに設定され、新規のアプリケーションデータファイルおよび新規の制御ファイルが開始される。また、当然のことながら、エンド・オブ・ピリオドは、数日、一週間、一か月、一年など、他の周期とすることもできる。
【0049】
制御メッセージはいずれも、課金アプリケーションの現在のタイムスタンプを含んでいるので、よって、エンド・オブ・ピリオド制御メッセージが損失したかどうか見極めるのは、課金アプリケーションにより送信されたタイムスタンプ要素の日付がもはやログサーバでの最新受信日付と同じではなくなるので、簡単なことである。この場合、ログサーバは、エンド・オブ・ピリオド・メッセージ407の受信をシミュレートして、すべての内部カウンタをゼロに設定し、新規のアプリケーションデータファイルを開始させる。制御ファイル211は、分割チェックポイントが損失した場合と同様にして、更新される。
【0050】
制御ファイル211に保存されるこれらのタイプ403〜409の制御メッセージによって、アプリケーションメッセージのストリームを、同期したアプリケーションデータファイル209(a)〜209(c)に分割することが可能となる。損失した制御メッセージがない場合には、すべてのファイルが同期する。制御メッセージが損失した場合には、クラスタにおけるファイルのいくつかは、同期がずれることになり、すなわち、一部のファイル(1つまたは複数)は、異なるタイムスタンプでオープン/クローズされることになる。ファイルが同期していることが分かることに加えて、システムは、さらに、各ファイルの正確さについても通知される。アプリケーションデータファイルについての両事実は、相関アルゴリズムによって利用される。
【0051】
本発明のシステムにおいて実現される課金サーバ219は、ログサーバ203(a)‐(b)の各々におけるログファイル209(a)〜(c)から最適候補を決定することによる受け手となるはずのものである。最適候補の決定は、相関バッチ213によって実行される。
【0052】
最適候補の選択は、各ログサーバ203(a)‐(b)の制御ファイル211を比較することに基づいている。多数の大きなアプリケーションデータファイル209(a)〜(c)を比較することなく、このステップは、リアルタイムで実行される。
【0053】
システムは、各ログサーバ203(a)‐(b)の異なる制御ファイル211におけるファイルオープン/ファイルクローズイベントをアラインする。このアライメントは、イベントのタイムスタンプに基づいている。アライメントとして一致するためには、
の定数を満たす必要がある。アライメントは、単に、ストリームが時間に関して同じ点で分割されているファイルを示すものである。この基準ケースでは、システムは、同期したアプリケーションデータファイル209(a)〜(c)の中で、第1に最も多くのメッセージを含み、第2に損失したチェックポイントメッセージが最も少ないアプリケーションデータファイルを選択することにより、最適候補を決定する。
【0054】
定数に達しない場合には、システム、ファイルオープンイベントとファイルクローズイベントの両方が見られるファイルを優先して選択する。分割チェックポイントが損失した場合は、クローズイベントが制御ファイル211に登録されない。これは、システムが、定数を引き下げるが、ただし、ファイルオープンイベントとファイルクローズイベントの両方を受信したファイルのみを検討の対象とすることを意味する。システムは、第1にアプリケーションメッセージの数に基づき、第2に損失したチェックポイントメッセージの数に基づいて、最適候補を規定する。
【0055】
ファイルクローズイベントを持つファイルが1つもない(これは、すべてのログサーバで分割チェックポイントを逃したことを意味する)極端なケースでは、システムは、第1に損失したチェックポイントメッセージが最も少なく、第2にメッセージが最も多いファイルを優先して選択する。
【0056】
重複したメッセージを課金サーバ219に送信しないようにするために、次のファイルオープンイベントで考慮すべき重要なことは、それは、時系列的に、現在選択された最適候補のクローズイベントの後に続くものでなければならないということである。
【0057】
システムは、さらに、欠損しているメッセージの一部を他の同期ファイルで取得することにより、選択された最適候補の品質を向上させる。この改良は、最適候補で損失したメッセージがx%未満である(すなわち、受信したメッセージの数が(100−x)%を超える)場合に、同期ファイルについてのみ、実施される。効果的には、15<x<45であり、より効果的には、x=30、すなわち、受信したメッセージの数が70%超である。最適候補ファイルでメッセージがx%を超えるまでも損失している場合には、その欠損しているメッセージを、他のアプリケーションデータファイルで得ることはできないと考えられる。
【0058】
結果として改良を実施する場合には、同期ファイルの各チェックポイントが比較される。各チェックポイントは、その最後の‘m’分間(例えば、m=2)で損失したメッセージの数を含んでいるので、システムは、どのファイルが最適なデータブロックを有するのか特定することが可能である。最適候補とは別のファイルが、その‘m’分間について、より多くのメッセージを含んでいる場合、そのメッセージのブロックが抽出されて、最適候補ファイルにおいて置き換えられる。
【0059】
要約した制御ファイル211内のイベントのみを用いて、アプリケーションデータファイル209(a)〜(c)内の最適ブロックが特定されるので、この方法により、最適候補をリアルタイムで改良することが可能となる。
【0060】
図5は、本発明を実現するアプリケーション201(a)〜(c)のスレッドがたどるステップの一例を示している。ステップ501でプロセスが開始し、直ちにステップ503で、アプリケーション・スタート制御メッセージ403をログサーバ203(a)〜(b)に送信する。
【0061】
課金アプリケーションのスレッドは、作業を求めて動作を繰り返す。ステップ505で、典型的には2分である所定の時間周期を超える時間が、最後の制御メッセージが発生してから経過したかどうか判断し、答えがYes(肯定)である場合には、ステップ507で、チェックポイント制御メッセージ405をログサーバ203(a)〜(b)に送信する。答えがNo(否定)である場合には、ステップ509に進み、アプリケーションメッセージ(例えば、課金アプリケーションメッセージ)を送信する必要があるかどうか判断する。答えがYesである場合には、ステップ511で、データと共にアプリケーションメッセージをログサーバ203(a)〜(b)に送信する。
【0062】
答えがNoである場合には、ステップ513に進み、新たな日付または別の課金期間であるかどうか判断する。答えがYesである場合には、ステップ515で、エンド・オブ・ピリオド制御メッセージ407をログサーバ203(a)〜(b)に送信する。
【0063】
答えがNoである場合には、ステップ517に進み、アプリケーションプログラムがシャットダウンしているかどうか判断する。答えがYesである場合には、ステップ519で、アプリケーション・ストップ制御メッセージ409を送信し、その後、ステップ521で処理を終了し、一方、そうでない場合には、繰り返しを継続する。
【0064】
図6は、ログサーバ203(a)‐(b)上でログメッセージを受信するプログラムのステップの一例を示している。ステップ601で、処理が開始する。ステップ603で、メッセージがアプリケーションメッセージ(例えば、課金アプリケーションメッセージ)であるかどうか判断し、Yesである場合には、ステップ605で、そのアプリケーションメッセージを現在のログファイル209(a)に保存する。Noである場合には、ステップ607で、その制御メッセージ301を制御ファイルに保存し、そして、受信した制御メッセージ301のタイプが何であるか確認する。ステップ609で、制御メッセージ301がアプリケーション・スタート制御メッセージ403であるかどうか判断し、Yesである場合には、ステップ611で、現在のアプリケーションデータファイル209(a)を新規で開く。Noである場合には、次のステップ613に進み、制御メッセージ301がチェックポイント制御メッセージ405であるかどうか判断し、Yesである場合には、ステップ615で、制御メッセージ番号307をチェックすることにより、それがN番目(Nは、予め決められており、例えば5である)のチェックポイントメッセージ405であるかどうか判断する。Yesである場合には、ステップ617で、現在のアプリケーションデータファイル209(a)を閉じて、以後、一連のアプリケーションデータファイル209(b,c, ...)における次のものとなる。新規のファイルを、現在のアプリケーションデータファイル209(a)として開く。
【0065】
Noである場合には、ステップ619で、前の制御メッセージで逃したものがあるかどうか判断し、当該のメッセージを逃したのであれば、ステップ617を実行する。
【0066】
ステップ621で、制御メッセージ301がエンド・オブ・ピリオド制御メッセージ407であるかどうか判断し、Yesである場合には、ステップ617を実行する。Noである場合には、ステップ623で、制御メッセージ301がアプリケーション・ストップであるかどうか判断する。Yesである場合には、ステップ625で、現在のアプリケーションデータファイル209(a)を閉じて、以後、一連のアプリケーションデータファイル209(b,c, ...)における次のものとなる。ステップ627で、処理を終了する。
【0067】
図7は、ログサーバ203(a)‐(b)の各々からのログファイル209(a)〜(c)について最適候補の選択を決定するための、本発明による方法の一例を示している。ステップ701で開始し、ステップ703で、ログサーバ203(a)‐(b)の各々における制御メッセージ301を比較することにより、時間に関して同じ点で分割されているアプリケーションデータファイル209(a)〜(c)を特定する。ログサーバ203(a)‐(b)の各々において時間に関して同じ点で分割されているアプリケーションデータファイル209(a)〜(c)のリストから、最多数の受信アプリケーションメッセージを含むログファイルを特定する(705)。好ましくは、少なくとも2つのアプリケーションデータファイル209(a)〜(c)が同数のアプリケーションメッセージを含む場合に、システムは、損失した制御メッセージの数を比較する。ログサーバ203(a)‐(b)の各々において時間に関して同じ点で分割されているアプリケーションデータファイル209(a)〜(c)のうちの最適候補は、最多数のアプリケーションメッセージを有し、かつ最多数の制御メッセージを有するアプリケーションデータファイル209(a)〜(c)である。
【0068】
選択したアプリケーションデータファイルを処理のために課金フレームワークに送付し(709)、そして処理を終了する(711)。
【0069】
図8は、品質を向上させるためにファイルを併合する方法を示している。ステップ705において、アプリケーションデータファイルが同期しており、最適候補は、その課金アプリケーションメッセージの70%より多くを含むが、ただしメッセージの100%より少ないと判断される(801)場合、欠損しているアプリケーションメッセージを、他のログサーバの同じ期間のアプリケーションデータファイルから最適候補のログファイルに補足する。
【0070】
図9は、アプリケーション201がメッセージを、LGS#1、LGS#2、LGS#3、LGS#4と呼ばれる4つのログサーバ203のクラスタに送信する例示的な一実施形態を示している。
【0071】
第1の同期チェックポイント100(チェックポイントi)で、4つのログサーバ203のそれぞれにおいて、アプリケーションデータファイルの開始をトリガする。従って、4つのログサーバ203のアプリケーションデータファイルは同一の開始点を持つ。さらに、アプリケーションメッセージが、ログサーバ203に送信される。各ログサーバ203は、これらのアプリケーションメッセージを受信し、それらを、開いたばかりのアプリケーションデータファイルに保存する。このように、アプリケーションメッセージは、ログサーバLGS#1、LGS#2、LGS#3、LGS#4によって、それぞれアプリケーションデータファイル101、102、103、104に保存される。
【0072】
時間間隔105ごとに、新たな制御メッセージが、アプリケーションサーバ201によって送信される。
【0073】
一部のログサーバで、通常のチェックポイントが受信されないことがある。例えば、LGS#2は、番号i+3を持つチェックポイントを逃し、LGS#3は、チェックポイント番号i+2、チェックポイント番号i+3、チェックポイント番号i+4を逃し、LGS#4は、チェックポイント番号i+1、チェックポイント番号i+3を逃した。さらに、一部のログサーバで、同期チェックポイントを逃すことがある。例えば、LGS#4は、番号i+5を持つチェックポイントを逃しており、該チェックポイントは、同期チェックポイントである。このチェックポイントは、現在のアプリケーションデータファイルのクローズおよび新規のアプリケーションデータファイルのオープンをトリガするオープン/クローズ制御メッセージである。従って、ログサーバLGS#1、LGS#2、LGS#3では、制御メッセージi+5を受信したときに、アプリケーションデータファイル101、102、103が同時に閉じられる。一方、ログサーバLGS#4では、アプリケーションデータファイル104は、後に閉じられる。このため、アプリケーションデータファイル101、102、103は、同じ開始点および停止点を持ち、アプリケーションデータファイル104は、他のものと同じ停止点を持たない。
【0074】
本実施形態では、オープン/クローズ制御メッセージは5番目の制御メッセージであり、また、制御メッセージを送付する間隔を矢印105で示している。
【0075】
最適候補ファイルは、同じ開始点および停止点を持つアプリケーションデータファイルのセット、すなわち、アプリケーションデータファイル101、102、103から選択される。アプリケーションデータファイル101、102、103のこのセットの中で、最適候補であるとみなされるものは、最多数のアプリケーションメッセージを含むものである。アプリケーションメッセージ数のこのような比較は、各ログサーバで作成された制御ファイルの比較に基づいている。従って、はるかに多くの時間と処理能力を要するアプリケーションデータファイルの比較は必要ない。2つ以上のアプリケーションデータファイル101、102、103が同数のアプリケーションメッセージを有する場合、そのときの最適候補は、最多数の制御メッセージを含むものである。例えば、アプリケーションデータファイル102と103が同数のアプリケーションメッセージを有し、この数がアプリケーションデータファイル101における数よりも大きい場合には、アプリケーションデータファイル102が最適候補であるとみなされ、アプリケーションデータファイル101、103、104は破棄される。
【0076】
この例示的な実施形態は、特に効果的な用途、すなわち課金メッセージの配送に関連して説明しているが、説明および図示したすべての特徴は他の用途にも適用される。
【0077】
なお、当業者であれば理解できるように、上記のシステムおよび方法は、図10のハードドライブ903、DVD/CD‐ROM 905、サムドライブ907などのコンピュータ可読記憶媒体に格納されたコンピュータプログラムとして実現することが可能であり、この場合、CPU901は、バス911を介してRAM 909にコンピュータプログラムをロードし、そして、上記のようなデバイスにアクセスし、ネットワークアダプタ913を介してネットワーク105と通信し、ディスプレイ915およびキーボードやマウスのような入出力装置917を用いるなどして、一連の命令としてのプログラムを実行する。コンピュータプログラムはコンピュータ可読記憶媒体に格納されており、格納されるという動詞は永久的なものにすることを意味するので、伝播信号は、コンピュータ可読記憶媒体の意味するものから除外される。
【0078】
理解されるように、本発明を用いることにより、いくつかの便益および技術的効果が実現される。特に、本発明により、大量のデータ処理を必要とすることなく、最も信頼性の高いメッセージを選択することができるので、高スループットを維持しながら、いくつかのログサーバに同じメッセージを送信することによりメッセージの信頼性を著しく向上させることが可能である。典型的には、本発明により、0.14%未満のメッセージ損失率を維持しながら、1秒あたり10000件を超えるトランザクションを送信することが可能となる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10