本發(fā)明涉及互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
:,尤其涉及一種版本升級(jí)方法、服務(wù)器和系統(tǒng)。
背景技術(shù):
::對(duì)于線上的業(yè)務(wù),一般要求業(yè)務(wù)全年無(wú)故障的運(yùn)行時(shí)間需要超過(guò)99.99999%,也就表明這個(gè)業(yè)務(wù)一年內(nèi)因?yàn)楣收舷戮€的時(shí)間需要少于5分鐘。然而,線上業(yè)務(wù)經(jīng)常會(huì)有各種原因需要上線更新,例如:bug、版本升級(jí)等?,F(xiàn)在,在版本升級(jí)的時(shí)候,一般采用如下方式進(jìn)行:方式1)全服停機(jī)維護(hù)例如,網(wǎng)游業(yè)務(wù),每周維護(hù)8小時(shí),那么所有服務(wù)器都下線,并升級(jí)服務(wù)器程序。在升級(jí)完成之后,在某個(gè)時(shí)間點(diǎn)統(tǒng)一提供線上服務(wù)。方式2)服務(wù)器集群ab切換即,預(yù)先做兩組同樣容量的服務(wù)器集群,其中,a集群線上運(yùn)行老版本,b集群是沒(méi)有提供服務(wù)的集群。在部署新版本的時(shí)候,在某個(gè)時(shí)間點(diǎn)將集群a整體下線,并將集群b整體上線,從而完成新老版本的切換。方式3)不考慮報(bào)錯(cuò)即,不管新老版本,挨個(gè)上線,報(bào)錯(cuò)就報(bào)錯(cuò),用戶忍一會(huì)就過(guò)去了。如果用戶較為幸運(yùn),那么可以第一時(shí)間用上新版本服務(wù),如果用不幸運(yùn),那么可能需要等所有服務(wù)器上線完成之后,才能使用新版服務(wù)。上述方式1需要定時(shí)停服,無(wú)法達(dá)到全年不停服務(wù)的要求,方式2需要準(zhǔn)備兩倍容量的線上服務(wù)器集群,且備份服務(wù)器一般是閑置的,方式3用戶體驗(yàn)較差。針對(duì)上述問(wèn)題,目前尚未提出有效的解決方案。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供一種版本升級(jí)方法、服務(wù)器和系統(tǒng),以達(dá)到低成本的程序無(wú)縫升級(jí)的技術(shù)效果。一方面,本發(fā)明實(shí)施例提供了一種版本升級(jí)方法,包括:將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中;對(duì)所述提供程序服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)。可選地,在將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中之前,所述方法還包括:獲取待升級(jí)程序的源代碼;對(duì)源代碼進(jìn)行預(yù)處理,得到所述升級(jí)程序文件,其中,所述預(yù)處理包括以下至少之一:編譯、壓縮、優(yōu)化、加密、混淆。可選地,將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中,包括:將所述升級(jí)程序文件,拷貝至提供程序服務(wù)的服務(wù)器中與原始程序文件的同級(jí)目錄中,或者與原始程序文件相同的硬盤(pán)分區(qū)中??蛇x地,在待升級(jí)程序?yàn)橐蕾嚨谌匠绦蛱峁┓?wù)的程序的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù),包括:將所述待升級(jí)程序的文件夾進(jìn)行命名,得到第一名稱;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將原始程序的文件夾名稱修改為第二名稱,將所述待升級(jí)程序的文件夾的第一名稱修改為提供服務(wù)的文件夾名稱??蛇x地,在待升級(jí)程序?yàn)橹苯犹峁┓?wù)的程序的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù),包括:為所述待升級(jí)程序指定一個(gè)與線上程序不同的空閑端口;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將線上對(duì)外服務(wù)端口映射到為所述待升級(jí)程序指定的空閑端口中。可選地,在將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)之后,所述方法還包括:確認(rèn)所述升級(jí)程序文件是否正常運(yùn)行;如果所述升級(jí)程序文件正常運(yùn)行,則刪除原始程序文件;如果所述升級(jí)程序文件無(wú)法正常運(yùn)行,則回滾至原始程序文件。另一方面,本發(fā)明實(shí)施例提供了一種版本升級(jí)服務(wù)器,包括:文件同步模塊,用于將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中;時(shí)鐘同步模塊,用于對(duì)所述提供程序服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步;升級(jí)模塊,用于在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)。可選地,上述版本升級(jí)服務(wù)器還包括:獲取模塊,用于在將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中之前,獲取待升級(jí)程序的源代碼;預(yù)處理模塊,用于對(duì)源代碼進(jìn)行預(yù)處理,得到所述升級(jí)程序文件,其中,所述預(yù)處理包括以下至少之一:編譯、壓縮、優(yōu)化、加密、混淆??蛇x地,所述升級(jí)模塊具體用于在待升級(jí)程序?yàn)橐蕾嚨谌匠绦蛱峁┓?wù)的程序的情況下,將所述待升級(jí)程序的文件夾進(jìn)行命名,得到第一名稱;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將原始程序的文件夾名稱修改為第二名稱,將所述待升級(jí)程序的文件夾的第一名稱修改為提供服務(wù)的文件夾名稱;或者,所述升級(jí)模塊具體用于在待升級(jí)程序?yàn)橹苯犹峁┓?wù)的程序的情況下,為所述待升級(jí)程序指定一個(gè)與線上程序不同的空閑端口;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將線上對(duì)外服務(wù)端口映射到為所述待升級(jí)程序指定的空閑端口中。另一方面,本發(fā)明實(shí)施例提供了一種版本升級(jí)系統(tǒng),包括上述的版本升級(jí)服務(wù)器和一個(gè)或多個(gè)提供程序服務(wù)的服務(wù)器。上述技術(shù)方案具有如下有益效果:因?yàn)椴捎妙A(yù)先將升級(jí)程序文件同步到提供服務(wù)的服務(wù)器中,并對(duì)所有提供服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步,在達(dá)到升級(jí)時(shí)間的時(shí)候,統(tǒng)一進(jìn)行版本切換,從而解決了現(xiàn)有的在進(jìn)行版本升級(jí)的時(shí)候,需要停服,用戶體驗(yàn)度不高的技術(shù)問(wèn)題,達(dá)到了低成本的程序無(wú)縫升級(jí)的技術(shù)效果,且用戶無(wú)感知。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的版本升級(jí)方法的方法流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的版本升級(jí)裝置的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實(shí)施例的版本升級(jí)系統(tǒng)的架構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了解決現(xiàn)有的在進(jìn)行版本升級(jí)的時(shí)候,需要停服,用戶體驗(yàn)度不高的技術(shù)問(wèn)題,在本例中提供了一種無(wú)需停服的版本升級(jí)方法,如圖1所示,可以包括如下步驟:步驟101:將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中;其中,該升級(jí)程序文件,可以從代碼庫(kù)或者是特定位置獲取的源代碼進(jìn)行處理后得到的。可以有一臺(tái)或一組專(zhuān)門(mén)的服務(wù)器用戶獲取并處理源代碼,以得到待升級(jí)程序。例如,可以從代碼庫(kù)獲取待升級(jí)程序的源代碼,然后對(duì)源代碼進(jìn)行預(yù)處理,得到升級(jí)程序文件,其中,所述預(yù)處理可以包括但不限于以下至少之一:編譯、壓縮、優(yōu)化、加密、混淆,通過(guò)上述處理可以使得升級(jí)程序文件處于發(fā)布前的準(zhǔn)備狀態(tài)。對(duì)于這些準(zhǔn)備好的升級(jí)程序文件,就可以被同步至所有的服務(wù)器中,其中,這些服務(wù)器是提供服務(wù)的服務(wù)器,也就是需要進(jìn)行程序升級(jí)的服務(wù)器。在將升級(jí)程序文件拷貝到服務(wù)器中的時(shí)候,可以是將升級(jí)程序文件,拷貝至提供程序服務(wù)的服務(wù)器中與原始程序文件的同級(jí)目錄中,或者與原始程序文件相同的硬盤(pán)分區(qū)中。步驟102:對(duì)所述提供程序服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步;在進(jìn)行程序升級(jí)之前,可以對(duì)所有的服務(wù)器執(zhí)行優(yōu)化操作,例如,可以根據(jù)服務(wù)器的環(huán)境對(duì)配置進(jìn)行修改,可以根據(jù)服務(wù)器的環(huán)境對(duì)程序文件進(jìn)行編譯壓縮等操作,使得升級(jí)程序文件可以與服務(wù)器進(jìn)行適配。在做好準(zhǔn)備工作之后,為了使得所有的服務(wù)器可以同時(shí)實(shí)現(xiàn)新舊版本切換,可以對(duì)所有的服務(wù)器進(jìn)行時(shí)鐘同步,以確定每個(gè)服務(wù)器的時(shí)鐘都是完全相同的。步驟103:在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)。在進(jìn)行正式的升級(jí)操作的時(shí)候,可以根據(jù)程序類(lèi)型的不同,采用不同的升級(jí)方式。例如,有些程序是可以自己直接提供服務(wù)的,有些程序則需要第三方程序才能提供服務(wù)的腳本,對(duì)于不同的類(lèi)型的程序可以采用不同的方式,例如:1)在待升級(jí)程序?yàn)橐蕾嚨谌匠绦蛱峁┓?wù)的程序(例如php)的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù),可以包括:將所述待升級(jí)程序的文件夾進(jìn)行命名,得到第一名稱(例如:service_name_ready);在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將原始程序的文件夾名稱修改為第二名稱(例如:service_name_old),將所述待升級(jí)程序的文件夾的第一名稱修改為提供服務(wù)的文件夾名稱(例如:service_name)。2)在待升級(jí)程序?yàn)橹苯犹峁┓?wù)的程序(例如:c++)的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù),可以包括:為所述待升級(jí)程序指定一個(gè)與線上程序不同的空閑端口;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將線上對(duì)外服務(wù)端口映射到為所述待升級(jí)程序指定的空閑端口中。例如,可以利用ipatables等程序?qū)⒕€上對(duì)外服務(wù)端口映射到指定的端口中??紤]到在程序升級(jí)之后,存在升級(jí)失敗后者是升級(jí)后的版本無(wú)法正常提供服務(wù)的情況。為此,可以在將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)之后,確認(rèn)所述升級(jí)程序文件是否正常運(yùn)行;如果所述升級(jí)程序文件正常運(yùn)行,則刪除原始程序文件;如果所述升級(jí)程序文件無(wú)法正常運(yùn)行,則回滾至原始程序文件,在進(jìn)行會(huì)還的時(shí)候,可以是反向執(zhí)行上述1)2)中的升級(jí)方式,以實(shí)現(xiàn)無(wú)縫回滾到老版本的服務(wù)程序?;谕话l(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種版本升級(jí)服務(wù)器,如下面的實(shí)施例所述。由于版本升級(jí)服務(wù)器解決問(wèn)題的原理與版本升級(jí)方法相似,因此版本升級(jí)服務(wù)器的實(shí)施可以參見(jiàn)版本升級(jí)方法的實(shí)施,重復(fù)之處不再贅述。以下所使用的,術(shù)語(yǔ)“單元”或者“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖2是本發(fā)明實(shí)施例的版本升級(jí)服務(wù)器的一種結(jié)構(gòu)框圖,如圖2所示,可以包括:文件同步模塊201、時(shí)鐘同步模塊202和升級(jí)模塊203,下面對(duì)該結(jié)構(gòu)進(jìn)行說(shuō)明。文件同步模塊201,用于將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中;時(shí)鐘同步模塊202,用于對(duì)所述提供程序服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步;升級(jí)模塊203,用于在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將所述提供程序服務(wù)的服務(wù)器調(diào)整為通過(guò)所述升級(jí)程序文件取代原始程序文件提供服務(wù)。在一個(gè)實(shí)施方式中,上述版本升級(jí)服務(wù)器還可以包括:獲取模塊,用于在將升級(jí)程序文件同步到提供程序服務(wù)的服務(wù)器中之前,獲取待升級(jí)程序的源代碼;預(yù)處理模塊,用于對(duì)源代碼進(jìn)行預(yù)處理,得到所述升級(jí)程序文件,其中,所述預(yù)處理包括以下至少之一:編譯、壓縮、優(yōu)化、加密、混淆。在一個(gè)實(shí)施方式中,升級(jí)模塊203具體可以用于在待升級(jí)程序?yàn)橐蕾嚨谌匠绦蛱峁┓?wù)的程序的情況下,將所述待升級(jí)程序的文件夾進(jìn)行命名,得到第一名稱;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將原始程序的文件夾名稱修改為第二名稱,將所述待升級(jí)程序的文件夾的第一名稱修改為提供服務(wù)的文件夾名稱;或者,升級(jí)模塊203具體可以用于在待升級(jí)程序?yàn)橹苯犹峁┓?wù)的程序的情況下,為所述待升級(jí)程序指定一個(gè)與線上程序不同的空閑端口;在達(dá)到預(yù)設(shè)的升級(jí)版本上線時(shí)間的情況下,將線上對(duì)外服務(wù)端口映射到為所述待升級(jí)程序指定的空閑端口中。在本例中,還提供了一種版本升級(jí)系統(tǒng),如圖3所示,可以包括上述圖2所示的版本升級(jí)服務(wù)器和一個(gè)或多個(gè)提供程序服務(wù)的服務(wù)器。下面結(jié)合一個(gè)具體實(shí)施例對(duì)上述版本升級(jí)方法、服務(wù)器和系統(tǒng)進(jìn)行說(shuō)明,然而值得注意的是,該具體實(shí)施例僅是為了更好地說(shuō)明本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在本例中,為了使得所有服務(wù)器集群,在指定時(shí)間點(diǎn),實(shí)時(shí)同步切換至新版本,且無(wú)需準(zhǔn)備多余的備份服務(wù)器。提供了一種版本升級(jí)方法,本例中的該方法的應(yīng)用場(chǎng)景是多個(gè)運(yùn)行服務(wù)用的服務(wù)器,需要上線新版的服務(wù),且不允許中斷服務(wù)。為了達(dá)到上述目的,在本例中提供了一個(gè)或一組專(zhuān)門(mén)用于發(fā)布和同步的服務(wù)器(可以稱為發(fā)布機(jī))。基于這些設(shè)備,可以通過(guò)如下步驟進(jìn)行版本升級(jí):s1:同步所有服務(wù)器的時(shí)鐘,使得所有服務(wù)器的時(shí)鐘與發(fā)布機(jī)的時(shí)鐘保持一致。并獲取所有服務(wù)器的狀態(tài),基于服務(wù)器的狀態(tài)確定服務(wù)器是否符合新版本上線條件;s2:將源代碼從代碼庫(kù)或特定位置同步到發(fā)布機(jī)中;s3:發(fā)布機(jī)對(duì)源代碼執(zhí)行編譯、壓縮、優(yōu)化、加密、混淆等步驟,使得代碼處于發(fā)布前的準(zhǔn)備狀態(tài);s4:發(fā)布機(jī)將準(zhǔn)備好的代碼同步到所有服務(wù)器中;s5:發(fā)布機(jī)在所有服務(wù)器中執(zhí)行最后的優(yōu)化操作,例如:根據(jù)服務(wù)器環(huán)境對(duì)配置文件進(jìn)行修改,還可以根據(jù)服務(wù)器的環(huán)境進(jìn)行編譯壓縮等操作。s6:再次同步所有服務(wù)器時(shí)鐘,并確認(rèn)所有服務(wù)器的狀態(tài)符合新版本上線條件,對(duì)于擁有iptables的服務(wù)器上,可以在服務(wù)器上執(zhí)行端口映射和代理的程序;對(duì)于php等依賴第三方程序才能提供服務(wù)的腳本,將程序所在目錄拷入當(dāng)前正在提供服務(wù)的腳本文件夾中的同級(jí)文件夾或者相同硬盤(pán)分區(qū)的位置,并重命名為類(lèi)似service_name_ready的文件夾,其中,文件夾名的規(guī)則可以根據(jù)需要定義;對(duì)于java、c++等直接提供服務(wù)的程序,將程序指定一個(gè)和線上程序不同的空閑端口啟動(dòng)。s7:在準(zhǔn)備完成之后,通知管理員,指定新版本上線時(shí)間;s8:上線時(shí)間到達(dá)前再次同步所有服務(wù)器的時(shí)間,使得所有服務(wù)器的時(shí)間與發(fā)布機(jī)時(shí)間一致,在確認(rèn)同步完成之后,執(zhí)行如下的新版本上線操作:1)對(duì)于php等依賴第三方程序才能提供服務(wù)的腳本,將線上正在提供服務(wù)的文件夾更名為類(lèi)似service_name_old的名稱,將步驟67中準(zhǔn)備完成的文件夾,改為線上提供服務(wù)的文件夾service_name;2)對(duì)于java、c++等直接提供服務(wù)的程序,利用iptables等程序,將線上對(duì)外服務(wù)端口映射到步驟7中指定的端口中。在確認(rèn)上線完成之后,所有服務(wù)無(wú)縫切換,原有的老版本程序,在確認(rèn)新版程序正常提供服務(wù)之后,可以任意刪除或者移到其它地方。如果新版程序無(wú)法正常提供服務(wù),那么可以再回滾至老版本中。在上例中,在新版本發(fā)布之前,多個(gè)服務(wù)器進(jìn)行時(shí)間同步,發(fā)布前將準(zhǔn)備好的程序文件夾拷貝到正在提供服務(wù)的程序文件夾的同級(jí)目錄或相同硬盤(pán)分區(qū)中,多個(gè)服務(wù)器在指定時(shí)間同時(shí)執(zhí)行上線操作,具體地,利用文件夾重命名的方式實(shí)現(xiàn)服務(wù)程序文件的無(wú)縫切換,或者利用iptables等程序?qū)⒎?wù)器現(xiàn)有正在提供的服務(wù)端口重定向(或反向代理)到準(zhǔn)備好的新的服務(wù)端口。通過(guò)上例中的方法,可以實(shí)現(xiàn)不暫停服務(wù),且用戶無(wú)感知,可以達(dá)到無(wú)縫升級(jí)的目的。進(jìn)一步的,還提供了無(wú)縫回滾到上一個(gè)版本程序,實(shí)現(xiàn)快速進(jìn)行故障恢復(fù)的功能,且實(shí)現(xiàn)成本較低。上述技術(shù)方案具有如下有益效果:因?yàn)椴捎妙A(yù)先將升級(jí)程序文件同步到提供服務(wù)的服務(wù)器中,并對(duì)所有提供服務(wù)的服務(wù)器進(jìn)行時(shí)鐘同步,在達(dá)到升級(jí)時(shí)間的時(shí)候,統(tǒng)一進(jìn)行版本切換,從而解決了現(xiàn)有的在進(jìn)行版本升級(jí)的時(shí)候,需要停服,用戶體驗(yàn)度不高的技術(shù)問(wèn)題,達(dá)到了低成本的程序無(wú)縫升級(jí)的技術(shù)效果,且用戶無(wú)感知。本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說(shuō)明性邏輯塊(illustrativelogicalblock),單元,和步驟可以通過(guò)電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說(shuō)明性部件(illustrativecomponents),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過(guò)硬件還是軟件來(lái)實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。本發(fā)明實(shí)施例中所描述的各種說(shuō)明性的邏輯塊,或單元都可以通過(guò)通用處理器,數(shù)字信號(hào)處理器,專(zhuān)用集成電路(asic),現(xiàn)場(chǎng)可編程門(mén)陣列或其它可編程邏輯裝置,離散門(mén)或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來(lái)實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過(guò)計(jì)算裝置的組合來(lái)實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類(lèi)似的配置來(lái)實(shí)現(xiàn)。本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲(chǔ)于ram存儲(chǔ)器、閃存、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫(xiě)信息。可選地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于asic中,asic可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來(lái)實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問(wèn)的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于ram、rom、eeprom、cd-rom或其它光盤(pán)存儲(chǔ)、磁盤(pán)存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過(guò)一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(dsl)或以例如紅外、無(wú)線和微波等無(wú)線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(pán)(disc)包括壓縮磁盤(pán)、鐳射盤(pán)、光盤(pán)、dvd、軟盤(pán)和藍(lán)光光盤(pán),磁盤(pán)通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12