本發(fā)明涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種標(biāo)識(shí)符生成裝置及方法。
背景技術(shù):
在互聯(lián)網(wǎng)應(yīng)用中,分布式處理應(yīng)用越來(lái)越廣泛,其中經(jīng)常會(huì)涉及到一個(gè)問(wèn)題,就是應(yīng)用服務(wù)器中訪問(wèn)請(qǐng)求對(duì)應(yīng)的ID(IDentifier,標(biāo)識(shí)符)的生成問(wèn)題。在集中式處理場(chǎng)景下,需要保證該ID在單節(jié)點(diǎn)上唯一即可。但是在分布式環(huán)境,需要保證該ID在多個(gè)節(jié)點(diǎn)上都唯一。所以,需要建立一定的策略來(lái)保證每個(gè)節(jié)點(diǎn)生成的ID不會(huì)重復(fù)。
當(dāng)前技術(shù)中,通常采用UUID(Universally Unique Identifier,通用唯一識(shí)別碼)來(lái)保證每個(gè)節(jié)點(diǎn)生成的ID不會(huì)重復(fù)。UUID是指在一臺(tái)機(jī)器上生成的數(shù)字,它保證對(duì)在同一時(shí)空中所有機(jī)器的UUID都是唯一的。
然而,采用UUID作為唯一標(biāo)識(shí)符的做法會(huì)存在以下問(wèn)題:一、一個(gè)UUID由32個(gè)16進(jìn)制數(shù)構(gòu)成,從而導(dǎo)致UUID所形成的標(biāo)識(shí)符長(zhǎng)度過(guò)長(zhǎng),可讀性較差。二、在生成UUID的過(guò)程中要使用強(qiáng)隨機(jī)數(shù),性能較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種標(biāo)識(shí)符生成裝置及方法,旨在解決現(xiàn)有的應(yīng)用服務(wù)器中訪問(wèn)請(qǐng)求對(duì)應(yīng)的標(biāo)識(shí)符長(zhǎng)度長(zhǎng),性能差的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種標(biāo)識(shí)符生成裝置,所述標(biāo)識(shí)符生成裝置包括:
獲取模塊,用于當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的網(wǎng)際互聯(lián)協(xié)議IP地址;
編碼模塊,用于對(duì)所述啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的所述啟動(dòng)時(shí)間和IP地址;
所述獲取模塊還用于獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,按照預(yù)設(shè)規(guī)則改變所述變量對(duì)應(yīng)的值,得到新的變量;
拼接模塊,用于將所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
可選地,所述編碼模塊包括:
第一轉(zhuǎn)換單元,用于將所述啟動(dòng)時(shí)間和IP地址按照對(duì)應(yīng)的編碼規(guī)則轉(zhuǎn)換為16進(jìn)制的數(shù)字;
第二轉(zhuǎn)換單元,用于將所述16進(jìn)制的數(shù)字轉(zhuǎn)換為64進(jìn)制的數(shù)字,得到編碼后的所述啟動(dòng)時(shí)間和IP地址。
可選地,所述標(biāo)識(shí)符生成裝置還包括:
設(shè)置模塊,用于設(shè)置所述標(biāo)識(shí)符的分隔符和所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址的拼接順序;
所述拼接模塊還用于根據(jù)所述分隔符和所述拼接順序?qū)⑺鲂碌淖兞?、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
可選地,所述獲取模塊還用于獲取所述訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令,確定所述訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù);
所述標(biāo)識(shí)符生成裝置還包括存儲(chǔ)模塊,用于若所述訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,則根據(jù)所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。
可選地,所述獲取模塊還用于當(dāng)偵測(cè)到所述應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)所述啟動(dòng)時(shí)間和IP地址。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種標(biāo)識(shí)符生成方法,所述標(biāo)識(shí)符生成方法包括:
當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的網(wǎng)際互聯(lián)協(xié)議IP地址;
對(duì)所述啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的所述啟動(dòng)時(shí)間和IP地址;
獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,按照預(yù)設(shè)規(guī)則改變所述變量對(duì)應(yīng)的值,得到新的變量;
將所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
可選地,所述對(duì)所述啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的所述啟動(dòng)時(shí)間和IP地址的步驟包括:
將所述啟動(dòng)時(shí)間和IP地址按照對(duì)應(yīng)的編碼規(guī)則轉(zhuǎn)換為16進(jìn)制的數(shù)字;
將所述16進(jìn)制的數(shù)字轉(zhuǎn)換為64進(jìn)制的數(shù)字,得到編碼后的所述啟動(dòng)時(shí)間和IP地址。
可選地,所述獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,按照預(yù)設(shè)規(guī)則改變所述變量對(duì)應(yīng)的值,得到新的變量的步驟之后,還包括:
設(shè)置所述標(biāo)識(shí)符的分隔符和所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址的拼接順序;
所述將所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的步驟包括:
根據(jù)所述分隔符和所述拼接順序?qū)⑺鲂碌淖兞?、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
可選地,所述將所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的步驟之后,還包括:
獲取所述訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令,確定所述訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù);
若所述訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,則根據(jù)所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。
可選地,所述當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的IP地址的步驟之前,還包括:
當(dāng)偵測(cè)到所述應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)所述啟動(dòng)時(shí)間和IP地址。
本發(fā)明通過(guò)當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),對(duì)預(yù)先存儲(chǔ)的所述應(yīng)用的啟動(dòng)時(shí)間和所述應(yīng)用服務(wù)器的IP地址進(jìn)行編碼,得到編碼后的所述啟動(dòng)時(shí)間和IP地址,并按照預(yù)設(shè)規(guī)則改變所獲取的上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量對(duì)應(yīng)的值,得到新的變量,將所述新的變量、編碼后的所述啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,生成所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符??s短了所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的長(zhǎng)度和所述標(biāo)識(shí)符的生成時(shí)間,提高了所述訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的性能。
附圖說(shuō)明
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例一個(gè)可選的移動(dòng)終端的硬件結(jié)構(gòu)示意圖;
圖2為如圖1所示的移動(dòng)終端的無(wú)線通信系統(tǒng)示意圖;
圖3為本發(fā)明標(biāo)識(shí)符生成裝置第一實(shí)施例的模塊示意圖;
圖4為本發(fā)明實(shí)施例中編碼模塊的一種模塊示意圖;
圖5為本發(fā)明標(biāo)識(shí)符生成裝置第三實(shí)施例的模塊示意圖;
圖6為本發(fā)明標(biāo)識(shí)符生成裝置第四實(shí)施例的模塊示意圖;
圖7為本發(fā)明標(biāo)識(shí)符生成方法第一實(shí)施例的流程示意圖;
圖8為本發(fā)明實(shí)施例中對(duì)所述啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的所述啟動(dòng)時(shí)間和IP地址的一種流程示意圖;
圖9為本發(fā)明標(biāo)識(shí)符生成方法第三實(shí)施例的流程示意圖;
圖10為本發(fā)明標(biāo)識(shí)符生成方法第四實(shí)施例的流程示意圖;
圖11為本發(fā)明標(biāo)識(shí)符生成方法第五實(shí)施例的流程示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說(shuō)明,其本身并沒(méi)有特定的意義。因此,"模塊"與"部件"可以混合地使用。
移動(dòng)終端可以以各種形式來(lái)實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個(gè)人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字TV、臺(tái)式計(jì)算機(jī)等等的固定終端。下面,假設(shè)終端是移動(dòng)終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例一個(gè)可選的移動(dòng)終端的硬件結(jié)構(gòu)示意圖。
移動(dòng)終端100可以包括用戶輸入單元130、存儲(chǔ)器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動(dòng)終端,但是應(yīng)理解的是,并不要求實(shí)施所有示出的組件。可以替代地實(shí)施更多或更少的組件。將在下面詳細(xì)描述移動(dòng)終端的元件。
用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動(dòng)終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋?zhàn)衅?、觸摸板(例如,檢測(cè)由于被接觸而導(dǎo)致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。
接口單元170用作至少一個(gè)外部裝置與移動(dòng)終端100連接可以通過(guò)的接口。例如,外部裝置可以包括有線或無(wú)線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無(wú)線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機(jī)端口等等。識(shí)別模塊可以是存儲(chǔ)用于驗(yàn)證用戶使用移動(dòng)終端100的各種信息并且可以包括用戶識(shí)別模塊(UIM)、客戶識(shí)別模塊(SIM)、通用客戶識(shí)別模塊(USIM)等等。另外,具有識(shí)別模塊的裝置(下面稱為"識(shí)別裝置")可以采取智能卡的形式,因此,識(shí)別裝置可以經(jīng)由端口或其它連接裝置與移動(dòng)終端100連接。接口單元170可以用于接收來(lái)自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿?dòng)終端100內(nèi)的一個(gè)或多個(gè)元件或者可以用于在移動(dòng)終端和外部裝置之間傳輸數(shù)據(jù)。
另外,當(dāng)移動(dòng)終端100與外部底座連接時(shí),接口單元170可以用作允許通過(guò)其將電力從底座提供到移動(dòng)終端100的路徑或者可以用作允許從底座輸入的各種命令信號(hào)通過(guò)其傳輸?shù)揭苿?dòng)終端的路徑。從底座輸入的各種命令信號(hào)或電力可以用作用于識(shí)別移動(dòng)終端是否準(zhǔn)確地安裝在底座上的信號(hào)。
存儲(chǔ)器160可以存儲(chǔ)由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時(shí)地存儲(chǔ)己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲(chǔ)器160可以存儲(chǔ)關(guān)于當(dāng)觸摸施加到觸摸屏?xí)r輸出的各種方式的振動(dòng)和音頻信號(hào)的數(shù)據(jù)。
存儲(chǔ)器160可以包括至少一種類型的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲(chǔ)器(例如,SD或DX存儲(chǔ)器等等)、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、可編程只讀存儲(chǔ)器(PROM)、磁性存儲(chǔ)器、磁盤、光盤等等。而且,移動(dòng)終端100可以與通過(guò)網(wǎng)絡(luò)連接執(zhí)行存儲(chǔ)器160的存儲(chǔ)功能的網(wǎng)絡(luò)存儲(chǔ)裝置協(xié)作。
控制器180通常控制移動(dòng)終端的總體操作。例如,控制器180執(zhí)行與語(yǔ)音通話、數(shù)據(jù)通信、視頻通話等等相關(guān)的控制和處理。另外,控制器180可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊1810,多媒體模塊1810可以構(gòu)造在控制器180內(nèi),或者可以構(gòu)造為與控制器180分離??刂破?80可以執(zhí)行模式識(shí)別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識(shí)別為字符或圖像。
電源單元190在控制器180的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?/p>
這里描述的各種實(shí)施方式可以以使用例如計(jì)算機(jī)軟件、硬件或其任何組合的計(jì)算機(jī)可讀介質(zhì)來(lái)實(shí)施。對(duì)于硬件實(shí)施,這里描述的實(shí)施方式可以通過(guò)使用特定用途集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設(shè)計(jì)為執(zhí)行這里描述的功能的電子單元中的至少一種來(lái)實(shí)施,在一些情況下,這樣的實(shí)施方式可以在控制器180中實(shí)施。對(duì)于軟件實(shí)施,諸如過(guò)程或功能的實(shí)施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來(lái)實(shí)施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z(yǔ)言編寫的軟件應(yīng)用程序(或程序)來(lái)實(shí)施,軟件代碼可以存儲(chǔ)在存儲(chǔ)器160中并且由控制器180執(zhí)行。
至此,己經(jīng)按照其功能描述了移動(dòng)終端。下面,為了簡(jiǎn)要起見,將描述諸如折疊型、直板型、擺動(dòng)型、滑動(dòng)型移動(dòng)終端等等的各種類型的移動(dòng)終端中的滑動(dòng)型移動(dòng)終端作為示例。因此,本發(fā)明能夠應(yīng)用于任何類型的移動(dòng)終端,并且不限于滑動(dòng)型移動(dòng)終端。
如圖1中所示的移動(dòng)終端100可以被構(gòu)造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無(wú)線通信系統(tǒng)以及基于衛(wèi)星的通信系統(tǒng)來(lái)操作。
現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動(dòng)終端能夠操作的通信系統(tǒng)。
這樣的通信系統(tǒng)可以使用不同的空中接口和/或物理層。例如,由通信系統(tǒng)使用的空中接口包括例如頻分多址(FDMA)、時(shí)分多址(TDMA)、碼分多址(CDMA)和通用移動(dòng)通信系統(tǒng)(UMTS)(特別地,長(zhǎng)期演進(jìn)(LTE))、全球移動(dòng)通信系統(tǒng)(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信系統(tǒng),但是這樣的教導(dǎo)同樣適用于其它類型的系統(tǒng)。
參考圖2,CDMA無(wú)線通信系統(tǒng)可以包括多個(gè)移動(dòng)終端100、多個(gè)基站(BS)270、基站控制器(BSC)275和移動(dòng)交換中心(MSC)280。MSC280被構(gòu)造為與公共電話交換網(wǎng)絡(luò)(PSTN)290形成接口。MSC280還被構(gòu)造為與可以經(jīng)由回程線路耦接到基站270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來(lái)構(gòu)造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統(tǒng)可以包括多個(gè)BSC2750。
每個(gè)BS270可以服務(wù)一個(gè)或多個(gè)分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個(gè)分區(qū)放射狀地遠(yuǎn)離BS270?;蛘撸總€(gè)分區(qū)可以由用于分集接收的兩個(gè)或更多天線覆蓋。每個(gè)BS270可以被構(gòu)造為支持多個(gè)頻率分配,并且每個(gè)頻率分配具有特定頻譜(例如,1.25MHz,5MHz等等)。
分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子系統(tǒng)(BTS)或者其它等效術(shù)語(yǔ)。在這樣的情況下,術(shù)語(yǔ)"基站"可以用于籠統(tǒng)地表示單個(gè)BSC275和至少一個(gè)BS270。基站也可以被稱為"蜂窩站"?;蛘撸囟˙S270的各分區(qū)可以被稱為多個(gè)蜂窩站。
如圖2中所示,廣播發(fā)射器(BT)295將廣播信號(hào)發(fā)送給在系統(tǒng)內(nèi)操作的移動(dòng)終端100。在圖2中,示出了幾個(gè)全球定位系統(tǒng)(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個(gè)移動(dòng)終端100中的至少一個(gè)。
在圖2中,描繪了多個(gè)衛(wèi)星300,但是理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。替代GPS跟蹤技術(shù)或者在GPS跟蹤技術(shù)之外,可以使用可以跟蹤移動(dòng)終端的位置的其它技術(shù)。另外,至少一個(gè)GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
作為無(wú)線通信系統(tǒng)的一個(gè)典型操作,BS270接收來(lái)自各種移動(dòng)終端100的反向鏈路信號(hào)。移動(dòng)終端100通常參與通話、消息收發(fā)和其它類型的通信。特定基站270接收的每個(gè)反向鏈路信號(hào)被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275。BSC提供通話資源分配和包括BS270之間的軟切換過(guò)程的協(xié)調(diào)的移動(dòng)管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號(hào)發(fā)送到移動(dòng)終端100。
基于上述移動(dòng)終端硬件結(jié)構(gòu)以及通信系統(tǒng),提出本發(fā)明方法各個(gè)實(shí)施例。
參照?qǐng)D3,圖3為本發(fā)明標(biāo)識(shí)符生成裝置第一實(shí)施例的模塊示意圖。
需要強(qiáng)調(diào)的是,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),圖3所示模塊圖僅僅是一個(gè)較佳實(shí)施例的示例圖,本領(lǐng)域的技術(shù)人員圍繞圖3所示的標(biāo)識(shí)符生成裝置的模塊,可輕易進(jìn)行新的模塊的補(bǔ)充;各模塊的名稱是自定義名稱,僅用于輔助理解該標(biāo)識(shí)符生成裝置的各個(gè)程序功能塊,不用于限定本發(fā)明的技術(shù)方案,本發(fā)明技術(shù)方案的核心是,各自定義名稱的模塊所要達(dá)成的功能。
本實(shí)施例提出一種標(biāo)識(shí)符生成裝置,標(biāo)識(shí)符生成裝置包括:
獲取模塊10,用于當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的網(wǎng)際互聯(lián)協(xié)議IP地址;
編碼模塊20,用于對(duì)啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的啟動(dòng)時(shí)間和IP地址;
當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取模塊10獲取預(yù)先存儲(chǔ)的該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用服務(wù)器的IP(Internet Protocol,網(wǎng)際互聯(lián)協(xié)議)地址。其中,該訪問(wèn)請(qǐng)求為用戶向應(yīng)用服務(wù)器發(fā)送一系列操作請(qǐng)求,如查詢請(qǐng)求、瀏覽請(qǐng)求等。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址,以此來(lái)屏蔽物理地址的差異。需要說(shuō)明的是,應(yīng)用服務(wù)器中安裝了一個(gè)或者多個(gè)應(yīng)用,同一個(gè)應(yīng)用服務(wù)器中的各個(gè)應(yīng)用的IP地址是一致的。可以理解的是,在本實(shí)施例中,應(yīng)用服務(wù)器可以理解為一個(gè)終端,應(yīng)用服務(wù)器中安裝的應(yīng)用可以理解為終端中安裝的不同應(yīng)用,如淘寶、網(wǎng)易新聞等。
當(dāng)獲取模塊10獲取到應(yīng)用服務(wù)器的IP地址和接收到訪問(wèn)請(qǐng)求的應(yīng)用的啟動(dòng)時(shí)間時(shí),編碼模塊20對(duì)獲取模塊10所獲取的IP地址和啟動(dòng)時(shí)間進(jìn)行編碼,以縮短該IP地址和啟動(dòng)時(shí)間字符的長(zhǎng)度,得到編碼后的啟動(dòng)時(shí)間和IP地址。
獲取模塊10還用于獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,按照預(yù)設(shè)規(guī)則改變變量對(duì)應(yīng)的值,得到新的變量;
當(dāng)?shù)玫骄幋a后的IP地址和啟動(dòng)時(shí)間后,獲取模塊10獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,并按照預(yù)設(shè)規(guī)則改變?cè)撟兞繉?duì)應(yīng)的值,得到新的變量。需要說(shuō)明的是,該變量可以理解為一個(gè)自增的ID。預(yù)設(shè)規(guī)則為每次接收到訪問(wèn)請(qǐng)求后,獲取到上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量時(shí),該變量所對(duì)應(yīng)的值的變化規(guī)律。如將該變量的值每次增加一,或者增加二,或者減小相應(yīng)的數(shù)值等。在本實(shí)施例中,每次獲取到該自增ID,都會(huì)將自增ID對(duì)應(yīng)的值加一,以得到新的自增ID。
進(jìn)一步地,考慮到多線程的環(huán)境,即同時(shí)接收到多個(gè)用戶的訪問(wèn)請(qǐng)求時(shí),采用線程安全的長(zhǎng)整型來(lái)表示該變量,以使每個(gè)線程都能得到不同的變量,即使每個(gè)訪問(wèn)請(qǐng)求對(duì)應(yīng)著不同的自增ID。其中,長(zhǎng)整型是程序設(shè)計(jì)中數(shù)據(jù)類型的一種表現(xiàn)方式,通常用long表示長(zhǎng)整型,long表示有符號(hào)64位整數(shù),其范圍是-2^63至2^63-1Int64,unsigned long表示無(wú)符號(hào)64位整數(shù),其范圍是0-2^64至1 UInt64。
如在Java中,使用“private static AtomicLong lastId=new AtomicLong();”進(jìn)行該變量的聲明。
拼接模塊30,用于將新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
當(dāng)?shù)玫叫碌淖兞恐螅唇幽K30將該新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,該拼接所得的結(jié)果即為該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的標(biāo)識(shí)符,該標(biāo)識(shí)符中包含了該應(yīng)用服務(wù)器的IP地址和啟動(dòng)時(shí)間,同時(shí)還包括了一個(gè)唯一的變量,該標(biāo)識(shí)符可以唯一區(qū)分該訪問(wèn)請(qǐng)求,即可以通過(guò)該標(biāo)識(shí)符,確定該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的應(yīng)用服務(wù)器,以及確定該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的應(yīng)用,同時(shí)通過(guò)該標(biāo)識(shí)符可以區(qū)分用一應(yīng)用中的不同訪問(wèn)請(qǐng)求。且在分布式環(huán)境中,由于該標(biāo)識(shí)符中含有應(yīng)用服務(wù)器的IP地址,因此可以區(qū)分各個(gè)訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器。當(dāng)分布式系統(tǒng)中的某個(gè)訪問(wèn)請(qǐng)求出現(xiàn)故障時(shí),可以通過(guò)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符確定該訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器,以便于進(jìn)行故障排查。同時(shí),在分布式環(huán)境中,通過(guò)不同訪問(wèn)請(qǐng)求所對(duì)應(yīng)的標(biāo)識(shí)符,確定各個(gè)應(yīng)用服務(wù)器對(duì)應(yīng)的訪問(wèn)請(qǐng)求,便于進(jìn)行數(shù)據(jù)分析。以解決在使用UUID作為訪問(wèn)請(qǐng)求的標(biāo)識(shí)符時(shí),在分布式環(huán)境中不能確定各個(gè)訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器的問(wèn)題。
進(jìn)一步地,還可以根據(jù)需要在生成標(biāo)識(shí)符的過(guò)程,添加應(yīng)用服務(wù)器的主機(jī)號(hào)等信息。
需要說(shuō)明的是,在對(duì)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接過(guò)程中,新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者之間拼接的先后順序可以根據(jù)需要而設(shè)置,如可以設(shè)置為新的變量在前面,編碼后的啟動(dòng)時(shí)間在中間,編碼后的IP地址在后面;或者設(shè)置為編碼后的時(shí)間在前面,新的變量在中間,編碼后的IP地址在后面。
在本實(shí)施例中,并不需要獲取強(qiáng)隨機(jī)數(shù)生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,提高了生成訪問(wèn)請(qǐng)求標(biāo)識(shí)符的速率。經(jīng)過(guò)測(cè)試可知,生成一千萬(wàn)次UUID平均需要耗時(shí)7秒,而通過(guò)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符只需要1.2秒。
本實(shí)施例通過(guò)當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),對(duì)預(yù)先存儲(chǔ)的應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的IP地址進(jìn)行編碼,得到編碼后的啟動(dòng)時(shí)間和IP地址,并按照預(yù)設(shè)規(guī)則改變所獲取的上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量對(duì)應(yīng)的值,得到新的變量,將新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符??s短了訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的長(zhǎng)度和標(biāo)識(shí)符的生成時(shí)間,提高了訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的性能。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成裝置第二實(shí)施例。
標(biāo)識(shí)符生成裝置第二實(shí)施例與標(biāo)識(shí)符生成裝置第一實(shí)施例的區(qū)別在于,參照?qǐng)D4,編碼模塊20包括:
第一轉(zhuǎn)換單元21,用于將啟動(dòng)時(shí)間和IP地址按照對(duì)應(yīng)的編碼規(guī)則轉(zhuǎn)換為16進(jìn)制的數(shù)字;
第二轉(zhuǎn)換單元22,用于將16進(jìn)制的數(shù)字轉(zhuǎn)換為64進(jìn)制的數(shù)字,得到編碼后的啟動(dòng)時(shí)間和IP地址。
需要說(shuō)明的是,IP地址是一個(gè)32位的二進(jìn)制數(shù),通常被分割為4個(gè)“8位二進(jìn)制數(shù)”(也就是4個(gè)字節(jié))。IP地址通常用“點(diǎn)分十進(jìn)制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進(jìn)制整數(shù),如IP地址可表示為255.255.255.255。
當(dāng)獲取模塊10獲取到應(yīng)用服務(wù)器的IP地址時(shí),按照編碼IP地址的編碼規(guī)則對(duì)該IP地址進(jìn)行編碼的過(guò)程為:獲取IP地址中的4個(gè)“8位二進(jìn)制數(shù)”,具體地,可以通過(guò)小數(shù)點(diǎn)區(qū)分IP地址中4個(gè)“8位二進(jìn)制數(shù)”,以獲取該IP地址中的4個(gè)“8位二進(jìn)制數(shù)”。當(dāng)?shù)玫絀P地址中的“8位二進(jìn)制數(shù)”時(shí),第一轉(zhuǎn)換單元21將各個(gè)“8位二進(jìn)制數(shù)”轉(zhuǎn)換為2位的16進(jìn)制數(shù),得到與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)。如當(dāng)該IP地址為255.255.255.255,對(duì)該IP地址進(jìn)行編碼后,所得與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)為FFFFFFFF。然后第二轉(zhuǎn)換單元22將與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)轉(zhuǎn)換為64進(jìn)制數(shù),即得到64進(jìn)制的IP地址,改64進(jìn)制的IP地址即為編碼后的IP地址,即用a-z、A-Z和“-”這64個(gè)字符來(lái)表示IP地址。通過(guò)該編碼規(guī)則得到的IP地址的字符長(zhǎng)度短于采用Base64編碼方式得到IP地址。
當(dāng)獲取到應(yīng)用服務(wù)器的啟動(dòng)時(shí)間,按照與啟動(dòng)時(shí)間對(duì)應(yīng)的編碼規(guī)則編碼該啟動(dòng)時(shí)間。需要說(shuō)明的是,在本實(shí)施例中,應(yīng)用服務(wù)器的啟動(dòng)時(shí)間是一個(gè)長(zhǎng)整型的時(shí)間戳,該時(shí)間戳包含了應(yīng)用服務(wù)器啟動(dòng)時(shí)間的年、月、日、時(shí)、分、秒和毫秒,即所獲取的啟動(dòng)時(shí)間具體到該應(yīng)用服務(wù)器啟動(dòng)的年、月、日、時(shí)、分、秒和毫秒。按照與啟動(dòng)時(shí)間對(duì)應(yīng)的編碼規(guī)則編碼該啟動(dòng)時(shí)間具體過(guò)程為:第一轉(zhuǎn)換單元21將啟動(dòng)時(shí)間的時(shí)間戳轉(zhuǎn)換為16進(jìn)制的時(shí)間戳,然后第二轉(zhuǎn)換單元22將16進(jìn)制的時(shí)間戳轉(zhuǎn)換為64進(jìn)制的時(shí)間戳,得到以64進(jìn)制數(shù)表示的啟動(dòng)時(shí)間。
本實(shí)施例通過(guò)將應(yīng)用服務(wù)器的IP地址和應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)時(shí)間轉(zhuǎn)換成64進(jìn)制數(shù)來(lái)表示,縮短了IP地址和啟動(dòng)時(shí)間字符的長(zhǎng)度,提高了生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的速率。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成裝置第三實(shí)施例。
標(biāo)識(shí)符生成裝置第三實(shí)施例與標(biāo)識(shí)符生成裝置第一實(shí)施例的區(qū)別在于,參照?qǐng)D5,標(biāo)識(shí)符生成裝置還包括:
設(shè)置模塊40,用于設(shè)置標(biāo)識(shí)符的分隔符和新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序;
拼接模塊30還用于根據(jù)分隔符和拼接順序?qū)⑿碌淖兞?、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
在得到編碼后的IP地址、編碼后的啟動(dòng)時(shí)間和新的變量之后,設(shè)置模塊40設(shè)置該訪問(wèn)請(qǐng)求標(biāo)識(shí)符的分隔符,以及該新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序。具體地,標(biāo)識(shí)符的分隔符可為小數(shù)點(diǎn)或者其它可以區(qū)分不同數(shù)據(jù)的符號(hào),如頓號(hào)等。新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者之間的拼接順序可以根據(jù)需要而設(shè)置。
在對(duì)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者進(jìn)行拼接以得到訪問(wèn)請(qǐng)求的標(biāo)識(shí)符時(shí),拼接模塊30根據(jù)分隔符和拼接順序?qū)⑿碌淖兞?、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。如當(dāng)分隔符為“.”,新的變量為A,編碼后的IP地址為B,編碼后的啟動(dòng)時(shí)間為C,拼接順序?yàn)锽AC時(shí),所得的標(biāo)識(shí)符為“B.A.C”。
本實(shí)施例通過(guò)根據(jù)所設(shè)置分隔符和新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,提高了所生成的標(biāo)識(shí)符的可讀性,同時(shí)也可以快速確定訪問(wèn)請(qǐng)求所屬應(yīng)用服務(wù)器以及所對(duì)應(yīng)的應(yīng)用。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成裝置第四實(shí)施例。
標(biāo)識(shí)符生成裝置第四實(shí)施例與標(biāo)識(shí)符生成裝置第一實(shí)施例的區(qū)別在于,參照?qǐng)D6,獲取模塊10還用于獲取訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令,確定訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù);
標(biāo)識(shí)符生成裝置還包括存儲(chǔ)模塊50,用于若訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,則根據(jù)訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。
當(dāng)獲取模塊10獲取到訪問(wèn)應(yīng)用服務(wù)器的訪問(wèn)請(qǐng)求時(shí),獲取該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的操作指令,確定該訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù)。若該訪問(wèn)請(qǐng)求只對(duì)應(yīng)著一個(gè)操作指令,存儲(chǔ)模塊50則直接存儲(chǔ)該訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的日志。若該訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,存儲(chǔ)模塊50則根據(jù)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。如某用戶通過(guò)移動(dòng)終端向應(yīng)用服務(wù)器發(fā)送了一個(gè)訪問(wèn)請(qǐng)求,該訪問(wèn)請(qǐng)求中包含了5次查詢操作,則通過(guò)唯一標(biāo)識(shí)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將這5次查詢操作對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ),即將含有相同標(biāo)識(shí)符的查詢操作進(jìn)行串聯(lián)存儲(chǔ),以供后續(xù)對(duì)該應(yīng)用服務(wù)器中的訪問(wèn)請(qǐng)求進(jìn)行日志分析。
本實(shí)施例通過(guò)根據(jù)標(biāo)識(shí)符將訪問(wèn)請(qǐng)求對(duì)應(yīng)的多個(gè)操作指令所對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ),以供后續(xù)在對(duì)訪問(wèn)請(qǐng)求進(jìn)行日志分析過(guò)程中,可以快速找到不同訪問(wèn)請(qǐng)求所對(duì)應(yīng)的日志,提高對(duì)訪問(wèn)請(qǐng)求進(jìn)行日志分析的效率。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成裝置第五實(shí)施例。
標(biāo)識(shí)符生成裝置第五實(shí)施例與標(biāo)識(shí)符生成裝置第一實(shí)施例的區(qū)別在于,參照?qǐng)D3,獲取模塊10還用于當(dāng)偵測(cè)到應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)啟動(dòng)時(shí)間和IP地址。
當(dāng)偵測(cè)到應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取模塊10獲取該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用所在的應(yīng)用服務(wù)器的IP地址。當(dāng)獲取到該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用所在的應(yīng)用服務(wù)器的IP地址后,存儲(chǔ)所獲取的IP地址和啟動(dòng)時(shí)間。其中,在獲取應(yīng)用服務(wù)器的IP地址時(shí),可以根據(jù)該應(yīng)用服務(wù)器所使用的編譯語(yǔ)言的不同,采取與該編譯語(yǔ)言對(duì)應(yīng)的方法獲取該應(yīng)用服務(wù)器的IP地址。
如在Java中,可以通過(guò)NetworkInterface接口來(lái)獲取該應(yīng)用服務(wù)器的IP地址,具體為通過(guò)NetworkInterface.getNetworkInterfaces()來(lái)獲取NetworkInterface對(duì)象集合,然后遍歷該集合中的每個(gè)NetworkInterface,通過(guò)getInetAddresses方法來(lái)獲取InetAddress集合,篩選符合條件的InetAddress對(duì)象。在篩選過(guò)程中,包括過(guò)濾內(nèi)網(wǎng)InetAddress對(duì)象和本地InetAddress對(duì)象。通常情況下,只會(huì)有一個(gè)符合條件的InetAddress對(duì)象,然后通過(guò)getHostAddress方法可以獲取當(dāng)前符合條件的InetAddress對(duì)象的IP地址。上述InetAddress對(duì)象指的是Java對(duì)IP地址的封裝,它的實(shí)例對(duì)象包含以數(shù)字形式保存的IP地址,同時(shí)還可能包含主機(jī)名。InetAddress類提供了將主機(jī)名解析為IP地址的方法。NetworkInterface類指的是Java提供的一個(gè)類,這個(gè)類可以得到應(yīng)用服務(wù)器中所有的物理網(wǎng)絡(luò)接口和虛擬機(jī)等軟件利用應(yīng)用服務(wù)器的物理網(wǎng)絡(luò)接口創(chuàng)建的邏輯網(wǎng)絡(luò)接口的信息。而NetworkInterface對(duì)象集合指的是該應(yīng)用服務(wù)器所有的物理和邏輯的網(wǎng)絡(luò)接口。
在獲取該應(yīng)用的啟動(dòng)時(shí)間過(guò)程中,可以通過(guò)靜態(tài)變量在該應(yīng)用啟動(dòng)過(guò)程中,獲取該應(yīng)用的啟動(dòng)時(shí)間時(shí),即通過(guò)靜態(tài)變量在該應(yīng)用程序初始化的時(shí)候獲取該應(yīng)用的啟動(dòng)時(shí)間。例如,在Java中,通過(guò)采用“private static final Long startTimeStamp=System.currentTimeMillis();”獲取應(yīng)用的啟動(dòng)時(shí)間。
本實(shí)施例通過(guò)在應(yīng)用啟動(dòng)時(shí)獲取其啟動(dòng)時(shí)間,并獲取應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)所獲取的啟動(dòng)時(shí)間和IP地址,使得在后續(xù)生成標(biāo)識(shí)符過(guò)程中,不需要再去獲取IP地址和啟動(dòng)時(shí)間,提高了訪問(wèn)請(qǐng)求標(biāo)識(shí)符的生成速率。
本發(fā)明還提供一種標(biāo)識(shí)符生成方法。
參照?qǐng)D7,圖7為本發(fā)明標(biāo)識(shí)符生成方法第一實(shí)施例的流程示意圖。
本實(shí)施例提出一種標(biāo)識(shí)符生成方法,標(biāo)識(shí)符生成方法包括:
步驟S10,當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的網(wǎng)際互聯(lián)協(xié)議IP地址;
步驟S20,對(duì)啟動(dòng)時(shí)間和IP地址進(jìn)行編碼,得到編碼后的啟動(dòng)時(shí)間和IP地址;
當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),獲取預(yù)先存儲(chǔ)的該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用服務(wù)器的IP(Internet Protocol,網(wǎng)際互聯(lián)協(xié)議)地址。其中,該訪問(wèn)請(qǐng)求為用戶向應(yīng)用服務(wù)器發(fā)送一系列操作請(qǐng)求,如查詢請(qǐng)求、瀏覽請(qǐng)求等。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址,以此來(lái)屏蔽物理地址的差異。需要說(shuō)明的是,應(yīng)用服務(wù)器中安裝了一個(gè)或者多個(gè)應(yīng)用,同一個(gè)應(yīng)用服務(wù)器中的各個(gè)應(yīng)用的IP地址是一致的??梢岳斫獾氖?,在本實(shí)施例中,應(yīng)用服務(wù)器可以理解為一個(gè)終端,應(yīng)用服務(wù)器中安裝的應(yīng)用可以理解為終端中安裝的不同應(yīng)用,如淘寶、網(wǎng)易新聞等。
當(dāng)獲取到應(yīng)用服務(wù)器的IP地址和接收到訪問(wèn)請(qǐng)求的應(yīng)用的啟動(dòng)時(shí)間時(shí),對(duì)所獲取的IP地址和啟動(dòng)時(shí)間進(jìn)行編碼,以縮短該IP地址和啟動(dòng)時(shí)間字符的長(zhǎng)度,得到編碼后的啟動(dòng)時(shí)間和IP地址。
步驟S30,獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,按照預(yù)設(shè)規(guī)則改變變量對(duì)應(yīng)的值,得到新的變量;
當(dāng)?shù)玫骄幋a后的IP地址和啟動(dòng)時(shí)間后,獲取上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量,并按照預(yù)設(shè)規(guī)則改變?cè)撟兞繉?duì)應(yīng)的值,得到新的變量。需要說(shuō)明的是,該變量可以理解為一個(gè)自增的ID。預(yù)設(shè)規(guī)則為每次接收到訪問(wèn)請(qǐng)求后,獲取到上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量時(shí),該變量所對(duì)應(yīng)的值的變化規(guī)律。如將該變量的值每次增加一,或者增加二,或者減小相應(yīng)的數(shù)值等。在本實(shí)施例中,每次獲取到該自增ID,都會(huì)將自增ID對(duì)應(yīng)的值加一,以得到新的自增ID。
進(jìn)一步地,考慮到多線程的環(huán)境,即同時(shí)接收到多個(gè)用戶的訪問(wèn)請(qǐng)求時(shí),采用線程安全的長(zhǎng)整型來(lái)表示該變量,以使每個(gè)線程都能得到不同的變量,即使每個(gè)訪問(wèn)請(qǐng)求對(duì)應(yīng)著不同的自增ID。其中,長(zhǎng)整型是程序設(shè)計(jì)中數(shù)據(jù)類型的一種表現(xiàn)方式,通常用long表示長(zhǎng)整型,long表示有符號(hào)64位整數(shù),其范圍是-2^63至2^63-1Int64,unsigned long表示無(wú)符號(hào)64位整數(shù),其范圍是0-2^64至1 UInt64。
如在Java中,使用“private static AtomicLong lastId=new AtomicLong();”進(jìn)行該變量的聲明。
步驟S40,將新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
當(dāng)?shù)玫叫碌淖兞恐?,將該新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,該拼接所得的結(jié)果即為該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的標(biāo)識(shí)符,該標(biāo)識(shí)符中包含了該應(yīng)用服務(wù)器的IP地址和啟動(dòng)時(shí)間,同時(shí)還包括了一個(gè)唯一的變量,該標(biāo)識(shí)符可以唯一區(qū)分該訪問(wèn)請(qǐng)求,即可以通過(guò)該標(biāo)識(shí)符,確定該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的應(yīng)用服務(wù)器,以及確定該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的應(yīng)用,同時(shí)通過(guò)該標(biāo)識(shí)符可以區(qū)分用一應(yīng)用中的不同訪問(wèn)請(qǐng)求。且在分布式環(huán)境中,由于該標(biāo)識(shí)符中含有應(yīng)用服務(wù)器的IP地址,因此可以區(qū)分各個(gè)訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器。當(dāng)分布式系統(tǒng)中的某個(gè)訪問(wèn)請(qǐng)求出現(xiàn)故障時(shí),可以通過(guò)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符確定該訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器,以便于進(jìn)行故障排查。同時(shí),在分布式環(huán)境中,通過(guò)不同訪問(wèn)請(qǐng)求所對(duì)應(yīng)的標(biāo)識(shí)符,確定各個(gè)應(yīng)用服務(wù)器對(duì)應(yīng)的訪問(wèn)請(qǐng)求,便于進(jìn)行數(shù)據(jù)分析。以解決在使用UUID作為訪問(wèn)請(qǐng)求的標(biāo)識(shí)符時(shí),在分布式環(huán)境中不能確定各個(gè)訪問(wèn)請(qǐng)求所屬的應(yīng)用服務(wù)器的問(wèn)題。
需要說(shuō)明的是,在對(duì)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接過(guò)程中,新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者之間拼接的先后順序可以根據(jù)需要而設(shè)置,如可以設(shè)置為新的變量在前面,編碼后的啟動(dòng)時(shí)間在中間,編碼后的IP地址在后面;或者設(shè)置為編碼后的時(shí)間在前面,新的變量在中間,編碼后的IP地址在后面。
在本實(shí)施例中,并不需要獲取強(qiáng)隨機(jī)數(shù)生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,提高了生成訪問(wèn)請(qǐng)求標(biāo)識(shí)符的速率。經(jīng)過(guò)測(cè)試可知,生成一千萬(wàn)次UUID平均需要耗時(shí)7秒,而通過(guò)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符只需要1.2秒。
本實(shí)施例通過(guò)當(dāng)接收到當(dāng)前訪問(wèn)應(yīng)用服務(wù)器中應(yīng)用的訪問(wèn)請(qǐng)求時(shí),對(duì)預(yù)先存儲(chǔ)的應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的IP地址進(jìn)行編碼,得到編碼后的啟動(dòng)時(shí)間和IP地址,并按照預(yù)設(shè)規(guī)則改變所獲取的上一訪問(wèn)請(qǐng)求標(biāo)識(shí)符中的變量對(duì)應(yīng)的值,得到新的變量,將新的變量、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符??s短了訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的長(zhǎng)度和標(biāo)識(shí)符的生成時(shí)間,提高了訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的性能。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成方法第二實(shí)施例。
標(biāo)識(shí)符生成方法第二實(shí)施例與標(biāo)識(shí)符生成方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D8,步驟S20包括:
步驟S21,將啟動(dòng)時(shí)間和IP地址按照對(duì)應(yīng)的編碼規(guī)則轉(zhuǎn)換為16進(jìn)制的數(shù)字;
步驟S22,將16進(jìn)制的數(shù)字轉(zhuǎn)換為64進(jìn)制的數(shù)字,得到編碼后的啟動(dòng)時(shí)間和IP地址。
需要說(shuō)明的是,IP地址是一個(gè)32位的二進(jìn)制數(shù),通常被分割為4個(gè)“8位二進(jìn)制數(shù)”(也就是4個(gè)字節(jié))。IP地址通常用“點(diǎn)分十進(jìn)制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進(jìn)制整數(shù),如IP地址可表示為255.255.255.255。
當(dāng)獲取到應(yīng)用服務(wù)器的IP地址時(shí),按照編碼IP地址的編碼規(guī)則對(duì)該IP地址進(jìn)行編碼的過(guò)程為:獲取IP地址中的4個(gè)“8位二進(jìn)制數(shù)”,具體地,可以通過(guò)小數(shù)點(diǎn)區(qū)分IP地址中4個(gè)“8位二進(jìn)制數(shù)”,以獲取該IP地址中的4個(gè)“8位二進(jìn)制數(shù)”。當(dāng)?shù)玫絀P地址中的“8位二進(jìn)制數(shù)”時(shí),將各個(gè)“8位二進(jìn)制數(shù)”轉(zhuǎn)換為2位的16進(jìn)制數(shù),得到與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)。如當(dāng)該IP地址為255.255.255.255,對(duì)該IP地址進(jìn)行編碼后,所得與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)為FFFFFFFF。然后將與該IP地址對(duì)應(yīng)的16進(jìn)制數(shù)轉(zhuǎn)換為64進(jìn)制數(shù),即得到64進(jìn)制的IP地址,改64進(jìn)制的IP地址即為編碼后的IP地址,即用a-z、A-Z和“-”這64個(gè)字符來(lái)表示IP地址。通過(guò)該編碼規(guī)則得到的IP地址的字符長(zhǎng)度短于采用Base64編碼方式得到IP地址。
當(dāng)獲取到應(yīng)用服務(wù)器的啟動(dòng)時(shí)間,按照與啟動(dòng)時(shí)間對(duì)應(yīng)的編碼規(guī)則編碼該啟動(dòng)時(shí)間。需要說(shuō)明的是,在本實(shí)施例中,應(yīng)用服務(wù)器的啟動(dòng)時(shí)間是一個(gè)長(zhǎng)整型的時(shí)間戳,該時(shí)間戳包含了應(yīng)用服務(wù)器啟動(dòng)時(shí)間的年、月、日、時(shí)、分、秒和毫秒,即所獲取的啟動(dòng)時(shí)間具體到該應(yīng)用服務(wù)器啟動(dòng)的年、月、日、時(shí)、分、秒和毫秒。按照與啟動(dòng)時(shí)間對(duì)應(yīng)的編碼規(guī)則編碼該啟動(dòng)時(shí)間具體過(guò)程為:將啟動(dòng)時(shí)間的時(shí)間戳轉(zhuǎn)換為16進(jìn)制的時(shí)間戳,然后將16進(jìn)制的時(shí)間戳轉(zhuǎn)換為64進(jìn)制的時(shí)間戳,得到以64進(jìn)制數(shù)表示的啟動(dòng)時(shí)間。
本實(shí)施例通過(guò)將應(yīng)用服務(wù)器的IP地址和應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)時(shí)間轉(zhuǎn)換成64進(jìn)制數(shù)來(lái)表示,縮短了IP地址和啟動(dòng)時(shí)間字符的長(zhǎng)度,提高了生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符的速率。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成方法第三實(shí)施例。
標(biāo)識(shí)符生成方法第三實(shí)施例與標(biāo)識(shí)符生成方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D9,標(biāo)識(shí)符生成方法還包括:
步驟S50,設(shè)置標(biāo)識(shí)符的分隔符和新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序;
步驟S40包括步驟S41,根據(jù)分隔符和拼接順序?qū)⑿碌淖兞?、編碼后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。
在得到編碼后的IP地址、編碼后的啟動(dòng)時(shí)間和新的變量之后,設(shè)置該訪問(wèn)請(qǐng)求標(biāo)識(shí)符的分隔符,以及該新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序。具體地,標(biāo)識(shí)符的分隔符可為小數(shù)點(diǎn)或者其它可以區(qū)分不同數(shù)據(jù)的符號(hào),如頓號(hào)等。新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者之間的拼接順序可以根據(jù)需要而設(shè)置。
在對(duì)新的變量、編碼后的啟動(dòng)時(shí)間和IP地址三者進(jìn)行拼接以得到訪問(wèn)請(qǐng)求的標(biāo)識(shí)符時(shí),根據(jù)分隔符和拼接順序?qū)⑿碌淖兞俊⒕幋a后的啟動(dòng)時(shí)間和IP地址進(jìn)行拼接,以生成該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符。如當(dāng)分隔符為“.”,新的變量為A,編碼后的IP地址為B,編碼后的啟動(dòng)時(shí)間為C,拼接順序?yàn)锽AC時(shí),所得的標(biāo)識(shí)符為“B.A.C”。
本實(shí)施例通過(guò)根據(jù)所設(shè)置分隔符和新的變量、編碼后的啟動(dòng)時(shí)間和IP地址的拼接順序生成訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,提高了所生成的標(biāo)識(shí)符的可讀性,同時(shí)也可以快速確定訪問(wèn)請(qǐng)求所屬應(yīng)用服務(wù)器以及所對(duì)應(yīng)的應(yīng)用。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成方法第四實(shí)施例。
標(biāo)識(shí)符生成方法第四實(shí)施例與標(biāo)識(shí)符生成方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D10,標(biāo)識(shí)符生成方法還包括:
步驟S60,獲取訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令,確定訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù);
步驟S70,若訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,則根據(jù)訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。
當(dāng)獲取到訪問(wèn)應(yīng)用服務(wù)器的訪問(wèn)請(qǐng)求時(shí),獲取該訪問(wèn)請(qǐng)求所對(duì)應(yīng)的操作指令,確定該訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的個(gè)數(shù)。若該訪問(wèn)請(qǐng)求只對(duì)應(yīng)著一個(gè)操作指令,則直接存儲(chǔ)該訪問(wèn)請(qǐng)求對(duì)應(yīng)的操作指令的日志。若該訪問(wèn)請(qǐng)求至少對(duì)應(yīng)著兩個(gè)操作指令,則根據(jù)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將各個(gè)操作指令對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ)。如某用戶通過(guò)移動(dòng)終端向應(yīng)用服務(wù)器發(fā)送了一個(gè)訪問(wèn)請(qǐng)求,該訪問(wèn)請(qǐng)求中包含了5次查詢操作,則通過(guò)唯一標(biāo)識(shí)該訪問(wèn)請(qǐng)求的標(biāo)識(shí)符,將這5次查詢操作對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ),即將含有相同標(biāo)識(shí)符的查詢操作進(jìn)行串聯(lián)存儲(chǔ),以供后續(xù)對(duì)該應(yīng)用服務(wù)器中的訪問(wèn)請(qǐng)求進(jìn)行日志分析。
本實(shí)施例通過(guò)根據(jù)標(biāo)識(shí)符將訪問(wèn)請(qǐng)求對(duì)應(yīng)的多個(gè)操作指令所對(duì)應(yīng)的日志進(jìn)行串聯(lián)存儲(chǔ),以供后續(xù)在對(duì)訪問(wèn)請(qǐng)求進(jìn)行日志分析過(guò)程中,可以快速找到不同訪問(wèn)請(qǐng)求所對(duì)應(yīng)的日志,提高對(duì)訪問(wèn)請(qǐng)求進(jìn)行日志分析的效率。
進(jìn)一步地,提出本發(fā)明標(biāo)識(shí)符生成方法第五實(shí)施例。
標(biāo)識(shí)符生成方法第五實(shí)施例與標(biāo)識(shí)符生成方法第一實(shí)施例的區(qū)別在于,參照?qǐng)D11,標(biāo)識(shí)符生成方法還包括:
步驟S80,當(dāng)偵測(cè)到應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取應(yīng)用的啟動(dòng)時(shí)間和應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)啟動(dòng)時(shí)間和IP地址。
當(dāng)偵測(cè)到應(yīng)用服務(wù)器中應(yīng)用的啟動(dòng)操作時(shí),獲取該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用所在的應(yīng)用服務(wù)器的IP地址。當(dāng)獲取到該應(yīng)用的啟動(dòng)時(shí)間和該應(yīng)用所在的應(yīng)用服務(wù)器的IP地址后,存儲(chǔ)所獲取的IP地址和啟動(dòng)時(shí)間。其中,在獲取應(yīng)用服務(wù)器的IP地址時(shí),可以根據(jù)該應(yīng)用服務(wù)器所使用的編譯語(yǔ)言的不同,采取與該編譯語(yǔ)言對(duì)應(yīng)的方法獲取該應(yīng)用服務(wù)器的IP地址。
如在Java中,可以通過(guò)NetworkInterface接口來(lái)獲取該應(yīng)用服務(wù)器的IP地址,具體為通過(guò)NetworkInterface.getNetworkInterfaces()來(lái)獲取NetworkInterface對(duì)象集合,然后遍歷該集合中的每個(gè)NetworkInterface,通過(guò)getInetAddresses方法來(lái)獲取InetAddress集合,篩選符合條件的InetAddress對(duì)象。在篩選過(guò)程中,包括過(guò)濾內(nèi)網(wǎng)InetAddress對(duì)象和本地InetAddress對(duì)象。通常情況下,只會(huì)有一個(gè)符合條件的InetAddress對(duì)象,然后通過(guò)getHostAddress方法可以獲取當(dāng)前符合條件的InetAddress對(duì)象的IP地址。上述InetAddress對(duì)象指的是Java對(duì)IP地址的封裝,它的實(shí)例對(duì)象包含以數(shù)字形式保存的IP地址,同時(shí)還可能包含主機(jī)名。InetAddress類提供了將主機(jī)名解析為IP地址的方法。NetworkInterface類指的是Java提供的一個(gè)類,這個(gè)類可以得到應(yīng)用服務(wù)器中所有的物理網(wǎng)絡(luò)接口和虛擬機(jī)等軟件利用應(yīng)用服務(wù)器的物理網(wǎng)絡(luò)接口創(chuàng)建的邏輯網(wǎng)絡(luò)接口的信息。而NetworkInterface對(duì)象集合指的是該應(yīng)用服務(wù)器所有的物理和邏輯的網(wǎng)絡(luò)接口。
在獲取該應(yīng)用的啟動(dòng)時(shí)間過(guò)程中,可以通過(guò)靜態(tài)變量在該應(yīng)用啟動(dòng)過(guò)程中,獲取該應(yīng)用的啟動(dòng)時(shí)間時(shí),即通過(guò)靜態(tài)變量在該應(yīng)用程序初始化的時(shí)候獲取該應(yīng)用的啟動(dòng)時(shí)間。例如,在Java中,通過(guò)采用“private static final Long startTimeStamp=System.currentTimeMillis();”獲取應(yīng)用的啟動(dòng)時(shí)間。
本實(shí)施例通過(guò)在應(yīng)用啟動(dòng)時(shí)獲取其啟動(dòng)時(shí)間,并獲取應(yīng)用服務(wù)器的IP地址,并存儲(chǔ)所獲取的啟動(dòng)時(shí)間和IP地址,使得在后續(xù)生成標(biāo)識(shí)符過(guò)程中,不需要再去獲取IP地址和啟動(dòng)時(shí)間,提高了訪問(wèn)請(qǐng)求標(biāo)識(shí)符的生成速率。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒(méi)有明確列出的其它要素,或者是還包括為這種過(guò)程、方法、物品或者系統(tǒng)所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。