用于高可靠性和高性能應(yīng)用消息遞送的系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供能提供高可靠性和高性能應(yīng)用消息遞送的計(jì)算機(jī)實(shí)現(xiàn)的方法和系統(tǒng),它包括利用至少一個(gè)數(shù)據(jù)處理器執(zhí)行的下列步驟:在耦接到至少一個(gè)應(yīng)用服務(wù)器(201a-c)的多個(gè)日志服務(wù)器(203a-b)上:從至少一個(gè)應(yīng)用服務(wù)器(201a-c)異步地接收包含應(yīng)用信息的應(yīng)用消息;以預(yù)定的時(shí)間間隔,從至少一個(gè)應(yīng)用服務(wù)器(201a-c)異步地接收控制消息;在多個(gè)日志服務(wù)器(203a-b)中的每一個(gè):將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件(209)中以及將所接收的控制消息存儲(chǔ)到控制文件(211)中;以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,以及創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為當(dāng)前應(yīng)用數(shù)據(jù)文件;在給定間隔比較所述多個(gè)日志服務(wù)器(203a-b)的所述控制文件;以及基于此比較,確定來(lái)自所述日志服務(wù)器(203a-b)中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件(209)中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選,并轉(zhuǎn)發(fā)所述最佳候選文件用于后處理。
【專利說(shuō)明】用于高可靠性和高性能應(yīng)用消息遞送的系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及遞送大量的電子消息的領(lǐng)域。特別有利的但不限制性的應(yīng)用涉及航空公司記帳事務(wù)。具體而言,本發(fā)明涉及通過(guò)不可靠的網(wǎng)絡(luò)向多個(gè)日志服務(wù)器遞送包含例如記帳信息的大量(通常>8,000個(gè)消息每秒鐘)的異步消息,其中,創(chuàng)建包含已知時(shí)間間隔的記帳信息的日志文件,對(duì)具有最低計(jì)帳數(shù)據(jù)丟失的日志文件執(zhí)行時(shí)間間隔的記帳信息的處理。
【背景技術(shù)】
[0002]在已知技術(shù)中,有時(shí)需要跨不可靠的網(wǎng)絡(luò)或使用諸如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)之類的異步傳輸協(xié)議來(lái)傳輸數(shù)據(jù),因?yàn)檫@樣的基于無(wú)會(huì)話的網(wǎng)絡(luò)事務(wù)的吞吐量高于,例如,基于傳輸控制協(xié)議(TCP)的事務(wù)。
[0003]考慮圖1,現(xiàn)有技術(shù)系統(tǒng)的示例。這樣的基于服務(wù)器103的系統(tǒng)可以執(zhí)行多個(gè)傳輸記帳信息的應(yīng)用123。由于使用同步事務(wù)來(lái)執(zhí)行超出網(wǎng)絡(luò)105的容量的許多記帳事務(wù)的必要性;或由于在應(yīng)用等待對(duì)接收到事務(wù)的確認(rèn)時(shí)對(duì)應(yīng)的吞吐量的丟失,會(huì)通過(guò)網(wǎng)絡(luò)105發(fā)送異步消息125。異步消息被日志服務(wù)器127接收到,或未接收到。
[0004]然而,日志服務(wù)器127不是容錯(cuò)或高可用性服務(wù)器,因此,被視為不可靠127。接收到的所有消息都存儲(chǔ)129在文件系統(tǒng)109中,用于由記帳服務(wù)器111使用記帳系統(tǒng)131來(lái)處理。
[0005]應(yīng)該理解,由于所使用的消息協(xié)議125和日志服務(wù)器107的不可靠性127,事務(wù)可倉(cāng)泛1?夕5。
[0006]如此,本發(fā)明的目的是在使用非可靠網(wǎng)絡(luò)的情況下,顯著改善消息遞送的可靠性同時(shí)提高或至少維持吞吐量。
【發(fā)明內(nèi)容】
[0007]根據(jù)一方面,本發(fā)明涉及用于提供高可靠性和高性能應(yīng)用消息遞送的計(jì)算機(jī)實(shí)現(xiàn)的方法。該方法包括利用至少一個(gè)數(shù)據(jù)處理器執(zhí)行的下列步驟:
[0008]在耦接到至少一個(gè)應(yīng)用服務(wù)器的多個(gè)日志服務(wù)器中,每個(gè)應(yīng)用服務(wù)器都與應(yīng)用相關(guān)聯(lián):從至少一個(gè)應(yīng)用服務(wù)器異步地接收包含應(yīng)用事務(wù)的應(yīng)用信息的應(yīng)用消息,每個(gè)應(yīng)用消息都由多個(gè)日志服務(wù)器中的至少某些日志服務(wù)器接收到的;以預(yù)定的間隔,從至少一個(gè)應(yīng)用服務(wù)器異步地接收控制消息,每個(gè)控制消息都由多個(gè)日志服務(wù)器中的至少一些日志服務(wù)器接收的;
[0009]在多個(gè)日志服務(wù)器中的每一個(gè):將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件中;將所接收的控制消息存儲(chǔ)在控制文件中,以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,并創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為所述當(dāng)前應(yīng)用數(shù)據(jù)文件;
[0010]在給定間隔比較多個(gè)日志服務(wù)器的控制文件;以及
[0011]基于此比較,確定來(lái)自日志服務(wù)器中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選,并轉(zhuǎn)發(fā)所述最佳候選文件用于后處理。
[0012]如此,在在某些日志服務(wù)器中未接收到由應(yīng)用服務(wù)器轉(zhuǎn)發(fā)的某些應(yīng)用消息的情況下,本發(fā)明允許確定最可靠的應(yīng)用數(shù)據(jù)文件,并丟棄其他應(yīng)用數(shù)據(jù)文件,而不要求比較應(yīng)用數(shù)據(jù)文件。
[0013]可任選地,本發(fā)明可以包括下列可任意選擇的特征中的任何一個(gè):
[0014]在一個(gè)實(shí)施例中,每一個(gè)日志服務(wù)器都耦接到將每一個(gè)應(yīng)用服務(wù)器與至少一個(gè)應(yīng)用相關(guān)聯(lián)的多個(gè)應(yīng)用服務(wù)器。
[0015]有利地,控制消息包括由應(yīng)用服務(wù)器傳輸?shù)囊欢〝?shù)量的應(yīng)用消息。有利地,控制消息包括唯一地標(biāo)識(shí)控制消息序列中的控制消息的順序的標(biāo)識(shí)符。優(yōu)選地,標(biāo)識(shí)符是控制消息編號(hào)。有利地,控制消息包括下列各項(xiàng)中的至少一項(xiàng):應(yīng)用的標(biāo)識(shí)符,以及應(yīng)用服務(wù)器的時(shí)間戳。優(yōu)選地,每一個(gè)控制消息都包括應(yīng)用的標(biāo)識(shí)符,以及應(yīng)用服務(wù)器的時(shí)間戳。
[0016]優(yōu)選地,用于轉(zhuǎn)發(fā)控制消息的時(shí)間間隔是給定時(shí)間段。
[0017]有利地,打開(kāi)/關(guān)閉控制消息是控制消息序列中的第N個(gè)控制消息。在一個(gè)實(shí)施例中,N是預(yù)定的。在一個(gè)實(shí)施例中,第N個(gè)控制消息是控制消息序列中的第五個(gè)控制消息,給定時(shí)間段是兩分鐘。
[0018]有利地,最佳候選文件是在給定時(shí)間間隔內(nèi)從來(lái)自多個(gè)日志服務(wù)器并且具有相同起始點(diǎn)和停止點(diǎn)的一組應(yīng)用數(shù)據(jù)文件中選擇的。優(yōu)選地,起始點(diǎn)和停止點(diǎn)是由打開(kāi)/關(guān)閉控制消息的接收確定的。
[0019]根據(jù)有利的實(shí)施例,最佳候選文件是從選擇的文件組中選擇的,該文件具有最低的應(yīng)用消息丟失率。根據(jù)有利實(shí)施例,在某些應(yīng)用數(shù)據(jù)文件具有相同數(shù)量的應(yīng)用消息的情況下,最佳候選文件是從具有最低的應(yīng)用消息丟失率的應(yīng)用數(shù)據(jù)文件中選擇的,該文件具有最低的控制消息丟失率。
[0020]具有丟失的應(yīng)用消息但在所述間隔內(nèi)不丟失多于的應(yīng)用消息的最佳候選文件利用存在于所述文件組的其他文件中的所述丟失的應(yīng)用消息增強(qiáng),X是預(yù)定的。在一個(gè)實(shí)施例中,X在15和45之間。
[0021 ] 有利地,在確定來(lái)自多個(gè)日志服務(wù)器中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選時(shí),服務(wù)器轉(zhuǎn)發(fā)最佳候選文件供應(yīng)用處理。
[0022]在一個(gè)實(shí)施例中,應(yīng)用是航空公司記帳事務(wù)應(yīng)用。
[0023]根據(jù)另一方面,本發(fā)明涉及包含軟件程序指令的非瞬時(shí)的計(jì)算機(jī)可讀介質(zhì),其中,由至少一個(gè)數(shù)據(jù)處理器對(duì)所述軟件程序指令的執(zhí)行導(dǎo)致進(jìn)行包括執(zhí)行本發(fā)明的所述方法的操作。
[0024]本發(fā)明的另一方面涉及用于高可靠性和高性能應(yīng)用消息遞送的系統(tǒng)。該系統(tǒng)包括:
[0025]耦接到至少一個(gè)應(yīng)用服務(wù)器的輸出端的多個(gè)日志服務(wù)器;
[0026]每個(gè)日志服務(wù)器都被配置成從至少一個(gè)應(yīng)用服務(wù)器異步地接收:包含應(yīng)用信息和控制消息的應(yīng)用消息;
[0027]每一個(gè)日志服務(wù)器都還被配置成:將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件中以及將所接收的控制消息存儲(chǔ)到控制文件中;以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,將所述關(guān)閉的應(yīng)用數(shù)據(jù)文件添加到多個(gè)應(yīng)用數(shù)據(jù)文件中,創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為當(dāng)前應(yīng)用數(shù)據(jù)文件;
[0028]耦接到多個(gè)日志服務(wù)器的服務(wù)器,所述服務(wù)器被配置成:在給定間隔比較多個(gè)日志服務(wù)器的控制文件;基于此比較,確定來(lái)自多個(gè)日志服務(wù)器中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選;以及轉(zhuǎn)發(fā)最佳候選文件用于后處理。
[0029]可任選地,系統(tǒng)包括多個(gè)應(yīng)用服務(wù)器和在多個(gè)應(yīng)用服務(wù)器中的任何一個(gè)的處理器上執(zhí)行的多個(gè)應(yīng)用,每一個(gè)應(yīng)用服務(wù)器都具有耦接到日志服務(wù)器中的每一個(gè)的輸入端的輸出端。
[0030]根據(jù)另一方面,本發(fā)明通過(guò)下列操作來(lái)解決問(wèn)題:提供高可靠性和高性能記帳消息遞送,向多個(gè)日志服務(wù)器中的每一個(gè)異步地轉(zhuǎn)發(fā)包含應(yīng)用事務(wù)的記帳信息的記帳消息;以預(yù)定的時(shí)間間隔,異步地將控制消息轉(zhuǎn)發(fā)到多個(gè)日志服務(wù)器中的每一個(gè);將所接收的記帳消息存儲(chǔ)在多個(gè)日志服務(wù)器中的每一個(gè)中的當(dāng)前計(jì)帳數(shù)據(jù)文件中;將所接收的控制消息存儲(chǔ)在多個(gè)日志服務(wù)器中的每一個(gè)中的控制文件中,在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉當(dāng)前計(jì)帳數(shù)據(jù)文件,將所述關(guān)閉的計(jì)帳數(shù)據(jù)文件添加到多個(gè)計(jì)帳數(shù)據(jù)文件中,創(chuàng)建新的計(jì)帳數(shù)據(jù)文件作為當(dāng)前計(jì)帳數(shù)據(jù)文件;以及確定來(lái)自多個(gè)日志服務(wù)器中的每一個(gè)的多個(gè)計(jì)帳數(shù)據(jù)文件中的一個(gè)計(jì)帳數(shù)據(jù)文件作為給定間隔的最佳候選;以及轉(zhuǎn)發(fā)最佳候選文件用于記帳處理。
[0031]根據(jù)本發(fā)明的更進(jìn)一步的方面,公開(kāi)了一種用于高可靠性和高性能應(yīng)用消息遞送的系統(tǒng),其特征在于,它包括:
[0032]在一個(gè)應(yīng)用服務(wù)器上執(zhí)行應(yīng)用事務(wù)的至少一部分的至少一個(gè)應(yīng)用,
[0033]耦接到至少一個(gè)應(yīng)用服務(wù)器的輸出端的多個(gè)日志服務(wù)器;
[0034]至少一個(gè)應(yīng)用服務(wù)器被配置成向多個(gè)日志服務(wù)器中的每一個(gè)異步地轉(zhuǎn)發(fā):包含事務(wù)的信息和控制消息的應(yīng)用消息;
[0035]每一個(gè)日志服務(wù)器都被配置成:將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件中以及將所接收的控制消息存儲(chǔ)到控制文件中;以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,以及創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為當(dāng)前應(yīng)用數(shù)據(jù)文件;
[0036]耦接到多個(gè)日志服務(wù)器的服務(wù)器,所述服務(wù)器被配置成:在給定間隔比較多個(gè)日志服務(wù)器的控制文件;基于此比較,確定來(lái)自多個(gè)日志服務(wù)器中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選;以及轉(zhuǎn)發(fā)最佳候選文件用于后處理。
[0037]優(yōu)選地,應(yīng)用是執(zhí)行記帳事務(wù)的至少一部分的記帳應(yīng)用。優(yōu)選地,應(yīng)用消息是包含涉及記帳的數(shù)據(jù)的記帳消息。優(yōu)選地,應(yīng)用數(shù)據(jù)文件是計(jì)帳數(shù)據(jù)文件。
[0038]本發(fā)明的另一方面涉及包括能夠執(zhí)行根據(jù)本發(fā)明的方法的步驟的指令的計(jì)算機(jī)程序產(chǎn)品。
【專利附圖】
【附圖說(shuō)明】
[0039]圖1示出了現(xiàn)有技術(shù)系統(tǒng)的系統(tǒng)圖。
[0040]圖2是本發(fā)明的體系結(jié)構(gòu)的系統(tǒng)圖。
[0041]圖3是控制消息數(shù)據(jù)結(jié)構(gòu)的圖示。
[0042]圖4是傳輸?shù)目刂葡⒌念愋偷牧斜怼?br>
[0043]圖5是由發(fā)送記帳消息的應(yīng)用執(zhí)行的過(guò)程的流程圖。
[0044]圖6是由接收消息的日志服務(wù)器執(zhí)行的過(guò)程的流程圖。
[0045]圖7是最佳候選日志文件的過(guò)程的流程圖。
[0046]圖8是改善選擇的最佳候選文件的質(zhì)量的流程圖。
[0047]圖9是消息從應(yīng)用服務(wù)器傳輸?shù)剿膫€(gè)日志服務(wù)器的集群的示例性實(shí)施例的簡(jiǎn)化例圖。
[0048]圖10是系統(tǒng)的服務(wù)器中的任何一個(gè)的內(nèi)部體系結(jié)構(gòu)的圖示。
【具體實(shí)施方式】
[0049]回想一下,本發(fā)明涉及通過(guò)使用日志服務(wù)器集群,來(lái)遞送由應(yīng)用所發(fā)送的通知消息。每個(gè)應(yīng)用同時(shí)都通知所有冗余日志服務(wù)器。每一個(gè)日志服務(wù)器都將這種通知消息的流拆分為分離的、可管理的文件。系統(tǒng)連續(xù)地確定集群中的最可靠的文件,并將該文件傳輸?shù)浇邮辗健?br>
[0050]可任選地,本發(fā)明可以包括下列有利的但可任意選擇的特征中的任何一個(gè)。
[0051 ] 控制消息包括記帳應(yīng)用的標(biāo)識(shí)符。優(yōu)選地,控制消息還包括下列各項(xiàng)中的任何一項(xiàng):應(yīng)用服務(wù)器的時(shí)間戳、由應(yīng)用(例如,記帳應(yīng)用)傳輸?shù)目刂葡⒌臄?shù)量以及由應(yīng)用傳輸?shù)膽?yīng)用消息(例如,記帳消息)的數(shù)量。每個(gè)應(yīng)用都具有用于在給定時(shí)間段內(nèi)轉(zhuǎn)發(fā)控制消息的定義的時(shí)間間隔,打開(kāi)/關(guān)閉控制消息是控制消息序列中的每隔N個(gè)控制消息。根據(jù)有利的實(shí)施例,第N個(gè)控制消息是控制消息序列中的第五個(gè)控制消息,給定時(shí)間段是兩分鐘。系統(tǒng)通過(guò)創(chuàng)建從給定時(shí)間間隔內(nèi)的來(lái)自多個(gè)日志服務(wù)器的具有相同的起始點(diǎn)和停止點(diǎn)的一組文件中選擇的最佳候選文件,來(lái)選擇文件供記帳系統(tǒng)處理。優(yōu)選地,最佳候選文件是從選擇的文件組中選擇的,文件具有最低消息丟失率。可以通過(guò)復(fù)制該組文件中的最佳候選文件之外的文件中存在的丟失的消息,來(lái)增強(qiáng)當(dāng)在該時(shí)間間隔內(nèi)消息丟失但沒(méi)有丟失超過(guò)百分之三十的消息的最佳候選文件。優(yōu)選地,在確定來(lái)自多個(gè)日志服務(wù)器中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選時(shí),服務(wù)器轉(zhuǎn)發(fā)最佳候選文件供應(yīng)用處理。
[0052]圖2示出了實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的系統(tǒng)。系統(tǒng)具有多個(gè)應(yīng)用201 (a)-(C)。這些應(yīng)用可以是在單一服務(wù)器上運(yùn)行的多個(gè)不同的應(yīng)用201 (a)-(c);在多個(gè)服務(wù)器103上運(yùn)行的單一應(yīng)用201(a);或在多個(gè)不同的服務(wù)器上運(yùn)行的多個(gè)應(yīng)用201(a)-201(c)的組合。應(yīng)用201(a)_(c)中的每一個(gè)都向日志服務(wù)器203 (a)-(b)轉(zhuǎn)發(fā)異步應(yīng)用消息。應(yīng)用消息包含涉及應(yīng)用的信息。例如,應(yīng)用消息可以包括涉及下列各項(xiàng)中的任何一項(xiàng)的數(shù)據(jù):記帳、客戶配置文件、客戶配置文件等等。可以理解,盡管示出了兩個(gè)日志服務(wù)器203(a)_(b),但是,日志服務(wù)器的數(shù)目?jī)?yōu)選地是2個(gè)以上。盡管應(yīng)用集中于航空公司記帳事務(wù)數(shù)據(jù),但是,其他類型的應(yīng)用可以轉(zhuǎn)發(fā)本發(fā)明的系統(tǒng)中的其他數(shù)據(jù)。
[0053]日志服務(wù)器203(a)-(b)中的每一個(gè)都具有將所接收的應(yīng)用數(shù)據(jù)消息寫(xiě)入到當(dāng)前應(yīng)用數(shù)據(jù)文件209(a)中,并將控制消息寫(xiě)入到控制文件211中的日志服務(wù)器實(shí)例205和記帳插件207。如此,相同應(yīng)用消息從應(yīng)用服務(wù)器201(a)-(c)發(fā)送到全部日志服務(wù)器203(a)-(b)。可能所有日志服務(wù)器201 (a)-(c)接收相同應(yīng)用消息。然而,在實(shí)際中,應(yīng)用消息中的至少某些可以不由所有日志服務(wù)器201(a)_(c)接收。
[0054]如在本文中稍后描述的,控制消息是每隔一段時(shí)間發(fā)送的,控制消息導(dǎo)致當(dāng)前應(yīng)用數(shù)據(jù)文件209(a)關(guān)閉,創(chuàng)建多個(gè)應(yīng)用數(shù)據(jù)文件209(b)-(c),每一個(gè)都表示給定間隔的記帳應(yīng)用消息。
[0055]控制消息的目的是雙面的。首先,這些消息用于(重新)同步將應(yīng)用消息流拆分為文件209 (a) - (C)。關(guān)鍵的是每一個(gè)日志服務(wù)器在流中的相同的點(diǎn)拆分流以便創(chuàng)建同步的文件。其次,每一個(gè)控制消息都將被關(guān)聯(lián)算法用來(lái)選擇同步的文件中的最佳候選。因此,控制消息的概述存儲(chǔ)在控制文件211中。
[0056]包括關(guān)聯(lián)批213、關(guān)聯(lián)輸出215和發(fā)送批217的記帳部分負(fù)責(zé)確定應(yīng)用數(shù)據(jù)文件209 (a)-(c)的最佳候選,并將最佳候選轉(zhuǎn)發(fā)到記帳框架219。
[0057]圖3示出了所傳輸并存儲(chǔ)在控制文件211中的控制消息的結(jié)構(gòu)。相同控制消息從應(yīng)用服務(wù)器201(a)_(c)發(fā)送到全部日志服務(wù)器203 (a)-(b)??赡芩腥罩痉?wù)器201 (a)-(c)接收相同控制消息。然而,在實(shí)際中,控制消息中的至少某些可以不由所有日志服務(wù)器201 (a)-(c)接收。
[0058]由應(yīng)用201 (a)-(c)所發(fā)送的每一個(gè)控制消息都優(yōu)選地包括至少四個(gè)元素。
[0059]控制消息包括標(biāo)識(shí)作為控制消息的始發(fā)者的應(yīng)用服務(wù)器的應(yīng)用標(biāo)識(shí)符303。每個(gè)應(yīng)用201(a)-(c)都具有唯一地標(biāo)識(shí)應(yīng)用的應(yīng)用標(biāo)識(shí)符303。此元素允許不同的計(jì)費(fèi)應(yīng)用向相同集群(即,日志服務(wù)器203 (a)-(b))發(fā)送數(shù)據(jù)和控制消息。集群可以輕松地根據(jù)源分離消息。
[0060]時(shí)間戳305定義發(fā)送方應(yīng)用服務(wù)器中的單一時(shí)間基準(zhǔn)。全部同步步驟都將基于發(fā)送方應(yīng)用服務(wù)器的時(shí)間戳305。這避免了在服務(wù)器203 (a)-(b)的集群中通常發(fā)現(xiàn)的時(shí)鐘差異。此特征是最有利的,因?yàn)閼?yīng)用服務(wù)器201(a)、201(b)、201(c)的數(shù)目高。
[0061]控制消息編號(hào)307表明當(dāng)前控制消息的唯一連續(xù)標(biāo)識(shí)符。此編號(hào)可使日志服務(wù)器知道前一控制消息是否丟失。例如,如果在日志服務(wù)器中連續(xù)地接收到的兩個(gè)控制消息呈現(xiàn)相差一個(gè)以上的增量的控制消息編號(hào)307,那么它表示至少一個(gè)控制消息沒(méi)有被所述日志服務(wù)器接收到。
[0062]應(yīng)用消息編號(hào)309表明由應(yīng)用201(a)_(c)所發(fā)送的應(yīng)用消息的數(shù)目。由于每一個(gè)日志服務(wù)器都知道它實(shí)際接收到多少應(yīng)用消息,因此,每一個(gè)日志服務(wù)器都基于此值,知道有多少應(yīng)用消息丟失。
[0063]消息311的類型表明正在被轉(zhuǎn)發(fā)的控制消息的類型。
[0064]圖4示出了從應(yīng)用201(a)_(c)轉(zhuǎn)發(fā)到日志服務(wù)器203 (a)-(c)的控制消息的類型。應(yīng)用-啟動(dòng)403表明應(yīng)用已經(jīng)啟動(dòng),因此,應(yīng)該創(chuàng)建新應(yīng)用數(shù)據(jù)文件。這樣的控制消息的推論是應(yīng)用-停止409,當(dāng)應(yīng)用停止時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件209 (a)。
[0065]計(jì)時(shí)器時(shí)間間隔405每隔X時(shí)間段發(fā)送消息,其中,X是例如,并優(yōu)選地是2分鐘。每隔N個(gè),例如,由應(yīng)用201 (a) - (c)所發(fā)送的N = 5 (五)檢查點(diǎn)(叫做拆分檢查點(diǎn)),被日志服務(wù)器203 (a)-(b)用來(lái)拆分流:日志服務(wù)器關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件209(a),并創(chuàng)建新文件,在該新文件中將存儲(chǔ)下一組連續(xù)應(yīng)用消息。這樣的拆分在一個(gè)應(yīng)用數(shù)據(jù)文件中創(chuàng)建停止點(diǎn),在新應(yīng)用數(shù)據(jù)文件中創(chuàng)建開(kāi)始點(diǎn)。如此,當(dāng)接收第N檢查點(diǎn)控制消息時(shí),關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件,然后,創(chuàng)建變?yōu)楫?dāng)前應(yīng)用數(shù)據(jù)文件的新應(yīng)用數(shù)據(jù)文件。
[0066]每一個(gè)開(kāi)始點(diǎn)和停止點(diǎn)都與用于標(biāo)識(shí)傳輸次序的控制消息編號(hào)307相關(guān)聯(lián)。因此,易于標(biāo)識(shí)具有相同開(kāi)始點(diǎn)的應(yīng)用數(shù)據(jù)文件。還易于標(biāo)識(shí)具有相同停止點(diǎn)的應(yīng)用數(shù)據(jù)文件。因此,可以輕松地實(shí)現(xiàn)各種日志服務(wù)器的應(yīng)用數(shù)據(jù)文件的比較以及流的拆分。
[0067]由于檢查點(diǎn)也可能會(huì)丟失,日志服務(wù)器203(a)_(b)使用控制消息的控制消息編號(hào)307來(lái)檢測(cè)這樣的丟失。然而,如果拆分點(diǎn)丟失,控制消息編號(hào)還通知日志服務(wù)器[控制消息編號(hào)模N = O]。取決于系統(tǒng)的要求,可以使用五之外的其他值。
[0068]在非拆分檢查點(diǎn)丟失的情況下,日志服務(wù)器203(a)_(b)將簡(jiǎn)單地將該丟失的事件寫(xiě)入到控制文件211。控制文件211中的任何丟失的事件都將降低合適的應(yīng)用數(shù)據(jù)文件的可靠性。
[0069]在拆分檢查點(diǎn)丟失的情況下,日志服務(wù)器203 (a)-(b)將關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件209(a),并打開(kāi)新的(好像接收到拆分檢查點(diǎn))。然而,當(dāng)前應(yīng)用數(shù)據(jù)文件和新應(yīng)用數(shù)據(jù)文件將不同步,因?yàn)樗鼈冊(cè)诓鸱謾z查點(diǎn)沒(méi)有被關(guān)閉/打開(kāi)??刂莆募?11被相應(yīng)地更新:丟失檢查點(diǎn)的丟失的事件,創(chuàng)建新文件的事件,以及時(shí)間戳。沒(méi)有用于關(guān)閉應(yīng)用數(shù)據(jù)文件的事件。這將就拆分檢查點(diǎn)丟失通知關(guān)聯(lián)算法。
[0070]在由應(yīng)用確定的時(shí)間,由應(yīng)用201(a)_(c)發(fā)送“時(shí)間段結(jié)束” 407控制消息。通常,此控制消息在午夜為記帳應(yīng)用發(fā)送,以便分離兩個(gè)工作日?;旧希讼?qiáng)制計(jì)費(fèi)的應(yīng)用和日志服務(wù)器之間的完整的再同步。所有內(nèi)部計(jì)數(shù)器都被設(shè)置為零,新應(yīng)用數(shù)據(jù)文件和新控制文件被啟動(dòng)。還可以理解,“時(shí)間段結(jié)束”可以是某種其他時(shí)間段,如多天,一周,月或年。
[0071]由于每個(gè)控制消息都包含計(jì)費(fèi)應(yīng)用的當(dāng)前時(shí)間戳,因此,發(fā)現(xiàn)“時(shí)間段結(jié)束”控制消息是否丟失是無(wú)足輕重的:由計(jì)費(fèi)應(yīng)用所發(fā)送的時(shí)間戳元素中的日期不再與日志服務(wù)器上的最后接收到的日期相同。在此情況下,日志服務(wù)器模擬“時(shí)間段結(jié)束”消息407的接收,將所有內(nèi)部計(jì)數(shù)器設(shè)置為零,并啟動(dòng)新應(yīng)用數(shù)據(jù)文件。控制文件211如同拆分檢查點(diǎn)丟失那樣被更新。
[0072]在控制文件211中所存儲(chǔ)的控制消息403-409的類型允許將應(yīng)用消息的流拆分為同步的應(yīng)用數(shù)據(jù)文件209 (a)-209 (C)。如果沒(méi)有控制消息丟失,則所有文件將被同步。當(dāng)控制消息丟失時(shí),集群中文件的數(shù)量將不同步:在不同的時(shí)間戳將關(guān)閉/打開(kāi)某些文件。除知道文件被同步之外,還將每一個(gè)文件的正確性通知系統(tǒng)。有關(guān)應(yīng)用數(shù)據(jù)文件的兩個(gè)事實(shí)將被關(guān)聯(lián)算法利用。
[0073]如本發(fā)明的系統(tǒng)中所實(shí)現(xiàn)的記帳服務(wù)器219必須通過(guò)確定日志服務(wù)器203 (a)-(b)中的每一個(gè)上的日志文件209 (a)-(c)的最佳候選來(lái)接收。最佳候選的確定由關(guān)聯(lián)批213來(lái)執(zhí)行。
[0074]最佳候選選擇基于比較每一個(gè)日志服務(wù)器203 (a)-(b)的控制文件211。通過(guò)不比較數(shù)量多并且大的應(yīng)用數(shù)據(jù)文件209 (a)_ (C),實(shí)時(shí)地執(zhí)行此步驟。
[0075]系統(tǒng)對(duì)齊每一個(gè)日志服務(wù)器203 (a)-(b)的不同的控制文件211中的打開(kāi)文件/關(guān)閉文件事件。對(duì)齊基于事件的時(shí)間戳。需要[(n+l)/2]的法定數(shù)來(lái)商定對(duì)齊。對(duì)齊簡(jiǎn)單地表明流在相同時(shí)間點(diǎn)被拆分的文件。在此額定情況下,系統(tǒng)通過(guò)選擇首先包含最多消息并其次包含最少丟失的檢查點(diǎn)消息的應(yīng)用數(shù)據(jù)文件,來(lái)確定同步的應(yīng)用數(shù)據(jù)文件209 (a) - (C)中的最佳候選。
[0076]如果沒(méi)有達(dá)到法定數(shù),則系統(tǒng)將首選發(fā)現(xiàn)打開(kāi)文件事件和關(guān)閉文件事件兩者的文件。在丟失的拆分檢查點(diǎn)的情況下,沒(méi)有在控制文件211中注冊(cè)的關(guān)閉事件。這意味著,系統(tǒng)將降低法定數(shù),但是,仍將只考慮接收到打開(kāi)文件和關(guān)閉文件事件兩者的文件。系統(tǒng)首先基于應(yīng)用消息的數(shù)目以及其次基于丟失的檢查點(diǎn)消息的數(shù)目,定義最佳候選。
[0077]在沒(méi)有單一文件具有關(guān)閉文件事件的極端情況下,(這意味著,拆分檢查點(diǎn)被所有日志服務(wù)器丟失),系統(tǒng)將首選首先具有最少丟失的檢查點(diǎn)消息,其次具有最多消息的文件。
[0078]重要的是,要考慮的接下來(lái)的打開(kāi)文件事件必須按時(shí)間順序遵循當(dāng)前選擇的最佳候選的關(guān)閉事件,以便避免將重復(fù)的消息發(fā)送到記帳服務(wù)器219。
[0079]系統(tǒng)還通過(guò)檢索其他同步的文件中的丟失消息的一部分,改善所選最佳候選的質(zhì)量。改善只對(duì)于其中最佳候選丟失小于消息的(即,接收到的消息數(shù)目大于(100-x) %)的同步的文件適用。有利地,15〈x〈45,更有利地,X = 30,S卩,接收到的消息的數(shù)目大于70%。如果甚至最佳候選文件丟失了多于的消息,則可以認(rèn)為其他應(yīng)用數(shù)據(jù)文件不能提供丟失的消息。
[0080]在最終改善的情況下,比較同步的文件的每一個(gè)檢查點(diǎn)。由于每一個(gè)檢查點(diǎn)都包含最后“m”分鐘(例如,m = 2)的丟失的消息,因此,系統(tǒng)可以標(biāo)識(shí)哪一個(gè)文件具有最佳數(shù)據(jù)塊。如果最佳候選之外的另一個(gè)包含“m”分鐘跨度內(nèi)的更多消息,則提取消息塊,并在最佳候選文件中替換。
[0081]此方法允許實(shí)時(shí)地改善最佳候選,因?yàn)橹挥懈乓刂莆募?11中的事件用于標(biāo)識(shí)應(yīng)用數(shù)據(jù)文件209 (a)-(c)中的最佳候選。
[0082]圖5示出了實(shí)現(xiàn)本發(fā)明的應(yīng)用201(a)_(c)的線程所采取的步驟的示例。在步驟501中,過(guò)程開(kāi)始,在步驟503中,向日志服務(wù)器203 (a)-(c)立即發(fā)送應(yīng)用-啟動(dòng)控制消息403。
[0083]應(yīng)用記帳線程重復(fù)找工作。在步驟505中,判斷自從發(fā)生了最后一個(gè)控制消息以來(lái)是否消逝了超過(guò)預(yù)定的時(shí)間長(zhǎng)度(通常是2分鐘),如果回答是,那么,在步驟507中,檢查點(diǎn)控制消息405將被發(fā)送到日志服務(wù)器203 (a)-(c)。如果回答否,則轉(zhuǎn)到步驟509,判斷是否需要發(fā)送應(yīng)用消息(例如,記帳應(yīng)用消息)。如果回答是,則在步驟511中,向日志服務(wù)器203 (a)-(c)發(fā)送帶有數(shù)據(jù)的應(yīng)用消息。
[0084]如果回答否,則轉(zhuǎn)到步驟513,在那里,判斷它是否是新的一天,或其他記帳時(shí)間段。如果回答是,則在步驟515中,向日志服務(wù)器203 (a)-(c)發(fā)送“時(shí)間段結(jié)束”控制消息407。
[0085]如果回答否,則轉(zhuǎn)到步驟517,在那里,判斷是否正在停止應(yīng)用程序。如果回答是,則在步驟519中發(fā)送應(yīng)用-停止控制消息409,然后,在步驟521中結(jié)束處理,以別的方式繼續(xù)迭代。
[0086]圖6示出了在日志服務(wù)器203 (a) - (b)上接收日志消息的程序的步驟的示例。過(guò)程開(kāi)始步驟601。在步驟603中,判斷消息是否是應(yīng)用消息(例如,記帳應(yīng)用消息),如果是,則在步驟605中,將應(yīng)用消息存儲(chǔ)到當(dāng)前日志文件209(a)中。如果否,則在步驟607中,將控制消息301存儲(chǔ)到控制文件中,然后,確定接收到了什么類型的控制消息301。在步驟609中,判斷控制消息301是否是應(yīng)用-啟動(dòng)控制消息403,如果是,那么,在步驟611中,打開(kāi)新當(dāng)前應(yīng)用數(shù)據(jù)文件209 (a)。如果否,則轉(zhuǎn)到下一步驟613,在那里,通過(guò)在步驟615中檢查控制消息編號(hào)307,判斷控制消息301是否是第N個(gè)(N是預(yù)定的,并例如,是五(5))檢查點(diǎn)消息405。如果是,則在步驟617中,關(guān)閉當(dāng)前應(yīng)用數(shù)據(jù)文件209(a),現(xiàn)在變?yōu)樾蛄?09 (b, C,...)中的下一應(yīng)用數(shù)據(jù)文件。打開(kāi)新文件,作為當(dāng)前應(yīng)用數(shù)據(jù)文件209(a)。
[0087]如果否,則步驟619判斷任何前面的控制消息是否丟失,如果丟失這樣的消息,然后,執(zhí)行步驟617。
[0088]在步驟621中,判斷控制消息301是否是“時(shí)間段結(jié)束”控制消息403,如果是,那么,執(zhí)行步驟617。如果否,在步驟623中,判斷控制消息301是否是應(yīng)用-停止。如果是,那么,在步驟625中,關(guān)閉現(xiàn)在變?yōu)樾蛄?09 (b,C,..)中的下一應(yīng)用數(shù)據(jù)文件的當(dāng)前應(yīng)用數(shù)據(jù)文件209 (a)。在步驟627中,結(jié)束處理。
[0089]圖7示出了用于確定來(lái)自日志服務(wù)器203(a)_(b)中的每一個(gè)的日志文件209 (a)-(c)的最佳候選選擇的根據(jù)本發(fā)明的方法的示例。從步驟701開(kāi)始,在步驟703中,通過(guò)比較日志服務(wù)器203 (a)-(b)中的每一個(gè)中的控制消息301,確定在相同的時(shí)間點(diǎn)被拆分的應(yīng)用數(shù)據(jù)文件209 (a)-(C)。從在日志服務(wù)器203 (a)-(b)中的每一個(gè)上在相同的時(shí)間點(diǎn)被拆分的應(yīng)用數(shù)據(jù)文件209 (a)-(c)的列表,確定705具有最大數(shù)量的接收到的應(yīng)用消息的日志文件。優(yōu)選地,在至少兩個(gè)應(yīng)用數(shù)據(jù)文件209 (a)-(c)包括相同數(shù)量的應(yīng)用消息的情況下,系統(tǒng)比較一定數(shù)量的丟失的控制消息。在日志服務(wù)器203 (a)-(b)中的每一個(gè)上在相同的時(shí)間點(diǎn)被拆分應(yīng)用數(shù)據(jù)文件209(a)_(c)中的最佳候選是具有最高數(shù)量的應(yīng)用消息并且具有最高數(shù)量的控制消息的應(yīng)用數(shù)據(jù)文件209 (a)-(c)。
[0090]將選擇的應(yīng)用數(shù)據(jù)文件轉(zhuǎn)發(fā)709到用于處理的記帳框架,結(jié)束處理711。
[0091]圖8示出了組合文件以提高質(zhì)量的方法。如果在步驟705中確定801應(yīng)用數(shù)據(jù)文件被同步并且最佳候選具有超過(guò)70%的其記帳應(yīng)用消息但是小于100%的消息,則將來(lái)自其他日志服務(wù)器的相同間隔內(nèi)的應(yīng)用數(shù)據(jù)文件的任何丟失的應(yīng)用消息補(bǔ)充到最佳候選日志文件中。
[0092]圖9示出了其中應(yīng)用201向被稱為11^#1、11^#2、11^#3和11^#4的四個(gè)日志服務(wù)器203的集群發(fā)送消息的示例性實(shí)施例。
[0093]第一同步的檢查點(diǎn)100(檢查點(diǎn)i)在四個(gè)日志服務(wù)器203的每一個(gè)中觸發(fā)應(yīng)用數(shù)據(jù)文件的啟動(dòng)。如此,四個(gè)日志服務(wù)器203的應(yīng)用數(shù)據(jù)文件具有相同開(kāi)始點(diǎn)。應(yīng)用消息還被發(fā)送到日志服務(wù)器203。每一個(gè)日志服務(wù)器203都接收這些應(yīng)用消息,并將它們存儲(chǔ)到剛剛被打開(kāi)的應(yīng)用數(shù)據(jù)文件中。如此,應(yīng)用消息分別由日志服務(wù)器LGS#1、LGS#2、LGS#3和LGS#4存儲(chǔ)在應(yīng)用數(shù)據(jù)文件101、102、103、104中。
[0094]每隔時(shí)間間隔105,由應(yīng)用服務(wù)器201發(fā)送新控制消息。
[0095]某些日志服務(wù)器可以不接收普通檢查點(diǎn)。例如,LGS#2丟失了具有編號(hào)i+3的檢查點(diǎn),LGS#3丟失了檢查點(diǎn)編號(hào)i+2,檢查點(diǎn)編號(hào)i+3、檢查點(diǎn)編號(hào)i+4,LGS#4丟失了檢查點(diǎn)編號(hào)i+Ι和檢查點(diǎn)編號(hào)i+3。某些日志服務(wù)器還可以丟失同步檢查點(diǎn)。例如,LGS#4丟失了具有編號(hào)i+5的檢查點(diǎn),所述檢查點(diǎn)是同步檢查點(diǎn)。此檢查點(diǎn)是打開(kāi)/關(guān)閉控制消息,該消息觸發(fā)當(dāng)前應(yīng)用數(shù)據(jù)文件的關(guān)閉和新應(yīng)用數(shù)據(jù)文件的打開(kāi)。因此,在日志服務(wù)器LGS#1、LGS#2和LGS#3,在接收到控制消息i+5時(shí),應(yīng)用數(shù)據(jù)文件101、102、103在相同時(shí)間關(guān)閉。然而,在日志服務(wù)器LGS#4,應(yīng)用數(shù)據(jù)文件104稍后關(guān)閉。如此,應(yīng)用數(shù)據(jù)文件101、102、103具有相同起始點(diǎn)和停止點(diǎn),應(yīng)用數(shù)據(jù)文件104沒(méi)有與其他停止點(diǎn)相同的停止點(diǎn)。
[0096]在此實(shí)施例中,打開(kāi)/關(guān)閉控制消息是第五個(gè)控制消息,通過(guò)箭頭105描繪了用于轉(zhuǎn)發(fā)控制消息的時(shí)間間隔。
[0097]從具有相同起始點(diǎn)和停止點(diǎn)的應(yīng)用數(shù)據(jù)文件組,S卩,應(yīng)用數(shù)據(jù)文件101、102、103,中選擇最佳候選文件。在此組應(yīng)用數(shù)據(jù)文件101、102、103之中,將被視為最佳候選的應(yīng)用數(shù)據(jù)文件是包括最高數(shù)量的應(yīng)用消息的應(yīng)用數(shù)據(jù)文件。應(yīng)用消息的數(shù)量的此比較基于由每一個(gè)日志服務(wù)器所創(chuàng)建的控制文件的比較。因此,不需要比較應(yīng)用數(shù)據(jù)文件,這要求多得多的時(shí)間和處理能力。在兩個(gè)或更多應(yīng)用數(shù)據(jù)文件101,102,103具有相同數(shù)量的應(yīng)用消息的情況下,最佳候選是包括最高數(shù)量的控制消息的應(yīng)用數(shù)據(jù)文件。例如,如果應(yīng)用數(shù)據(jù)文件102和103具有相同數(shù)量的應(yīng)用消息,此數(shù)量高于應(yīng)用數(shù)據(jù)文件101中的一個(gè),那么,應(yīng)用數(shù)據(jù)文件102將被視為最佳候選,應(yīng)用數(shù)據(jù)文件101,103和104將被丟棄。
[0098]雖然參考特別有利的應(yīng)用(即,記帳消息的遞送)描述了示例性實(shí)施例,但是,所描述的和所示出的所有特征適用于其他應(yīng)用。
[0099]那些本領(lǐng)域技術(shù)人員可以理解,上面的系統(tǒng)和方法可以被實(shí)現(xiàn)為存儲(chǔ)在諸如圖10的硬盤(pán)驅(qū)動(dòng)器903、DVD/⑶-R0M905、拇指驅(qū)動(dòng)器907之類的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,其中,CPU 901跨總線911將計(jì)算機(jī)程序加載到RAM909中,并作為一系列指令來(lái)執(zhí)行程序,訪問(wèn)如上文所描述的設(shè)備,跨網(wǎng)絡(luò)適配器913與網(wǎng)絡(luò)105進(jìn)行通信,使用顯示器915和諸如鍵盤(pán)和鼠標(biāo)等等之類的輸入輸出設(shè)備917。由于計(jì)算機(jī)程序存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,此處動(dòng)詞“存儲(chǔ)”意味著使永久地位于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,因此,從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的含義中排除傳播信號(hào)。
[0100]可以理解,有許多通過(guò)使用本發(fā)明實(shí)現(xiàn)的優(yōu)點(diǎn)和技術(shù)效果。具體而言,本發(fā)明允許通過(guò)向各種日志服務(wù)器發(fā)送相同消息而同時(shí)維護(hù)高吞吐量,來(lái)顯著提高消息的可靠性,因?yàn)榭梢赃x擇最可靠的消息,而不要求處理大量的數(shù)據(jù)。通常,本發(fā)明允許每秒鐘發(fā)送超過(guò)10000個(gè)事務(wù),而將丟失的消息的比率維持在0.14%以下。
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的提供應(yīng)用消息遞送的方法,其特征在于,它包括利用至少一個(gè)數(shù)據(jù)處理器執(zhí)行的下列步驟: 在耦接到至少應(yīng)用服務(wù)器(201a-C)的多個(gè)日志服務(wù)器(203a_b):從所述至少一個(gè)應(yīng)用服務(wù)器(201a_c)異步地接收包含應(yīng)用信息的應(yīng)用消息,每個(gè)應(yīng)用消息都由所述多個(gè)日志服務(wù)器(203a-b)中的至少一些日志服務(wù)器(203a-b)接收;以預(yù)定的間隔,從所述至少一個(gè)應(yīng)用服務(wù)器(201a_c)異步地接收控制消息,每個(gè)控制消息都由所述多個(gè)日志服務(wù)器(203a-b)中的至少一些日志服務(wù)器(203a-b)接收的; 在所述多個(gè)日志服務(wù)器(203a-b)中的每一個(gè):將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件(209)中;將所接收的控制消息存儲(chǔ)在控制文件(211)中,以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉所述當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,并創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為所述當(dāng)前應(yīng)用數(shù)據(jù)文件; 在給定間隔比較所述多個(gè)日志服務(wù)器(203a-b)的所述控制文件;以及 基于此比較,確定來(lái)自所述日志服務(wù)器(203a-b)中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件(209)中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選,并轉(zhuǎn)發(fā)所述最佳候選文件用于后處理。
2.根據(jù)權(quán)利要求1所述的方法,其中,每個(gè)日志服務(wù)器(203a-b)都耦接到多個(gè)應(yīng)用服務(wù)器(201a_c),每個(gè)應(yīng)用服務(wù)器(201a_c)都被關(guān)聯(lián)到至少一個(gè)應(yīng)用。
3.根據(jù)權(quán)利要求1到2中的任何一項(xiàng)所述的方法,其中,所述控制消息包括由所述應(yīng)用服務(wù)器(201a-c)傳輸?shù)囊欢〝?shù)量(309)的應(yīng)用消息和標(biāo)識(shí)控制消息序列中的每個(gè)控制消息的控制消息編號(hào)(307)。
4.根據(jù)權(quán)利要求1到3中的任何一項(xiàng)所述的方法,其中,所述控制消息包括下列各項(xiàng)中的至少一項(xiàng):應(yīng)用的標(biāo)識(shí)符(303)和所述應(yīng)用服務(wù)器的時(shí)間戳(305)。
5.根據(jù)前面的權(quán)利要求中的任何一項(xiàng)所述的方法,其中,轉(zhuǎn)發(fā)控制消息的所述間隔是給定時(shí)間段。
6.根據(jù)前面的權(quán)利要求中的任何一項(xiàng)所述的方法,其中,所述打開(kāi)/關(guān)閉控制消息是控制消息序列中的第N個(gè)控制消息,N是預(yù)定的。
7.根據(jù)前面的權(quán)利要求所述的方法,其中,所述第N個(gè)控制消息是所述控制消息序列中的第五個(gè)控制消息,所述給定時(shí)間段是兩分鐘時(shí)間段。
8.根據(jù)前面的權(quán)利要求中的任何一項(xiàng)所述的方法,其中,所述最佳候選文件是從來(lái)自所述多個(gè)日志服務(wù)器(203a-b)并且具有相同起始點(diǎn)和停止點(diǎn)的一組應(yīng)用數(shù)據(jù)文件中選擇的。
9.根據(jù)前面的權(quán)利要求所述的方法,其中,所述最佳候選文件是從所選擇的文件組中選擇的,所述應(yīng)用數(shù)據(jù)文件具有最低應(yīng)用消息丟失率。
10.根據(jù)前面的權(quán)利要求所述的方法,其中,在一些應(yīng)用數(shù)據(jù)文件具有相同數(shù)量的應(yīng)用消息的情況下,所述最佳候選文件是從具有最低應(yīng)用消息丟失率的所述應(yīng)用數(shù)據(jù)文件中選擇的,所述應(yīng)用數(shù)據(jù)文件具有最低控制消息丟失率。
11.根據(jù)前面兩個(gè)權(quán)利要求中的任何一項(xiàng)所述的方法,其中,具有丟失的應(yīng)用消息但在所述間隔內(nèi)不丟失多于的應(yīng)用消息的所述最佳候選文件利用存在于所述文件組的其他文件中的所述丟失的應(yīng)用消息增強(qiáng),X是預(yù)定的。
12.根據(jù)前面的權(quán)利要求中的任何一項(xiàng)所述的方法,其中,所述應(yīng)用是航空公司記帳事務(wù)應(yīng)用。
13.一種包含軟件程序指令的非瞬時(shí)的計(jì)算機(jī)可讀介質(zhì),其中,由至少一個(gè)數(shù)據(jù)處理器對(duì)所述軟件程序指令的執(zhí)行導(dǎo)致進(jìn)行包括執(zhí)行前面的權(quán)利要求中的任何一項(xiàng)中方法的操作。
14.一種用于高可靠性和高性能應(yīng)用消息遞送的系統(tǒng),其特征在于,它包括: 耦接到至少一個(gè)應(yīng)用服務(wù)器(201a_c)的所述輸出端的多個(gè)日志服務(wù)器(203a_b); 每個(gè)日志服務(wù)器(203a_b)都被配置成從所述至少一個(gè)應(yīng)用服務(wù)器(201a_c)異步地接收:包含應(yīng)用信息和控制消息的應(yīng)用消息; 每個(gè)日志服務(wù)器(203a_b)還被配置成:將所接收的應(yīng)用消息存儲(chǔ)在當(dāng)前應(yīng)用數(shù)據(jù)文件(209)中,并將所接收的控制消息存儲(chǔ)在控制文件(211)中;以及在接收到打開(kāi)-關(guān)閉控制消息時(shí),關(guān)閉所述當(dāng)前應(yīng)用數(shù)據(jù)文件,存儲(chǔ)所述關(guān)閉的應(yīng)用數(shù)據(jù)文件,以及創(chuàng)建新應(yīng)用數(shù)據(jù)文件作為所述當(dāng)前應(yīng)用數(shù)據(jù)文件; 耦接到所述多個(gè)日志服務(wù)器(203a-b)的服務(wù)器,所述服務(wù)器被配置成:在給定間隔比較所述多個(gè)日志服務(wù)器(203a-b)的所述控制文件;基于此比較,確定來(lái)自所述日志服務(wù)器(203a-b)中的每一個(gè)的多個(gè)應(yīng)用數(shù)據(jù)文件(209)中的應(yīng)用數(shù)據(jù)文件作為給定間隔的最佳候選;并轉(zhuǎn)發(fā)所述最佳候選文件用于后處理。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述系統(tǒng)包括多個(gè)應(yīng)用服務(wù)器(201a-c)和在所述多個(gè)應(yīng)用服務(wù)器(201a-c)中的任何一個(gè)的處理器上執(zhí)行的多個(gè)應(yīng)用,所述應(yīng)用服務(wù)器(201a_c)中的每一個(gè)都具有耦接到所述日志服務(wù)器(203a_b)中的每一個(gè)的輸入端的輸出端。
【文檔編號(hào)】H04L29/08GK104205775SQ201280068838
【公開(kāi)日】2014年12月10日 申請(qǐng)日期:2012年12月27日 優(yōu)先權(quán)日:2011年12月29日
【發(fā)明者】P·德薩赫特, T·佩爾, M·帕斯卡爾 申請(qǐng)人:艾瑪?shù)纤购?jiǎn)易股份公司