序列式數據發送系統及方法
2023-05-31 23:27:06
專利名稱:序列式數據發送系統及方法
技術領域:
本發明涉及一種序列式數據發送系統及方法。
背景技術:
在資料庫應用開發中,連接的管理是一個難點,它是決定資料庫應用性能的一個重要因 素。隨著電腦中應用程式的不斷增加,同一臺電腦在同一時間可能產生很多的資料庫連接請 求,但資料庫的連接數目有其上限,同一時間只能滿足一定數量的資料庫連接,無法同時負 荷大量的資料庫連接。
尤其是在生產現場,同一時間可能會有上百臺電腦向資料庫發送連接請求,將資料存儲 到資料庫中,這樣更加重了資料庫的負荷,嚴重時還會造成資料庫死機,影響正常的生產。
發明內容
鑑於以上內容,有必要提供一種序列式數據發送系統,其可減少同一時間資料庫連接的 數目。
鑑於以上內容,還有必要提供一種序列式數據發送方法,其可減少同一時間資料庫連接 的數目。
一種序列式數據發送系統,包括用戶端電腦和應用伺服器,所述用戶端電腦通過網絡和 應用伺服器相連,所述應用伺服器連接有資料庫,所述用戶端電腦包括序列式數據發送管理 單元,所述序列式數據發送管理單元包括
請求接收模塊,用於接收線程向應用伺服器發出的數據存儲請求;
插入模塊,用於將所述數據存儲請求插入到一個序列式數據發送管理隊列的尾部;
判斷模塊,用於判斷所述數據存儲請求是否是序列式數據發送管理隊列中的第一個元素
請求發送模塊,用於當所述數據存儲請求是序列式數據發送管理隊列中的第一個元素時 ,將第一個元素對應的數據存儲請求發送給應用伺服器;
當所述數據存儲請求不是序列式數據發送管理隊列中的第一個元素時,所述請求發送模 塊找到序列式數據發送管理隊列中的第一個元素,將第一個元素對應的數據存儲請求發送給 應用伺服器;
所述應用伺服器將所述序列式數據發送管理隊列中第一個元素對應的數據存儲在資料庫中;及
所述請求發送模塊還用於在將所述第一個元素對應的數據存儲請求發送給應用伺服器後 ,刪除序列式數據發送管理隊列中的第一個元素,同時將序列式數據發送管理隊列中其它元 素依次往前移動一個存儲位置。
一種序列式數據發送方法,包括如下步驟
接收線程向應用伺服器發出的數據存儲請求;
將所述數據存儲請求插入到一個序列式數據發送管理隊列的尾部;
將所述序列式數據發送管理隊列中的第一個元素對應的數據存儲請求發送給應用伺服器 ,並刪除該序列式數據發送管理隊列中的第一個元素,將序列式數據發送管理隊列中其它元 素依次往前移動一個存儲位置;及
應用伺服器將所述序列式數據發送管理隊列中第一個元素對應的數據存儲在資料庫中。
相較於現有技術,所述的序列式數據發送系統及方法,通過將用戶端電腦中的資料庫連 接請求存儲在一個隊列中,最先進入隊列的資料庫連接請求將會最先被處理,最後進入隊列 的資料庫連接請求將會最後被處理,同一時間只有隊列中的第一元素才會被處理,保證了同 一時間用戶端電腦中只有一個資料庫連接請求被處理,減少了同一時間資料庫連接的數目。
圖l是本發明序列式數據發送系統較佳實施例的硬體架構圖。 圖2是圖1中所示用戶端電腦的功能模塊圖。 圖3是本發明序列式數據發送方法較佳實施例的流程圖。
具體實施例方式
如圖1所示,是本發明序列式數據發送系統較佳實施例的硬體架構圖。該系統主要包括 應用伺服器IO、資料庫50及多個用戶端電腦20,其中,所述的應用伺服器10與所述用戶端電 腦20通過網絡30相連接,用於接收用戶端電腦20發出的資料庫連接請求(即數據存儲請求) 。所述用戶端電腦20提供一個互動式人機界面給用戶進行相關操作,例如,用戶通過用戶端 電腦20將生產線上的測試數據發送給應用伺服器10,保存在資料庫50。網絡30可以是一局域 網(Intranet),也可以是網際網路(Internet)或其它類型通訊網絡。
所述的應用伺服器10通過連接40與所述的資料庫50相連接,該連接40是一種資料庫連接 ,如開放式資料庫連接(Open Database Connectivity, ODBC),或者Java資料庫連接( Java Database Connectivity, JDBC)。所述的資料庫50用於儲存各類數據,包括用戶端電 腦20發送過來的測試數據等,該資料庫50可獨立於應用伺服器10,也可位於應用伺服器10內,比如應用伺服器硬碟或者快閃記憶體盤等。
每臺用戶端電腦20中同時運行有多個線程(Thread 1、 Thread 2、 Thread 3及Thread n等),每個線程21代表一個任務,如用戶輸入、文件讀寫和網絡收發數據等。當用戶端電 腦20中的一個線程21向應用伺服器10發出數據存儲請求(即資料庫連接請求)時,該請求將 被插入到一個請求隊列中。在同一時間,每臺用戶端電腦20中只有請求隊列的第一個元素( 即最先進入請求隊列中的資料庫連接請求)可以發送給應用伺服器IO,保證同一時間資料庫 50的連接數量不會超過用戶端電腦20的數量。
如圖2所示,是圖1中所示用戶端電腦20的功能模塊圖。所述用戶端電腦20包括一個序列 式數據發送管理單元200,該序列式數據發送管理單元200包括請求接收模塊201、插入模塊 202、判斷模塊203、請求發送模塊204和序列式數據發送管理隊列205,該序列式數據發送管 理隊列205即是圖1中所示的請求隊列。本發明所稱的模塊是完成一特定功能的電腦程式段 ,比程序更適合於描述軟體在計算機中的執行過程,因此在本發明以下對軟體描述中都以模 塊描述。
所述請求接收模塊201用於接收線程21向應用伺服器10發出的數據存儲請求(即資料庫 連接請求)。
所述插入模塊202用於將數據存儲請求插入到所述序列式數據發送管理隊列205的尾部。 所述判斷模塊203用於判斷所述數據存儲請求是否是序列式數據發送管理隊列205中的第 一個元素,即判斷該數據存儲請求是否是最先進入序列式數據發送管理隊列205中的請求。 所述序列式數據發送管理隊列205中的每一個元素代表一個數據存儲請求。
所述請求發送模塊204用於當所述數據存儲請求是序列式數據發送管理隊列205中的第一 個元素時,將所述數據存儲請求發送給應用伺服器10;當所述數據存儲請求不是序列式數據 發送管理隊列205中的第一個元素時,所述請求發送模塊204找到序列式數據發送管理隊列中
的第一個元素,將第一個元素對應的數據存儲請求發送給應用伺服器io。
然後,請求發送模塊204建立所述用戶端電腦20和應用伺服器10的連接,同時刪除序列 式數據發送管理隊列205中的第一個元素,序列式數據發送管理隊列205中其它元素依次往前 移動一個存儲位置。
具體而言,序列式數據發送管理隊列205中原來第二個元素移到第一個元素的存儲位置 ,原來第三個元素移到第二個元素的存儲位置……依此類推,按照隊列先進先出的原則,最 先進入隊列的數據存儲請求將會最先被處理,最後進入隊列的數據存儲請求將會最後被處理 ,保證了同一時間每臺用戶端電腦20隻有一個資料庫連接請求被處理,減少了應用伺服器10和資料庫50的負荷。
如圖3所示,是本發明序列式數據發送方法較佳實施例的流程圖。首先,步驟S401,所 述請求接收模塊201接收線程21向應用伺服器10發出的數據存儲請求(即資料庫連接請求)
步驟S402,所述插入模塊202將數據存儲請求插入到所述序列式數據發送管理隊列205的 尾部。所述序列式數據發送管理隊列205中的每一個元素代表一個數據存儲請求。
步驟S403,所述判斷模塊203判斷所述數據存儲請求是否是序列式數據發送管理隊列 205中的第一個元素,即判斷該數據存儲請求是否是最先進入序列式數據發送管理隊列205中 的請求。如果所述數據存儲請求不是序列式數據發送管理隊列205中的第一個元素,則流程 進入步驟S404。如果所述數據存儲請求是序列式數據發送管理隊列205中的第一個元素,則 流程直接進入步驟S405。
步驟S404,所述請求發送模塊204找到序列式數據發送管理隊列205中的第一個元素,然 後流程進入步驟S405。
步驟S405,所述請求發送模塊204將所述序列式數據發送管理隊列205中第一個元素對應 的數據存儲請求發送給應用伺服器IO,建立所述用戶端電腦20和應用伺服器10的連接,同時 刪除序列式數據發送管理隊列205中的第一個元素,序列式數據發送管理隊列205中其它元素 依次往前移動一個存儲位置。
具體而言,序列式數據發送管理隊列205中原來第二個元素移到第一個元素的存儲位置 ,原來第三個元素移到第二個元素的存儲位置……依此類推,按照隊列先進先出的原則,最 先進入隊列的數據存儲請求將會最先被處理,最後進入隊列的數據存儲請求將會最後被處理 ,保證了同一時間每臺用戶端電腦20隻有一個資料庫連接請求被處理,減少了應用伺服器 10和資料庫50的負荷。
步驟S406,應用伺服器10接收用戶端電腦20發送過來的數據存儲請求後,將所述序列式 數據發送管理隊列205中第一個元素對應的數據存儲到資料庫50中。
權利要求
權利要求1一種序列式數據發送系統,包括用戶端電腦和應用伺服器,所述用戶端電腦通過網絡和應用伺服器相連,所述應用伺服器連接有資料庫,其特徵在於,所述用戶端電腦包括序列式數據發送管理單元,所述序列式數據發送管理單元包括請求接收模塊,用於接收線程向應用伺服器發出的數據存儲請求;插入模塊,用於將所述數據存儲請求插入到一個序列式數據發送管理隊列的尾部;判斷模塊,用於判斷所述數據存儲請求是否是序列式數據發送管理隊列中的第一個元素;請求發送模塊,用於當所述數據存儲請求是序列式數據發送管理隊列中的第一個元素時,將第一個元素對應的數據存儲請求發送給應用伺服器;當所述數據存儲請求不是序列式數據發送管理隊列中的第一個元素時,所述請求發送模塊找到序列式數據發送管理隊列中的第一個元素,將第一個元素對應的數據存儲請求發送給應用伺服器;所述應用伺服器將所述序列式數據發送管理隊列中第一個元素對應的數據存儲在資料庫中;及所述請求發送模塊還用於在將所述第一個元素對應的數據存儲請求發送給應用伺服器後,刪除該序列式數據發送管理隊列中的第一個元素,同時將序列式數據發送管理隊列中其它元素依次往前移動一個存儲位置。
2.如權利要求l所述的序列式數據發送系統,其特徵在於,所述線程 是指用戶端電腦中執行的應用程式。
3.如權利要求l所述的序列式數據發送系統,其特徵在於,所述序列 式數據發送管理隊列中的每一個元素代表一個數據存儲請求。
4.一種序列式數據發送方法,其特徵在於,該方法包括如下步驟 接收線程向應用伺服器發出的數據存儲請求;將所述數據存儲請求插入到一個序列式數據發送管理隊列的尾部;將所述序列式數據發送管理隊列中的第一個元素對應的數據存儲請求發送給應用服務 器,並刪除該序列式數據發送管理隊列中的第一個元素,將序列式數據發送管理隊列中其它 元素依次往前移動一個存儲位置;及應用伺服器將所述序列式數據發送管理隊列中第一個元素對應的數據存儲在資料庫中
5 如權利要求4所述的序列式數據發送方法,其特徵在於,所述線程 是指一種應用程式。
6 如權利要求4所述的序列式數據發送方法,其特徵在於,所述序列 式數據發送管理隊列中的每一個元素代表一個數據存儲請求。
全文摘要
一種序列式數據發送系統及方法,該方法包括如下步驟接收線程向應用伺服器發出的數據存儲請求;將所述數據存儲請求插入到一個序列式數據發送管理隊列的尾部;將所述序列式數據發送管理隊列中的第一個元素對應的數據存儲請求發送給應用伺服器,並刪除該序列式數據發送管理隊列中的第一個元素,將序列式數據發送管理隊列中其它元素依次往前移動一個存儲位置;應用伺服器將所述序列式數據發送管理隊列中第一個元素對應的數據存儲在資料庫中。利用本發明可以減少同一時間資料庫連接的數目。
文檔編號H04L29/06GK101442458SQ20071020264
公開日2009年5月27日 申請日期2007年11月23日 優先權日2007年11月23日
發明者邱志宏 申請人:深圳富泰宏精密工業有限公司;奇美通訊股份有限公司