本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種項(xiàng)目運(yùn)行指標(biāo)度量方法及裝置。
背景技術(shù):
當(dāng)利用c++開發(fā)一些服務(wù)或者組件時(shí),要監(jiān)控或統(tǒng)計(jì)一些運(yùn)行計(jì)算指標(biāo)現(xiàn)有的技術(shù)是通過寫日志的方式,異步的計(jì)算分析日志來計(jì)算統(tǒng)計(jì)或監(jiān)控指標(biāo),通過寫日志離線計(jì)算統(tǒng)計(jì)指標(biāo)的方式存在不能達(dá)到實(shí)時(shí)、日志傳輸對(duì)網(wǎng)絡(luò)帶寬的影響的問題,而且開發(fā)維護(hù)成本高。
現(xiàn)有的技術(shù)通過落地日志的方式離線計(jì)算各種統(tǒng)計(jì)監(jiān)控指標(biāo),存在日志傳輸中網(wǎng)絡(luò)資源消耗、實(shí)際項(xiàng)目中耦合太強(qiáng)、維護(hù)開發(fā)成本高的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種項(xiàng)目運(yùn)行指標(biāo)度量方法及裝置,以降低開發(fā)成本,提升開發(fā)效率。
一方面,本發(fā)明實(shí)施例提供了一種項(xiàng)目運(yùn)行指標(biāo)度量方法,所述方法包括:
當(dāng)需要對(duì)某一軟件項(xiàng)目的運(yùn)行進(jìn)行統(tǒng)計(jì)監(jiān)控時(shí),獲取所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型;
根據(jù)所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型,確定所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式;
調(diào)用所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式,對(duì)所述項(xiàng)目的運(yùn)行進(jìn)行度量,獲取度量結(jié)果。
另一方面,本發(fā)明實(shí)施例提供了一種項(xiàng)目運(yùn)行指標(biāo)度量裝置,所述裝置包括:
類型獲取單元,用于當(dāng)需要對(duì)某一軟件項(xiàng)目的運(yùn)行進(jìn)行統(tǒng)計(jì)監(jiān)控時(shí),獲取所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型;
度量方式管理單元,用于根據(jù)所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型,確定所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式;
度量調(diào)用單元,用于調(diào)用所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式,對(duì)所述項(xiàng)目的運(yùn)行進(jìn)行度量,獲取度量結(jié)果。
上述技術(shù)方案具有如下有益效果:將統(tǒng)計(jì)監(jiān)控需要的度量指標(biāo)高度的抽象化,使得服務(wù)模塊化;降低了項(xiàng)目真正的業(yè)務(wù)與監(jiān)控統(tǒng)計(jì)間的耦合性;較傳統(tǒng)的做法可以免去傳輸統(tǒng)計(jì)日志帶來的網(wǎng)絡(luò)開銷;減少很多編碼的工作量,提升開發(fā)效率,降低了開發(fā)維護(hù)成本。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一種項(xiàng)目運(yùn)行指標(biāo)度量方法流程圖;
圖2為本發(fā)明實(shí)施例一種項(xiàng)目運(yùn)行指標(biāo)度量裝置結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例度量方式管理單元結(jié)構(gòu)示意圖;
圖4為本發(fā)明應(yīng)用實(shí)例項(xiàng)目運(yùn)行指標(biāo)度量方案示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,為本發(fā)明實(shí)施例一種項(xiàng)目運(yùn)行指標(biāo)度量方法流程圖,所述方法包括:
101、當(dāng)需要對(duì)某一軟件項(xiàng)目的運(yùn)行進(jìn)行統(tǒng)計(jì)監(jiān)控時(shí),獲取所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型;
102、根據(jù)所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型,確定所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式;
103、調(diào)用所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式,對(duì)所述項(xiàng)目的運(yùn)行進(jìn)行度量,獲取度量結(jié)果。
優(yōu)選地,所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型包括:統(tǒng)計(jì)瞬時(shí)狀態(tài)值,統(tǒng)計(jì)軟件項(xiàng)目的運(yùn)行次數(shù),度量某個(gè)時(shí)間段的平均處理次數(shù),統(tǒng)計(jì)數(shù)據(jù)的分布情況,統(tǒng)計(jì)代碼段某時(shí)間段內(nèi)執(zhí)行次數(shù)、或代碼段單位時(shí)間內(nèi)執(zhí)行平均次數(shù)、或代碼段單次執(zhí)行時(shí)間的分布情況。
優(yōu)選地,所述根據(jù)所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型,確定所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式包括:
若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)瞬時(shí)狀態(tài)值,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為返回指標(biāo)絕對(duì)數(shù)值gauges;
若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)軟件項(xiàng)目的運(yùn)行次數(shù),則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為累加計(jì)數(shù)器counter;
若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為度量某個(gè)時(shí)間段的平均處理次數(shù),則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為統(tǒng)計(jì)速率相關(guān)的指標(biāo)meters;
若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)數(shù)據(jù)的分布情況,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為直方圖分布相關(guān)的指標(biāo)histograms;
若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)代碼段某時(shí)間段內(nèi)執(zhí)行次數(shù)、或代碼段單位時(shí)間內(nèi)執(zhí)行平均次數(shù)、或代碼段單次執(zhí)行時(shí)間的分布情況,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為速率和直方圖綜合的相關(guān)指標(biāo)timer。
優(yōu)選地,所述方法還包括:獲取度量結(jié)果后,將度量結(jié)果數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json進(jìn)行輸出。
優(yōu)選地,所述將度量結(jié)果數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json進(jìn)行輸出,具體包括:基于超文本傳輸協(xié)議http,或者基于分布式的高速緩存系統(tǒng)memcache網(wǎng)絡(luò)協(xié)議將度量結(jié)果數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json進(jìn)行輸出。
對(duì)應(yīng)于上述方法實(shí)施例,如圖2所示,為本發(fā)明實(shí)施例一種項(xiàng)目運(yùn)行指標(biāo)度量裝置結(jié)構(gòu)示意圖,所述裝置包括:
類型獲取單元21,用于當(dāng)需要對(duì)某一軟件項(xiàng)目的運(yùn)行進(jìn)行統(tǒng)計(jì)監(jiān)控時(shí),獲取所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型;
度量方式管理單元22,用于根據(jù)所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型,確定所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式;
度量調(diào)用單元23,用于調(diào)用所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式,對(duì)所述項(xiàng)目的運(yùn)行進(jìn)行度量,獲取度量結(jié)果。
優(yōu)選地,所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型包括:統(tǒng)計(jì)瞬時(shí)狀態(tài)值,統(tǒng)計(jì)軟件項(xiàng)目的運(yùn)行次數(shù),度量某個(gè)時(shí)間段的平均處理次數(shù),統(tǒng)計(jì)數(shù)據(jù)的分布情況,統(tǒng)計(jì)代碼段某時(shí)間段內(nèi)執(zhí)行次數(shù)、或代碼段單位時(shí)間內(nèi)執(zhí)行平均次數(shù)、或代碼段單次執(zhí)行時(shí)間的分布情況。
如圖3所示,為本發(fā)明實(shí)施例度量方式管理單元結(jié)構(gòu)示意圖,優(yōu)選地,所述度量方式管理單元22包括:
第一確定模塊221,用于若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)瞬時(shí)狀態(tài)值,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為返回指標(biāo)絕對(duì)數(shù)值gauges;
第二確定模塊222,用于若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)軟件項(xiàng)目的運(yùn)行次數(shù),則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為累加計(jì)數(shù)器counter;
第三確定模塊223,用于若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為度量某個(gè)時(shí)間段的平均處理次數(shù),則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為統(tǒng)計(jì)速率相關(guān)的指標(biāo)meters;
第四確定模塊224,用于若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)數(shù)據(jù)的分布情況,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為直方圖分布相關(guān)的指標(biāo)histograms;
第五確定模塊225,用于若所述軟件項(xiàng)目的統(tǒng)計(jì)監(jiān)控類型為統(tǒng)計(jì)代碼段某時(shí)間段內(nèi)執(zhí)行次數(shù)、或代碼段單位時(shí)間內(nèi)執(zhí)行平均次數(shù)、或代碼段單次執(zhí)行時(shí)間的分布情況,則確定的所述統(tǒng)計(jì)監(jiān)控類型對(duì)應(yīng)的度量方式為速率和直方圖綜合的相關(guān)指標(biāo)timer。
優(yōu)選地,所述裝置還包括:格式化單元24,用于獲取度量結(jié)果后,將度量結(jié)果數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json進(jìn)行輸出。
優(yōu)選地,所述格式化單元24,進(jìn)一步用于獲取度量結(jié)果后,基于超文本傳輸協(xié)議http,或者基于分布式的高速緩存系統(tǒng)memcache網(wǎng)絡(luò)協(xié)議將度量結(jié)果數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json進(jìn)行輸出。
上述技術(shù)方案具有如下有益效果:將統(tǒng)計(jì)監(jiān)控需要的度量指標(biāo)高度的抽象化,使得服務(wù)模塊化;降低了項(xiàng)目真正的業(yè)務(wù)與監(jiān)控統(tǒng)計(jì)間的耦合性;較傳統(tǒng)的做法可以免去傳輸統(tǒng)計(jì)日志帶來的網(wǎng)絡(luò)開銷;減少很多編碼的工作量,提升開發(fā)效率,降低了開發(fā)維護(hù)成本。
以下通過應(yīng)用實(shí)例對(duì)本發(fā)明實(shí)施例上述技術(shù)方案進(jìn)行詳細(xì)說明:
本發(fā)明應(yīng)用實(shí)例技術(shù)方案解決上述一系列問題通過用c++實(shí)現(xiàn)的度量方式,將通常監(jiān)控統(tǒng)計(jì)的指標(biāo)抽象為五類度量方式來滿足大部分統(tǒng)計(jì)度量需求,使用時(shí)僅僅需要在代碼中調(diào)用即可,而且是非阻塞的,基本上度量方式本身不會(huì)影響業(yè)務(wù)程序的性能的。這五類度量方式分別是:gauges(返回指標(biāo)絕對(duì)數(shù)值)、counter(累加計(jì)數(shù)器)、meters(統(tǒng)計(jì)速率相關(guān)的指標(biāo))、histograms(直方圖分布相關(guān)的指標(biāo))、timer(速率和直方圖綜合的相關(guān)指標(biāo))。該方案在使用上大大降低了開發(fā)成本,在使用度量方式時(shí)僅僅需要?jiǎng)?chuàng)建對(duì)應(yīng)類型的度量方式并設(shè)置其當(dāng)前狀態(tài)值即可,對(duì)于最終輸出通過配置即可完成,可以將結(jié)果輸出到標(biāo)準(zhǔn)輸出也可以通過http或者memcache網(wǎng)絡(luò)協(xié)議來獲取最終的度量結(jié)果,大大的提升了開發(fā)效率。
如圖4所示,為本發(fā)明應(yīng)用實(shí)例項(xiàng)目運(yùn)行指標(biāo)度量方案示意圖,由管理各個(gè)類型的度量方式的metrics(度量)對(duì)象、具體實(shí)現(xiàn)各個(gè)度量方式的各個(gè)對(duì)象、定時(shí)合并計(jì)算度量指標(biāo)的mergedata、輸出數(shù)據(jù)格式化處理模塊、processdata組成。
metrics度量方式管理模塊是在一個(gè)進(jìn)程中僅有一個(gè)對(duì)象的單例類,用來管理各個(gè)度量方式計(jì)算設(shè)置的常駐內(nèi)存的數(shù)據(jù)已經(jīng)各個(gè)指標(biāo)對(duì)象指針,如圖一所示,開發(fā)者使用度量方式時(shí)僅僅通過這個(gè)單例對(duì)象中的接口就可以自動(dòng)創(chuàng)建需要的度量對(duì)象。由于在多線程環(huán)境中如果做數(shù)值計(jì)算需要加鎖來完成,那么為了提升效率將這些需要計(jì)算的操作都抽象到一個(gè)數(shù)據(jù)處理隊(duì)列中,由專門的負(fù)責(zé)數(shù)值計(jì)算的單線程來做數(shù)值計(jì)算,這樣可以避免數(shù)值計(jì)算中加鎖操作。該模塊除了會(huì)保存度量對(duì)象外還會(huì)保存度量的計(jì)算結(jié)果和度量方式計(jì)算的中間數(shù)據(jù)。換句話說就是該模塊負(fù)責(zé)度量方式庫(kù)的數(shù)據(jù)對(duì)象管理,負(fù)責(zé)數(shù)值處理計(jì)算、對(duì)象創(chuàng)建、數(shù)據(jù)暫存等工作。
gauges度量類型是最簡(jiǎn)單的計(jì)量,一般用來統(tǒng)計(jì)瞬時(shí)狀態(tài)值,比如當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)等,該模塊實(shí)現(xiàn)是通過注冊(cè)回調(diào)函數(shù)的方式實(shí)現(xiàn),當(dāng)需要該類型的度量時(shí),僅需獲取一個(gè)gauges對(duì)象并注冊(cè)回調(diào)函數(shù)、和設(shè)置度量時(shí)間間隔即可,metrics對(duì)象會(huì)保存剛剛創(chuàng)建的gauges對(duì)象在一個(gè)hashmap中,并且會(huì)將通過運(yùn)行回調(diào)得到的值存儲(chǔ)到hashmap中。多個(gè)gauges計(jì)量指標(biāo)通過計(jì)量名稱和計(jì)量模塊來區(qū)別,上述的hashmap的key正是計(jì)量名稱和計(jì)量模塊組成的。
counter是維護(hù)一個(gè)計(jì)數(shù)器,可以通過add和dec方法分別加減計(jì)數(shù)器,當(dāng)調(diào)用add和dec方法時(shí)會(huì)將該數(shù)值計(jì)算抽象成一個(gè)結(jié)構(gòu)體push到metrics對(duì)象的隊(duì)列中,供metrics下一步計(jì)算數(shù)值線程計(jì)算,最終將計(jì)算結(jié)果存儲(chǔ)到metrics對(duì)象中的counter專有的hashmap中,存儲(chǔ)結(jié)構(gòu)和gauges類似。
meters用來度量某個(gè)時(shí)間段的平均處理次數(shù),一分鐘、五分鐘、十五分內(nèi)的平均處理次數(shù),有點(diǎn)類似于系統(tǒng)中cpu負(fù)載統(tǒng)計(jì)。比如一個(gè)service的請(qǐng)求數(shù),通過metrics::getmeters()方法獲取該度量類型的對(duì)象,調(diào)用該對(duì)象中mark方法來統(tǒng)計(jì)軟件項(xiàng)目的運(yùn)行次數(shù),度量方式內(nèi)部會(huì)計(jì)算上述的平均處理次數(shù)。meters內(nèi)部其實(shí)是利用上面的counter度量方式實(shí)現(xiàn)的數(shù)值計(jì)算,只是在創(chuàng)建meters對(duì)象時(shí)同時(shí)會(huì)創(chuàng)建1、5、15分鐘3個(gè)定時(shí)器,用來將該度量數(shù)據(jù)合并操作,每一分鐘的合并后的數(shù)據(jù)會(huì)存儲(chǔ)到一個(gè)中間hashmap中,5、15分鐘定時(shí)器合并操作是基于1分鐘合并后的數(shù)據(jù)做合并操作,最終將1、5、15合并后計(jì)算的平均值存儲(chǔ)到一個(gè)meters專有的hashmap中,key規(guī)則和counter、gauges一樣都是度量名稱和度量模塊的組合。例如度量一個(gè)server的請(qǐng)求次數(shù)最終在輸出是得到的結(jié)果如下:
histograms主要使用來統(tǒng)計(jì)數(shù)據(jù)的分布情況,最大值、最小值、平均值、中位數(shù),百分比(75%、90%、95%、98%、99%和99.9%),通過metrics::gethistograms()方法獲取histograms對(duì)象,在計(jì)量直方圖分布是僅僅需要將當(dāng)前的值調(diào)用該對(duì)象的update(val)設(shè)置進(jìn)來即可,度量?jī)?nèi)部會(huì)將該值存儲(chǔ)到一個(gè)數(shù)組中用來計(jì)算多個(gè)值的分布情況。在創(chuàng)建對(duì)象的同時(shí)會(huì)創(chuàng)建一個(gè)以某個(gè)時(shí)間間隔的定時(shí)器,這個(gè)時(shí)間取決于開發(fā)者設(shè)定的統(tǒng)計(jì)時(shí)間間隔,該定時(shí)器會(huì)從數(shù)組中取出數(shù)據(jù)計(jì)算出上述的分布情況,最終將計(jì)算好的結(jié)果存儲(chǔ)到histograms專有的hashmap中,hashmap的存儲(chǔ)方式和meters類似,該度量方式的應(yīng)用場(chǎng)景一般是統(tǒng)一一個(gè)實(shí)體在一定范圍內(nèi)的分布情況,例如統(tǒng)計(jì)一個(gè)server處理一個(gè)事務(wù)需要消耗的時(shí)間,最終統(tǒng)計(jì)結(jié)果輸出如下:
timers主要是用來統(tǒng)計(jì)代碼段某時(shí)間段內(nèi)的執(zhí)行次數(shù)(或代碼段單位時(shí)間內(nèi)執(zhí)行平均次數(shù))和單次執(zhí)行時(shí)間的分布情況,具體實(shí)現(xiàn)是結(jié)合meters和histograms來實(shí)現(xiàn)的,通過metrics::gettimers()獲取度量對(duì)象,當(dāng)開始執(zhí)行時(shí)調(diào)用該對(duì)象中的start方法,當(dāng)代碼段執(zhí)行完成后調(diào)用stop方法即可完成統(tǒng)計(jì)。最終輸出的結(jié)果如下:
最后說明一下度量出來的結(jié)果輸出的方式,目前默認(rèn)從metrics中獲取度量的數(shù)據(jù),將數(shù)據(jù)格式化成javascript對(duì)象標(biāo)記語言json來輸出的,輸出的協(xié)議是http或memcache網(wǎng)絡(luò)協(xié)議,開發(fā)者可以通過綁定回調(diào)函數(shù)來自己定義輸出的格式和方式。
與現(xiàn)有技術(shù)相比,本申請(qǐng)有如下技術(shù)優(yōu)點(diǎn):將統(tǒng)計(jì)監(jiān)控需要的度量指標(biāo)高度的抽象化,使得服務(wù)模塊化;降低了項(xiàng)目真正的業(yè)務(wù)與監(jiān)控統(tǒng)計(jì)間的耦合性;較傳統(tǒng)的做法可以免去傳輸統(tǒng)計(jì)日志帶來的網(wǎng)絡(luò)開銷;減少很多編碼的工作量,提升開發(fā)效率,降低了開發(fā)維護(hù)成本。
應(yīng)該明白,公開的過程中的步驟的特定順序或?qū)哟问鞘纠苑椒ǖ膶?shí)例。基于設(shè)計(jì)偏好,應(yīng)該理解,過程中的步驟的特定順序或?qū)哟慰梢栽诓幻撾x本公開的保護(hù)范圍的情況下得到重新安排。所附的方法權(quán)利要求以示例性的順序給出了各種步驟的要素,并且不是要限于所述的特定順序或?qū)哟巍?/p>
在上述的詳細(xì)描述中,各種特征一起組合在單個(gè)的實(shí)施方案中,以簡(jiǎn)化本公開。不應(yīng)該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護(hù)的主題的實(shí)施方案需要比清楚地在每個(gè)權(quán)利要求中所陳述的特征更多的特征。相反,如所附的權(quán)利要求書所反映的那樣,本發(fā)明處于比所公開的單個(gè)實(shí)施方案的全部特征少的狀態(tài)。因此,所附的權(quán)利要求書特此清楚地被并入詳細(xì)描述中,其中每項(xiàng)權(quán)利要求獨(dú)自作為本發(fā)明單獨(dú)的優(yōu)選實(shí)施方案。
為使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面對(duì)所公開實(shí)施例進(jìn)行了描述。對(duì)于本領(lǐng)域技術(shù)人員來說;這些實(shí)施例的各種修改方式都是顯而易見的,并且本文定義的一般原理也可以在不脫離本公開的精神和保護(hù)范圍的基礎(chǔ)上適用于其它實(shí)施例。因此,本公開并不限于本文給出的實(shí)施例,而是與本申請(qǐng)公開的原理和新穎性特征的最廣范圍相一致。
上文的描述包括一個(gè)或多個(gè)實(shí)施例的舉例。當(dāng)然,為了描述上述實(shí)施例而描述部件或方法的所有可能的結(jié)合是不可能的,但是本領(lǐng)域普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,各個(gè)實(shí)施例可以做進(jìn)一步的組合和排列。因此,本文中描述的實(shí)施例旨在涵蓋落入所附權(quán)利要求書的保護(hù)范圍內(nèi)的所有這樣的改變、修改和變型。此外,就說明書或權(quán)利要求書中使用的術(shù)語“包含”,該詞的涵蓋方式類似于術(shù)語“包括”,就如同“包括,”在權(quán)利要求中用作銜接詞所解釋的那樣。此外,使用在權(quán)利要求書的說明書中的任何一個(gè)術(shù)語“或者”是要表示“非排它性的或者”。
本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說明性邏輯塊(illustrativelogicalblock),單元,和步驟可以通過電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說明性部件(illustrativecomponents),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過硬件還是軟件來實(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í)施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器,數(shù)字信號(hào)處理器,專用集成電路(asic),現(xiàn)場(chǎng)可編程門陣列或其它可編程邏輯裝置,離散門或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過計(jì)算裝置的組合來實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類似的配置來實(shí)現(xiàn)。
本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲(chǔ)于ram存儲(chǔ)器、閃存、rom存儲(chǔ)器、eprom存儲(chǔ)器、eeprom存儲(chǔ)器、寄存器、硬盤、可移動(dòng)磁盤、cd-rom或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫信息??蛇x地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于asic中,asic可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。
在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于ram、rom、eeprom、cd-rom或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(dsl)或以例如紅外、無線和微波等無線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、鐳射盤、光盤、dvd、軟盤和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。