專利名稱:一種實現(xiàn)信息拉取的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種應(yīng)用于互聯(lián)網(wǎng)的實現(xiàn)信息拉取的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)基礎(chǔ)設(shè)施的普及,網(wǎng)民數(shù)量越來越多,互聯(lián)網(wǎng)軟件的種類和數(shù)量也日益增加。通常,諸如基于客戶端/服務(wù)器(C/S)架構(gòu)等的互聯(lián)網(wǎng)應(yīng)用軟件都具有信息拉取功能,這些互聯(lián)網(wǎng)應(yīng)用軟件中都會具有一個或多個信息拉取邏輯。這些信息拉取邏輯可能是相互獨立的,也可能是相互關(guān)聯(lián)的(即具有一定的依賴關(guān)系)。比如在即時通信軟件 (Instant Messenger)中,通常包括用于拉取好友基本資料的信息拉取邏輯1和用于拉取好友業(yè)務(wù)信息的信息拉取邏輯2,這兩個信息拉取邏輯就相互關(guān)聯(lián),在即時通信軟件運行時,可以先調(diào)用信息拉取邏輯1來拉取好友的基本資料,再調(diào)用信息拉取邏輯2來拉取好友的業(yè)務(wù)信息,之后還可能根據(jù)業(yè)務(wù)信息情況再調(diào)用其它信息拉取邏輯來拉取更詳細的業(yè)務(wù) fn息ο其中,對于相互關(guān)聯(lián)的信息拉取邏輯,可由控制程序依據(jù)它們之間的依賴關(guān)系以及信息拉取策略來對它們的執(zhí)行過程進行控制。此控制程序的實現(xiàn)可采用自動機的方式。 具體的,假定有三個信息拉取邏輯相關(guān)聯(lián),它們的依賴關(guān)系及信息拉取策略為最先執(zhí)行信息拉取邏輯1,當(dāng)信息拉取邏輯1執(zhí)行成功之后執(zhí)行信息拉取邏輯2,當(dāng)信息拉取邏輯2執(zhí)行成功后執(zhí)行信息拉取邏輯3 ;則可創(chuàng)建一自動機,此自動機具有分別對應(yīng)于此三個信息拉取邏輯的三個狀態(tài),當(dāng)要執(zhí)行此三個信息拉取邏輯時,啟動此自動機并首先使自動機切換到對應(yīng)于信息拉取邏輯1的狀態(tài)以調(diào)用信息拉取邏輯1,當(dāng)成功拉取到信息拉取邏輯1對應(yīng)的信息后,此自動機切換到對應(yīng)于信息拉取邏輯2的狀態(tài)以調(diào)用信息拉取邏輯2,當(dāng)成功拉取到信息拉取邏輯2對應(yīng)的信息后,此自動機切換到對應(yīng)于信息拉取邏輯3的狀態(tài)以調(diào)用信息拉取邏輯3,直到成功拉取到信息拉取邏輯3對應(yīng)的信息,即成功拉取所有信息,此自動機才停止。這樣,自動機就能依據(jù)信息拉取邏輯之間的依賴關(guān)系和信息拉取策略對它們的執(zhí)行過程進行控制。但是,上述控制信息拉取邏輯的方案存在如下技術(shù)問題由于一個應(yīng)用軟件通常包含很多的信息拉取邏輯,因此用于對這些信息拉取邏輯進行控制的控制程序也會較多, 并且業(yè)務(wù)需求會經(jīng)常更新,當(dāng)要對應(yīng)用軟件的部分或全部信息拉取邏輯進行修改或擴展時,需要對這些信息拉取邏輯對應(yīng)的控制程序(比如自動機)進行修改,然而,控制程序的實現(xiàn)邏輯是比較復(fù)雜的,修改起來比較麻煩,也容易引入一些不可預(yù)期的系統(tǒng)隱患。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明提供了一種實現(xiàn)信息拉取的裝置及方法,以使信息拉取功能隨應(yīng)用業(yè)務(wù)需求的變化而靈活的改變,且保證開發(fā)及維護工作的簡單和高效。本發(fā)明實施例提出了一種實現(xiàn)信息拉取的裝置,該裝置包括至少一個信息拉取器、控制程序模塊和管理模塊;其中每一信息拉取器,用于運行信息拉取邏輯來拉取至少一個類型的信息;所述控制程序模塊,用于提供至少一個控制程序,每一控制程序?qū)?yīng)至少一個信息拉取器;及,所述管理模塊,用于對所述控制程序模塊提供的各個控制程序進行調(diào)度,當(dāng)運行其中一個控制程序時調(diào)用該控制程序?qū)?yīng)的至少一個信息拉取器以拉取至少一個類型的信息。本發(fā)明實施例還提出了一種實現(xiàn)信息拉取的方法,該方法應(yīng)用于包括至少一個信息拉取器和至少一個控制程序的裝置中,其中,每一信息拉取器用于運行信息拉取邏輯來拉取至少一個類型的信息,每一控制程序?qū)?yīng)至少一個信息拉取器并封裝了所述至少一個信息拉取器之間的依賴關(guān)系和信息拉取策略;該方法包括根據(jù)預(yù)先配置的調(diào)度策略對一個或多個控制程序進行調(diào)度;當(dāng)運行其中一個控制程序時,根據(jù)所述一個控制程序封裝的至少一個信息拉取器之間的依賴關(guān)系和信息拉取策略,依次調(diào)用所述至少一個信息拉取器以拉取至少一個類型的信息。從上述技術(shù)方案可以看出,采用本發(fā)明實施例提供的裝置和方法能夠使應(yīng)用軟件的信息拉取功能可以更靈活的適應(yīng)業(yè)務(wù)需求的不斷變化。當(dāng)對于信息拉取的需求發(fā)生變化時,不必修改現(xiàn)有的控制程序,只需新增對應(yīng)于變化部分的控制程序,并更新調(diào)度策略。這樣,使得對于信息拉取功能的開發(fā)及維護工作更為簡單、靈活和高效。
下面將通過參照附圖詳細描述本發(fā)明的示例性實施例,使本領(lǐng)域的普通技術(shù)人員更清楚本發(fā)明的上述及其它特征和優(yōu)點,附圖中圖1為依據(jù)本發(fā)明實施例的實現(xiàn)信息拉取的裝置組成結(jié)構(gòu)示意圖;及,圖2為依據(jù)本發(fā)明實施例的實現(xiàn)信息拉取的方法流程示意圖。
具體實施例方式以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例提出了一種實現(xiàn)信息拉取的裝置,該裝置包括至少一個信息拉取器、控制程序模塊和管理模塊;每一信息拉取器用于運行信息拉取邏輯來拉取對應(yīng)類型的信息;此控制程序模塊用于提供一個或多個控制程序,每一控制程序?qū)?yīng)一個或多個信息拉取器;此管理模塊用于對控制程序模塊提供的各個控制程序進行調(diào)度并通過運行控制程序來啟動一個或多個信息拉取器以拉取對應(yīng)類型的信息。具體的,上述控制程序封裝了一個或多個信息拉取器之間的依賴關(guān)系和信息拉取策略,進而描述了針對一類或多類信息的完整的信息拉取方法,比如先拉取信息A,然后拉取信息B ;或者,拉取信息A之后,如果判斷滿足某些條件則拉取信息B。具體的,上述管理模塊可采用互斥的方式來調(diào)度各個控制程序,即同一時刻只能有一個控制程序運行在此管理模塊中??蛇x的,可以在此管理模塊中配置控制程序的調(diào)度策略,比如配置控制程序1在應(yīng)用軟件登錄的時候運行;或者,配置在控制程序1結(jié)束后運行控制程序2。當(dāng)控制程序模塊中增加了新的控制程序時,可以更新管理模塊中的調(diào)度策略以實現(xiàn)對新增控制程序的調(diào)度。此外,管理模塊還可根據(jù)需要創(chuàng)建信息拉取器,并管理其生命周期。在控制程序運行時,如果需要拉取某種信息,控制程序會輸出要求拉取信息的參數(shù),管理模塊可根據(jù)此參數(shù)確定可用的信息拉取器并啟動之;在信息拉取器拉取信息成功或失敗后,管理模塊可將此結(jié)果通知控制程序。具體的,每個信息拉取器封裝了一個信息拉取邏輯(如信息拉取的協(xié)議和實現(xiàn)),并可由主標識(ID)和子ID的組合來標識。其中,主ID為信息類型ID,其代表此信息拉取器對應(yīng)的信息類型;子ID為實例標識,其代表此信息拉取器的實例anstance)。這樣, 當(dāng)控制程序需要拉取某種類型的信息時,可以將相應(yīng)的信息類型ID(相當(dāng)于一種要求拉取信息的參數(shù))通知管理模塊;管理模塊根據(jù)此信息類型ID可以確定可用的信息拉取器。這里,在管理模塊在查找可用的信息拉取器時可以根據(jù)信息類型ID確定以此信息類型ID為主ID的信息拉取器,再根據(jù)所確定的這些信息拉取器的子ID能夠確定哪些信息拉取器是空閑的,進而能夠確定出哪些信息拉取器既能拉取此類型信息又是空閑的,即哪些信息拉取器是可用的。其中,上述控制程序可實現(xiàn)為自動機,此自動機具有與其對應(yīng)的信息拉取邏輯相應(yīng)的一個或多個狀態(tài),當(dāng)管理模塊運行此自動機時,每次啟動信息拉取器拉取信息成功都會觸發(fā)此自動機的一次狀態(tài)遷移,并且此自動機的狀態(tài)遷移是一個閉合回路。上述實現(xiàn)信息拉取的裝置可以與一個或多個設(shè)備相互獨立,其通過外部的連接將拉取到的信息提供給此一個或多個設(shè)備;該裝置也可以內(nèi)置于一個設(shè)備中以為此設(shè)備提供所拉取到的信息,比如該裝置可內(nèi)置于客戶端中,用于根據(jù)客戶端應(yīng)用軟件的需要從服務(wù)器拉取相關(guān)業(yè)務(wù)信息,此客戶端可以為各種即時通信客戶端(諸如QQ、MSN、Yahoo Messenger等等)。這里,該裝置及其內(nèi)部的各個組成部分可以實現(xiàn)為硬件裝置,也可以軟件的方式實現(xiàn)為虛擬裝置。圖1為依據(jù)本發(fā)明實施例的實現(xiàn)信息拉取的裝置的組成結(jié)構(gòu)示意圖。在此實施例中,控制程序?qū)崿F(xiàn)為自動機。如圖1所示,該裝置內(nèi)置于客戶端中,包括控制程序模塊、管理模塊和四個信息拉取器(如圖1的信息拉取器1 4)。其中,控制程序模塊提供了三個自動機(如圖1的自動機1 幻。管理模塊以互斥的方式調(diào)度這些自動機,當(dāng)管理模塊運行某一自動機時,依據(jù)此自動機的狀態(tài)遷移情況依次調(diào)用一個或多個信息拉取器。信息拉取器在被調(diào)用之后運行其內(nèi)部封裝的信息拉取邏輯以從服務(wù)器拉取對應(yīng)類型的信息。較佳的,一個信息拉取器封裝針對一種類型信息的信息拉取邏輯;此時,當(dāng)自動機遷移到代表要拉取某種類型的信息的狀態(tài)時,可將信息類型ID通知給管理模塊,管理模塊根據(jù)此信息類型ID確定能夠拉取此類型信息且為空閑的信息拉取器(即可用的信息拉取器),再調(diào)用此可用的信息拉取器來拉取此種類型的信息。當(dāng)要對客戶端的信息拉取功能進行擴展時,如增加對于某新類型的信息的拉取功能,管理模塊可創(chuàng)建用于拉取此新類型信息的信息拉取器,控制程序模塊可進一步提供新的自動機,并更新管理模塊中的調(diào)度策略,進而管理模塊可通過運行此自動機來調(diào)用新增的信息拉取器來拉取此新類型的信息。當(dāng)要對客戶端的信息拉取功能進行修改時,如修改現(xiàn)有若干信息拉取器之間的依賴關(guān)系以及調(diào)度策略,控制程序模塊可進一步提供對應(yīng)于修改后的依賴關(guān)系以及調(diào)度策略的新的自動機,并更新管理模塊中的調(diào)度策略,進而管理模塊可通過運行此新增的自動機來根據(jù)修改后的依賴關(guān)系和調(diào)度策略調(diào)用信息拉取器。比如某一系列業(yè)務(wù)信息原來要在軟件登錄時拉取,此種信息拉取邏輯被封裝在一個自動機中,而后來依據(jù)業(yè)務(wù)需求變化要求其中的某些重點業(yè)務(wù)信息需要在軟件登錄后在某些條件下拉取,此時,并不需要修改原有的自動機,只需要再增加一個自動機,該自動機封裝了這些重點業(yè)務(wù)信息的拉取策略, 然后由管理模塊通過調(diào)度這兩個自動機來完成整個業(yè)務(wù)信息的拉取功能。當(dāng)要取消客戶端的某些信息拉取功能時,如取消拉取某些信息的功能,可更新管理模塊中的調(diào)度策略使針對拉取這些信息的控制程序不被調(diào)用,或進一步刪除控制程序模塊中的這種控制程序;可選的,管理模塊還可刪除用于拉取這些信息的信息拉取器。基于上述實現(xiàn)信息拉取的裝置,本發(fā)明實施例還提出了一種實現(xiàn)信息拉取的方法,該方法應(yīng)用于上述管理模塊中。圖2為依據(jù)本發(fā)明實施例的實現(xiàn)信息拉取的方法流程示意圖。如圖2所示,包括如下步驟步驟201 根據(jù)預(yù)先配置的調(diào)度策略對一個或多個控制程序進行調(diào)度。其中,每一控制程序封裝了一個或多個信息拉取器之間的依賴關(guān)系和信息拉取策略,每一信息拉取器封裝了一個信息拉取邏輯。步驟202 當(dāng)運行其中一個控制程序時,根據(jù)此控制程序封裝的一個或多個信息拉取器之間的依賴關(guān)系和信息拉取策略,依次調(diào)用此一個或多個信息拉取器以拉取對應(yīng)類型的信息。步驟203 當(dāng)要擴展或修改信息拉取功能時,新增針對要擴展或修改的信息拉取功能的一個或多個控制程序,更新調(diào)度策略以進一步調(diào)度此新增的至少一個控制程序,并在需要時創(chuàng)建針對要擴展或修改的信息拉取功能的一個或多個信息拉取器。當(dāng)要取消某些信息拉取功能時,更新調(diào)度策略以使針對要被取消的信息拉取功能的控制程序不被調(diào)用, 或者更新調(diào)度策略以使針對要取消的信息拉取功能的控制程序不被調(diào)用并刪除針對要取消的信息拉取功能的控制程序;在需要時還可刪除針對要被取消的信息拉取功能的一個或多個信息拉取器。上述各個步驟的具體實現(xiàn)方法在前面具有詳述,這里就不再贅述??梢?,上述本發(fā)明實施例提供的實現(xiàn)信息拉取的裝置及方法能夠更靈活的適應(yīng)業(yè)務(wù)需求的不斷變化。當(dāng)對于信息拉取的需求發(fā)生變化時,不必修改現(xiàn)有的控制程序,只需新增對應(yīng)于變化部分的控制程序,并更新調(diào)度策略,如有必要還要增加新的信息拉取器。這樣,使得對于信息拉取功能的開發(fā)及維護工作更為簡單、靈活和高效,并不易出現(xiàn)因修改控制程序而出現(xiàn)的系統(tǒng)隱患,有利于保持系統(tǒng)的穩(wěn)定性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種實現(xiàn)信息拉取的裝置,其特征在于,該裝置包括至少一個信息拉取器、控制程序模塊和管理模塊;其中每一信息拉取器,用于運行信息拉取邏輯來拉取至少一個類型的信息;所述控制程序模塊,用于提供至少一個控制程序,每一控制程序?qū)?yīng)至少一個信息拉取器;及,所述管理模塊,用于對所述控制程序模塊提供的各個控制程序進行調(diào)度,當(dāng)運行其中一個控制程序時調(diào)用該控制程序?qū)?yīng)的至少一個信息拉取器以拉取至少一個類型的信息。
2.根據(jù)權(quán)利要求1所述的裝置,其中,所述管理模塊按調(diào)度策略并以互斥的方式調(diào)度各個控制程序;和/或,所述管理模塊進一步用于創(chuàng)建或刪除所述信息拉取器,并管理所述信息拉取器的生命周期。
3.根據(jù)權(quán)利要求1或2所述的裝置,其中,所述管理模塊在運行其中一個控制程序的過程中,每當(dāng)收到該控制程序輸出的要求拉取信息的參數(shù)時,確定所述參數(shù)對應(yīng)的可用的信息拉取器,調(diào)用所述可用的信息拉取器,并在所述可用的信息拉取器拉取信息成功后通知該控制程序,以觸發(fā)該控制程序的狀態(tài)遷移。
4.根據(jù)權(quán)利要求1或2所述的裝置,其中,當(dāng)要對信息拉取功能進行擴展或修改時,所述控制程序模塊中新增針對要擴展或修改的信息拉取功能的至少一個控制程序;所述管理模塊進一步更新所述調(diào)度策略以進一步調(diào)度所述新增的至少一個控制程序,并在需要時進一步創(chuàng)建針對要擴展或修改的信息拉取功能的至少一個信息拉取器;和/或,當(dāng)要取消部分信息拉取功能時,所述管理模塊進一步更新所述調(diào)度策略以使針對要取消的信息拉取功能的控制程序不被調(diào)用,或者進一步更新所述調(diào)度策略以使針對要取消的信息拉取功能的控制程序不被調(diào)用并刪除所述控制程序模塊中的針對要取消的信息拉取功能的控制程序;所述管理模塊還在需要時進一步刪除針對要取消的信息拉取功能的至少一個信息拉取器。
5.根據(jù)權(quán)利要求1或2所述的裝置,其中,所述裝置與至少一個設(shè)備相互獨立,并通過外部連接將拉取到的信息提供給所述至少一個設(shè)備;或者,所述裝置內(nèi)置于一個設(shè)備中并為該設(shè)備提供所拉取到的信息。
6.一種實現(xiàn)信息拉取的方法,其特征在于,該方法應(yīng)用于包括至少一個信息拉取器和至少一個控制程序的裝置中,其中,每一信息拉取器用于運行信息拉取邏輯來拉取至少一個類型的信息,每一控制程序?qū)?yīng)至少一個信息拉取器并封裝了所述至少一個信息拉取器之間的依賴關(guān)系和信息拉取策略;該方法包括根據(jù)預(yù)先配置的調(diào)度策略對一個或多個控制程序進行調(diào)度;當(dāng)運行其中一個控制程序時,根據(jù)所述一個控制程序封裝的至少一個信息拉取器之間的依賴關(guān)系和信息拉取策略,依次調(diào)用所述至少一個信息拉取器以拉取至少一個類型的信肩、ο
7.根據(jù)權(quán)利要求6所述的方法,進一步包括當(dāng)要對信息拉取功能進行擴展或修改時,新增針對要擴展或修改的信息拉取功能的至少一個控制程序,更新所述調(diào)度策略以進一步調(diào)度所述新增的至少一個控制程序,并在需要時創(chuàng)建針對要擴展或修改的信息拉取功能的至少一個信息拉取器;和/或,當(dāng)要取消部分信息拉取功能時,更新所述調(diào)度策略以使針對要取消的信息拉取功能的控制程序不被調(diào)用,或者更新所述調(diào)度策略以使針對要取消的信息拉取功能的控制程序不被調(diào)用并刪除所述控制程序模塊中的針對要取消的信息拉取功能的控制程序,還在需要時進一步刪除針對要取消的信息拉取功能的至少一個信息拉取器。
8.根據(jù)權(quán)利要求6或7所述的方法,其中,所述調(diào)用所述至少一個信息拉取器以拉取至少一個類型的信息,包括每當(dāng)收到所述控制程序輸出的要求拉取信息的參數(shù)時,確定所述參數(shù)對應(yīng)的可用的信息拉取器,調(diào)用所述可用的信息拉取器,并在所述可用的信息拉取器拉取信息成功后通知所述控制程序,以觸發(fā)所述控制程序的狀態(tài)遷移;其中,所述控制程序具有與其所對應(yīng)的至少一個信息拉取器對應(yīng)的至少一個狀態(tài),所述控制程序每當(dāng)遷移到一個狀態(tài)時將輸出該狀態(tài)對應(yīng)的參數(shù)。
9.根據(jù)權(quán)利要求8所述的方法,其中,每一信息拉取器由主標識和子標識的組合來標識,其中,所述主標識為信息類型標識,所述子標識為該信息拉取器的實例標識;所述控制程序輸出的要求拉取信息的參數(shù)為信息類型標識;所述確定所述參數(shù)對應(yīng)的可用的信息拉取器,包括根據(jù)所述控制程序輸出的信息類型標識確定以該信息類型標識為主標識的至少一個信息拉取器,再根據(jù)所確定的至少一個信息拉取器的子標識確定所確定的至少一個信息拉取器中空閑的信息拉取器,從所確定的空閑的信息拉取器中選擇一個作為可用的信息拉取器。
10.根據(jù)權(quán)利要求8所述的方法,其中,所述控制程序為自動機。
全文摘要
本發(fā)明實施例提供了一種實現(xiàn)信息拉取的裝置,該裝置包括至少一個信息拉取器、控制程序模塊和管理模塊;其中每一信息拉取器,用于運行信息拉取邏輯來拉取至少一個類型的信息;所述控制程序模塊,用于提供至少一個控制程序,每一控制程序?qū)?yīng)至少一個信息拉取器;及,所述管理模塊,用于對所述控制程序模塊提供的各個控制程序進行調(diào)度,當(dāng)運行其中一個控制程序時調(diào)用該控制程序?qū)?yīng)的至少一個信息拉取器以拉取至少一個類型的信息。本發(fā)明實施例還提供了一種相應(yīng)的方法。采用本發(fā)明實施例能使信息拉取功能隨業(yè)務(wù)需求的變化而靈活的改變,且能保證開發(fā)及維護工作的簡單和高效。
文檔編號H04L29/08GK102469118SQ20101053538
公開日2012年5月23日 申請日期2010年11月4日 優(yōu)先權(quán)日2010年11月4日
發(fā)明者欒濤 申請人:騰訊科技(深圳)有限公司