專(zhuān)利名稱(chēng):服務(wù)器及其數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通信數(shù)據(jù)處理領(lǐng)域,尤其涉及一種服務(wù)器及其數(shù)據(jù)處理方法。
背景技術(shù):
在現(xiàn)有技術(shù)中,客戶(hù)端瀏覽器與服務(wù)器之間的HTTP (Hyper Text Transfer I^otocol,超文本傳輸協(xié)議)連接是無(wú)狀態(tài)的。也就是說(shuō),瀏覽器和服務(wù)器每進(jìn)行一次HTTP 操作,就建立一次連接,但操作結(jié)束就中斷連接。如果客戶(hù)端瀏覽器訪問(wèn)的某個(gè)HTML (Hyper Text Markup Language,是為網(wǎng)頁(yè)創(chuàng)建設(shè)計(jì)的一種標(biāo)記語(yǔ)言)網(wǎng)頁(yè)或其他類(lèi)型的網(wǎng)頁(yè)中包含有其他的網(wǎng)絡(luò)資源,如JavaScript (客戶(hù)端網(wǎng)頁(yè)開(kāi)發(fā)的一種腳本語(yǔ)言)文件、圖像文件、 CSS(—種用來(lái)為結(jié)構(gòu)化文檔的計(jì)算機(jī)語(yǔ)言)文件等,當(dāng)瀏覽器每遇到這樣一個(gè)網(wǎng)絡(luò)資源, 就會(huì)和服務(wù)器之間建立一個(gè)HTTP連接,這樣的處理方法是非常浪費(fèi)時(shí)間的?;谏鲜鰡?wèn)題,現(xiàn)有技術(shù)中提供了一種長(zhǎng)連接處理方式。所謂長(zhǎng)連接,是指在一個(gè) HTTP連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,發(fā)送完畢后再斷開(kāi)連接。在連接保持期間,如果沒(méi)有數(shù)據(jù)包發(fā)送,則瀏覽器與服務(wù)器雙方需要發(fā)送鏈路檢測(cè)包。
發(fā)明內(nèi)容
本發(fā)明提供了一種服務(wù)器及其數(shù)據(jù)處理方法,旨在解決現(xiàn)有的服務(wù)器數(shù)據(jù)處理過(guò)程系統(tǒng)處理速度慢,線程及代碼之間的依賴(lài)關(guān)系高,難以進(jìn)行擴(kuò)展的問(wèn)題。本發(fā)明是這樣實(shí)現(xiàn)的,一種服務(wù)器數(shù)據(jù)處理方法,包括步驟a 接收客戶(hù)端發(fā)送的連接請(qǐng)求;步驟b 將所述連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包, 保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列;步驟c 將所述二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列;步驟d 根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理, 將處理結(jié)果和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列;步驟e 根據(jù)所述連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到所述連接請(qǐng)求,發(fā)送所述處理結(jié)果至所述客戶(hù)端。在本發(fā)明的技術(shù)方案中,所述步驟a進(jìn)一步包括為所述連接請(qǐng)求分配唯一的連接標(biāo)識(shí)。在本發(fā)明的技術(shù)方案中,所述步驟c進(jìn)一步包括讀取所述二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理,處理結(jié)果正常則繼續(xù)解析所述二元組請(qǐng)求數(shù)據(jù)包,否則生成異常處理信息,并將所述異常處理信息和所述連接標(biāo)識(shí)組成處理結(jié)果java 對(duì)象,保存到所述處理結(jié)果java對(duì)象隊(duì)列。在本發(fā)明的技術(shù)方案中,所述步驟d具體包括讀取所述合法請(qǐng)求java對(duì)象隊(duì)列, 根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,將所述空閑線程的狀態(tài)改變?yōu)槊β?,交給所述空閑線程處理所述類(lèi)型的業(yè)務(wù)邏輯,在處理完畢后將所述忙碌線程的狀態(tài)改變?yōu)榭臻e。在本發(fā)明的技術(shù)方案中,所述方法進(jìn)一步包括讀取所述請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求判斷所述連接請(qǐng)求是否存活,并在所述連接請(qǐng)求不存活后釋放所述連接請(qǐng)求的所有系統(tǒng)資源,將所述連接請(qǐng)求移出所述請(qǐng)求連接隊(duì)列。本發(fā)明的另一技術(shù)方案為一種服務(wù)器,包括請(qǐng)求接收模塊、二元組請(qǐng)求數(shù)據(jù)包形成模塊、java數(shù)據(jù)對(duì)象解析模塊、處理結(jié)果java對(duì)象形成模塊以及請(qǐng)求處理結(jié)果發(fā)送模塊,所述請(qǐng)求接收模塊用于接收客戶(hù)端發(fā)送的連接請(qǐng)求,所述二元組請(qǐng)求數(shù)據(jù)包形成模塊用于將所述連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,所述java數(shù)據(jù)對(duì)象解析模塊用于將所述二元組請(qǐng)求數(shù)據(jù)包解析為java 數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列,所述處理結(jié)果java對(duì)象形成模塊用于根據(jù)所述 java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列,所述請(qǐng)求處理結(jié)果發(fā)送模塊用于根據(jù)所述連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到所述連接請(qǐng)求,發(fā)送所述處理結(jié)果至所述客戶(hù)端。在本發(fā)明的技術(shù)方案中,所述服務(wù)器進(jìn)一步包括連接標(biāo)識(shí)分配模塊,所述連接標(biāo)識(shí)分配模塊用于為所述連接請(qǐng)求分配唯一的連接標(biāo)識(shí)。在本發(fā)明的技術(shù)方案中,所述服務(wù)器進(jìn)一步包括過(guò)濾器鏈處理模塊及異常處理信息生成模塊,所述過(guò)濾器鏈處理模塊用于讀取所述二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理,處理結(jié)果正常則繼續(xù)解析所述二元組請(qǐng)求數(shù)據(jù)包,否則通過(guò)所述異常處理信息生成模塊生成異常處理信息,并將所述異常處理信息和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到所述處理結(jié)果java對(duì)象隊(duì)列。在本發(fā)明的技術(shù)方案中,所述java數(shù)據(jù)對(duì)象解析模塊處理所述java數(shù)據(jù)對(duì)象的具體過(guò)程為讀取所述合法請(qǐng)求java對(duì)象隊(duì)列,根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,將所述空閑線程的狀態(tài)改變?yōu)槊β?,交給所述空閑線程處理所述類(lèi)型的業(yè)務(wù)邏輯,在處理完畢后將所述忙碌線程的狀態(tài)改變?yōu)榭臻e。在本發(fā)明的技術(shù)方案中,所述服務(wù)器進(jìn)一步連接請(qǐng)求存活判斷模塊及資源釋放模塊,所述連接請(qǐng)求存活判斷模塊用于讀取所述請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求判斷所述連接請(qǐng)求是否存活,所述資源釋放模塊用于在所述連接請(qǐng)求不存活后釋放所述連接請(qǐng)求的所有系統(tǒng)資源,將所述連接請(qǐng)求移出所述請(qǐng)求連接隊(duì)列。本發(fā)明的技術(shù)方案系統(tǒng)處理速度快,線程及代碼之間的依賴(lài)關(guān)系低,便于升級(jí)和維護(hù),系統(tǒng)邏輯過(guò)程無(wú)需更改,便可以擴(kuò)展到不同的業(yè)務(wù)規(guī)則和業(yè)務(wù)邏輯。
附圖1是本發(fā)明第一實(shí)施例的服務(wù)器數(shù)據(jù)處理方法的流程圖;附圖2是本發(fā)明第二實(shí)施例的服務(wù)器數(shù)據(jù)處理方法的流程圖;附圖3是本發(fā)明第一實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖;附圖4是本發(fā)明第二實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請(qǐng)參閱圖1,是本發(fā)明第一實(shí)施例的服務(wù)器數(shù)據(jù)處理方法的流程圖。本發(fā)明第一實(shí)施例的服務(wù)器數(shù)據(jù)處理方法包括以下步驟步驟101 接收客戶(hù)端發(fā)送的連接請(qǐng)求;在步驟101中,客戶(hù)端發(fā)送連接請(qǐng)求到服務(wù)器端監(jiān)聽(tīng)端口,服務(wù)器監(jiān)聽(tīng)線程,接收連接請(qǐng)求。并為該連接請(qǐng)求分配連接標(biāo)識(shí),上述連接標(biāo)識(shí)是該連接請(qǐng)求在系統(tǒng)內(nèi)的唯一系統(tǒng)標(biāo)識(shí)。服務(wù)器將接收到的請(qǐng)求數(shù)據(jù)放入請(qǐng)求連接隊(duì)列中,繼續(xù)等待處理下一個(gè)連接請(qǐng)求。步驟102 將該連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包, 保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列;具體過(guò)程為,循環(huán)掃描請(qǐng)求連接隊(duì)列,偵測(cè)該連接請(qǐng)求發(fā)送的數(shù)據(jù)事件,讀取每個(gè)發(fā)送數(shù)據(jù)的連接請(qǐng)求發(fā)送過(guò)來(lái)的字節(jié)數(shù)據(jù),將該連接請(qǐng)求的連接標(biāo)識(shí)和該連接請(qǐng)求發(fā)送的字節(jié)數(shù)據(jù)作為一個(gè)二元組請(qǐng)求數(shù)據(jù)包保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中。步驟103 將該二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列;在步驟103中,解析請(qǐng)求包數(shù)據(jù)為java數(shù)據(jù)對(duì)象(該對(duì)象包含連接標(biāo)識(shí)、請(qǐng)求類(lèi)型等數(shù)據(jù)),并將java對(duì)象放到合法請(qǐng)求java對(duì)象隊(duì)列。在進(jìn)行解析之前,循環(huán)讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理。其中每個(gè)過(guò)濾器對(duì)數(shù)據(jù)進(jìn)行對(duì)應(yīng)過(guò)濾處理,避免不合法數(shù)據(jù)或非法請(qǐng)求進(jìn)入正式的業(yè)務(wù)邏輯處理流程,造成系統(tǒng)資源浪費(fèi),也避免程序結(jié)構(gòu)混亂。該過(guò)濾器是可以擴(kuò)展的,可以依據(jù)具體的業(yè)務(wù)流程執(zhí)行不同的檢查和判斷,常見(jiàn)的過(guò)濾器鏈如字符轉(zhuǎn)換、請(qǐng)求合法性檢查、數(shù)據(jù)包合法性檢查等。處理結(jié)果正常則繼續(xù)解析,否則停止該二元組請(qǐng)求數(shù)據(jù)包的處理,生成異常處理信息,將異常處理信息和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列。步驟104 根據(jù)該java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理, 將處理結(jié)果和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java 對(duì)象隊(duì)列;具體過(guò)程為,循環(huán)讀取合法請(qǐng)求java對(duì)象隊(duì)列,按照每個(gè)java對(duì)象數(shù)據(jù)包的請(qǐng)求類(lèi)型,到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,改變處理線程狀態(tài)為忙碌,交給該處理線程處理該類(lèi)型的業(yè)務(wù)邏輯。待處理完畢,處理線程自身改變自己狀態(tài)為空閑以便下一個(gè)數(shù)據(jù)包使用,并獲取到該處理者線程的處理結(jié)果,將處理結(jié)果和該java對(duì)象的連接標(biāo)識(shí)等數(shù)據(jù)組成處理結(jié)果java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列(該對(duì)象包含連接標(biāo)識(shí)等數(shù)據(jù))。其中,處理者線程池在線程不足時(shí),創(chuàng)建可用線程,當(dāng)線程資源大量空閑時(shí),釋放線程資源,控制線程生命周期。步驟105 根據(jù)該處理結(jié)果java對(duì)象的連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到該連接請(qǐng)求,發(fā)送處理結(jié)果至客戶(hù)端。
具體過(guò)程為,循環(huán)掃描處理結(jié)果java對(duì)象隊(duì)列,獲取到該對(duì)象的連接標(biāo)識(shí),依據(jù)標(biāo)識(shí)到請(qǐng)求連接隊(duì)列中找到該請(qǐng)求,通過(guò)請(qǐng)求連接隊(duì)列里的請(qǐng)求將請(qǐng)求處理結(jié)果數(shù)據(jù)發(fā)送
給客戶(hù)端。接下來(lái),循環(huán)讀取請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求,獲取結(jié)果。通過(guò)測(cè)試結(jié)果,通過(guò)測(cè)試結(jié)果判斷該連接請(qǐng)求是否存活。存活則結(jié)束,若無(wú)響應(yīng)、訪問(wèn)超時(shí)或客戶(hù)端已斷開(kāi), 則釋放該連接請(qǐng)求的所有系統(tǒng)資源,將該連接請(qǐng)求移出請(qǐng)求連接隊(duì)列,停止該請(qǐng)求的所有數(shù)據(jù)處理。請(qǐng)參閱圖2,是本發(fā)明第二實(shí)施例的服務(wù)器數(shù)據(jù)處理方法的流程圖。本發(fā)明第二實(shí)施例的服務(wù)器數(shù)據(jù)處理方法包括以下步驟步驟201 接收客戶(hù)端發(fā)送的連接請(qǐng)求;客戶(hù)端發(fā)送連接請(qǐng)求到服務(wù)器端監(jiān)聽(tīng)端口,服務(wù)器監(jiān)聽(tīng)線程,接收連接請(qǐng)求。服務(wù)器將接收到的請(qǐng)求數(shù)據(jù)放入請(qǐng)求連接隊(duì)列中,繼續(xù)等待處理下一個(gè)連接請(qǐng)求。步驟202 為該連接請(qǐng)求分配連接標(biāo)識(shí);上述連接標(biāo)識(shí)是該連接請(qǐng)求在系統(tǒng)內(nèi)的唯一系統(tǒng)標(biāo)識(shí)。步驟203 掃描請(qǐng)求連接隊(duì)列,將該連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中;循環(huán)掃描請(qǐng)求連接隊(duì)列,偵測(cè)該連接請(qǐng)求發(fā)送的數(shù)據(jù)事件,讀取每個(gè)發(fā)送數(shù)據(jù)的連接請(qǐng)求發(fā)送過(guò)來(lái)的字節(jié)數(shù)據(jù),將該連接請(qǐng)求的連接標(biāo)識(shí)和該連接請(qǐng)求發(fā)送的字節(jié)數(shù)據(jù)作為一個(gè)二元組請(qǐng)求數(shù)據(jù)包保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中。步驟204 讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)該二元組請(qǐng)求數(shù)據(jù)包執(zhí)行過(guò)濾器鏈處理,處理結(jié)果正常則繼續(xù)步驟205,否則轉(zhuǎn)至步驟207 ;循環(huán)讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理。其中每個(gè)過(guò)濾器對(duì)數(shù)據(jù)進(jìn)行對(duì)應(yīng)過(guò)濾處理,避免不合法數(shù)據(jù)或非法請(qǐng)求進(jìn)入正式的業(yè)務(wù)邏輯處理流程,造成系統(tǒng)資源浪費(fèi),也避免程序結(jié)構(gòu)混亂。該過(guò)濾器是可以擴(kuò)展的,可以依據(jù)具體的業(yè)務(wù)流程執(zhí)行不同的檢查和判斷,常見(jiàn)的過(guò)濾器鏈如字符轉(zhuǎn)換、請(qǐng)求合法性檢查、數(shù)據(jù)包合法性檢查等。步驟205 將該二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,放入合法請(qǐng)求java對(duì)象隊(duì)列;解析請(qǐng)求包數(shù)據(jù)為java數(shù)據(jù)對(duì)象(該對(duì)象包含連接標(biāo)識(shí)、請(qǐng)求類(lèi)型等數(shù)據(jù)),并將 Java對(duì)象放到合法請(qǐng)求java對(duì)象隊(duì)列。步驟206 讀取合法請(qǐng)求java對(duì)象隊(duì)列,根據(jù)該java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果 java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列;循環(huán)讀取合法請(qǐng)求java對(duì)象隊(duì)列,按照每個(gè)java對(duì)象數(shù)據(jù)包的請(qǐng)求類(lèi)型,到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,改變處理線程狀態(tài)為忙碌,交給該處理線程處理該類(lèi)型的業(yè)務(wù)邏輯。待處理完畢,處理線程自身改變自己狀態(tài)為空閑以便下一個(gè)數(shù)據(jù)包使用, 并獲取到該處理者線程的處理結(jié)果,將處理結(jié)果和該java對(duì)象的連接標(biāo)識(shí)等數(shù)據(jù)組成處理結(jié)果java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列(該對(duì)象包含連接標(biāo)識(shí)等數(shù)據(jù))。其中,處理者線程池在線程不足時(shí),創(chuàng)建可用線程,當(dāng)線程資源大量空閑時(shí),釋放線程資源,控制線程生命周期。步驟207 生成異常處理信息,將異常處理信息和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列。停止該二元組請(qǐng)求數(shù)據(jù)包的處理,生成異常處理信息,獲取到該包的連接標(biāo)識(shí),組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列。步驟208 掃描處理結(jié)果java對(duì)象隊(duì)列,根據(jù)該處理結(jié)果java對(duì)象的連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到該連接請(qǐng)求,發(fā)送處理結(jié)果至客戶(hù)端。循環(huán)掃描處理結(jié)果java對(duì)象隊(duì)列,獲取到該對(duì)象的連接標(biāo)識(shí),依據(jù)標(biāo)識(shí)到請(qǐng)求連接隊(duì)列中找到該請(qǐng)求,通過(guò)請(qǐng)求連接隊(duì)列里的請(qǐng)求將請(qǐng)求處理結(jié)果數(shù)據(jù)發(fā)送給客戶(hù)端。步驟209 讀取請(qǐng)求連接隊(duì)列,通過(guò)測(cè)試結(jié)果判斷該連接請(qǐng)求是否存活,存活則繼續(xù)執(zhí)行步驟209,否則繼續(xù)步驟210 ;循環(huán)讀取請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求,獲取結(jié)果。通過(guò)測(cè)試結(jié)果,判斷該請(qǐng)求是否存活。步驟210 釋放該連接請(qǐng)求的所有系統(tǒng)資源,并將其移出請(qǐng)求連接隊(duì)列。若無(wú)響應(yīng)、訪問(wèn)超時(shí)或客戶(hù)端已斷開(kāi),則釋放該連接請(qǐng)求的所有系統(tǒng)資源,將該連接請(qǐng)求移出請(qǐng)求連接隊(duì)列,停止該請(qǐng)求的所有數(shù)據(jù)處理。請(qǐng)參與圖3,是本發(fā)明第一實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖。本發(fā)明第一實(shí)施例的服務(wù)器包括請(qǐng)求接收模塊、二元組請(qǐng)求數(shù)據(jù)包形成模塊、java數(shù)據(jù)對(duì)象解析模塊、處理結(jié)果 java對(duì)象形成模塊以及請(qǐng)求處理結(jié)果發(fā)送模塊。其中,請(qǐng)求接收模塊用于接收客戶(hù)端發(fā)送的連接請(qǐng)求??蛻?hù)端發(fā)送連接請(qǐng)求到服務(wù)器端監(jiān)聽(tīng)端口,服務(wù)器監(jiān)聽(tīng)線程,接收連接請(qǐng)求。并為該連接請(qǐng)求分配連接標(biāo)識(shí),上述連接標(biāo)識(shí)是該連接請(qǐng)求在系統(tǒng)內(nèi)的唯一系統(tǒng)標(biāo)識(shí)。服務(wù)器將接收到的請(qǐng)求數(shù)據(jù)放入請(qǐng)求連接隊(duì)列中,繼續(xù)等待處理下一個(gè)連接請(qǐng)求。二元組請(qǐng)求數(shù)據(jù)包形成模塊用于將該連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列。具體過(guò)程為,循環(huán)掃描請(qǐng)求連接隊(duì)列,偵測(cè)該連接請(qǐng)求發(fā)送的數(shù)據(jù)事件,讀取每個(gè)發(fā)送數(shù)據(jù)的連接請(qǐng)求發(fā)送過(guò)來(lái)的字節(jié)數(shù)據(jù), 將該連接請(qǐng)求的連接標(biāo)識(shí)和該連接請(qǐng)求發(fā)送的字節(jié)數(shù)據(jù)作為一個(gè)二元組請(qǐng)求數(shù)據(jù)包保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中。java數(shù)據(jù)對(duì)象解析模塊用于將該二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列。其解析請(qǐng)求包數(shù)據(jù)為java數(shù)據(jù)對(duì)象(該對(duì)象包含連接標(biāo)識(shí)、 請(qǐng)求類(lèi)型等數(shù)據(jù)),并將java對(duì)象放到合法請(qǐng)求java對(duì)象隊(duì)列。在進(jìn)行解析之前,循環(huán)讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理。其中每個(gè)過(guò)濾器對(duì)數(shù)據(jù)進(jìn)行對(duì)應(yīng)過(guò)濾處理,避免不合法數(shù)據(jù)或非法請(qǐng)求進(jìn)入正式的業(yè)務(wù)邏輯處理流程,造成系統(tǒng)資源浪費(fèi),也避免程序結(jié)構(gòu)混亂。該過(guò)濾器是可以擴(kuò)展的,可以依據(jù)具體的業(yè)務(wù)流程執(zhí)行不同的檢查和判斷,常見(jiàn)的過(guò)濾器鏈如字符轉(zhuǎn)換、請(qǐng)求合法性檢查、數(shù)據(jù)包合法性檢查等。處理結(jié)果正常則繼續(xù)解析,否則停止該二元組請(qǐng)求數(shù)據(jù)包的處理,生成異常處理信息,將異常處理信息和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列。處理結(jié)果java對(duì)象形成模塊用于根據(jù)該java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象, 保存到處理結(jié)果java對(duì)象隊(duì)列。具體過(guò)程為,循環(huán)讀取合法請(qǐng)求java對(duì)象隊(duì)列,按照每個(gè) Java對(duì)象數(shù)據(jù)包的請(qǐng)求類(lèi)型,到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,改變處理線程狀態(tài)為忙碌,交給該處理線程處理該類(lèi)型的業(yè)務(wù)邏輯。待處理完畢,處理線程自身改變自己狀態(tài)為空閑以便下一個(gè)數(shù)據(jù)包使用,并獲取到該處理者線程的處理結(jié)果,將處理結(jié)果和該 Java對(duì)象的連接標(biāo)識(shí)等數(shù)據(jù)組成處理結(jié)果java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列(該對(duì)象包含連接標(biāo)識(shí)等數(shù)據(jù))。其中,處理者線程池在線程不足時(shí),創(chuàng)建可用線程,當(dāng)線程資源大量空閑時(shí),釋放線程資源,控制線程生命周期。請(qǐng)求處理結(jié)果發(fā)送模塊用于根據(jù)該處理結(jié)果java對(duì)象的連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到該連接請(qǐng)求,發(fā)送處理結(jié)果至客戶(hù)端。具體過(guò)程為,循環(huán)掃描處理結(jié)果java對(duì)象隊(duì)列,獲取到該對(duì)象的連接標(biāo)識(shí),依據(jù)標(biāo)識(shí)到請(qǐng)求連接隊(duì)列中找到該請(qǐng)求,通過(guò)請(qǐng)求連接隊(duì)列里的請(qǐng)求將請(qǐng)求處理結(jié)果數(shù)據(jù)發(fā)送給客戶(hù)端。接下來(lái),循環(huán)讀取請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求,獲取結(jié)果。通過(guò)測(cè)試結(jié)果,通過(guò)測(cè)試結(jié)果判斷該連接請(qǐng)求是否存活。存活則結(jié)束,若無(wú)響應(yīng)、訪問(wèn)超時(shí)或客戶(hù)端已斷開(kāi), 則釋放該連接請(qǐng)求的所有系統(tǒng)資源,將該連接請(qǐng)求移出請(qǐng)求連接隊(duì)列,停止該請(qǐng)求的所有數(shù)據(jù)處理。請(qǐng)參閱圖4,是本發(fā)明第二實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖。本發(fā)明第二實(shí)施例的服務(wù)器包括請(qǐng)求接收模塊、連接標(biāo)識(shí)分配模塊、二元組請(qǐng)求數(shù)據(jù)包形成模塊、過(guò)濾器鏈處理模塊、java數(shù)據(jù)對(duì)象解析模塊、處理結(jié)果java對(duì)象形成模塊、異常處理信息生成模塊、請(qǐng)求處理結(jié)果發(fā)送模塊、連接請(qǐng)求存活判斷模塊以及資源釋放模塊。其中,請(qǐng)求接收模塊用于接收客戶(hù)端發(fā)送的連接請(qǐng)求??蛻?hù)端發(fā)送連接請(qǐng)求到服務(wù)器端監(jiān)聽(tīng)端口,服務(wù)器監(jiān)聽(tīng)線程,接收連接請(qǐng)求。服務(wù)器將接收到的請(qǐng)求數(shù)據(jù)放入請(qǐng)求連接隊(duì)列中,繼續(xù)等待處理下一個(gè)連接請(qǐng)求。連接標(biāo)識(shí)分配模塊用于為該連接請(qǐng)求分配連接標(biāo)識(shí),上述連接標(biāo)識(shí)是該連接請(qǐng)求在系統(tǒng)內(nèi)的唯一系統(tǒng)標(biāo)識(shí)。二元組請(qǐng)求數(shù)據(jù)包形成模塊用于掃描請(qǐng)求連接隊(duì)列,將該連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中。具體過(guò)程為,循環(huán)掃描請(qǐng)求連接隊(duì)列,偵測(cè)該連接請(qǐng)求發(fā)送的數(shù)據(jù)事件,讀取每個(gè)發(fā)送數(shù)據(jù)的連接請(qǐng)求發(fā)送過(guò)來(lái)的字節(jié)數(shù)據(jù),將該連接請(qǐng)求的連接標(biāo)識(shí)和該連接請(qǐng)求發(fā)送的字節(jié)數(shù)據(jù)作為一個(gè)二元組請(qǐng)求數(shù)據(jù)包保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列中。過(guò)濾器鏈處理模塊用于讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)該二元組請(qǐng)求數(shù)據(jù)包執(zhí)行過(guò)濾器鏈處理。具體過(guò)程為,循環(huán)讀取二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理。其中每個(gè)過(guò)濾器對(duì)數(shù)據(jù)進(jìn)行對(duì)應(yīng)過(guò)濾處理,避免不合法數(shù)據(jù)或非法請(qǐng)求進(jìn)入正式的業(yè)務(wù)邏輯處理流程,造成系統(tǒng)資源浪費(fèi),也避免程序結(jié)構(gòu)混亂。該過(guò)濾器是可以擴(kuò)展的,可以依據(jù)具體的業(yè)務(wù)流程執(zhí)行不同的檢查和判斷,常見(jiàn)的過(guò)濾器鏈如字符轉(zhuǎn)換、請(qǐng)求合法性檢查、數(shù)據(jù)包合法性檢查等。java數(shù)據(jù)對(duì)象解析模塊用于將該二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象(該對(duì)象包含連接標(biāo)識(shí)、請(qǐng)求類(lèi)型等數(shù)據(jù)),放入合法請(qǐng)求java對(duì)象隊(duì)列。
處理結(jié)果java對(duì)象形成模塊用于讀取合法請(qǐng)求java對(duì)象隊(duì)列,根據(jù)該java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列。具體過(guò)程為,循環(huán)讀取合法請(qǐng)求java對(duì)象隊(duì)列,按照每個(gè)java對(duì)象數(shù)據(jù)包的請(qǐng)求類(lèi)型,到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,改變處理線程狀態(tài)為忙碌,交給該處理線程處理該類(lèi)型的業(yè)務(wù)邏輯。待處理完畢,處理線程自身改變自己狀態(tài)為空閑以便下一個(gè)數(shù)據(jù)包使用,并獲取到該處理者線程的處理結(jié)果,將處理結(jié)果和該java對(duì)象的連接標(biāo)識(shí)等數(shù)據(jù)組成處理結(jié)果java對(duì)象,放入處理結(jié)果java對(duì)象隊(duì)列(該對(duì)象包含連接標(biāo)識(shí)等數(shù)據(jù))。其中,處理者線程池在線程不足時(shí),創(chuàng)建可用線程,當(dāng)線程資源大量空閑時(shí),釋放線程資源,控制線程生命周期。異常處理信息生成模塊用于生成異常處理信息,將異常處理信息和該java數(shù)據(jù)對(duì)象的連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列。請(qǐng)求處理結(jié)果發(fā)送模塊用于掃描處理結(jié)果java對(duì)象隊(duì)列,根據(jù)該處理結(jié)果java 對(duì)象的連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到該連接請(qǐng)求,發(fā)送處理結(jié)果至客戶(hù)端。連接請(qǐng)求存活判斷模塊用于循環(huán)讀取請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求,獲取結(jié)果。通過(guò)測(cè)試結(jié)果,判斷該請(qǐng)求是否存活。資源釋放模塊用于在請(qǐng)求無(wú)響應(yīng)、訪問(wèn)超時(shí)或客戶(hù)端已斷開(kāi)的時(shí)候釋放該連接請(qǐng)求的所有系統(tǒng)資源,將該連接請(qǐng)求移出請(qǐng)求連接隊(duì)列,停止該請(qǐng)求的所有數(shù)據(jù)處理。在本發(fā)明的技術(shù)方案中,請(qǐng)求隊(duì)列進(jìn)入過(guò)濾器線程,請(qǐng)求隊(duì)列中有多個(gè)請(qǐng)求數(shù)據(jù)任務(wù)時(shí)將執(zhí)行多個(gè)過(guò)濾器線程同步處理,該過(guò)濾器線程主要負(fù)責(zé)通過(guò)判斷篩選出符合后面處理線程能處理的請(qǐng)求數(shù)據(jù)任務(wù)(譬如用戶(hù)合法性檢查、數(shù)據(jù)包合法性檢查等),將那些不符合處理線程處理格式的請(qǐng)求數(shù)據(jù)任務(wù)剔除出請(qǐng)求隊(duì)列,避免處理線程處理的時(shí)候出錯(cuò), 提高后面處理線程的處理效率,該過(guò)濾器是可以擴(kuò)展的,里面的處理過(guò)程可以依據(jù)后面的處理線程需要?jiǎng)討B(tài)添加。本發(fā)明所有處理過(guò)程均采用獨(dú)立線程單獨(dú)處理,如過(guò)濾器線程、業(yè)務(wù)邏輯處理線程、結(jié)果發(fā)送線程、偵聽(tīng)請(qǐng)求線程、偵測(cè)請(qǐng)求心跳線程等。各個(gè)線程處理不會(huì)互相等待,而僅關(guān)心各自處理的隊(duì)列是否有數(shù)據(jù)處理,如有數(shù)據(jù)就立即處理。這樣可以加快系統(tǒng)的處理速度。此外,所有處理過(guò)程全部單獨(dú)獨(dú)立出來(lái),每個(gè)線程就是一個(gè)模塊,每個(gè)線程之間僅僅通過(guò)數(shù)據(jù)關(guān)聯(lián)。系統(tǒng)設(shè)計(jì)的代碼模塊性強(qiáng),線程之間、代碼之間的依賴(lài)關(guān)系低,過(guò)濾器處理線程是鏈?zhǔn)教幚矸浅1阌谏?jí)和維護(hù),能依據(jù)不同業(yè)務(wù)規(guī)則,在其中植入對(duì)應(yīng)的業(yè)務(wù)校驗(yàn)和判斷邏輯。業(yè)務(wù)邏輯處理線程依據(jù)請(qǐng)求類(lèi)型到處理對(duì)象池中找對(duì)應(yīng)請(qǐng)求類(lèi)型的處理線程, 對(duì)于不同的具體業(yè)務(wù)邏輯只需定義不同的請(qǐng)求數(shù)據(jù)類(lèi)型、該類(lèi)型的合法請(qǐng)求java對(duì)象、該類(lèi)型的處理邏輯,放入系統(tǒng)中對(duì)應(yīng)隊(duì)列和對(duì)象池,系統(tǒng)邏輯過(guò)程無(wú)需更改,便可以擴(kuò)展到不同的業(yè)務(wù)規(guī)則和業(yè)務(wù)邏輯。系統(tǒng)代碼便于閱讀,容易維護(hù)和升級(jí)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種服務(wù)器數(shù)據(jù)處理方法,其特征在于,所述方法包括以下步驟步驟a 接收客戶(hù)端發(fā)送的連接請(qǐng)求;步驟b 將所述連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列;步驟c 將所述二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列;步驟d 根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列;步驟e 根據(jù)所述連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到所述連接請(qǐng)求,發(fā)送所述處理結(jié)果至所述客戶(hù)端。
2.根據(jù)權(quán)利要求1所述的服務(wù)器數(shù)據(jù)處理方法,其特征在于,所述步驟a還包括為所述連接請(qǐng)求分配唯一的連接標(biāo)識(shí)。
3.根據(jù)權(quán)利要求2所述的服務(wù)器數(shù)據(jù)處理方法,其特征在于,所述步驟c還包括讀取所述二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理,處理結(jié)果正常則繼續(xù)解析所述二元組請(qǐng)求數(shù)據(jù)包,否則生成異常處理信息,并將所述異常處理信息和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到所述處理結(jié)果java對(duì)象隊(duì)列。
4.根據(jù)權(quán)利要求3所述的服務(wù)器數(shù)據(jù)處理方法,其特征在于,所述步驟d具體包括讀取所述合法請(qǐng)求java對(duì)象隊(duì)列,根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,將所述空閑線程的狀態(tài)改變?yōu)槊β担唤o所述空閑線程處理所述類(lèi)型的業(yè)務(wù)邏輯,在處理完畢后將所述忙碌線程的狀態(tài)改變?yōu)榭臻e。
5.根據(jù)權(quán)利要求4所述的服務(wù)器數(shù)據(jù)處理方法,其特征在于,所述方法還包括讀取所述請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求判斷所述連接請(qǐng)求是否存活,并在所述連接請(qǐng)求不存活后釋放所述連接請(qǐng)求的所有系統(tǒng)資源,將所述連接請(qǐng)求移出所述請(qǐng)求連接隊(duì)列。
6.一種服務(wù)器,其特征在于,所述服務(wù)器包括請(qǐng)求接收模塊、二元組請(qǐng)求數(shù)據(jù)包形成模塊、java數(shù)據(jù)對(duì)象解析模塊、處理結(jié)果java對(duì)象形成模塊以及請(qǐng)求處理結(jié)果發(fā)送模塊,所述請(qǐng)求接收模塊用于接收客戶(hù)端發(fā)送的連接請(qǐng)求,所述二元組請(qǐng)求數(shù)據(jù)包形成模塊用于將所述連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,所述java數(shù)據(jù)對(duì)象解析模塊用于將所述二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列,所述處理結(jié)果java對(duì)象形成模塊用于根據(jù)所述java 數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列,所述請(qǐng)求處理結(jié)果發(fā)送模塊用于根據(jù)所述連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到所述連接請(qǐng)求,發(fā)送所述處理結(jié)果至所述客戶(hù)端。
7.根據(jù)權(quán)利要求6所述的服務(wù)器,其特征在于,所述服務(wù)器還包括連接標(biāo)識(shí)分配模塊, 所述連接標(biāo)識(shí)分配模塊用于為所述連接請(qǐng)求分配唯一的連接標(biāo)識(shí)。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述服務(wù)器還包括過(guò)濾器鏈處理模塊及異常處理信息生成模塊,所述過(guò)濾器鏈處理模塊用于讀取所述二元組請(qǐng)求數(shù)據(jù)包隊(duì)列, 對(duì)隊(duì)列的每個(gè)請(qǐng)求包執(zhí)行過(guò)濾器鏈處理,處理結(jié)果正常則繼續(xù)解析所述二元組請(qǐng)求數(shù)據(jù)包,否則通過(guò)所述異常處理信息生成模塊生成異常處理信息,并將所述異常處理信息和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到所述處理結(jié)果java對(duì)象隊(duì)列。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其特征在于,所述java數(shù)據(jù)對(duì)象解析模塊處理所述 Java數(shù)據(jù)對(duì)象的具體過(guò)程為讀取所述合法請(qǐng)求java對(duì)象隊(duì)列,根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型到處理者線程池中尋找對(duì)應(yīng)類(lèi)型的空閑線程,將所述空閑線程的狀態(tài)改變?yōu)槊β?,交給所述空閑線程處理所述類(lèi)型的業(yè)務(wù)邏輯,在處理完畢后將所述忙碌線程的狀態(tài)改變?yōu)榭臻e。
10.根據(jù)權(quán)利要求9所述的服務(wù)器,其特征在于,所述服務(wù)器還包括連接請(qǐng)求存活判斷模塊及資源釋放模塊,所述連接請(qǐng)求存活判斷模塊用于讀取所述請(qǐng)求連接隊(duì)列,發(fā)送心跳偵測(cè)請(qǐng)求判斷所述連接請(qǐng)求是否存活,所述資源釋放模塊用于在所述連接請(qǐng)求不存活后釋放所述連接請(qǐng)求的所有系統(tǒng)資源,將所述連接請(qǐng)求移出所述請(qǐng)求連接隊(duì)列。
全文摘要
本發(fā)明提供一種服務(wù)器及其數(shù)據(jù)處理方法,該方法首先接收客戶(hù)端發(fā)送的連接請(qǐng)求,將所述連接請(qǐng)求的連接標(biāo)識(shí)和發(fā)送的字節(jié)數(shù)據(jù)形成二元組請(qǐng)求數(shù)據(jù)包,保存到二元組請(qǐng)求數(shù)據(jù)包隊(duì)列,再將所述二元組請(qǐng)求數(shù)據(jù)包解析為java數(shù)據(jù)對(duì)象,保存到合法請(qǐng)求java對(duì)象隊(duì)列,并根據(jù)所述java數(shù)據(jù)對(duì)象的請(qǐng)求類(lèi)型尋找對(duì)應(yīng)類(lèi)型的空閑線程進(jìn)行處理,將處理結(jié)果和所述連接標(biāo)識(shí)組成處理結(jié)果java對(duì)象,保存到處理結(jié)果java對(duì)象隊(duì)列,最后根據(jù)所述連接標(biāo)識(shí)在請(qǐng)求連接隊(duì)列中找到所述連接請(qǐng)求,發(fā)送所述處理結(jié)果至客戶(hù)端。本發(fā)明的技術(shù)方案系統(tǒng)處理速度快,線程及代碼之間的依賴(lài)關(guān)系低,便于升級(jí)和維護(hù),系統(tǒng)邏輯過(guò)程無(wú)需更改,便可以擴(kuò)展到不同的業(yè)務(wù)規(guī)則和業(yè)務(wù)邏輯。
文檔編號(hào)H04L12/56GK102340545SQ20111033673
公開(kāi)日2012年2月1日 申請(qǐng)日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者伍杰 申請(qǐng)人:深圳市五巨科技有限公司