(57)【特許請求の範囲】
【請求項１】
アプリケーションメッセージ配送を提供する方法であって、
複数のログサーバのうちの少なくとも一部により、非同期的に、アプリケーション情報を含む複数のアプリケーションメッセージ、および、所定の間隔で、前記複数のアプリケーションメッセージと関連付けられた複数の制御メッセージを受信するステップと、
前記複数のログサーバの各々において、前記受信されたアプリケーションメッセージを複数のアプリケーションデータファイルに、前記受信された制御メッセージを複数の制御ファイルに保存するステップと、
前記複数のログサーバの各アプリケーションデータファイル内の保存されたアプリケーションメッセージの数を評価するために、前記複数のログサーバの各々について、前記複数のログサーバの各々によって非同期的に受信された前記複数のアプリケーションメッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージ番号を比較するステップと、
比較結果に基づき、サーバにより、前記複数のログサーバのうちの１つにおけるアプリケーションデータファイルのうちの１つを最適候補ファイルとして指定するステップと、
前記サーバから前記最適候補ファイルを後処理のために送付するステップと、を含み、
前記複数の制御メッセージの各々は前記複数のログサーバのうちの１つまたは複数のログサーバにより受信され、各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数のアプリケーションデータファイルのうちの最大数のアプリケーションメッセージを含むアプリケーションデータファイルである、方法。
【請求項２】
各制御メッセージはタイムスタンプを含む、請求項１に記載の方法。
【請求項３】
前記制御メッセージのうちの１つはオープン／クローズ制御メッセージであり、前記オープン／クローズ制御メッセージは、前記オープン／クローズ制御メッセージを受信したログサーバのうちの少なくとも１つにおいて、前記ログサーバのうちの少なくとも１つによって受信される続くアプリケーションメッセージを保存するために、前記アプリケーションデータファイルのうちの現在のアプリケーションデータファイルを閉じ、前記アプリケーションデータファイルのうちの新規のアプリケーションデータファイルを開くように命令する、請求項１に記載の方法。
【請求項４】
前記オープン／クローズ制御メッセージは、オープン／クローズ制御メッセージでない指定された数の制御メッセージを受信した後に、前記ログサーバのうちの少なくとも１つによって受信される、請求項３に記載の方法。
【請求項５】
各アプリケーションデータファイルは課金トランザクション・アプリケーションであり、各アプリケーションメッセージは旅行産業に関連するサービスの課金に関連する、請求項１に記載の方法。
【請求項６】
各オープン／クローズメッセージは、前記オープン／クローズメッセージと関連付けられたアプリケーションデータファイルのオープンを示すオープンメッセージ番号、および、前記ログサーバのうちの少なくとも１つによって受信されたアプリケーションデータファイルの順序で前記アプリケーションデータファイルを識別する前記オープン／クローズメッセージと関連付けられたアプリケーションデータファイルのクローズを示すクローズメッセージ番号を含む、請求項１に記載の方法。
【請求項７】
少なくとも２つのアプリケーションデータファイルが同数のアプリケーションメッセージを有するとき、各ログサーバによって受信された各アプリケーションデータファイルと関連付けられた各オープン／クローズメッセージを比較して、前記複数のアプリケーションデータファイルの中から選択された最適候補ファイルを決定するステップをさらに含み、前記最適候補ファイルはオープンメッセージおよびクローズメッセージの両方を含む、請求項６に記載の方法。
【請求項８】
前記最適候補ファイルが、前記複数のアプリケーションデータファイルに含まれる指定された率より少ないアプリケーションメッセージを損失したとき、前記最適候補ファイルとして決定されていないアプリケーションデータファイルから、前記最適候補ファイルのために、損失したアプリケーションメッセージの部分を取得するステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記ログサーバのうちの少なくとも１つにより、クローズメッセージが受信されたとき、現在のアプリケーションデータファイルを終了するステップと、
前記ログサーバのうちの少なくとも１つにより、オープンメッセージが受信されたとき、新規のアプリケーションデータファイルを生成するステップと、
前記ログサーバのうちの少なくとも１つにより、前記クローズメッセージおよび前記オープンメッセージに基づいて、前記現在のアプリケーションデータファイルを終了し、前記新規のアプリケーションデータファイルを開くことによって、前記アプリケーションメッセージを同期させるステップと、をさらに含む、請求項６に記載の方法。
【請求項１０】
所定の間隔での各制御ファイル内の前記保存された制御メッセージを比較するステップは、
各制御ファイルを選択することによって各アプリケーションデータファイルのために比較されるメッセージの数を減少させて、各アプリケーションデータファイルに含まれるアプリケーションメッセージを比較するのでなく、各制御ファイルに含まれる制御メッセージを比較するステップを含む、請求項１に記載の方法。
【請求項１１】
前記アプリケーションメッセージは課金メッセージであり、前記アプリケーション情報は課金トランザクションのための情報である、請求項１に記載の方法。
【請求項１２】
高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムであって、
前記システムは複数のログサーバを含み、各ログサーバは、
第１のプロセッサと、
前記第１のプロセッサに結合された第１のメモリと、を含み、前記第１のメモリは、前記第１のプロセッサによって実行されるとき、前記第１のプロセッサに、
前記複数のログサーバのうちの少なくとも一部により、非同期的に、アプリケーション情報を含む複数のアプリケーションメッセージ、および、所定の間隔で、前記複数のアプリケーションメッセージと関連付けられた複数の制御メッセージを受信させ、
前記複数のログサーバの各々において、前記受信されたアプリケーションメッセージを複数のアプリケーションデータファイルに、前記受信された制御メッセージを複数の制御ファイルに保存させる命令を含み、前記複数の制御メッセージの各々は前記複数のログサーバのうちの１つまたは複数のログサーバにより受信され、
前記システムは前記複数のログサーバに結合されたサーバを含み、前記サーバは、
第２のプロセッサと、
前記第２のプロセッサに結合された第２のメモリと、を含み、前記第２のメモリは、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、
前記複数のログサーバの各アプリケーションデータファイルに保存されたアプリケーションメッセージの数を評価するために、前記複数のログサーバの各々について、前記複数のログサーバの各々によって非同期的に受信された前記複数のアプリケーションメッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージの数を比較させ、
比較結果に基づき、前記複数のログサーバのうちの１つにおけるアプリケーションデータファイルのうちの１つを最適候補ファイルとして指定させ、
前記最適候補ファイルを後処理のために送付させる命令を含み、
各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数のアプリケーションデータファイルのうちの最大数のアプリケーションメッセージを含むアプリケーションデータファイルである、システム。
【請求項１３】
各制御メッセージはタイムスタンプを含む、請求項１２に記載のシステム。
【請求項１４】
前記命令は、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、さらに、
各制御メッセージと関連付けられた各制御メッセージ番号を比較させて、前記複数のアプリケーションデータファイルから選択された最適候補ファイルを決定させ、
前記最適候補ファイルは、順に受信された制御メッセージ番号を有する最大数の制御メッセージを含む、請求項１３に記載のシステム。
【請求項１５】
オープン／クローズメッセージは、前記オープン／クローズメッセージを受信したログサーバのうちの少なくとも１つにおいて、前記ログサーバのうちの少なくとも１つによって受信される続くアプリケーションメッセージを保存するために、現在のアプリケーションデータファイルを閉じ、新規のアプリケーションデータファイルを開くように命令する制御メッセージである、請求項１３に記載のシステム。
【請求項１６】
各オープン／クローズメッセージは、前記オープン／クローズメッセージと関連付けられたアプリケーションデータファイルのオープンを示すオープンメッセージ番号、および、前記ログサーバのうちの少なくとも１つによって受信されたアプリケーションデータファイルの順序で前記アプリケーションデータファイルを識別する前記オープン／クローズメッセージと関連付けられたアプリケーションデータファイルのクローズを示すクローズメッセージ番号を含む、請求項１５に記載のシステム。
【請求項１７】
前記命令は、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、さらに、
少なくとも２つのアプリケーションデータファイルが同数のアプリケーションメッセージを有するとき、前記ログサーバのうちの少なくとも１つによって受信された各アプリケーションデータファイルと関連付けられたオープン／クローズメッセージを比較させて、前記最適候補ファイルを決定させ、前記最適候補ファイルはオープンメッセージおよびクローズメッセージの両方を含む、請求項１６に記載のシステム。
【請求項１８】
前記命令は、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、さらに、
前記最適候補ファイルが、前記複数のアプリケーションデータファイルに含まれる指定された率より少ないアプリケーションメッセージを損失したとき、前記最適候補ファイルとして決定されていないアプリケーションデータファイルから、前記最適候補ファイルのために、損失したアプリケーションメッセージの部分を取得させる、請求項１７に記載のシステム。
【請求項１９】
前記命令は、前記第１のプロセッサによって実行されるとき、前記第１のプロセッサに、
クローズメッセージが受信されたとき、現在のアプリケーションデータファイルを終了させ、
オープンメッセージが受信されたとき、新規のアプリケーションデータファイルを生成させ、
前記ログサーバのうちの少なくとも１つによって受信されたクローズメッセージおよびオープンメッセージに基づいて、前記現在のアプリケーションデータファイルを終了し、新規のアプリケーションデータファイルを開くことによって、各アプリケーションメッセージを同期させる、請求項１６に記載のシステム。
【請求項２０】
前記命令は、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、
各制御ファイルを選択することによって各アプリケーションデータファイルのために比較されるメッセージの数を減少させて、各アプリケーションデータファイルに含まれるアプリケーションメッセージを比較するのでなく、各制御ファイルに含まれる制御メッセージを比較させる、請求項１２に記載のシステム。
【請求項２１】
高信頼性かつ高性能の課金メッセージ配送のためのシステムであって、
前記システムは複数のログサーバを含み、各ログサーバは、
第１のプロセッサと、
前記第１のプロセッサに結合された第１のメモリと、を含み、前記第１のメモリは、前記第１のプロセッサによって実行されるとき、前記第１のプロセッサに、
前記複数のログサーバのうちの少なくとも一部により、非同期的に、各々が課金トランザクションのための情報を含む複数の課金メッセージ、および、所定の間隔で、前記複数の課金メッセージと関連付けられた複数の制御メッセージを受信させ、
前記複数のログサーバの各々において、前記受信された課金メッセージを複数の課金データファイルに、前記受信された制御メッセージを複数の制御ファイルに保存させる命令を含み、
前記システムは前記複数のログサーバに結合されたサーバを含み、前記サーバは、
第２のプロセッサと、
前記第２のプロセッサに結合された第２のメモリと、を含み、前記第２のメモリは、前記第２のプロセッサによって実行されるとき、前記第２のプロセッサに、
各課金データファイルに保存された課金メッセージの数を評価するために、前記複数のログサーバの各々について、前記複数の課金メッセージの数と、前記複数のログサーバの各々において前記制御ファイルに保存された制御メッセージからのアプリケーションメッセージ番号を比較させ、
比較結果に基づき、前記サーバにより、前記課金データファイルのうちの１つを最適候補ファイルとして指定させ、
前記サーバから前記最適候補ファイルを後処理のために送付させる命令を含み、
各制御メッセージは、前記複数の制御メッセージのための順序を識別するために使用される制御メッセージ番号、および、前記制御メッセージを発信したアプリケーションサーバの識別子を含み、前記最適候補ファイルは、前記複数の課金データファイルのうちの最大数の課金メッセージを含む課金データファイルである、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大量の電子メッセージ配送の分野に関する。特に有効な、ただし限定的ではない適用例は、航空会社の課金トランザクションに関するものである。具体的には、本発明は、低信頼性ネットワークを介した、複数のログサーバへの、例えば課金情報を含む多数の非同期メッセージ（典型的には、１秒あたり、＞８，０００件のメッセージ）の配送に関し、ログサーバでは既定の期間の課金情報を含むログファイルが作成され、その期間の課金情報の処理は、課金データの損失が最も少ないログファイルにおいて実行される。
【背景技術】
【０００２】
公知技術では、低信頼ネットワークを介して、またはユーザ・データグラム・プロトコル（ＵＤＰ）のような非同期伝送プロトコルを用いて、データを伝送することが時として必要となり、それは、そのようなセッションレスでのネットワーク・トランザクションは、例えば伝送制御プロトコル（ＴＣＰ）に基づくトランザクションよりも、スループットが高いからである。
【０００３】
図１の従来技術によるシステムの例について考える。このようなサーバ１０３を基本とするシステムにより、課金情報を伝送する複数のアプリケーション１２３を実行することが可能である。同期トランザクションを用いてネットワーク１０５の容量を超える件数の課金トランザクションを実行する必要があるという理由で、またはトランザクション受信のＡＣＫ（確認）応答をアプリケーションが待つことに応じたスループットの損失があるという理由で、ネットワーク１０５を介して非同期メッセージ１２５が送信される。非同期メッセージは、ログサーバ１０７により受信されるか、または受信されない。
【０００４】
一方、ログサーバ１０７は、フォールトトレラントまたはハイアベイラビリティ・サーバではなく、従って低信頼である１２７と考えられる。受信されるすべてのメッセージは、課金システム１３１を用いて課金サーバ１１１で処理するために、ファイルシステム１０９に保存される（１２９）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
使用されるメッセージングプロトコル１２５と、ログサーバ１０７の低信頼性１２７とによって、トランザクションが損失し得ると、理解されている。
【０００６】
そこで、本発明の目的は、スループットを向上させるか、または少なくとも維持しつつ、信頼性のないネットワークを用いながらも、メッセージ配送の信頼性を著しく向上させることである。
【課題を解決するための手段】
【０００７】
一態様によれば、本発明は、高信頼性かつ高性能のアプリケーションメッセージ配送を提供するコンピュータ実現による方法に関する。該方法は、少なくとも１つのデータ処理装置で実行される以下のステップを含む。
各アプリケーションサーバがアプリケーションに関連付けられている少なくとも１つのアプリケーションサーバに接続された複数のログサーバにおいて、アプリケーショントランザクション用のアプリケーション情報を含むアプリケーションメッセージを上記少なくとも１つのアプリケーションサーバから非同期的に受信することであって、各アプリケーションメッセージを上記複数のログサーバのうち少なくとも一部のログサーバにより受信することと、制御メッセージを所定の間隔で上記少なくとも１つのアプリケーションサーバから非同期的に受信することであって、各制御メッセージを上記複数のログサーバのうちの少なくとも一部のログサーバにより受信することと、
複数のログサーバの各々において、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存することと、受信した制御メッセージを制御ファイルに保存するとともに、オープン／クローズ制御メッセージを受信した場合は、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存し、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成することと、
所定の期間について、複数のログサーバの制御ファイルを比較することと、
この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定することと、その最適候補ファイルを後処理のために送付すること。
【０００８】
従って、アプリケーションサーバにより送付されたアプリケーションメッセージのうちの一部が、ログサーバのうちの一部において受信されていない場合に、本発明により、それらのアプリケーションデータファイルを比較する必要なく、最も信頼性が高いアプリケーションデータファイルを決定することが可能であり、これにより、他のアプリケーションデータファイルは破棄される。
【０００９】
オプションとして、本発明は、以下の随意の特徴のいずれかを備えることができる。
【００１０】
一実施形態では、各ログサーバは、少なくとも１つのアプリケーションにそれぞれが関連付けられた複数のアプリケーションサーバに接続されている。
【００１１】
効果的には、制御メッセージは、該アプリケーションサーバにより送信されたアプリケーションメッセージの数を含む。効果的には、制御メッセージは、一連の制御メッセージにおける制御メッセージの順序を一意に識別する識別子を含む。好ましくは、その識別子は、制御メッセージ番号である。効果的には、制御メッセージは、アプリケーションの識別子と該アプリケーションサーバのタイムスタンプのうちの少なくとも１つを含む。好ましくは、各制御メッセージは、アプリケーションの識別子と該アプリケーションサーバのタイムスタンプとを含む。
【００１２】
好ましくは、制御メッセージを送付するための間隔は、所定の時間周期である。
【００１３】
効果的には、オープン／クローズ制御メッセージは、一連の制御メッセージにおけるＮ番目の制御メッセージである。一実施形態では、Ｎは予め決められている。一実施形態では、Ｎ番目の制御メッセージは、その一連の制御メッセージにおける５番目の制御メッセージであり、所定の時間周期は２分周期である。
【００１４】
効果的には、複数のログサーバからの所定の期間のアプリケーションデータファイルのセットであって、同じ開始点および停止点を持つアプリケーションデータファイルのセットから、最適候補ファイルが選択される。好ましくは、開始点と停止点は、オープン／クローズ制御メッセージの受信によって決定される。
【００１５】
効果的な一実施形態によれば、最適候補ファイルは、ファイルの上記選択されたセットの中から、アプリケーションメッセージ損失率が最も低いファイルが選択される。効果的な一実施形態によれば、複数のアプリケーションデータファイルが同数のアプリケーションメッセージを有する場合に、最適候補ファイルは、アプリケーションメッセージ損失率が最も低いアプリケーションデータファイルのうち、制御メッセージ損失率が最も低いファイルが選択される。
【００１６】
一実施形態において、損失したアプリケーションメッセージがある最適候補ファイルであって、その期間のアプリケーションメッセージの損失がｘ％を超えない最適候補ファイルは、ファイルの上記セットの中の他のファイルに存在する該損失アプリケーションメッセージによって増補され、ｘは予め決められている。一実施形態において、ｘは、１５から４５の間に含まれる。
【００１７】
効果的には、複数のログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてアプリケーションデータファイルが決定されると、サーバは、その最適候補ファイルをアプリケーション処理のために送付する。
【００１８】
一実施形態では、アプリケーションは、航空会社の課金トランザクション・アプリケーションである。
【００１９】
別の態様によれば、本発明は、ソフトウェアプログラム命令を含む非一時的なコンピュータ可読媒体に関し、その場合、少なくとも１つのデータ処理装置によるソフトウェアプログラム命令の実行の結果として、本発明の方法の実施を含むオペレーションが実行される。
【００２０】
本発明の別の態様は、高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムに関する。該システムは、
少なくとも１つのアプリケーションサーバの出力に接続された複数のログサーバであって、
各ログサーバは、アプリケーション情報を含むアプリケーションメッセージと制御メッセージとを、上記少なくとも１つのアプリケーションサーバから非同期的に受信するように構成されており、
各ログサーバは、さらに、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存し、受信した制御メッセージを制御ファイルに保存し、オープン／クローズ制御メッセージを受信した場合には、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存することで、その閉じたアプリケーションデータファイルを複数のアプリケーションデータファイルに追加し、さらに、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成するように構成されている、複数のログサーバと、
上記複数のログサーバに接続されたサーバであって、所定の期間について複数のログサーバの制御ファイルを比較し、この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定し、その最適候補ファイルを後処理のために送付するように構成されている、サーバと、を備える。
【００２１】
オプションとして、システムは、複数のアプリケーションサーバと、これら複数のアプリケーションサーバのいずれかのプロセッサで実行される複数のアプリケーションと、を備え、アプリケーションサーバの各々は、ログサーバの各々の入力に接続された出力を有する。
【００２２】
別の態様によれば、本発明は、高信頼性かつ高性能な課金メッセージ配送を提供することにより損失の問題を解決するものであり、アプリケーショントランザクション用の課金情報を含む課金メッセージを複数のログサーバの各々に非同期的に送付し；所定の間隔で制御メッセージを複数のログサーバの各々に非同期的に送付し；複数のログサーバの各々において受信した課金メッセージを現在の課金データファイルに保存し；複数のログサーバの各々において受信した制御メッセージを制御ファイルに保存するとともに、オープン／クローズ制御メッセージを受信した場合は、現在の課金データファイルを閉じて、その閉じた課金データファイルを複数の課金データファイルに追加し、さらに新規の課金データファイルを現在の課金データファイルとして作成し；ログサーバの各々からの複数の課金データファイルの中から所定の期間の最適候補としての課金データファイルを決定し、その最適候補ファイルを課金処理のために送付する。
【００２３】
本発明のさらに別の態様により、高信頼性かつ高性能のアプリケーションメッセージ配送のためのシステムを開示し、それは、
１つのアプリケーションサーバ上でアプリケーショントランザクションの少なくとも一部を実行する少なくとも１つのアプリケーションと、
上記少なくとも１つのアプリケーションサーバの出力に接続された複数のログサーバと、を備え、
上記少なくとも１つのアプリケーションサーバは、トランザクション用の情報を含むアプリケーションメッセージと制御メッセージとを、複数のログサーバの各々に非同期的に送付するように構成されており、
各ログサーバは、受信したアプリケーションメッセージを現在のアプリケーションデータファイルに保存し、受信した制御メッセージを制御ファイルに保存し、オープン／クローズ制御メッセージを受信した場合には、現在のアプリケーションデータファイルを閉じて、閉じたアプリケーションデータファイルを保存し、新規のアプリケーションデータファイルを現在のアプリケーションデータファイルとして作成するように構成されており、
上記複数のログサーバに接続されたサーバであって、所定の期間について複数のログサーバの制御ファイルを比較し、この比較に基づき、ログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定し、その最適候補ファイルを後処理のために送付するように構成されている、サーバをさらに備える、ことを特徴とする。
【００２４】
好ましくは、アプリケーションは、課金トランザクションの少なくとも一部を実行する課金アプリケーションである。好ましくは、アプリケーションメッセージは、課金に関連するデータを含む課金メッセージである。好ましくは、アプリケーションデータファイルは、課金データファイルである。
【００２５】
本発明の別の態様は、本発明による方法のステップを実行することが可能な命令を含むコンピュータプログラム・プロダクトに関する。
【図面の簡単な説明】
【００２６】
【図１】図１は、従来技術によるシステムのシステム図である。
【図２】図２は、本発明のアーキテクチャのシステム図である。
【図３】図３は、制御メッセージのデータ構造の説明図である。
【図４】図４は、伝送される制御メッセージのタイプの一覧である。
【図５】図５は、課金メッセージを送信するアプリケーションにより実行される処理のフローチャートである。
【図６】図６は、メッセージを受信するログサーバにより実行される処理のフローチャートである。
【図７】図７は、最適候補ログファイルの処理のフローチャートである。
【図８】図８は、選択された最適候補ファイルの品質を向上させるフローチャートである。
【図９】図９は、メッセージがアプリケーションサーバから４つのログサーバのクラスタに伝送される例示的な一実施形態の簡略図である。
【図１０】図１０は、本システムのサーバのうちのいずれかの内部アーキテクチャの図である。
【発明を実施するための形態】
【００２７】
本発明は、アプリケーションにより送信される通知メッセージの配送に、ログサーバのクラスタを用いて対処するものであることが想起される。各アプリケーションは、すべての冗長ログサーバに一度に通知する。各ログサーバは、通知メッセージのこのストリームを別々の管理できるファイルに分割する。システムは、クラスタにおいて最も信頼性の高いファイルを継続的に決定し、そのファイルを受け取り手に転送する。
【００２８】
オプションとして、本発明は、効果的ではあるものの随意である以下の特徴のいずれかを備えることができる。
【００２９】
制御メッセージは、課金アプリケーションの識別子を含む。好ましくは、制御メッセージは、さらに、アプリケーションサーバのタイムスタンプ、アプリケーション（例えば、課金アプリケーション）により送信された制御メッセージの数、アプリケーションにより送信されたアプリケーションメッセージ（例えば、課金メッセージ）の数、のうちのいずれかを含む。各アプリケーションは、所定の時間周期で制御メッセージを送付するための規定の間隔を有し、また、オープン／クローズ制御メッセージは、一連の制御メッセージにおけるＮ番目ごとの制御メッセージである。効果的な一実施形態によれば、Ｎ番目の制御メッセージは、その一連の制御メッセージにおける５番目の制御メッセージであり、また、所定の時間周期は２分である。システムは、それら複数のログサーバからの所定の期間のファイルのセットであって、同じ開始点および停止点を持つファイルのセットから選択された最適候補ファイルを生成することにより、課金システムによる処理用のファイルを選択する。好ましくは、最適候補ファイルは、ファイルの上記選択されたセットからのものであって、メッセージ損失率が最も低いファイルである。最適候補ファイルは、メッセージの損失があって、その期間について損失したメッセージが３０％を超えない場合に、ファイルの上記セットの最適候補ファイル以外のファイルに存在する該損失メッセージを複写することにより、増補することが可能である。好ましくは、複数のログサーバの各々からの複数のアプリケーションデータファイルの中から、所定の期間の最適候補としてのアプリケーションデータファイルを決定したら、サーバは、その最適候補ファイルをアプリケーション処理のために送付する。
【００３０】
図２は、本発明の好ましい実施形態を実現するシステムを示している。システムは、複数のアプリケーション２０１（ａ）〜（ｃ）を有する。これらのアプリケーションは、単一のサーバ上で実行される複数の異なるアプリケーション２０１（ａ）〜（ｃ）、複数のサーバ１０３上で実行される単一のアプリケーション２０１（ａ）、または複数の異なるサーバ上で実行される複数のアプリケーション２０１（ａ）〜２０１（ｃ）の組み合わせ、とすることができる。アプリケーション２０１（ａ）〜（ｃ）の各々は、非同期アプリケーションメッセージをログサーバ２０３（ａ）‐（ｂ）に送付する。アプリケーションメッセージは、アプリケーションに関連する情報を含んでいる。例えば、アプリケーションメッセージは、課金、顧客プロファイルなどのうちのいずれかに関連するデータを含み得る。２つのログサーバ２０３（ａ）‐（ｂ）を図示しているものの、ログサーバの数は、好ましくは２より大きいことは理解されるであろう。アプリケーションは、航空会社の課金トランザクションデータを対象としているものであるが、本発明のシステムにおいて、他のタイプのアプリケーションにより、他のデータを送付することが可能である。
【００３１】
ログサーバ２０３（ａ）‐（ｂ）の各々は、ログサーバ・インスタンス２０５と課金プラグイン２０７とを有し、これにより、受信したアプリケーションデータメッセージを現在のアプリケーションデータファイル２０９（ａ）に書き込み、制御メッセージを制御ファイル２１１に書き込む。この場合、同じアプリケーションメッセージが、アプリケーションサーバ２０１（ａ）〜（ｃ）からすべてのログサーバ２０３（ａ）‐（ｂ）に送信される。場合によっては、すべてログサーバ２０３（ａ）‐（ｂ）が同じアプリケーションメッセージを受信する。しかしながら、実際には、それらのアプリケーションメッセージのうちの少なくとも一部は、すべてのログサーバ２０３（ａ）‐（ｂ）によっては受信されないことがある。
【００３２】
制御メッセージは、本明細書で後述する間隔で送信されて、現在のアプリケーションデータファイル２０９（ａ）を閉じさせるものであり、これにより、所定の期間の課金アプリケーションメッセージをそれぞれ表す複数のアプリケーションデータファイル２０９（ｂ）‐（ｃ）が作成される。
【００３３】
制御メッセージには２つの目的がある。第１に、これらのメッセージは、ファイル２０９（ａ）〜（ｃ）へのアプリケーションメッセージ・ストリームの分割を（再）同期させるために用いられる。各ログサーバで、同期したファイルを作成するためには、ストリームにおける同じ点でストリームを分割することが極めて重要である。第２に、各制御メッセージは、同期ファイルから最適候補を選択するために、相関アルゴリズムによって用いられる。このため、制御メッセージの要約が制御ファイル２１１に保存される。
【００３４】
課金セクションは、相関バッチ２１３と、相関出力２１５と、送信バッチ２１７とを含み、これらが、アプリケーションデータファイル２０９（ａ）〜（ｃ）の最適候補を決定して、その最適候補を課金フレームワーク２１９に送付することを担当する。
【００３５】
図３は、伝送されるとき、および制御ファイル２１１に保存されるときの、制御メッセージの構造を示している。同じ制御メッセージが、アプリケーションサーバ２０１（ａ）〜（ｃ）からすべてのログサーバ２０３（ａ）‐（ｂ）に送信される。場合によっては、すべてのログサーバ２０３（ａ）‐（ｂ）が同じ制御メッセージを受信する。しかしながら、実際には、それらの制御メッセージのうちの少なくとも一部は、すべてのログサーバ２０３（ａ）‐（ｂ）によっては受信されないことがある。
【００３６】
アプリケーション２０１（ａ）〜（ｃ）により送信される各制御メッセージは、好ましくは、少なくとも４つの要素を有する。
【００３７】
制御メッセージは、この制御メッセージの発信元であるアプリケーションサーバを識別するアプリケーション識別子３０３を含む。各アプリケーション２０１（ａ）〜（ｃ）は、そのアプリケーションを一意に識別するアプリケーション識別子３０３を有する。この要素によって、いくつかの異なる課金アプリケーションが、同じクラスタ（すなわち、ログサーバ２０３（ａ）‐（ｂ））に、データメッセージおよび制御メッセージを送信することが可能となる。クラスタでは、メッセージを送信元ごとに区別することが容易に可能である。
【００３８】
タイムスタンプ３０５は、送信元アプリケーションサーバにおけるシングルリファレンスタイムを示している。すべての同期ステップは、送信元アプリケーションサーバのタイムスタンプ３０５に基づいている。これによって、サーバ２０３（ａ）‐（ｂ）のクラスタにおいて通常見られるクロックの不一致が回避される。この特徴は、アプリケーションサーバ２０１（ａ）、２０１（ｂ）、２０１（ｃ）の数が大きい場合にこそ、最も効果的である。
【００３９】
制御メッセージ番号３０７は、現在の制御メッセージの固有連番識別子を示している。この番号によって、ログサーバは、前の制御メッセージが損失したかどうかを知ることができる。例えば、あるログサーバで相次いで受信された２つの制御メッセージが、１より大きい増分で異なる制御メッセージ番号３０７を示している場合、それは、該ログサーバにより少なくとも１つの制御メッセージが受信されなかったことを意味する。
【００４０】
アプリケーションメッセージ番号３０９は、アプリケーション２０１（ａ）〜（ｃ）により送信されたアプリケーションメッセージの数を示している。各ログサーバは、自身が実際に受信したアプリケーションメッセージの数を知っているので、従って、各ログサーバは、この値に基づいて、損失したアプリケーションメッセージの数を把握する。
【００４１】
メッセージ３１１のタイプは、送付されている制御メッセージのタイプを示している。
【００４２】
図４は、アプリケーション２０１（ａ）〜（ｃ）からログサーバ２０３（ａ）〜（ｂ）に送付される制御メッセージのタイプを示している。アプリケーション・スタート（Ａｐｐｌｉｃａｔｉｏｎ‐Ｓｔａｒｔ）４０３は、アプリケーションが起動したことを示すものであり、従って、新規のアプリケーションデータファイルが作成されなければならない。このような制御メッセージの結果として必然的な制御メッセージは、アプリケーションのシャットダウン時に現在のアプリケーションデータファイル２０９（ａ）を閉じるアプリケーション・ストップ（Ａｐｐｌｉｃａｔｉｏｎ‐Ｓｔｏｐ）４０９である。
【００４３】
インターバルタイマ４０５はＸ周期ごとにメッセージを送信し、この場合、Ｘは、例えば２分であることが好ましい。例えばＮ＝５として、アプリケーション２０１（ａ）〜（ｃ）により送信されるＮ番目ごとのチェックポイントは、分割チェックポイントと呼ばれるものであって、ログサーバ２０３（ａ）‐（ｂ）によりストリームを分割するために用いられ、ログサーバは、現在のアプリケーションデータファイル２０９（ａ）を閉じて、次の連続したアプリケーションメッセージのセットが保存される新規のファイルを作成する。このような分割によって、１つのアプリケーションデータファイルに停止点が生成され、新規のアプリケーションデータファイルに開始点が生成される。このように、Ｎ番目のチェックポイント制御メッセージを受信したときに現在のアプリケーションデータファイルが閉じられ、その後、現在のアプリケーションデータファイルとなる新規のアプリケーションデータファイルが作成される。
【００４４】
それぞれの開始点および停止点は、伝送の順番を識別することを可能とする制御メッセージ番号３０７に関連付けられる。従って、同じ開始点を持つアプリケーションデータファイルを識別することは容易である。また、同じ停止点を持つアプリケーションデータファイルを識別することも容易である。よって、ストリームの分割だけではなく、いくつかのログサーバのアプリケーションデータファイルの比較を容易に実現することができる。
【００４５】
チェックポイントが損失する可能性もあるので、ログサーバ２０３（ａ）‐（ｂ）は、そのような損失を、制御メッセージの制御メッセージ番号３０７を用いて検出する。一方、制御メッセージ番号は、分割点を逃したかどうかについても、ログサーバに通知するものである。［制御メッセージ番号のモジュロＮ＝０］システムの要求に応じて、５以外の値を用いることが可能である。
【００４６】
非分割チェックポイントが損失した場合、ログサーバ２０３（ａ）‐（ｂ）は、その損失イベントを単に制御ファイル２１１に書き込む。制御ファイル２１１に損失イベントがあると、相当するアプリケーションデータファイルの信頼性が低下する。
【００４７】
分割チェックポイントが損失した場合、ログサーバ２０３（ａ）‐（ｂ）は、（分割チェックポイントを受信したかのように）現在のアプリケーションデータファイル２０９（ａ）を閉じて、新規のアプリケーションデータファイルを開く。しかしながら、この現在のアプリケーションデータファイルおよび新規のアプリケーションデータファイルは、分割チェックポイントでクローズ／オープンされたものではないので、同期がずれている。これに応じて、制御ファイル２１１は、逃したチェックポイントの損失イベント、新規ファイル作成のイベントによって、そのタイムスタンプと共に、更新される。アプリケーションデータファイルのクローズのイベントはない。これによって、相関アルゴリズムに、分割チェックポイントが損失したことを通知する。
【００４８】
エンド・オブ・ピリオド（ＥＮＤ‐ＯＦ‐ＰＥＲＩＯＤ）制御メッセージ４０７は、アプリケーションにより決められた時点で、アプリケーション２０１（ａ）〜（ｃ）によって送信される。典型的には、この制御メッセージは、課金アプリケーションの場合、２稼働日を区切るため、深夜に送信される。基本的に、このメッセージは、課金アプリケーションとログサーバとの間の完全な再同期を強いるものである。すべての内部カウンタはゼロに設定され、新規のアプリケーションデータファイルおよび新規の制御ファイルが開始される。また、当然のことながら、エンド・オブ・ピリオドは、数日、一週間、一か月、一年など、他の周期とすることもできる。
【００４９】
制御メッセージはいずれも、課金アプリケーションの現在のタイムスタンプを含んでいるので、よって、エンド・オブ・ピリオド制御メッセージが損失したかどうか見極めるのは、課金アプリケーションにより送信されたタイムスタンプ要素の日付がもはやログサーバでの最新受信日付と同じではなくなるので、簡単なことである。この場合、ログサーバは、エンド・オブ・ピリオド・メッセージ４０７の受信をシミュレートして、すべての内部カウンタをゼロに設定し、新規のアプリケーションデータファイルを開始させる。制御ファイル２１１は、分割チェックポイントが損失した場合と同様にして、更新される。
【００５０】
制御ファイル２１１に保存されるこれらのタイプ４０３〜４０９の制御メッセージによって、アプリケーションメッセージのストリームを、同期したアプリケーションデータファイル２０９（ａ）〜２０９（ｃ）に分割することが可能となる。損失した制御メッセージがない場合には、すべてのファイルが同期する。制御メッセージが損失した場合には、クラスタにおけるファイルのいくつかは、同期がずれることになり、すなわち、一部のファイル（１つまたは複数）は、異なるタイムスタンプでオープン／クローズされることになる。ファイルが同期していることが分かることに加えて、システムは、さらに、各ファイルの正確さについても通知される。アプリケーションデータファイルについての両事実は、相関アルゴリズムによって利用される。
【００５１】
本発明のシステムにおいて実現される課金サーバ２１９は、ログサーバ２０３（ａ）‐（ｂ）の各々におけるログファイル２０９（ａ）〜（ｃ）から最適候補を決定することによる受け手となるはずのものである。最適候補の決定は、相関バッチ２１３によって実行される。
【００５２】
最適候補の選択は、各ログサーバ２０３（ａ）‐（ｂ）の制御ファイル２１１を比較することに基づいている。多数の大きなアプリケーションデータファイル２０９（ａ）〜（ｃ）を比較することなく、このステップは、リアルタイムで実行される。
【００５３】
システムは、各ログサーバ２０３（ａ）‐（ｂ）の異なる制御ファイル２１１におけるファイルオープン／ファイルクローズイベントをアラインする。このアライメントは、イベントのタイムスタンプに基づいている。アライメントとして一致するためには、
0005976838.tif 000002
の定数を満たす必要がある。アライメントは、単に、ストリームが時間に関して同じ点で分割されているファイルを示すものである。この基準ケースでは、システムは、同期したアプリケーションデータファイル２０９（ａ）〜（ｃ）の中で、第１に最も多くのメッセージを含み、第２に損失したチェックポイントメッセージが最も少ないアプリケーションデータファイルを選択することにより、最適候補を決定する。
【００５４】
定数に達しない場合には、システム、ファイルオープンイベントとファイルクローズイベントの両方が見られるファイルを優先して選択する。分割チェックポイントが損失した場合は、クローズイベントが制御ファイル２１１に登録されない。これは、システムが、定数を引き下げるが、ただし、ファイルオープンイベントとファイルクローズイベントの両方を受信したファイルのみを検討の対象とすることを意味する。システムは、第１にアプリケーションメッセージの数に基づき、第２に損失したチェックポイントメッセージの数に基づいて、最適候補を規定する。
【００５５】
ファイルクローズイベントを持つファイルが１つもない（これは、すべてのログサーバで分割チェックポイントを逃したことを意味する）極端なケースでは、システムは、第１に損失したチェックポイントメッセージが最も少なく、第２にメッセージが最も多いファイルを優先して選択する。
【００５６】
重複したメッセージを課金サーバ２１９に送信しないようにするために、次のファイルオープンイベントで考慮すべき重要なことは、それは、時系列的に、現在選択された最適候補のクローズイベントの後に続くものでなければならないということである。
【００５７】
システムは、さらに、欠損しているメッセージの一部を他の同期ファイルで取得することにより、選択された最適候補の品質を向上させる。この改良は、最適候補で損失したメッセージがｘ％未満である（すなわち、受信したメッセージの数が（１００−ｘ）％を超える）場合に、同期ファイルについてのみ、実施される。効果的には、１５＜ｘ＜４５であり、より効果的には、ｘ＝３０、すなわち、受信したメッセージの数が７０％超である。最適候補ファイルでメッセージがｘ％を超えるまでも損失している場合には、その欠損しているメッセージを、他のアプリケーションデータファイルで得ることはできないと考えられる。
【００５８】
結果として改良を実施する場合には、同期ファイルの各チェックポイントが比較される。各チェックポイントは、その最後の‘ｍ’分間（例えば、ｍ＝２）で損失したメッセージの数を含んでいるので、システムは、どのファイルが最適なデータブロックを有するのか特定することが可能である。最適候補とは別のファイルが、その‘ｍ’分間について、より多くのメッセージを含んでいる場合、そのメッセージのブロックが抽出されて、最適候補ファイルにおいて置き換えられる。
【００５９】
要約した制御ファイル２１１内のイベントのみを用いて、アプリケーションデータファイル２０９（ａ）〜（ｃ）内の最適ブロックが特定されるので、この方法により、最適候補をリアルタイムで改良することが可能となる。
【００６０】
図５は、本発明を実現するアプリケーション２０１（ａ）〜（ｃ）のスレッドがたどるステップの一例を示している。ステップ５０１でプロセスが開始し、直ちにステップ５０３で、アプリケーション・スタート制御メッセージ４０３をログサーバ２０３（ａ）〜（ｂ）に送信する。
【００６１】
課金アプリケーションのスレッドは、作業を求めて動作を繰り返す。ステップ５０５で、典型的には２分である所定の時間周期を超える時間が、最後の制御メッセージが発生してから経過したかどうか判断し、答えがＹｅｓ（肯定）である場合には、ステップ５０７で、チェックポイント制御メッセージ４０５をログサーバ２０３（ａ）〜（ｂ）に送信する。答えがＮｏ（否定）である場合には、ステップ５０９に進み、アプリケーションメッセージ（例えば、課金アプリケーションメッセージ）を送信する必要があるかどうか判断する。答えがＹｅｓである場合には、ステップ５１１で、データと共にアプリケーションメッセージをログサーバ２０３（ａ）〜（ｂ）に送信する。
【００６２】
答えがＮｏである場合には、ステップ５１３に進み、新たな日付または別の課金期間であるかどうか判断する。答えがＹｅｓである場合には、ステップ５１５で、エンド・オブ・ピリオド制御メッセージ４０７をログサーバ２０３（ａ）〜（ｂ）に送信する。
【００６３】
答えがＮｏである場合には、ステップ５１７に進み、アプリケーションプログラムがシャットダウンしているかどうか判断する。答えがＹｅｓである場合には、ステップ５１９で、アプリケーション・ストップ制御メッセージ４０９を送信し、その後、ステップ５２１で処理を終了し、一方、そうでない場合には、繰り返しを継続する。
【００６４】
図６は、ログサーバ２０３（ａ）‐（ｂ）上でログメッセージを受信するプログラムのステップの一例を示している。ステップ６０１で、処理が開始する。ステップ６０３で、メッセージがアプリケーションメッセージ（例えば、課金アプリケーションメッセージ）であるかどうか判断し、Ｙｅｓである場合には、ステップ６０５で、そのアプリケーションメッセージを現在のログファイル２０９（ａ）に保存する。Ｎｏである場合には、ステップ６０７で、その制御メッセージ３０１を制御ファイルに保存し、そして、受信した制御メッセージ３０１のタイプが何であるか確認する。ステップ６０９で、制御メッセージ３０１がアプリケーション・スタート制御メッセージ４０３であるかどうか判断し、Ｙｅｓである場合には、ステップ６１１で、現在のアプリケーションデータファイル２０９（ａ）を新規で開く。Ｎｏである場合には、次のステップ６１３に進み、制御メッセージ３０１がチェックポイント制御メッセージ４０５であるかどうか判断し、Ｙｅｓである場合には、ステップ６１５で、制御メッセージ番号３０７をチェックすることにより、それがＮ番目（Ｎは、予め決められており、例えば５である）のチェックポイントメッセージ４０５であるかどうか判断する。Ｙｅｓである場合には、ステップ６１７で、現在のアプリケーションデータファイル２０９（ａ）を閉じて、以後、一連のアプリケーションデータファイル２０９（ｂ，ｃ， ．．．）における次のものとなる。新規のファイルを、現在のアプリケーションデータファイル２０９（ａ）として開く。
【００６５】
Ｎｏである場合には、ステップ６１９で、前の制御メッセージで逃したものがあるかどうか判断し、当該のメッセージを逃したのであれば、ステップ６１７を実行する。
【００６６】
ステップ６２１で、制御メッセージ３０１がエンド・オブ・ピリオド制御メッセージ４０７であるかどうか判断し、Ｙｅｓである場合には、ステップ６１７を実行する。Ｎｏである場合には、ステップ６２３で、制御メッセージ３０１がアプリケーション・ストップであるかどうか判断する。Ｙｅｓである場合には、ステップ６２５で、現在のアプリケーションデータファイル２０９（ａ）を閉じて、以後、一連のアプリケーションデータファイル２０９（ｂ，ｃ， ．．．）における次のものとなる。ステップ６２７で、処理を終了する。
【００６７】
図７は、ログサーバ２０３（ａ）‐（ｂ）の各々からのログファイル２０９（ａ）〜（ｃ）について最適候補の選択を決定するための、本発明による方法の一例を示している。ステップ７０１で開始し、ステップ７０３で、ログサーバ２０３（ａ）‐（ｂ）の各々における制御メッセージ３０１を比較することにより、時間に関して同じ点で分割されているアプリケーションデータファイル２０９（ａ）〜（ｃ）を特定する。ログサーバ２０３（ａ）‐（ｂ）の各々において時間に関して同じ点で分割されているアプリケーションデータファイル２０９（ａ）〜（ｃ）のリストから、最多数の受信アプリケーションメッセージを含むログファイルを特定する（７０５）。好ましくは、少なくとも２つのアプリケーションデータファイル２０９（ａ）〜（ｃ）が同数のアプリケーションメッセージを含む場合に、システムは、損失した制御メッセージの数を比較する。ログサーバ２０３（ａ）‐（ｂ）の各々において時間に関して同じ点で分割されているアプリケーションデータファイル２０９（ａ）〜（ｃ）のうちの最適候補は、最多数のアプリケーションメッセージを有し、かつ最多数の制御メッセージを有するアプリケーションデータファイル２０９（ａ）〜（ｃ）である。
【００６８】
選択したアプリケーションデータファイルを処理のために課金フレームワークに送付し（７０９）、そして処理を終了する（７１１）。
【００６９】
図８は、品質を向上させるためにファイルを併合する方法を示している。ステップ７０５において、アプリケーションデータファイルが同期しており、最適候補は、その課金アプリケーションメッセージの７０％より多くを含むが、ただしメッセージの１００％より少ないと判断される（８０１）場合、欠損しているアプリケーションメッセージを、他のログサーバの同じ期間のアプリケーションデータファイルから最適候補のログファイルに補足する。
【００７０】
図９は、アプリケーション２０１がメッセージを、ＬＧＳ＃１、ＬＧＳ＃２、ＬＧＳ＃３、ＬＧＳ＃４と呼ばれる４つのログサーバ２０３のクラスタに送信する例示的な一実施形態を示している。
【００７１】
第１の同期チェックポイント１００（チェックポイントｉ）で、４つのログサーバ２０３のそれぞれにおいて、アプリケーションデータファイルの開始をトリガする。従って、４つのログサーバ２０３のアプリケーションデータファイルは同一の開始点を持つ。さらに、アプリケーションメッセージが、ログサーバ２０３に送信される。各ログサーバ２０３は、これらのアプリケーションメッセージを受信し、それらを、開いたばかりのアプリケーションデータファイルに保存する。このように、アプリケーションメッセージは、ログサーバＬＧＳ＃１、ＬＧＳ＃２、ＬＧＳ＃３、ＬＧＳ＃４によって、それぞれアプリケーションデータファイル１０１、１０２、１０３、１０４に保存される。
【００７２】
時間間隔１０５ごとに、新たな制御メッセージが、アプリケーションサーバ２０１によって送信される。
【００７３】
一部のログサーバで、通常のチェックポイントが受信されないことがある。例えば、ＬＧＳ＃２は、番号ｉ＋３を持つチェックポイントを逃し、ＬＧＳ＃３は、チェックポイント番号ｉ＋２、チェックポイント番号ｉ＋３、チェックポイント番号ｉ＋４を逃し、ＬＧＳ＃４は、チェックポイント番号ｉ＋１、チェックポイント番号ｉ＋３を逃した。さらに、一部のログサーバで、同期チェックポイントを逃すことがある。例えば、ＬＧＳ＃４は、番号ｉ＋５を持つチェックポイントを逃しており、該チェックポイントは、同期チェックポイントである。このチェックポイントは、現在のアプリケーションデータファイルのクローズおよび新規のアプリケーションデータファイルのオープンをトリガするオープン／クローズ制御メッセージである。従って、ログサーバＬＧＳ＃１、ＬＧＳ＃２、ＬＧＳ＃３では、制御メッセージｉ＋５を受信したときに、アプリケーションデータファイル１０１、１０２、１０３が同時に閉じられる。一方、ログサーバＬＧＳ＃４では、アプリケーションデータファイル１０４は、後に閉じられる。このため、アプリケーションデータファイル１０１、１０２、１０３は、同じ開始点および停止点を持ち、アプリケーションデータファイル１０４は、他のものと同じ停止点を持たない。
【００７４】
本実施形態では、オープン／クローズ制御メッセージは５番目の制御メッセージであり、また、制御メッセージを送付する間隔を矢印１０５で示している。
【００７５】
最適候補ファイルは、同じ開始点および停止点を持つアプリケーションデータファイルのセット、すなわち、アプリケーションデータファイル１０１、１０２、１０３から選択される。アプリケーションデータファイル１０１、１０２、１０３のこのセットの中で、最適候補であるとみなされるものは、最多数のアプリケーションメッセージを含むものである。アプリケーションメッセージ数のこのような比較は、各ログサーバで作成された制御ファイルの比較に基づいている。従って、はるかに多くの時間と処理能力を要するアプリケーションデータファイルの比較は必要ない。２つ以上のアプリケーションデータファイル１０１、１０２、１０３が同数のアプリケーションメッセージを有する場合、そのときの最適候補は、最多数の制御メッセージを含むものである。例えば、アプリケーションデータファイル１０２と１０３が同数のアプリケーションメッセージを有し、この数がアプリケーションデータファイル１０１における数よりも大きい場合には、アプリケーションデータファイル１０２が最適候補であるとみなされ、アプリケーションデータファイル１０１、１０３、１０４は破棄される。
【００７６】
この例示的な実施形態は、特に効果的な用途、すなわち課金メッセージの配送に関連して説明しているが、説明および図示したすべての特徴は他の用途にも適用される。
【００７７】
なお、当業者であれば理解できるように、上記のシステムおよび方法は、図１０のハードドライブ９０３、ＤＶＤ／ＣＤ‐ＲＯＭ ９０５、サムドライブ９０７などのコンピュータ可読記憶媒体に格納されたコンピュータプログラムとして実現することが可能であり、この場合、ＣＰＵ９０１は、バス９１１を介してＲＡＭ ９０９にコンピュータプログラムをロードし、そして、上記のようなデバイスにアクセスし、ネットワークアダプタ９１３を介してネットワーク１０５と通信し、ディスプレイ９１５およびキーボードやマウスのような入出力装置９１７を用いるなどして、一連の命令としてのプログラムを実行する。コンピュータプログラムはコンピュータ可読記憶媒体に格納されており、格納されるという動詞は永久的なものにすることを意味するので、伝播信号は、コンピュータ可読記憶媒体の意味するものから除外される。
【００７８】
理解されるように、本発明を用いることにより、いくつかの便益および技術的効果が実現される。特に、本発明により、大量のデータ処理を必要とすることなく、最も信頼性の高いメッセージを選択することができるので、高スループットを維持しながら、いくつかのログサーバに同じメッセージを送信することによりメッセージの信頼性を著しく向上させることが可能である。典型的には、本発明により、０．１４％未満のメッセージ損失率を維持しながら、１秒あたり１００００件を超えるトランザクションを送信することが可能となる。
【図１】
0005976838.tif 000003
【図２】
0005976838.tif 000004
【図３】
0005976838.tif 000005
【図４】
0005976838.tif 000006
【図５】
0005976838.tif 000007
【図６】
0005976838.tif 000008
【図７】
0005976838.tif 000009
【図８】
0005976838.tif 000010
【図９】
0005976838.tif 000011
【図１０】
0005976838.tif 000012