本發(fā)明涉及一種網(wǎng)絡(luò)IO在數(shù)據(jù)庫中間件中應(yīng)用的技術(shù),具體地說是一種網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法。
背景技術(shù):
數(shù)據(jù)庫(Data base, DB)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應(yīng)用。在信息化社會,充分有效地管理和利用各類信息資源,是進行科學(xué)研究和決策管理的前提條件。數(shù)據(jù)庫技術(shù)是管理信息系統(tǒng)、辦公自動化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分,是進行科學(xué)研究和決策管理的重要技術(shù)手段。
中間件(Middleware)是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機/ 服務(wù)器的操作系統(tǒng)之上,管理計算機資源和網(wǎng)絡(luò)通訊。是連接兩個獨立應(yīng)用程序或獨立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執(zhí)行中間件的一個關(guān)鍵途徑是信息傳遞。通過中間件,應(yīng)用程序可以工作于多平臺或OS環(huán)境。
隨著業(yè)務(wù)不斷擴展,客戶端的IO請求連接數(shù)不斷增多且連接時間較長,在訪問數(shù)據(jù)庫時,經(jīng)常出現(xiàn)線程阻塞和連接超時的現(xiàn)象,造成大量的系統(tǒng)資源不能充分利用,嚴(yán)重影響應(yīng)用的正常運行。故如何能夠?qū)崿F(xiàn)在訪問數(shù)據(jù)庫時,避免客戶端IO請求的線程阻塞,同時充分利用系統(tǒng)資源,提高系統(tǒng)資源的利用率是目前現(xiàn)有技術(shù)中急需解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是提供一種網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法,來解決如何能夠?qū)崿F(xiàn)在訪問數(shù)據(jù)庫時,避免客戶端IO請求的線程阻塞,同時充分利用系統(tǒng)資源,提高系統(tǒng)資源的利用率的問題。
本發(fā)明的技術(shù)任務(wù)是按以下方式實現(xiàn)的,網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法,該方法是在數(shù)據(jù)庫中間件上增加網(wǎng)絡(luò)IO,數(shù)據(jù)庫中間件處理客戶端IO請求時,使操作系統(tǒng)與數(shù)據(jù)庫交互;在交互過程中,若操作系統(tǒng)的線程資源被占用,其他IO操作無需等待該資源釋放,操作系統(tǒng)就能重新分配其他資源與數(shù)據(jù)庫進行交互,不僅能夠避免客戶端IO請求的線程阻塞,還能大大提高系統(tǒng)資源的利用。
作為優(yōu)選,所述網(wǎng)絡(luò)IO為網(wǎng)絡(luò)的異步非阻塞模式。
更優(yōu)地,所述網(wǎng)絡(luò)的異步非阻塞模式就是用戶進程只需要發(fā)起一個IO操作,之后立即返回,等IO操作真正的完成以后,應(yīng)用會得到IO操作完成的通知,此時用戶進程只需要讀取相關(guān)數(shù)據(jù),不必進行實際的IO讀寫操作,真正的IO讀取或者寫入操作已經(jīng)由操作系統(tǒng)完成了;在操作系統(tǒng)處理IO操作過程中,用戶進程不必等待IO的操作結(jié)果,可以繼續(xù)進行其他的IO操作,提高IO操作的并發(fā)性。
本發(fā)明的網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法具有以下優(yōu)點:
1、本文發(fā)明是網(wǎng)絡(luò)IO架構(gòu)的異步非阻塞模式應(yīng)用于數(shù)據(jù)庫中間件的方法,主要涉及數(shù)據(jù)庫中間件的網(wǎng)絡(luò)IO數(shù)據(jù)通信層面,通過采用網(wǎng)絡(luò)IO的異步非阻塞模式,實現(xiàn)數(shù)據(jù)庫中間件的網(wǎng)絡(luò)通信;通過部署數(shù)據(jù)庫中間件來訪問數(shù)據(jù)庫,在應(yīng)用中經(jīng)常會發(fā)生線程阻塞的現(xiàn)象,造成其他線程不能及時響應(yīng)和系統(tǒng)資源不能很好的被利用。通過在中間件中實現(xiàn)網(wǎng)絡(luò)IO的異步非阻塞模式,能夠很好地得以解決;
2、本發(fā)明涉及一種網(wǎng)絡(luò)IO在數(shù)據(jù)庫中間件中應(yīng)用的技術(shù),是基于網(wǎng)絡(luò)IO的異步非阻塞模式應(yīng)用于數(shù)據(jù)庫中間的網(wǎng)絡(luò)通信層,在原有中間件的基礎(chǔ)上,通過用網(wǎng)絡(luò)IO的異步非阻塞模式來實現(xiàn)其網(wǎng)絡(luò)通信層,達到最大程度的避免線程阻塞和充分利用系統(tǒng)資源的目的;同時在保證原數(shù)據(jù)庫中間件正常使用的條件下,對其功能進行完善,避免客戶端IO請求的線程阻塞,同時充分利用系統(tǒng)資源,提高系統(tǒng)資源的利用率;
3、本發(fā)明在不影響應(yīng)用正常使用數(shù)據(jù)庫的基礎(chǔ)上,最大程度的避免客戶端IO請求的線程阻塞,并提高IO并發(fā)數(shù)和充分利用系統(tǒng)資源。
故本發(fā)明具有設(shè)計合理、結(jié)構(gòu)簡單、使用方便、一物多用等特點,因而,具有很好的推廣使用價值。
附圖說明
下面結(jié)合附圖對本發(fā)明進一步說明。
附圖1為網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法的流程框圖;
附圖2為網(wǎng)絡(luò)IO的異步非阻塞模式的流程框圖。
具體實施方式
參照說明書附圖和具體實施例對本發(fā)明的網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法作以下詳細(xì)地說明。
實施例:
如附圖1和2所示,本發(fā)明的網(wǎng)絡(luò)IO的異步非阻塞應(yīng)用于數(shù)據(jù)庫中間件的方法,該方法是在數(shù)據(jù)庫中間件上增加網(wǎng)絡(luò)的異步非阻塞模式,數(shù)據(jù)庫中間件處理客戶端IO請求時,使操作系統(tǒng)與數(shù)據(jù)庫交互;在交互過程中,若操作系統(tǒng)的線程資源被占用,其他IO操作無需等待該資源釋放,操作系統(tǒng)就能重新分配其他資源與數(shù)據(jù)庫進行交互,不僅能夠避免客戶端IO請求的線程阻塞,還能大大提高系統(tǒng)資源的利用。其中,述網(wǎng)絡(luò)的異步非阻塞模式就是用戶進程只需要發(fā)起一個IO操作,之后立即返回,等IO操作真正的完成以后,應(yīng)用會得到IO操作完成的通知,此時用戶進程只需要讀取相關(guān)數(shù)據(jù),不必進行實際的IO讀寫操作,真正的IO讀取或者寫入操作已經(jīng)由操作系統(tǒng)完成了;在操作系統(tǒng)處理IO操作過程中,用戶進程不必等待IO的操作結(jié)果,可以繼續(xù)進行其他的IO操作,提高IO操作的并發(fā)性。
通過上面具體實施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的一種具體實施方式。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。