本申請涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種集群系統(tǒng)、消息處理方法及裝置。
背景技術(shù):
在分布式集群環(huán)境下,集群中需要有一臺(tái)機(jī)器從服務(wù)器接收消息放入數(shù)據(jù)庫的消息隊(duì)列中,然后由集群中的各臺(tái)機(jī)器分別從消息隊(duì)列中取出消息進(jìn)行處理。集群中的每臺(tái)機(jī)器中都部署有數(shù)據(jù)增量引擎,該數(shù)據(jù)增量引擎負(fù)責(zé)從服務(wù)器接收消息放入數(shù)據(jù)庫的消息隊(duì)列中。
目前,如果某臺(tái)啟動(dòng)了數(shù)據(jù)增量引擎的機(jī)器宕機(jī),或者這臺(tái)機(jī)器的數(shù)據(jù)增量引擎停止工作,可以采用zookeeper啟動(dòng)另外一臺(tái)機(jī)器的數(shù)據(jù)增量引擎。且,這種方式一方面需要單獨(dú)部署zookeeper,實(shí)施復(fù)雜度較高。另一方面,這種方式僅能保證集群中存在正常工作的數(shù)據(jù)增量引擎,當(dāng)出現(xiàn)兩臺(tái)以上的機(jī)器啟動(dòng)了數(shù)據(jù)增量引擎時(shí),zookeeper不會(huì)進(jìn)行處理。如果有多個(gè)數(shù)據(jù)增量引擎同時(shí)從服務(wù)器接收消息,則會(huì)導(dǎo)致數(shù)據(jù)庫的消息隊(duì)列中被放入大量重復(fù)消息,從而產(chǎn)生消息風(fēng)暴。
綜上,目前需要一種方案能夠保證:在同一時(shí)刻,集群中有且只有一臺(tái)機(jī)器的數(shù)據(jù)增量引擎在工作。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種集群系統(tǒng)、消息處理方法及裝置,用以實(shí)現(xiàn)集群中有且只有一臺(tái)機(jī)器的數(shù)據(jù)增量引擎處于工作狀態(tài)。
本申請實(shí)施例提供一種集群系統(tǒng),該集群系統(tǒng)包括:多臺(tái)主機(jī);其中:
所述多臺(tái)主機(jī),用于競爭獲取互斥鎖;所述互斥鎖在同一時(shí)刻只能被集群中的一臺(tái)主機(jī)占用;
所述多臺(tái)主機(jī)中的第一主機(jī),用于在獲取到所述互斥鎖后,啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎;其中,所述數(shù)據(jù)增量引擎用于接收集群系統(tǒng)外的服務(wù)器發(fā)送的待處理消息,并將所述待處理消息寫入集群系統(tǒng)的消息隊(duì)列中。
可選地,所述第一主機(jī)還用于:
在獲取到所述互斥鎖后,按照預(yù)設(shè)的第一時(shí)間間隔更新所述互斥鎖中的第一關(guān)鍵key值;所述第一key值用于判斷所述數(shù)據(jù)增量引擎是否工作正常。
可選地,所述第一key值為心跳時(shí)間戳。
可選地,所述多臺(tái)主機(jī)中的任一主機(jī)具體用于:
檢測所述互斥鎖中的第一key值,在確定所述第一key值沒有被正常更新后,獲取所述互斥鎖。
可選地,所述多臺(tái)主機(jī)中的任一主機(jī)具體用于:
在所述第一key值在預(yù)設(shè)時(shí)長內(nèi)沒有被更新時(shí),確定所述第一key值沒有被正常更新;或者,
在所述第一key值為空時(shí),確定所述第一key值沒有被正常更新。
可選地,所述第一主機(jī)還用于:
在啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎后,更新所述互斥鎖中的第二關(guān)鍵key值;所述第二key值用于標(biāo)識(shí)當(dāng)前獲取互斥鎖并啟動(dòng)數(shù)據(jù)增量引擎的主機(jī)。
本申請實(shí)施例還提供一種消息處理方法,包括:
第一主機(jī)按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;所述互斥鎖鎖在同一時(shí)刻只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用;
判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述第一主機(jī);
若不是,且所述第一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述第一主機(jī)的數(shù)據(jù)增量引擎。
本申請實(shí)施例提供一種消息處理裝置,包括:
獲取模塊,用于與集群系統(tǒng)中的其它主機(jī)競爭獲取互斥鎖;所述互斥鎖在同一時(shí)刻只能被集群中的一臺(tái)主機(jī)占用;
啟動(dòng)模塊,用于在所述獲取模塊獲取到所述互斥鎖后,啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎;其中,所述數(shù)據(jù)增量引擎用于接收集群外的服務(wù)器發(fā)送的待處理消息,并將所述待處理消息寫入集群的消息隊(duì)列中。
本申請實(shí)施例還提供一種消息處理裝置,包括:
檢測模塊,用于按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;
判斷模塊,用于判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述第一主機(jī);
處理模塊,用于若確定檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)不是所述第一主機(jī),且所述第一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述第一主機(jī)的數(shù)據(jù)增量引擎。
本申請實(shí)施例中,在同一時(shí)刻,互斥鎖只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用,只有獲取到互斥鎖的主機(jī)才能啟動(dòng)數(shù)據(jù)增量引擎,因此本申請實(shí)施例可以使集群系統(tǒng)中有且只有一臺(tái)機(jī)器的數(shù)據(jù)增量引擎處于工作狀態(tài)。
附圖說明
圖1為本申請實(shí)施例在集群系統(tǒng)中進(jìn)行消息處理控制的示意圖;
圖2為本申請實(shí)施例一提供的消息處理方法流程圖;
圖3為本申請實(shí)施例二提供的消息處理方法流程圖;
圖4為本申請實(shí)施例三提供的消息處理裝置結(jié)構(gòu)示意圖;
圖5為本申請實(shí)施例四提供的消息處理裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
如圖1所示,為本申請實(shí)施例在集群系統(tǒng)中進(jìn)行消息處理控制的示意圖。本申請實(shí)施例中,集群系統(tǒng)中的各臺(tái)主機(jī)競爭獲取互斥鎖,只有獲取到互斥鎖的主機(jī)才會(huì)啟動(dòng)數(shù)據(jù)增量引擎(DRC),并采用啟動(dòng)的DRC從服務(wù)器接收消息,將接收的消息放入數(shù)據(jù)庫的消息隊(duì)列中。在同一時(shí)刻,集群系統(tǒng)中只有一臺(tái)主機(jī)占用該互斥鎖,因此可以使集群系統(tǒng)中有且只有一臺(tái)機(jī)器的數(shù)據(jù)增量引擎處于工作狀態(tài)。
下面結(jié)合說明書附圖對本申請實(shí)施例作進(jìn)一步詳細(xì)描述。
實(shí)施例一
如圖2所示,為本申請實(shí)施例一提供的消息處理方法流程圖,包括以下步驟:
S201:第一主機(jī)與集群系統(tǒng)中的其它主機(jī)競爭獲取互斥鎖;所述互斥鎖在同一時(shí)刻只能被集群中的一臺(tái)主機(jī)占用。
這里,集群系統(tǒng)中的各臺(tái)主機(jī)可以調(diào)用trylock()方法嘗試獲取互斥鎖,當(dāng)一臺(tái)主機(jī)獲取到互斥鎖后,只有該主機(jī)宕機(jī),或關(guān)閉數(shù)據(jù)增量引擎時(shí),其它主機(jī)才有機(jī)會(huì)獲取到互斥鎖,也即在同一時(shí)刻集群系統(tǒng)中只能有一臺(tái)主機(jī)獲取到互斥鎖。
在具體實(shí)施中,互斥鎖的實(shí)現(xiàn)方式可以有多種,它可以是一塊存儲(chǔ)空間,第一主機(jī)在占用了該存儲(chǔ)空間后,可以在該存儲(chǔ)空間中記錄上自己的標(biāo)識(shí)信息,這樣集群系統(tǒng)中的其它主機(jī)就無法再占用?;コ怄i也可以是一種信息(比如一種唯一標(biāo)識(shí)),第一主機(jī)在使用了該唯一標(biāo)識(shí)后,其它主機(jī)就不能再使用。
在分布式集群系統(tǒng)中,該互斥鎖具體可以指分布式鎖。分布式鎖可以是采用tair實(shí)現(xiàn)的,Tair是一個(gè)高可靠性的鍵/值(Key/Value)存儲(chǔ)引擎。
作為一種優(yōu)選的實(shí)施方式,第一主機(jī)可以檢測互斥鎖的第一關(guān)鍵(key)值,在確定所述第一key值沒有被正常更新后,嘗試獲取所述互斥鎖。
這里,集群中的任一主機(jī)在獲取到互斥鎖后,可以按照預(yù)設(shè)的第一時(shí)間間隔更新互斥鎖的第一key值;這里的第一key值用于判斷所述數(shù)據(jù)增量引擎是否工作正常,具體可以是數(shù)據(jù)增量引擎的心跳時(shí)間戳,或者是累計(jì)計(jì)數(shù)值。比如,任一主機(jī)在獲取到互斥鎖后,可以周期性地更新tair中的第一key值,也即將互斥鎖的第一key值更新為當(dāng)前時(shí)間。第一主機(jī)檢測互斥鎖中的第一key值,若當(dāng)前時(shí)間與第一key值之間的時(shí)間間隔超過預(yù)設(shè)時(shí)長,或者該第一key值為空(null)(這里,可以在當(dāng)前時(shí)間與第一key值之間的時(shí)間間隔超過預(yù)設(shè)時(shí)長時(shí),將第一key值自動(dòng)置為null),則第一主機(jī)可以嘗試獲取互斥鎖,也即與其它主機(jī)競爭互斥鎖。
S202:第一主機(jī)在獲取到所述互斥鎖后,啟動(dòng)第一主機(jī)的數(shù)據(jù)增量引擎。
這里,數(shù)據(jù)增量引擎可以接收服務(wù)器發(fā)送給集群的待處理消息,并將接收的待處理消息寫入數(shù)據(jù)庫的消息隊(duì)列中,然后集群中的各臺(tái)主機(jī)從數(shù)據(jù)庫的消息隊(duì)列中取出消息進(jìn)行處理。該數(shù)據(jù)增量引擎可以指DRC,全稱data replication center,可以提供在線存儲(chǔ)(包括MySQL,Hbase,OceanBase等)的實(shí)時(shí)增量數(shù)據(jù),提供實(shí)時(shí)穩(wěn)定安全易用的增量數(shù)據(jù)源。
S203(可選地):第一主機(jī)按照預(yù)設(shè)的第一時(shí)間間隔更新互斥鎖的第一key值,以及更新互斥鎖的第二key值;第一key值用于判斷所述數(shù)據(jù)增量引擎是否工作正常;第二key值用于標(biāo)識(shí)當(dāng)前獲取互斥鎖并啟動(dòng)數(shù)據(jù)增量引擎的主機(jī)(這里為第一主機(jī))。
這里,啟動(dòng)DRC的第一主機(jī)不斷更新tair中的第一key值和第二key值,若在經(jīng)過預(yù)設(shè)時(shí)長后,第一key值沒有得到更新,tair可以自動(dòng)將其置為null。
S204(可選地):集群中的第一主機(jī)按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述任一主機(jī);若不是,且所述任一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述任一主機(jī)的數(shù)據(jù)增量引擎。
這里,為了防止集群系統(tǒng)內(nèi)出現(xiàn)多臺(tái)主機(jī)啟動(dòng)DRC的意外情況,可以為集群系統(tǒng)內(nèi)的每臺(tái)主機(jī)設(shè)立定時(shí)任務(wù),每臺(tái)主機(jī)不斷檢測tair中的第二key值,以第一主機(jī)為例,如果該第二key值所標(biāo)識(shí)的主機(jī)不是第一主機(jī),且第一主機(jī)啟動(dòng)了DRC,則該第一主機(jī)關(guān)閉自己的DRC,這樣可以保證集群系統(tǒng)內(nèi)只有一臺(tái)機(jī)器的DRC處于工作狀態(tài)。
可選地,第一主機(jī)可以在檢測到自己啟動(dòng)了DRC之后,才執(zhí)行上述自檢(即上述檢測第二key值所標(biāo)識(shí)的主機(jī)是不是第一主機(jī))的步驟,若該第一主機(jī)確定沒有啟動(dòng)DRC,可以不用執(zhí)行上述自檢的步驟。
本申請實(shí)施例中,在同一時(shí)刻,互斥鎖只能被集群中的一臺(tái)主機(jī)占用,只有獲取到互斥鎖的主機(jī)才能啟動(dòng)數(shù)據(jù)增量引擎,因此本申請實(shí)施例可以使集群中有且只有一臺(tái)機(jī)器的數(shù)據(jù)增量引擎處于工作狀態(tài)。
實(shí)施例二
為了防止集群系統(tǒng)內(nèi)出現(xiàn)多臺(tái)主機(jī)啟動(dòng)數(shù)據(jù)增量引擎的意外情況的發(fā)生,不管集群系統(tǒng)內(nèi)的主機(jī)是否有獲取到互斥鎖,都可以執(zhí)行下述自檢的步驟,以該主機(jī)為第一主機(jī)為例進(jìn)行介紹。
如圖3所示,為本申請實(shí)施例二提供的消息處理方法流程圖,包括以下步驟:
S301:第一主機(jī)按照預(yù)設(shè)的第二時(shí)間間隔,檢測互斥鎖的第二key值;所述互斥鎖在同一時(shí)刻只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用;所述第二key值用于標(biāo)識(shí)當(dāng)前獲取到互斥鎖并啟動(dòng)數(shù)據(jù)增量引擎的主機(jī)。
S302:判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述第一主機(jī)。
S303:若不是,且所述第一主機(jī)的數(shù)據(jù)增量引擎處于工作狀態(tài),則關(guān)閉第一主機(jī)的數(shù)據(jù)增量引擎。
S304:若是,則第一主機(jī)繼續(xù)使用啟動(dòng)的數(shù)據(jù)增量引擎,從服務(wù)器接收消息放入數(shù)據(jù)庫的消息隊(duì)列中。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例中還提供了一種與消息處理方法對應(yīng)的系統(tǒng)及裝置,由于該系統(tǒng)及裝置解決問題的原理與本申請實(shí)施例進(jìn)行消息處理的方法相似,因此該裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
實(shí)施例三
如圖4所示,為本申請實(shí)施例三提供的消息處理裝置結(jié)構(gòu)示意圖,包括:
獲取模塊41,用于與集群系統(tǒng)中的其它主機(jī)競爭獲取互斥鎖;所述互斥鎖在同一時(shí)刻只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用;
啟動(dòng)模塊42,用于在所述獲取模塊獲取到所述互斥鎖后,啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎;其中,所述數(shù)據(jù)增量引擎用于接收集群系統(tǒng)外的服務(wù)器發(fā)送的待處理消息,并將所述待處理消息寫入集群系統(tǒng)的消息隊(duì)列中。
可選地,獲取模塊41具體用于:
檢測集群系統(tǒng)的互斥鎖中的第一key值;在確定所述第一key值沒有被正常更新后,獲取所述互斥鎖。
可選地,獲取模塊41具體用于:
在所述第一key值在預(yù)設(shè)時(shí)長內(nèi)沒有被更新時(shí),確定所述第一key值沒有被正常更新;或者,
在所述第一key值為空時(shí),確定所述第一key值沒有被正常更新。
可選地,所述裝置還包括:
第一更新模塊43,用于在所述獲取模塊獲取到所述互斥鎖后,按照預(yù)設(shè)的第一時(shí)間間隔更新所述互斥鎖中的第一關(guān)鍵key值;所述第一key值用于判斷所述數(shù)據(jù)增量引擎是否工作正常。
可選地,所述裝置還包括:
第二更新模塊44,用于在啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎后,更新所述互斥鎖中的第二關(guān)鍵key值;所述第二key值用于標(biāo)識(shí)當(dāng)前獲取互斥鎖并啟動(dòng)數(shù)據(jù)增量引擎的主機(jī)。
可選地,所述裝置還包括:
檢測模塊45,用于按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;
判斷模塊46,用于判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述第一主機(jī);
處理模塊47,用于若確定檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)不是所述第一主機(jī),且所述第一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述第一主機(jī)的數(shù)據(jù)增量引擎。
實(shí)施例四
如圖5所示,為本申請實(shí)施例四提供的消息處理裝置結(jié)構(gòu)示意圖,包括:
檢測模塊51,用于按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;
判斷模塊52,用于判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述第一主機(jī);
處理模塊53,用于若確定檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)不是所述第一主機(jī),且所述第一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述第一主機(jī)的數(shù)據(jù)增量引擎。
實(shí)施例五
參見圖1,本申請實(shí)施例五提供一種集群系統(tǒng),該集群系統(tǒng)包括:多臺(tái)主機(jī);其中:
所述多臺(tái)主機(jī),用于競爭獲取互斥鎖;所述互斥鎖在同一時(shí)刻只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用;
所述多臺(tái)主機(jī)中的第一主機(jī),用于在獲取到所述互斥鎖后,啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎;其中,所述數(shù)據(jù)增量引擎用于接收集群系統(tǒng)外的服務(wù)器發(fā)送的待處理消息,并將所述待處理消息寫入集群系統(tǒng)的消息隊(duì)列中。
可選地,所述第一主機(jī)還用于:
在獲取到所述互斥鎖后,按照預(yù)設(shè)的第一時(shí)間間隔更新所述互斥鎖中的第一關(guān)鍵key值;所述第一key值用于判斷所述數(shù)據(jù)增量引擎是否工作正常。
可選地,所述第一key值為心跳時(shí)間戳。
可選地,所述多臺(tái)主機(jī)中的任一主機(jī)具體用于:
檢測所述互斥鎖中的第一key值,在確定所述第一key值沒有被正常更新后,獲取所述互斥鎖。
可選地,所述多臺(tái)主機(jī)中的任一主機(jī)具體用于:
在所述第一key值在預(yù)設(shè)時(shí)長內(nèi)沒有被更新時(shí),確定所述第一key值沒有被正常更新;或者,
在所述第一key值為空時(shí),確定所述第一key值沒有被正常更新。
可選地,所述第一主機(jī)還用于:
在啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎后,更新所述互斥鎖中的第二關(guān)鍵key值;所述第二key值用于標(biāo)識(shí)當(dāng)前獲取互斥鎖并啟動(dòng)數(shù)據(jù)增量引擎的主機(jī)。
可選地,所述多臺(tái)主機(jī)中的任一主機(jī)還用于:
按照預(yù)設(shè)的第二時(shí)間間隔,檢測所述互斥鎖中的第二key值;
判斷檢測到的所述第二key值所標(biāo)識(shí)的主機(jī)是否為所述任一主機(jī);
若不是,且所述任一主機(jī)的數(shù)據(jù)增量引擎當(dāng)前處于工作狀態(tài),則關(guān)閉所述任一主機(jī)的數(shù)據(jù)增量引擎。
實(shí)施例六
參見圖1,本申請實(shí)施例六提供一種集群系統(tǒng),該集群系統(tǒng)包括:多臺(tái)主機(jī),其中:
所述多臺(tái)主機(jī),用于競爭獲取分布式鎖;所述分布式鎖在同一時(shí)刻只能被集群系統(tǒng)中的一臺(tái)主機(jī)占用;
所述多臺(tái)主機(jī)中的第一主機(jī),用于在獲取到所述分布式鎖后,啟動(dòng)所述第一主機(jī)的數(shù)據(jù)增量引擎;其中,所述數(shù)據(jù)增量引擎用于接收集群外的服務(wù)器發(fā)送的待處理消息,并將所述待處理消息寫入集群的消息隊(duì)列中。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的方法、裝置(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動(dòng)和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動(dòng)和變型在內(nèi)。