本申請涉互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種日志事件處理方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,用戶操作互聯(lián)網(wǎng)設(shè)備所產(chǎn)生的訪問日志或系統(tǒng)日志也成爆發(fā)式增長。如何統(tǒng)計、分析這些日志信息,從這些日志信息中提取有效的用戶行為信息,進而提高用戶體驗已經(jīng)成為了業(yè)內(nèi)的關(guān)注點。
在對日志信息進行統(tǒng)計、分析前,首先需從日志文件中心獲取訪問日志或系統(tǒng)日志文件。現(xiàn)有技術(shù)中,一般通過對日志文件中心進行周期性輪詢的方式來得到所需的日志文件,再將每次輪詢所得日志文件進行處理。其中,每次輪詢均包括如下步驟:在日志文件中心中所有日志目錄進行逐一篩查,若有子目錄中日志文件增加或被修改,則將該日志文件上傳至日志文件處理隊列。
然而,在實現(xiàn)本申請過程中,現(xiàn)有技術(shù)中至少存在如下問題:
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,每次輪詢所上傳日志文件處理隊列的日志文件的數(shù)量越來越大,受限于當前對日志文件的處理能力,難以在一個輪詢周期內(nèi)完成對日志文件處理隊列中所有日志文件的處理。若同一日志文件發(fā)生多次修改,則該日志文件在輪詢過程中均會被重復(fù)上傳至日志文件處理隊列,后續(xù)對這些重復(fù)的日志文件的處理,浪費的日志文件的處理資源并增加了日志文件的處理耗時。
技術(shù)實現(xiàn)要素:
本申請實施例的目的在于提供一種日志事件處理方法和裝置,節(jié)約了日志文件處理資源的利用率并降低了處理耗時。
本申請實施例提供一種日志事件處理方法,其包括:
監(jiān)聽日志文件中心,獲取日志文件中心中日志事件;
將所述日志事件置于預(yù)設(shè)日志事件隊列;
對所述預(yù)設(shè)日志事件隊列中所對應(yīng)日志目錄相同的日志文件修改事件進行去重;
處理所述預(yù)設(shè)日志事件隊列中日志事件。
本申請實施例還提供一種日志事件處理裝置,其包括:
事件監(jiān)聽模塊,監(jiān)聽日志文件中心,獲取日志文件中心中日志事件;
事件安置模塊,將所述日志事件置于預(yù)設(shè)日志事件隊列;
隊列去重模塊,對所述預(yù)設(shè)日志事件隊列中所對應(yīng)日志目錄相同的日志文件修改事件進行去重;
隊列處理模塊,處理所述預(yù)設(shè)日志事件隊列中日志事件。
本申請實施例采用的上述至少一個技術(shù)方案能夠達到以下有益效果:
通過對日志文件修改事件進行去重,降低了該日志文件被重復(fù)處理的幾率,節(jié)約了日志文件的處理資源。同時,控制了預(yù)設(shè)日志事件隊列中待處理日志事件的數(shù)量,降低了日志事件的處理耗時,提高了日志文件的處理效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1為本申請實施例中日志文件中心、預(yù)設(shè)日志事件隊列和日志處理裝置的系統(tǒng)結(jié)構(gòu)圖。
圖2為本申請實施例中日志事件處理方法的過程。
圖3為本申請實施例中日志事件處理方法內(nèi)監(jiān)聽日志文件中心,獲取日志文件中心中日志事件的具體過程。
圖4為本申請實施例中日志事件處理方法內(nèi)處理所述預(yù)設(shè)日志事件隊列中日志事件的具體過程。
圖5為本申請實施例中日志事件處理方法內(nèi)將日志文件上傳至預(yù)設(shè)服務(wù)器的具體過程。
圖6為本申請實施例中日志事件處理方法內(nèi)設(shè)置進程鎖的具體過程。
圖7為本申請實施例中日志事件處理方法內(nèi)日志事件處理異常后的重啟步驟的具體過程。
圖8為本申請實施例中日志事件處理方法內(nèi)停止日志事件處理時對剩余日志事件進行處理步驟的具體過程。
圖9為本申請實施例中日志事件處理裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
現(xiàn)有通過對日志文件中心進行輪詢來得到所需日志文件的過程中,可能存在獲取效率低的問題,本申請?zhí)峁┮环N解決前述問題的日志事件處理方法,以下結(jié)合附圖詳細描述本方法。
圖1為本申請實施例中日志文件中心、預(yù)設(shè)日志事件隊列和日志處理裝置的系統(tǒng)結(jié)構(gòu)圖。
其中,日志文件中心10和預(yù)設(shè)日志事件隊列20之間建立信息傳輸鏈路,實現(xiàn)信息互通。
前述日志處理方法的執(zhí)行主體可以是一個與前述日志文件中心10和預(yù)設(shè)日志事件隊列20均連接的處理裝置30,該處理裝置30能夠?qū)θ罩疚募行? 10和預(yù)設(shè)日志事件隊列20進行操作,以實現(xiàn)日志處理。
圖2為本申請實施例中日志事件處理方法的過程,該方法包括如下步驟。
S1、監(jiān)聽日志文件中心,獲取日志文件中心中日志事件。
前述日志事件可以是日志目錄增加事件、日志目錄刪除事件、日志文件增加事件、日志文件修改事件或日志文件刪除事件。
本申請實施例中,監(jiān)聽日志文件中心內(nèi)預(yù)設(shè)日志目錄范圍,預(yù)設(shè)日志目錄范圍可以為日志文件中心下一個子目錄范圍,從而獲取在該預(yù)設(shè)日志目錄范圍內(nèi)的日志事件。
結(jié)合圖3所示,該步驟S1具體包括如下步驟:
S11、對日志文件中心中所有日志的目錄進行正則表達式配置,獲取每個日志目錄的正則表達式。
經(jīng)過正則表達式配置后,日志文件中心內(nèi)日志目錄名稱統(tǒng)一,便于后續(xù)查詢預(yù)設(shè)日志目錄范圍。
本申請實施例中,以計算機內(nèi)D盤中D:/logs作為日志文件中心經(jīng)過正則表達式配置后所在目錄節(jié)點,D:/logs下設(shè)有D:/logs/1、D:/logs/2共計2個目錄節(jié)點,D:/logs/1下設(shè)有D:/logs/11、D:/logs/12、D:/logs/13共計3個目錄節(jié)點。
S12、獲取日志文件中心內(nèi)日志事件以及日志事件所在日志目錄的正則表達式。
S13、判斷所獲取日志事件所在日志目錄的正則表達式與預(yù)設(shè)日志目錄范圍的正則表達式是否匹配,若是,執(zhí)行步驟S2,若否,返回步驟S12。
本申請實施例中,以D:/logs/1及其下設(shè)目錄節(jié)點范圍作為預(yù)設(shè)日志目錄范圍為例,則預(yù)設(shè)日志目錄范圍的正則表達式為D:/logs/1*。
若所獲取的日志事件為D:/logs/11內(nèi)日志文件的修改事件,D:/logs/11和D:/logs/1*匹配,則表明該日志事件所對應(yīng)的日志目錄在預(yù)設(shè)日志目錄范圍內(nèi);若所獲取的日志事件為D:/logs/2內(nèi)日志文件的修改事件,D:/logs/2和D:/logs/1*不匹配,則表明該日志事件所對應(yīng)的日志目錄不在預(yù)設(shè)日志目錄范圍內(nèi)。
S2、將日志事件置于預(yù)設(shè)日志事件隊列。
本申請實施例中,可以根據(jù)日志事件的獲取時間順序,將日志事件排列在預(yù)設(shè)日志事件隊列。
S3、對預(yù)設(shè)日志事件隊列中所對應(yīng)日志目錄相同的日志文件修改事件進行去重。
本申請實施例中,可以在預(yù)設(shè)日志事件隊列有所對應(yīng)日志目錄相同的日志文件修改事件時,僅保留獲取時間最早的日志文件修改事件,實現(xiàn)對該類日志文件修改事件進行去重。
當然,本申請其他實施例中,也可保留其他獲取時間的日志文件修改事件,同樣能實現(xiàn)對該類日志文件修改事件的去重,在此不做贅述。
通過對日志文件修改事件進行去重,降低了該日志文件被重復(fù)處理的幾率,節(jié)約了日志文件的處理資源。同時,控制了預(yù)設(shè)日志事件隊列中待處理日志事件的數(shù)量,降低了日志事件的處理耗時,提高了日志文件的處理效率。
S4、處理預(yù)設(shè)日志事件隊列中日志事件。
本申請實施例中,逐一處理預(yù)設(shè)日志事件隊列中日志事件,并清除已完成處理的日志事件,控制預(yù)設(shè)日志事件隊列的存儲空間以備新的日志事件增加進來。
參圖4所示,步驟S4具體包括如下步驟。
S41、獲取預(yù)設(shè)日志事件隊列中一日志事件。
S42、在所獲取日志事件為日志文件修改事件時,判斷預(yù)設(shè)日志事件隊列中是否存在與當前所處理的日志文件修改事件所對應(yīng)日志目錄相同的預(yù)設(shè)日志事件,若是,執(zhí)行步驟S43,若否,執(zhí)行步驟S44。
其中,預(yù)設(shè)日志事件為日志目錄新增事件、日志目錄刪除事件、日志文件新增事件及日志文件刪除之間中任意一種。
S43、處理預(yù)設(shè)日志事件。
S44、處理日志文件修改事件。
其中,處理日志文件修改事件具體包括:將日志文件修改事件或日志文件增加事件所對應(yīng)的日志文件上傳至預(yù)設(shè)服務(wù)器。
本申請實施例中,步驟S43具體包括如下步驟:
在預(yù)設(shè)日志事件為日志目錄增加事件時,將所增加日志目錄加入監(jiān)聽;
在預(yù)設(shè)日志事件為日志目錄刪除事件時,取消對所刪除日志目錄的監(jiān)聽;
在預(yù)設(shè)日志事件為日志文件增加事件時,將日志文件增加事件對應(yīng)的日志文件上傳至預(yù)設(shè)服務(wù)器;
在預(yù)設(shè)日志事件為日志文件刪除事件時,直接返回該預(yù)設(shè)日志事件處理結(jié)束。
本申請實施例中,通過設(shè)定預(yù)設(shè)日志事件,并將該預(yù)設(shè)日志事件的優(yōu)先級設(shè)定高于日志文件修改事件,每次在處理日志文件修改事件時,均判斷是否有相同該日志目錄的預(yù)設(shè)日志事件存在,優(yōu)先處理預(yù)設(shè)日志事件。
優(yōu)先處理預(yù)設(shè)日志事件的設(shè)定,對于日志文件中心的監(jiān)聽效率有較大提升。以預(yù)設(shè)日志事件為日志目錄刪除事件為例,處理該日志目錄刪除事件能夠限縮對于日志文件中心的監(jiān)聽范圍,實現(xiàn)動態(tài)調(diào)整預(yù)設(shè)日志目錄范圍,避免被刪除的日志目錄仍處于預(yù)設(shè)日志目錄范圍之中,造成預(yù)設(shè)日志目錄范圍的監(jiān)視資源浪費;當然,處理日志目錄新增事件時,也能及時獲取所增加日志目錄上的日志文件。
參圖5所示,本申請實施例中,該步驟S43和S44中將日志文件上傳至預(yù)設(shè)服務(wù)器具體包括如下步驟。
S441、按塊讀取日志文件中字節(jié)數(shù)據(jù),得到字節(jié)數(shù)據(jù)塊。
S442、判斷字節(jié)數(shù)據(jù)塊最后一個字節(jié)是否為換行符,若是,執(zhí)行步驟S443,若否,執(zhí)行步驟S444。
S443、將讀取到的字節(jié)數(shù)據(jù)上傳至服務(wù)器。
S444、定位字節(jié)數(shù)據(jù)塊中距離最后一個字節(jié)最近的換行符,將該換行符及該換行符之前的字節(jié)數(shù)據(jù)上傳至服務(wù)器。
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,日志文件越來越大,通過按塊讀取日志文件,能夠大幅提高日志文件的上傳效率。
當然,本申請其他實施例中,還可通過按行讀取的方式來讀取日志文件,在此不做贅述。
本申請實施例中,日志事件處理方法還包括位于步驟S4之后的將日志事件的處理進度保存至預(yù)設(shè)內(nèi)存文件池的步驟,具體如下。
在當前所處理的當前所處理的日志事件為日志目錄增加事件時,將所增加日志目錄和日志文件加入至預(yù)設(shè)內(nèi)存文件池。
在當前所處理的日志事件為日志目錄刪除事件時,將所刪除日志目錄從預(yù)設(shè)內(nèi)存文件池之中刪除。
在當前所處理的日志事件為日志文件增加事件時,將所增加日志文件加入至預(yù)設(shè)內(nèi)存文件池。
在當前所處理的日志事件為日志文件刪除事件時,將所刪除日志文件從預(yù)設(shè)內(nèi)存文件池之中刪除。
在當前所處理的日志事件為日志文件修改事件時,按照日志文件的上傳至預(yù)設(shè)服務(wù)器的進度,對預(yù)設(shè)內(nèi)存文件池中對應(yīng)日志文件做更新。
通過預(yù)設(shè)內(nèi)存文件池來記錄日志事件的處理進度,使得在日志事件處理程序出現(xiàn)異常時,能夠根據(jù)內(nèi)存文件池中日志事件存檔記錄,明確日志事件處理發(fā)生異常時,在預(yù)設(shè)日志事件隊列中的處理進度。
本申請實施例中,日志事件處理方法還包括:以預(yù)設(shè)時間間隔,將預(yù)設(shè)內(nèi)存文件池中日志目錄和日志文件刷入預(yù)設(shè)磁盤。
本申請實施例中,預(yù)設(shè)文件池位于計算機設(shè)備的緩存層內(nèi),該緩存層即進行數(shù)據(jù)交互的緩沖區(qū)Cache,初期利用緩沖區(qū)Cache的高速訪問特性,大幅提高了將日志目錄和日志文件存儲至預(yù)設(shè)內(nèi)存文件池的效率;后續(xù)將敏感信息和信息標識保存至該可掉電式存儲的磁盤之中,提高了日志目錄和日志文件存儲的穩(wěn)定性。
參圖6所示,本申請實施例中,日志事件處理方法還包括對日志事件處理進程設(shè)置進程鎖,具體包括如下步驟。
S51、獲取日志事件處理請求。
S52、,判斷是否已啟動針對相同預(yù)設(shè)日志目錄范圍的日志事件處理進程,若是,執(zhí)行步驟S53,若否,執(zhí)行步驟S54。
當然,若日志處理僅僅針對日志文件中心,則直接判斷是否針對該日志文件中心的日志事件處理進程是否已存在即可,在此不做贅述。
S53、啟動該新獲取的日志事件處理進程。
S54、僅保留啟動時間最早的、針對相同預(yù)設(shè)日志目錄范圍的日志事件處理進程。
通過對日志事件處理進程設(shè)置進程鎖,避免多個日志事件處理進程對同一個預(yù)設(shè)日志目錄范圍內(nèi)日志事件進行處理,保證日志事件處理不會重復(fù),避免日志事件處理結(jié)果的紊亂。
參圖7所示,本申請實施例中,日志事件處理方法還包括日志事件處理異常后的重啟步驟,具體如下。
S71、在日志事件處理進程重啟時,從預(yù)設(shè)內(nèi)存文件池獲取時間最晚的日志事件。
S72、在預(yù)設(shè)日志事件隊列中定位與預(yù)設(shè)內(nèi)存文件池中時間最晚的日志事件相同的日志事件。
S73、將預(yù)設(shè)日志事件隊列中定位到的日志事件所在位置作為重啟位置。
由于預(yù)設(shè)內(nèi)存文件池實時更新預(yù)設(shè)日志事件隊列中日志事件的處理進度,并以時間先后順序?qū)⒃撊罩臼录鎯χ令A(yù)設(shè)內(nèi)存文件池之中,預(yù)設(shè)內(nèi)存文件池獲取時間最晚的日志事件即為日志事件隊列處理異常時所處理的日志事件。
通過預(yù)設(shè)內(nèi)存文件池即可明確之前日志事件處理異常時所針對的日志事件,在此基礎(chǔ)上重啟日志事件處理步驟,能夠大幅提高預(yù)設(shè)日志事件隊列中日志事件的處理效率。
參圖8所示,本申請實施例中,日志事件處理方法還包括停止日志事件處理時對剩余日志事件進行處理的步驟,具體如下。
S81、在獲取日志事件處理停止請求時,停止獲取日志文件中心中日志事件。
S82、判斷預(yù)設(shè)日志事件隊列中是否還有日志事件,若是,繼續(xù)執(zhí)行步驟S4,若否,執(zhí)行步驟S83。
S83、返回請求者日志事件處理已停止。
在有停止日志事件處理進程時,預(yù)先停止獲取新的日志事件,仍然會將預(yù)設(shè)日志事件隊列中剩余日志事件處理完畢,避免日志事件被擱置過久,導(dǎo)致其所體現(xiàn)用戶行為信息無法被及時獲悉而造成用戶體驗提升效果較差。
圖9為本申請實施例中日志事件處理裝置的結(jié)構(gòu)示意圖,該處理裝置是基于以上處理方法,故該裝置的具體細節(jié)可參照以上處理方法,本文不再予以贅述。
前述日志事件處理裝置30,包括:
事件監(jiān)聽模塊31,監(jiān)聽日志文件中心,獲取日志文件中心中日志事件;
事件安置模塊32,將日志事件置于預(yù)設(shè)日志事件隊列;
隊列去重模塊33,對預(yù)設(shè)日志事件隊列中所對應(yīng)日志目錄相同的日志文件修改事件進行去重;
隊列處理模塊34,處理預(yù)設(shè)日志事件隊列中日志事件。
本申請實施例中,事件監(jiān)聽模塊31,具體用于:
獲取位于日志文件中心中預(yù)設(shè)日志目錄范圍上的日志事件。
本申請實施例中,事件監(jiān)聽模塊31,具體用于:
對日志文件中心中所有日志目錄進行正則表達式配置,獲取每個日志目錄的正則表達式;
在日志文件中心發(fā)生日志事件時,獲取日志事件所在日志目錄的正則表達式;
判斷所獲取日志事件所在日志目錄的正則表達式與預(yù)設(shè)日志目錄范圍的正則表達式是否匹配;
若是,獲取該日志事件。
本申請實施例中,事件安置模塊32,具體用于:
根據(jù)日志事件的獲取時間順序,將日志事件置于預(yù)設(shè)日志事件隊列。
本申請實施例中,隊列去重模塊33,具體用于:
僅保留獲取時間最早的日志文件修改事件。
本申請實施例中,隊列處理模塊34,具體用于:
逐一處理預(yù)設(shè)日志事件隊列中日志事件,并清除已完成處理的日志事件。
本申請實施例中,隊列處理模塊34,具體用于:
在當前處理的日志事件為日志文件修改事件時,判斷預(yù)設(shè)日志事件隊列中是否存在與當前所處理的日志文件修改事件所對應(yīng)日志目錄相同的預(yù)設(shè)日志事件;
若是,處理預(yù)設(shè)日志事件;
若否,處理日志文件修改事件;
其中,預(yù)設(shè)日志事件為日志目錄新增事件、日志目錄刪除事件、日志文件新增事件及日志文件刪除之間中任意一種。
本申請實施例中,隊列處理模塊34,具體用于:
將日志事件隊列中日志文件修改事件所對應(yīng)的日志文件上傳至預(yù)設(shè)服務(wù)器。
本申請實施例中,隊列處理模塊34,具體用于:
在預(yù)設(shè)日志事件為日志目錄增加事件時,將所增加日志目錄加入監(jiān)聽;
在預(yù)設(shè)日志事件為日志目錄刪除事件時,取消對所刪除日志目錄的監(jiān)聽;
在預(yù)設(shè)日志事件為日志文件增加事件時,將日志文件增加事件對應(yīng)的日志文件上傳至預(yù)設(shè)服務(wù)器;
在預(yù)設(shè)日志事件為日志文件刪除事件時,直接返回該預(yù)設(shè)日志事件處理結(jié) 束。
本申請實施例中,隊列處理模塊34,具體用于:
按塊讀取日志文件中字節(jié)數(shù)據(jù),得到字節(jié)數(shù)據(jù)塊;
判斷字節(jié)數(shù)據(jù)塊最后一個字節(jié)是否為換行符,若是,將讀取到的字節(jié)數(shù)據(jù)上傳至服務(wù)器,若否,定位字節(jié)數(shù)據(jù)塊中距離最后一個字節(jié)最近的換行符,將該換行符及該換行符之前的字節(jié)數(shù)據(jù)上傳至服務(wù)器。
本申請實施例中,日志事件處理裝置還包括進度記錄模塊,具體用于:
在當前所處理的日志事件為日志目錄增加事件時,將所增加日志目錄和日志文件加入至預(yù)設(shè)內(nèi)存文件池;
在當前所處理的日志事件為日志目錄刪除事件時,將所刪除日志目錄從預(yù)設(shè)內(nèi)存文件池之中刪除;
在當前所處理的日志事件為日志文件增加事件時,將所增加日志文件加入至預(yù)設(shè)內(nèi)存文件池;
在當前所處理的日志事件為日志文件刪除事件時,將所刪除日志文件從預(yù)設(shè)內(nèi)存文件池之中刪除;
在當前所處理的日志事件為日志文件修改事件時,對預(yù)設(shè)內(nèi)存文件池中對應(yīng)日志文件做更新。
本申請實施例中,進度記錄模塊,還用于:
以預(yù)設(shè)時間間隔,將預(yù)設(shè)內(nèi)存文件池中日志目錄和日志文件刷入預(yù)設(shè)磁盤。
本申請實施例中,日志事件處理裝置還包括進程重啟模塊,具體用于:
在日志事件處理進程重啟時,從預(yù)設(shè)內(nèi)存文件池獲取時間最晚的日志事件;
在預(yù)設(shè)日志事件隊列中定位與預(yù)設(shè)內(nèi)存文件池中時間最晚的日志事件相同的日志事件;
將預(yù)設(shè)日志事件隊列中定位到的日志事件所在位置作為重啟位置;
隊列處理模塊34,具體用于:
處理預(yù)設(shè)日志事件隊列中位于重啟位置上的日志事件。
本申請實施例中,日志事件處理裝置還包括進程鎖定模塊,具體用于:
設(shè)置進程鎖,僅保留啟動時間最早的、針對相同預(yù)設(shè)日志目錄范圍的日志事件處理進程。
本申請實施例中,日志事件處理裝置還包括中斷處理模塊,具體用于:
在獲取日志事件處理停止請求時,停止獲取日志文件中心中日志事件;
判斷預(yù)設(shè)日志事件隊列中是否還有日志事件,若是,逐一處理預(yù)設(shè)日志事件隊列中日志事件。
本申請實施例中的日志處理裝置30,通過對日志文件修改事件進行去重,降低了該日志文件被重復(fù)處理的幾率,節(jié)約了日志文件的處理資源。同時,控制了預(yù)設(shè)日志事件隊列中待處理日志事件的數(shù)量,降低了日志事件的處理耗時,提高了日志文件的處理效率。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè) 備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(Flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括 一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。