技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)備份技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)實(shí)時(shí)同步方法及系統(tǒng)。
背景技術(shù):
為增加數(shù)據(jù)的可靠性,通常做法是進(jìn)行數(shù)據(jù)備份,備份一份或多份,這樣即使其中一份數(shù)據(jù)丟失,也不影響整個(gè)數(shù)據(jù)的完整性。如果數(shù)據(jù)是動(dòng)態(tài)不斷增長的,為了保證數(shù)據(jù)的高可靠性,就需要進(jìn)行實(shí)時(shí)備份,保證最新的數(shù)據(jù)也能得到實(shí)時(shí)備份。
現(xiàn)有的備份流程如圖1所示,假如有A,B兩臺(tái)服務(wù)器,如果需要將A機(jī)器的c文件實(shí)時(shí)備份到B機(jī)器上去,一種做法是將A作為服務(wù)器Server,B為客戶端Client。具體流程是:
B機(jī)器上同步進(jìn)程啟動(dòng)后與A連接,然后以一定時(shí)間間隔不停的向A發(fā)起同步數(shù)據(jù)請(qǐng)求,Polling(輪詢)的時(shí)間一般為1秒,方式是:
B上的Client進(jìn)程啟動(dòng)后,根據(jù)當(dāng)前文件同步到的最新位置,向Server端發(fā)送fetch(同步)請(qǐng)求。在每次請(qǐng)求中都帶上文件名,以及同步到的位置等參數(shù)。例如類似fetch(c,100),表示同步c文件,偏移量100之后的數(shù)據(jù);然后將從Server端的返回(如果有)寫入文件。
A服務(wù)進(jìn)程啟動(dòng)后,監(jiān)聽Client的連接,不停的接收fetch請(qǐng)求。在每次收到fetch請(qǐng)求后,根據(jù)fetch中的參數(shù),查看相應(yīng)文件是否有新數(shù)據(jù)產(chǎn)生;如果有,則將新的數(shù)據(jù)(data)返回給client;如果沒有新數(shù)據(jù),則返回空。例如收到fetch(c,100),則打開文件c,fseek(c,100),然后read新數(shù)據(jù),并將數(shù)據(jù)返回給Client。
現(xiàn)有技術(shù)一的缺點(diǎn)如下:
1、浪費(fèi)不必要的網(wǎng)絡(luò)帶寬:
為了保持?jǐn)?shù)據(jù)備份的實(shí)時(shí)性,B需要不停的向A發(fā)起請(qǐng)求,當(dāng)A沒有新數(shù)據(jù)產(chǎn)生時(shí),也一直發(fā)送同步請(qǐng)求,這樣就會(huì)浪費(fèi)不必要的帶寬傳輸。
2、不必要的CPU(Central Processing Unit,中央處理器)消耗:
由于B需要不停的發(fā)起同步請(qǐng)求,A也要響應(yīng)這些請(qǐng)求,尤其是在A沒有新數(shù)據(jù)產(chǎn)生時(shí),這樣A、B之間的交互就會(huì)造成CPU資源的很大浪費(fèi)。
3、影響數(shù)據(jù)同時(shí)的實(shí)時(shí)性:
B是每隔一定時(shí)間發(fā)起同步請(qǐng)求,由于請(qǐng)求不宜太密集,一般設(shè)置為1s間隔;這樣數(shù)據(jù)可能會(huì)有1s的時(shí)延。如果當(dāng)A壞掉后,可能會(huì)導(dǎo)致1s的數(shù)據(jù)丟失。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)實(shí)時(shí)同步系統(tǒng)和相應(yīng)的數(shù)據(jù)實(shí)時(shí)同步方法。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)實(shí)時(shí)同步方法,應(yīng)用于第一終端,包括:監(jiān)測(cè)待同步文件并在待同步文件發(fā)生數(shù)據(jù)變化時(shí),將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;接收第二終端發(fā)送的下次同步的起始位置的位置信息;以及從所述下次同步的起始位置對(duì)應(yīng)的數(shù)據(jù)起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。
依據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)實(shí)時(shí)同步方法,應(yīng)用于第二終端,包括:接收第一終端在監(jiān)控到待同步文件發(fā)生數(shù)據(jù)變化時(shí)發(fā)送的預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置;判斷該數(shù)據(jù)是否完成數(shù)據(jù)同步,如果是,則不保存該數(shù)據(jù),將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置的位置信息發(fā)送給第一終端;如果否,則保存該數(shù)據(jù),并將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置的位置信息發(fā)送給第一終端。
依據(jù)本發(fā)明的又一方面,提供了一種數(shù)據(jù)實(shí)時(shí)同步系統(tǒng),用于將第一終端上的數(shù)據(jù)實(shí)時(shí)同步到第二終端,該系統(tǒng)包括:第一終端,監(jiān)測(cè)待同步文件并在待同步文件發(fā)生數(shù)據(jù)變化時(shí),將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;第二終端,接收第一終端在監(jiān)控到待同步文件發(fā)生數(shù)據(jù)變化時(shí)發(fā)送的預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置;判斷該數(shù)據(jù)是否完成數(shù)據(jù)同步,如果是,則不保存該數(shù)據(jù),將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置的位置信息發(fā)送給第一終端;如果否,則保存該數(shù)據(jù),并將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置的位置信息發(fā)送給第一終端;其中,所述第一終端還接收所述第二終端發(fā)送的下次同步的起始位置的位置信息;以及從所述下次同步的起始位置對(duì)應(yīng)的數(shù)據(jù)起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。
根據(jù)本發(fā)明的第一終端通過監(jiān)控自身數(shù)據(jù)的變化,在發(fā)生變化后再進(jìn)行數(shù)據(jù)同步,保證了數(shù)據(jù)同步的實(shí)時(shí)性,同時(shí),第一、二終端在數(shù)據(jù)無變化時(shí)不再進(jìn)行交互,大大降低了CPU和帶寬消耗;由此解決了現(xiàn)有技術(shù)中網(wǎng)絡(luò)帶寬和CPU資源浪費(fèi)的問題,以及存在數(shù)據(jù)丟失問題;具有占用網(wǎng)絡(luò)帶寬和CPU資源少、數(shù)據(jù)實(shí)時(shí)性高的有益效果。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了現(xiàn)有技術(shù)中數(shù)據(jù)備份的流程圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)實(shí)時(shí)同步方法的流程圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的客戶端與服務(wù)器之間進(jìn)行數(shù)據(jù)備份的流程圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)實(shí)時(shí)同步系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
如圖2所示,本發(fā)明實(shí)施例涉及一種數(shù)據(jù)實(shí)時(shí)同步方法,用于將第一終端上的數(shù)據(jù)實(shí)時(shí)同步到第二終端,該方法包括:
第一終端監(jiān)控到待同步文件發(fā)生數(shù)據(jù)變化時(shí),第一終端將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;所述第二終端根據(jù)這些數(shù)據(jù)所在文件的位置,存儲(chǔ)這些數(shù)據(jù);
重復(fù)上述數(shù)據(jù)同步操作,直至全部數(shù)據(jù)同步完成。
在第一終端對(duì)文件變化進(jìn)行實(shí)時(shí)監(jiān)控時(shí),可以采用Linux(林納克斯)的Inotify機(jī)制,Inotify是一種文件變化通知機(jī)制,是Linux內(nèi)核特性,它監(jiān)控文件系統(tǒng),并且及時(shí)向?qū)iT的應(yīng)用程序發(fā)出相關(guān)的事件警告,比如刪除、讀、寫和卸載操作等。您還可以跟蹤活動(dòng)的源頭和目標(biāo)等細(xì)節(jié)。使用inotify事件來驅(qū)動(dòng)傳輸,這樣能極大的降低數(shù)據(jù)同步的時(shí)延。
另外,為了提高備份效率和速度,第二終端在存儲(chǔ)完第一終端發(fā)送的數(shù)據(jù)之后,將下次同步的起始位置發(fā)送給第一終端;這樣,就相當(dāng)于第二終端告訴第一終端,第二終端希望下次同步的位置。如果數(shù)據(jù)之前沒有備份過,則第二終端將每次存儲(chǔ)完數(shù)據(jù)的下一個(gè)位置反饋給第一終端;如果數(shù)據(jù)之前備份過,則直接反饋需要備份的數(shù)據(jù),之前備份的數(shù)據(jù)不需要再進(jìn)行備份,進(jìn)而提高了備份效率和速度。具體的:
當(dāng)?shù)谝唤K端與第二終端首次進(jìn)行數(shù)據(jù)同步時(shí),第一終端從待同步文件的起始位置起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。第二終端存儲(chǔ)數(shù)據(jù)之后,將下次同步的起始位置發(fā)送給第一終端;第一終端從下次同步的起始位置對(duì)應(yīng)的數(shù)據(jù)起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。重復(fù)上述步驟,直至同步完成。
當(dāng)?shù)谝唤K端與第二終端之間的數(shù)據(jù)同步終止后又重新進(jìn)行數(shù)據(jù)同步時(shí),第一終端從待同步文件的起始位置起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;第二終端收到第一終端發(fā)送的數(shù)據(jù)后,判斷該數(shù)據(jù)是否完成數(shù)據(jù)同步,如果是,則不保存該數(shù)據(jù),將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置發(fā)送給第一終端(第一次數(shù)據(jù)同步中斷時(shí)未完成數(shù)據(jù)同步備份的位置);如果否,則保存該數(shù)據(jù),并將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置發(fā)送給第一終端;第一終端根據(jù)所述第二終端返回的位置信息,與第二終端進(jìn)行數(shù)據(jù)同步操作,直至全部數(shù)據(jù)同步完成。
當(dāng)?shù)谝唤K端判斷收到第二終端返回的位置信息超出了所述待同步文件的最后一個(gè)位置,則監(jiān)測(cè)所述待同步文件,直至其數(shù)據(jù)發(fā)生變化,再進(jìn)行數(shù)據(jù)同步;否則繼續(xù)進(jìn)行數(shù)據(jù)同步,直至同步完成。
上述方法中,將polling(輪詢)的方式改為pull(拉)/push(推)相結(jié)合的方式,節(jié)省了對(duì)帶寬和CPU資源的消耗。
下面,如圖3所示,以兩臺(tái)機(jī)器進(jìn)行數(shù)據(jù)備份的實(shí)例進(jìn)行更加清楚地描述,具體如下:
假如A(第一終端)機(jī)器上的c文件需要實(shí)時(shí)同步到備份機(jī)B(第二終端)上,則將A作為Client(客戶端),B為Server(服務(wù)器)。
Client A需要做的工作是:
1、使用Linux的inotify機(jī)制監(jiān)控c文件的變動(dòng)事件,當(dāng)有inofity事件時(shí),就進(jìn)行文件同步操作。這樣當(dāng)C文件有更新時(shí),A就能立刻將這些更新的數(shù)據(jù)同步到B上。
2、A每次同步發(fā)送數(shù)據(jù)時(shí),都會(huì)將這些數(shù)據(jù)所在文件的位置傳給B,B收到數(shù)據(jù)后,就能將這些數(shù)據(jù)準(zhǔn)確的更新到文件的相應(yīng)位置。
3、A初始時(shí)從文件的0位置(起始位置)開始同步。
4、每次同步數(shù)據(jù)時(shí),會(huì)一直同步,直至同步到文件的最新位置,然后等待inofity事件。
5、向Server B發(fā)送數(shù)據(jù)后,B每次會(huì)返回下次需要同步的起始位置,如果B返回的位置信息(next pos)不是文件尾部,則需要查找到那個(gè)位置,從這個(gè)位置起進(jìn)行同步操作,否則等待inofity事件。
Server B的主要工作是:
1、監(jiān)聽clientA的連接。
2、接收clientA發(fā)送過來的數(shù)據(jù),并檢查是否是相應(yīng)文件接收的預(yù)期數(shù)據(jù);如果是,則更新到相應(yīng)文件,如果否,則丟棄并返回錯(cuò)誤信息。
3、將下次期望的文件同步點(diǎn)發(fā)送給A。
具體操作過程如下:
S1、A首次啟動(dòng)后會(huì)連接B,然后從文件c的起始位置開始同步數(shù)據(jù),讀取預(yù)設(shè)大小的數(shù)據(jù)內(nèi)容(假如是1024k大小),并將這些數(shù)據(jù)發(fā)送給B。
S2、B收到A發(fā)過來的數(shù)據(jù)后,發(fā)現(xiàn)是C文件偏移量(offset)為0的數(shù)據(jù),由于還沒有這個(gè)文件,于是創(chuàng)建C文件,并將這些內(nèi)容寫到C文件中;并將下次期待同步的位置(1024)返回給A。
S3、A收到B的返回后,接著從之前的位置(1024)繼續(xù)按這個(gè)方式同步。假如當(dāng)前c文件只有1MB大小,等備份完這些數(shù)據(jù)后,A就等待c文件的inotify事件,等有新的寫入后再進(jìn)行同步操作。
S4、如果A機(jī)器重啟,或者同步進(jìn)程掛掉。A上的進(jìn)程再次啟動(dòng)后,還是從c文件位置0開始同步,當(dāng)B收到這個(gè)位置的數(shù)據(jù)后,發(fā)現(xiàn)這些數(shù)據(jù)已經(jīng)同步過了(之前同步到了1MB的數(shù)據(jù)),就不會(huì)寫入到文件中,B然后將下次同步點(diǎn)(數(shù)據(jù)1MB處對(duì)應(yīng)的位置)發(fā)給A。
S5、當(dāng)A收到B的返回后,于是會(huì)接著之前的1MB的內(nèi)容處繼續(xù)同步,而不會(huì)將中間的數(shù)據(jù)再傳一次。
另外,本發(fā)明實(shí)施例還涉及一種實(shí)現(xiàn)上述方法的數(shù)據(jù)實(shí)時(shí)同步系統(tǒng),用于將第一終端上的數(shù)據(jù)實(shí)時(shí)同步到第二終端,該系統(tǒng)包括:
第一終端,監(jiān)控到待同步文件發(fā)生數(shù)據(jù)變化時(shí),將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;
第二終端,根據(jù)這些數(shù)據(jù)所在文件的位置,存儲(chǔ)這些數(shù)據(jù);
所述第一終端和第二終端進(jìn)行上述數(shù)據(jù)同步操作,直至全部數(shù)據(jù)同步完成。
其中,所述第二終端在存儲(chǔ)數(shù)據(jù)之后,將下次同步的起始位置發(fā)送給第一終端;
從下次同步的起始位置對(duì)應(yīng)的數(shù)據(jù)起,所述第一終端將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。
當(dāng)所述第一終端與所述第二終端首次進(jìn)行數(shù)據(jù)同步時(shí),所述第一終端從待同步文件的起始位置起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端。
當(dāng)所述第一終端與所述第二終端之間的數(shù)據(jù)同步終止后又重新進(jìn)行數(shù)據(jù)同步時(shí),所述第一終端從待同步文件的起始位置起,將預(yù)設(shè)大小的數(shù)據(jù)、以及這些數(shù)據(jù)所在文件的位置發(fā)送給第二終端;所述第二終端收到所述第一終端發(fā)送的數(shù)據(jù)后,判斷該數(shù)據(jù)是否完成數(shù)據(jù)同步,如果是,則不保存該數(shù)據(jù),將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置發(fā)送給第一終端;如果否,則保存該數(shù)據(jù),并將下一個(gè)需要完成數(shù)據(jù)同步的數(shù)據(jù)對(duì)應(yīng)的位置發(fā)送給第一終端;所述第一終端根據(jù)所述第二終端返回的位置信息,與所述第二終端進(jìn)行數(shù)據(jù)同步操作,直至全部數(shù)據(jù)同步完成。
所述第一終端收到所述第二終端返回的位置信息后,判斷該位置信息是否超出了所述待同步文件的最后一個(gè)位置,如果是,則監(jiān)測(cè)所述待同步文件,直至其數(shù)據(jù)發(fā)生變化,如果否,則繼續(xù)進(jìn)行數(shù)據(jù)同步。
由上述描述可以看出,本發(fā)明技術(shù)方案相對(duì)于現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
一、提高備份的實(shí)時(shí)性,降低數(shù)據(jù)丟失風(fēng)險(xiǎn)。
由于使用Linux的inotify機(jī)制,當(dāng)文件有更新時(shí),能立刻得到通知并進(jìn)行同步備份,這樣降低了延時(shí);即使機(jī)器意外宕機(jī),也會(huì)將丟失的數(shù)據(jù)降至最小。
二、減少CPU,網(wǎng)絡(luò)帶寬等資源使用。
由于當(dāng)數(shù)據(jù)有更新時(shí),才會(huì)進(jìn)行同步操作,這時(shí)才會(huì)產(chǎn)生CPU與網(wǎng)絡(luò)資源的消耗;在沒有數(shù)據(jù)同步時(shí),則不會(huì)占用帶寬和CPU資源。
三、擴(kuò)展機(jī)器方便。
由于備份機(jī)是當(dāng)作Server,這種結(jié)構(gòu)使得擴(kuò)展很方便。當(dāng)有新機(jī)器的數(shù)據(jù)需要進(jìn)行備份時(shí),只需要啟動(dòng)備份的Client進(jìn)程,就可以將相應(yīng)的數(shù)據(jù)文件備份到Server上去,而Server端不用任何改動(dòng)。
四、有效避免數(shù)據(jù)的重傳、漏傳。
Cient每次都帶上這次數(shù)據(jù)所在的文件,以及位置,而且Server每次將下次需要同步的位置返回給Client,這樣能有效的避免重傳,漏傳。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)實(shí)時(shí)同步系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。