專利名稱:網(wǎng)絡(luò)并發(fā)通訊請求轉(zhuǎn)串行隊列技術(shù)的制作方法
技術(shù)領(lǐng)域:
本技術(shù)屬于計算機(jī)網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,利用堆棧算法、計算機(jī)網(wǎng)絡(luò)通訊技術(shù)中的底層通訊技術(shù)Socket、TCP/IP協(xié)議,以及一系列的方法,實現(xiàn)(1)服務(wù)器將大量客戶端向服務(wù)器發(fā)出的并發(fā)TCP/IP Socket請求,轉(zhuǎn)換為串行隊列請求。(2)服務(wù)器端利用單一線程依次對并行隊列中的客戶端請求進(jìn)行響應(yīng),在響應(yīng)的過程中,對數(shù)據(jù)進(jìn)行鎖定、讀取、更改、解鎖。(3)服務(wù)器端完成一條請求后,再繼續(xù)下處理下一條客戶端請求。
背景技術(shù):
在電子商務(wù)平臺中用戶賬戶變化、在線交易狀態(tài)改變、網(wǎng)絡(luò)拍賣交易中,大量用戶同時對某公共數(shù)據(jù)進(jìn)行讀寫訪問的時候,對數(shù)據(jù)的一致性很難保障,一般大型數(shù)據(jù)庫系統(tǒng)在處理并發(fā)讀寫同一數(shù)據(jù)時采用加鎖技術(shù),以防臟讀或臟寫,但常常因為加鎖不當(dāng)造成死鎖或者其他問題。本技術(shù)的實現(xiàn),是利用計算機(jī)底層的TCP/IP網(wǎng)絡(luò)通訊協(xié)議、Socket API通訊組件、編程語言(java)等工具研發(fā)出來的一種網(wǎng)絡(luò)通訊中并發(fā)請求轉(zhuǎn)串行隊列處理的技術(shù)。服務(wù)器將大量客戶端發(fā)送的請求,轉(zhuǎn)換為串行隊列請求,然后使用單線程逐一響應(yīng)隊列中的客戶端請求,同一時刻只有一個請求讀、寫數(shù)據(jù),保證業(yè)務(wù)系統(tǒng)數(shù)據(jù)的一致性,保證應(yīng)用系統(tǒng)更公平、更公正,避免因并發(fā)操作導(dǎo)致的數(shù)據(jù)不一致、數(shù)據(jù)鎖定異常等法律糾紛問題。涉及到的技術(shù)有(1) TCP/IP 網(wǎng)絡(luò)通訊協(xié)議,全名=Transmission Control Protocol/InternetProtocol,是異構(gòu)網(wǎng)絡(luò)互連的通信協(xié)議,通過它可以實現(xiàn)各種異構(gòu)網(wǎng)絡(luò)或異種機(jī)之間的互
聯(lián)通信。(2) Socket 模型 API 通訊組件。(3) Java 開發(fā)語言。
發(fā)明內(nèi)容
網(wǎng)絡(luò)并發(fā)通訊請求轉(zhuǎn)串行隊列技術(shù)。(1)大量客戶端發(fā)起與服務(wù)器的TCP/IP Socket請求,服務(wù)器偵聽到該請求。(2)服務(wù)器偵聽到大量并發(fā)的TCP/IP Socket請求,各偵聽線程將接收到的請求,轉(zhuǎn)換為串行隊列。(3)服務(wù)器的業(yè)務(wù)線程為單一線程,負(fù)責(zé)監(jiān)控串行隊列的請求數(shù)據(jù),用先進(jìn)先出的原則,逐一響應(yīng)客戶端的請求。(4)服務(wù)器在響應(yīng)的過程中,對數(shù)據(jù)進(jìn)行鎖定、讀取、更改、解鎖。因為是單一線程操作,不存在死鎖、臟讀、臟寫、不一致問題。(5)服務(wù)器端完成一條客戶端請求后,再繼續(xù)下處理下一條客戶端請求。四
附圖是本發(fā)明的計算機(jī)程序流程圖。圖中,①流程為大量客戶端向服務(wù)器發(fā)起并行的TCP/IP Socket請求。②流程為服務(wù)器根據(jù)先后順序,將并發(fā)請求轉(zhuǎn)換為串行隊列方式。③流程為服務(wù)器按順序響應(yīng)串行隊列中的客戶端請求。
五具體實施例方式(一)準(zhǔn)備工作(1)獲得本技術(shù)的軟件分發(fā)包服務(wù)器端TCP/IP Socket處理軟件包。(2)在服務(wù)器系統(tǒng)軟件中,引用、包含服務(wù)器端TCP/IP Socket處理軟件包。(3)在軟件系統(tǒng)的開發(fā)中,調(diào)用服務(wù)器端TCP/IP Socket處理軟件包提供的API接
口方法。 (二)服務(wù)器系統(tǒng)軟件開發(fā)(4)開發(fā)服務(wù)器業(yè)務(wù)處理系統(tǒng),使用Socket API建立與客戶端的長連接。(5)服務(wù)器并發(fā)接收客戶端的TCP/IP Socket請求,將請求Socket對象、業(yè)務(wù)處理方法函數(shù)地址指針傳入本軟件包API接口方法。(6)API接口方法自動進(jìn)行TCP/IP Socket請求轉(zhuǎn)換為串行隊列,并一次回調(diào)(5)所述的業(yè)務(wù)處理方法函數(shù),進(jìn)行業(yè)務(wù)處理,響應(yīng)客戶端請求。
權(quán)利要求
1.一種網(wǎng)絡(luò)并發(fā)通訊請求轉(zhuǎn)串行隊列技術(shù),其特征是大量客戶端向服務(wù)器端發(fā)送并發(fā)的TCP/IPSocket請求,服務(wù)器轉(zhuǎn)換為串行隊列請求,逐一按順序響應(yīng)客戶端請求。
2.在權(quán)利要求1中的“服務(wù)器轉(zhuǎn)換為串行隊列請求”,其特征是服務(wù)器TCP/IPSocket并行偵聽客戶端請求,將收到的客戶端請求按先來后到的順序進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果為串行隊列。
3.權(quán)利要求1所述“逐一按順序響應(yīng)客戶端請求”,其特征是服務(wù)器逐條從串行隊列中,取出最先到達(dá)、尚未響應(yīng)的一條客戶端請求指令,進(jìn)行響應(yīng),響應(yīng)完成后,方進(jìn)入下一條請求處理。
4.權(quán)利要求3所述的“取出最先到達(dá)、尚未響應(yīng)的一條客戶端請求指令,進(jìn)行響應(yīng)”,其特征是根據(jù)客戶端指令,對數(shù)據(jù)進(jìn)行獨占鎖定、讀取、寫入、更新數(shù)據(jù)狀態(tài),最后解除鎖定,返回執(zhí)行結(jié)果給客戶端Socket,完成本次請求響應(yīng)過程。
5.利權(quán)要求4所述的“對數(shù)據(jù)進(jìn)行獨占鎖定、讀取、寫入、更新數(shù)據(jù)狀態(tài),最后解除鎖定”,其特征是服務(wù)器在同一時刻,只有一個線程在響應(yīng)一條客戶端請求,對數(shù)據(jù)的鎖定、操作、解鎖過程都不會造成沖突。
全文摘要
網(wǎng)絡(luò)并發(fā)通訊請求轉(zhuǎn)串行隊列技術(shù)。1本“網(wǎng)絡(luò)并發(fā)通訊請求轉(zhuǎn)串行隊列技術(shù)”屬于計算機(jī)通訊技術(shù)領(lǐng)域,是將TCP/IP通訊客戶端并發(fā)請求轉(zhuǎn)為串行隊列請求的技術(shù)。大量客戶端同時并發(fā)請求服務(wù)器,涉及對同一數(shù)據(jù)讀寫操作不同步而導(dǎo)致數(shù)據(jù)死鎖和不一致性。本技術(shù)將客戶端并發(fā)請求轉(zhuǎn)為串行隊列請求,同時只有一個請求操作數(shù)據(jù),保證數(shù)據(jù)一致性。二用途在網(wǎng)絡(luò)中需要對同一數(shù)據(jù)進(jìn)行讀寫,而數(shù)據(jù)必須具有準(zhǔn)確、一致性時使用。如用戶賬戶數(shù)據(jù)、電子商務(wù)在線交易、在線拍賣中的出價、成交等,服務(wù)器將并發(fā)請求按接收的先后次序改變?yōu)榇嘘犃姓埱?,依次?zhí)行,使該應(yīng)用系統(tǒng)更公平公正,避免因并發(fā)操作導(dǎo)致的數(shù)據(jù)不一致、數(shù)據(jù)鎖定異常等法律糾紛問題。
文檔編號H04L29/06GK102394867SQ20111030709
公開日2012年3月28日 申請日期2011年10月10日 優(yōu)先權(quán)日2011年10月10日
發(fā)明者不公告發(fā)明人 申請人:深圳市金槌拍賣行有限公司