国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

支持動態(tài)負荷調(diào)整的管理信息系統(tǒng)構(gòu)建研究

2017-03-29 04:53
計算機技術(shù)與發(fā)展 2017年3期
關(guān)鍵詞:隊列調(diào)整動態(tài)

饒 浩

(韶關(guān)學院 信息管理系,廣東 韶關(guān) 512005)

支持動態(tài)負荷調(diào)整的管理信息系統(tǒng)構(gòu)建研究

饒 浩

(韶關(guān)學院 信息管理系,廣東 韶關(guān) 512005)

數(shù)據(jù)訪問層中的數(shù)據(jù)庫操作通常是現(xiàn)行多層式架構(gòu)管理信息系統(tǒng)中制約系統(tǒng)整體運行效率的瓶頸。為提高多層式管理信息系統(tǒng)的效率,提出了支持動態(tài)負荷調(diào)整的多層式管理信息系統(tǒng)構(gòu)建方案。該方案提出在數(shù)據(jù)訪問層內(nèi)設(shè)立連接池,建立數(shù)據(jù)生產(chǎn)使用流程的異步模型來實現(xiàn)信息數(shù)據(jù)的生產(chǎn)者與使用者的相對分離,以有效降低系統(tǒng)整體負荷,提高利用率;通過基于過程調(diào)整參數(shù)設(shè)計建立動態(tài)負荷調(diào)整因子算法和“放大縮小”處理策略,根據(jù)用戶連接次數(shù)和系統(tǒng)環(huán)境需求等因素動態(tài)設(shè)置調(diào)整因子,以加快動態(tài)負荷調(diào)整過程的收斂性、響應性和系統(tǒng)的穩(wěn)定性。通過采用先進先出(FIFO)和隨機(Random)調(diào)度算法對已建支持動態(tài)負荷調(diào)整的系統(tǒng)架構(gòu)進行了模擬測試。測試結(jié)果表明,基于動態(tài)調(diào)整連接池的系統(tǒng)構(gòu)建方式不僅能夠有效提高信息系統(tǒng)的承載能力,而且還有利于信息系統(tǒng)的維護修改和功能擴充,能滿足信息系統(tǒng)平臺未來多元化和綜合化發(fā)展的需求。

動態(tài)調(diào)整;管理信息系統(tǒng);業(yè)務邏輯層;數(shù)據(jù)訪問層;系統(tǒng)架構(gòu);連接池

0 引 言

隨著信息時代的快速發(fā)展,政府、機構(gòu)、企業(yè)等部門所涉及的各類有價值的數(shù)據(jù)、信息、文檔,成為愈發(fā)重要的戰(zhàn)略資源。由于信息用戶的需求不斷演進變更,促使管理信息系統(tǒng)的功能和結(jié)構(gòu)從單一趨于多元[1],系統(tǒng)平臺也逐漸向大型化、綜合化發(fā)展[2]。信息系統(tǒng)的規(guī)劃者和設(shè)計者所面臨的問題是,在系統(tǒng)負荷增長的情況下,如何構(gòu)建能盡量保持訪問穩(wěn)定性的管理信息系統(tǒng),以滿足信息用戶需求的擴展,維持較長的軟件生命周期。

在當前管理信息系統(tǒng)的設(shè)計中,分層式架構(gòu)是最主流、最重要的一種系統(tǒng)設(shè)計方式[3]?;镜姆謱臃椒ㄗ裱龑邮郊軜?gòu),從上至下分別為:表示層、業(yè)務邏輯層、數(shù)據(jù)訪問層。

表示層是用戶進入系統(tǒng)時的界面環(huán)境,亦即系統(tǒng)向用戶展現(xiàn)的界面,多采用Web方式表達,包括接收用戶的請求,向用戶顯示數(shù)據(jù)結(jié)果,為客戶端提供應用程序的交互式操作[4],等等。業(yè)務邏輯層介于表示層與數(shù)據(jù)訪問層之間,主要負責對數(shù)據(jù)業(yè)務邏輯的處理,是針對具體問題的操作,在數(shù)據(jù)交換中起到承上啟下的作用。其功能是將數(shù)據(jù)訪問層的存儲邏輯組合起來形成業(yè)務規(guī)則,涉及業(yè)務規(guī)則的制定、業(yè)務流程的實現(xiàn)、合法性校驗等與業(yè)務需求相關(guān)的設(shè)計。數(shù)據(jù)訪問層是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層[5],直接負責數(shù)據(jù)的添加、刪除、修改、查找等操作,為上兩層提供數(shù)據(jù)服務。如果要加入對象關(guān)系映射的元素,就需要建立對象和數(shù)據(jù)表之間的映射,把對象實體持久化到數(shù)據(jù)庫。

分層式架構(gòu)具有比較明顯的優(yōu)勢。系統(tǒng)開發(fā)人員只需關(guān)注系統(tǒng)整體中的某一層,有利于開發(fā)團隊的分工和開發(fā)工作齊頭并進;便于以新的實現(xiàn)替代原有的實現(xiàn),有利于系統(tǒng)業(yè)務能力的拓展和提高[6];數(shù)據(jù)與業(yè)務邏輯之間相對分離,有利于降低系統(tǒng)內(nèi)模塊的耦合性,有效降低層與層之間的依賴,既有利于標準化,也有利于各層邏輯的復用,從而提高系統(tǒng)開發(fā)的效率[7]。在業(yè)務邏輯層設(shè)計合理的前提下,表示層即使發(fā)生改變,邏輯層也同樣能完善地提供服務。對于分層式架構(gòu)的信息系統(tǒng),數(shù)據(jù)訪問層中的數(shù)據(jù)庫操作往往成為系統(tǒng)整體效率的瓶頸[8]。一般對數(shù)據(jù)庫操作的步驟是:首先向數(shù)據(jù)申請一條數(shù)據(jù)庫連接,然后執(zhí)行操作語句,最后關(guān)閉此連接[9]。如果頻繁的數(shù)據(jù)庫操作都按照這種做法,每次操作所建立的數(shù)據(jù)庫連接時間開銷會非常大,而且降低了數(shù)據(jù)庫操作的并發(fā)量。這使得數(shù)據(jù)訪問層的設(shè)計,既要能提高數(shù)據(jù)庫訪問的并發(fā)量,又要保證成功建立數(shù)據(jù)連接的效率。

為實現(xiàn)上述目的,提出在數(shù)據(jù)訪問層中設(shè)立連接池以降低系統(tǒng)負荷,并通過建立動態(tài)負荷調(diào)整因子,結(jié)合用戶連接次數(shù)和系統(tǒng)環(huán)境需求等因素,動態(tài)設(shè)置調(diào)整因子以加快動態(tài)負荷的調(diào)整過程,同時采用“放大縮小”策略保證系統(tǒng)的穩(wěn)定性。

1 連接池的設(shè)計

為了避免系統(tǒng)頻繁申請數(shù)據(jù)庫連接而產(chǎn)生的巨大時間開銷,需要在數(shù)據(jù)訪問層中建立一個連接池中間件[10],提供給持久化框架數(shù)據(jù)庫連接,負責分配、管理和釋放數(shù)據(jù)庫連接[11]。通過預先建立一定數(shù)量的連接,每次根據(jù)用戶需求分配一條連接,完成后則把該連接回收到池中以提供給下一個客戶,這樣可以節(jié)省每次數(shù)據(jù)庫操作都需要建立連接的時間開銷。連接池在整個系統(tǒng)結(jié)構(gòu)上扮演的是一個中間件角色,不僅要像組件一樣,有簡單的接口提供功能性的要求,而且能夠提供一定的可擴展性等非功能性要求[12]。

動態(tài)調(diào)整連接池模型如圖1所示。

圖1 動態(tài)調(diào)整連接池模型

系統(tǒng)連接池采用的調(diào)用方式是異步生產(chǎn)者和消費者模型:生產(chǎn)者只管生產(chǎn)數(shù)據(jù),然后放入連接池緩沖區(qū),不管數(shù)據(jù)是否會被處理;消費者則從緩沖區(qū)中依次讀取數(shù)據(jù)并按照自己的節(jié)奏進行處理[13]。當緩沖區(qū)沒有數(shù)據(jù)時,消費者要等待生產(chǎn)者生產(chǎn)數(shù)據(jù);當緩沖區(qū)滿時,生產(chǎn)者要等待消費者取出數(shù)據(jù),以便空出數(shù)據(jù)存放位置。異步生產(chǎn)者和消費者模型是多線程的,多線程必須要平衡線程之間的協(xié)作。數(shù)據(jù)操作的異步方式通過調(diào)度器實現(xiàn),連接的管理、評估、調(diào)控由系統(tǒng)監(jiān)聽線程負責,用戶只需以某一特定的重試次數(shù),簡單地向連接池管理器嘗試連接,從而減少了請求者的動作負荷和申請釋放連接的時間,提高了請求連接的并發(fā)量。

在獲取數(shù)據(jù)庫連接的過程中,為了讓系統(tǒng)監(jiān)聽線程可以實時獲取所產(chǎn)生的事件,并且做出及時響應,連接池需要一個事件監(jiān)聽模型。事件、事件觸發(fā)器、事件處理機捆綁注冊到事件源中,事件監(jiān)聽器以特定頻率掃描所有的連接池事件觸發(fā)器。當產(chǎn)生某一項事件,則調(diào)用該事件注冊時所對應的事件處理機進行處理。

事件監(jiān)聽模型如圖2所示。

圖2 事件監(jiān)聽模型

需要由連接池事件觸發(fā)器監(jiān)聽的事件包括:

·檢查連接池是否被關(guān)閉,是則強制銷毀所有連接,并移除觸發(fā)器。

·檢查忙隊列中是否有連接需要被銷毀,有則銷毀。

·檢查忙隊列中是否有連接使用次數(shù)達到最大值,是則回收。

·檢查忙隊列中是否有被關(guān)閉的連接,是則關(guān)閉。

·檢查忙隊列中是否有連接已經(jīng)超過最大活動時間,是則回收。

·檢查忙隊列+空閑隊列的連接數(shù)是否超過最大連接數(shù),是則向某一個池的空閑隊列中減少一個連接。

·檢查忙隊列+空閑隊列的連接數(shù)是否小于最小連接數(shù),是則向某一個池的空閑隊列增加一個連接。

·檢查池管理器是否被置失效,是則關(guān)閉所有池并移除此觸發(fā)器。

·根據(jù)部分最近的用戶重試次數(shù)作評估并調(diào)節(jié)連接池的連接數(shù)量。

2 動態(tài)負荷調(diào)整因子

連接池的動態(tài)負荷調(diào)整關(guān)鍵在于調(diào)整因子。其過程所涉及的調(diào)整參數(shù)包括:ListenerInterval,ListenerAmount,AdjustGeneRaise,Reduce,EvaluateRange,ReCo-nnectTimes。其中,ListenerInterval和LinstenerAmount用于保證監(jiān)聽者的效率,使之可以及時對新的用戶信息進行評估,或者是對監(jiān)聽的事件及時執(zhí)行。連接池根據(jù)監(jiān)聽隊列數(shù)量進行動態(tài)調(diào)整,監(jiān)聽者應該及時清空監(jiān)聽隊列以取得最新的客戶信息作評估,否則可能會因為評估不及時而延遲調(diào)整。

動態(tài)負荷調(diào)整因子的設(shè)置思想,是用最近的部分用戶嘗試取得連接的次數(shù)(也就是重連次數(shù)),除以這些用戶的最大重試數(shù)的平均數(shù)作為調(diào)整因子,把此百分比對應到最小連接數(shù)到最大連接數(shù)的區(qū)間內(nèi)。調(diào)整因子的計算過程如下:

(1)_MaxConn=MaxConn+(MaxConn-MinConn)*EvaluateRange;//根據(jù)用戶配置的評估范圍計算出用于調(diào)整的最大值,以便讓連接數(shù)量可以達到最大數(shù)量。MaxConn和MinConn分別是用戶設(shè)置的最大連接數(shù)量和最小連接數(shù)量。

(2)_MinConn=MinConn-(MaxConn-MinConn)*EvaluateRange;//根據(jù)用戶配置的評估范圍計算出用于調(diào)整的最小值。_MaxConn和_MinConn分別是用于調(diào)整的最大連接數(shù)量和最小連接數(shù)量。

(3)調(diào)整因子=(User1+User2+User3+User4+User5)/(5*ReConnectTimes);//將最近5個用戶嘗試取得連接的次數(shù)的平均值作為調(diào)整因子。

(4)_調(diào)整因子=調(diào)整因子的放大縮小處理;//根據(jù)配置對調(diào)整因子作放大或縮小處理。

(5)目標連接數(shù)=[(_MaxConn-_MinConn)*_調(diào)整因子]+_MinConn;//計算出此調(diào)整因子所得到的應有目標連接數(shù),目標連接數(shù)是根據(jù)真正的調(diào)整因子計算出的應有連接數(shù)量。

(6)下限=目標連接數(shù)-((_MaxConn-_MinConn)*(EvaluateRange/2.0));//根據(jù)用戶設(shè)置的評估范圍,計算出連接數(shù)可波動范圍的下限。

(7)上限=目標連接數(shù)+((_MaxConn-_MinConn)*(EvaluateRange/2.0));//根據(jù)用戶設(shè)置的評估范圍,計算出連接數(shù)可波動范圍的上限。

根據(jù)上述調(diào)整因子計算,得出連接數(shù)量合理范圍的上限和下限。如果現(xiàn)有的連接數(shù)量比下限少,則需要增加連接數(shù)量;如果大于此范圍的上限,則需要減少連接,向下調(diào)整,以此保持連接的數(shù)量。

這種計算方法,對于緩慢改變的連接量有比較好的效果。但如果連接量的改變具有突發(fā)性,例如,連接數(shù)量突然增加,甚至達到最大負荷,然后又劇減,那么根據(jù)以上的“調(diào)整因子”計算,連接數(shù)量會快速減少,甚至到最小負荷。如此重復躍變式的連接量變化會導致系統(tǒng)不穩(wěn)定。

為了保證系統(tǒng)的穩(wěn)定工作,同時讓盡可能多的用戶取得正常連接,降低“減少連接”的速度,系統(tǒng)采取“放大縮小處理”策略:先對“調(diào)整因子”作“放大處理”,乘一個放大系數(shù)(需根據(jù)具體運行環(huán)境測試得出),讓“調(diào)整因子”更加傾向于增加連接,保證盡量大的用戶數(shù)量正常取得連接。當放大后的“調(diào)整因子”跟上一次的“調(diào)整因子”比較起來呈現(xiàn)出“向下調(diào)整”的趨勢,此時需要減少連接數(shù)量,則作“縮小處理”,把本次的“調(diào)整因子”按某比例降低(需根據(jù)實際運行環(huán)境測試得出,例如200,則新的調(diào)整因子=(這次的調(diào)整因子+199*上次的調(diào)整因子)/200)。從而可以緩慢減少連接的速度,保留趨向于提高“增加連接”的機會,讓系統(tǒng)傾向于使更多的用戶取得正常連接。

3 并發(fā)壓力測試

連接池并發(fā)壓力測試在MyEclipse環(huán)境中配置執(zhí)行,使用MySql數(shù)據(jù)庫,測試文件包含3個類:Counter,用于記錄“無法取得連接的客戶個數(shù)”和“某時刻的并發(fā)量”;takeConn,通過獲取連接后睡眠一定的時間來模仿事務處理;test,測試的主程序,按照一定的睡眠時間來模仿一定量的并發(fā)客戶連接。測試量為10 000個連接,即10 000個事務(模擬用戶),事務長度是1 000 ms。調(diào)度算法方面使用FIFO(先進先出)和RAMDOM(隨機);最小連接數(shù)量是6*5個池=30;最大連接數(shù)量是15*5個池=75;重試次數(shù)是30。

測試配置文件如下:

123456

測試結(jié)果如表1和表2所示。

表1 使用FIFO調(diào)度算法的測試結(jié)果

表2 使用RAMDOM調(diào)度算法的測試結(jié)果

對于5個池應用的情況,使用FIFO比RAMDOM效果好。此動態(tài)調(diào)整連接池的配置,對于設(shè)置的最小連接數(shù)和最大連接數(shù),介乎于小到中的連接數(shù)量可以取得令人滿意的效果,但當并發(fā)量一旦超過了中上的連接數(shù)量,越偏近于最大負荷,動態(tài)調(diào)整的設(shè)置就越顯得緊迫。所以更適合于把“最小連接數(shù)”設(shè)置在“實際平均”值附近或者稍微偏下,而讓“最大連接數(shù)”盡量地設(shè)置大點,使其有足夠的空間作調(diào)整。因此,對于調(diào)整因子系數(shù)的設(shè)置,必須參照于實際環(huán)境的測試效果。

4 結(jié)束語

基于動態(tài)負荷調(diào)整的信息系統(tǒng)開發(fā),對管理信息系統(tǒng)開發(fā)人員有更高的技術(shù)要求,確定調(diào)整因子參數(shù)所需的測試也要花費額外的工作量。然而,一旦成功建立起系統(tǒng),在系統(tǒng)運行過程中,通過動態(tài)調(diào)整的連接池設(shè)計,多個客戶端可以通過共享少量的物理數(shù)據(jù)庫連接來獲得需求,盡可能多地滿足信息用戶業(yè)務需求,減少業(yè)務邏輯層對數(shù)據(jù)庫頻繁的連接操作。將連接池獨立分層的系統(tǒng),能夠更自如地應對業(yè)務規(guī)則的變化,提高業(yè)務的擴展能力和系統(tǒng)性能。層次的細化和獨立,支持并行開發(fā),提高了軟件開發(fā)的效率和質(zhì)量,降低了模塊間的耦合度,擁有更好的可維護性,符合現(xiàn)代大中型管理信息系統(tǒng)的高穩(wěn)定性、高可擴展性等要求。

[1] 王金光,陳貞翔.基于Web的網(wǎng)絡流量分類管理系統(tǒng)[J].濟南大學學報:自然科學版,2014,28(1):71-76.

[2] 宋 靜,何 偉,李浙昆.基于Web的情報信息系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2014,24(9):209-212.

[3] 李良斌,王勁林,陳 君.網(wǎng)絡服務系統(tǒng)可生存性分析與驗證[J].沈陽工業(yè)大學學報,2012,34(6):677-684.

[4] Lai I K W,Tong V W L,Lai D C F.Trust factors influencing the adoption of Internet-based interorganizational systems[J].Electronic Commerce Research and Applications,2011,10(1):85-93.

[5] 張 龍,肖琬蓉.集群數(shù)據(jù)庫內(nèi)容管理系統(tǒng)的設(shè)計與實現(xiàn)[J].情報雜志,2012,31(2):130-135.

[6] 霍占強,張錦程,王志衡.數(shù)據(jù)庫連接池的數(shù)學建模與性能分析[J].計算機工程,2014,40(10):32-36.

[7] Chu R,Lai I K W,Lai D C F.Trust factors influencing the adoption of cloud-based interorganizational systems:a conceptual model[C]//Proc of ICEMSI & iCETS.[s.l.]:[s.n.],2013.

[8] 谷 偉.基于網(wǎng)絡的自適應測試系統(tǒng)的設(shè)計與實現(xiàn)[J].湘潭大學自然科學學報,2013,35(2):98-102.

[9] Singh A K.Ajax asynchronous database refresh[J].International Journal of Information and Communication Technology Research,2012,2(8):669-703.

[10] 呂健波,戴冠中,慕德俊.絕對延遲保證在Web應用服務器數(shù)據(jù)庫連接池中的實現(xiàn)[J].計算機應用研究,2012,29(5):1838-1841.

[11] Hair J F,Jr Anderson R E,Tatham R L,et al.Multivariate data analysis[M].7th ed.Englewood Cliffs,NJ:Prentice-Hall Inc.,2010.

[12] 王倩宜,歐陽榮彬,龍新征.SaaS云服務環(huán)境下的管理信息系統(tǒng)方案研究[J].華東師范大學學報:自然科學版,2015(6):134-142.

[13] 孟培超,胡圣波,舒 恒,等.基于ADO數(shù)據(jù)庫連接池優(yōu)化策略[J].計算機工程與設(shè)計,2013,34(5):1706-1710.

Constitution Investigation of Management Information System Based on Dynamic Load Adjustment

RAO Hao

(Department of Information Management,Shaoguan University,Shaoguan 512005,China)

Database operation in data access layer is often the technical bottleneck of management information system with multi-layer structure,which restricts its promotion of operation efficiency.In order to enhance the efficiency of the information system,a scheme for constructing multi-layer information system supported by dynamic load adjustment has been presented where connection pool is designed and built to lower the whole load of the information system as well as a asynchronous model involving the generation and exploitation of information data is constructed to improve the system utilization rate.Furthermore,a dynamic load adjustment factor and its algorithm have been designed and established based on several process adjustment parameters according to the number of user connection and requirement for environments of the information system,besides a treating strategy named zoom-in-and-out has been determined to promote the constringency and response of dynamic load adjustment and reliability of the whole system.A simulation test of the constructed multi-layer information system supported by dynamic load adjustment has been conducted employing both First-in-First-out (FIFO) and random regulating algorithm.Results of the test shows that the method for building information system based on dynamic load adjustment pool can not only boost the effective carrying capacity but also can make modification of system maintenance and enlargement of system functions easier and that the method can satisfy technical requests on multi-functional and integrative development of future information system.

dynamic adjustment;management information system;service logic tier;date access tier;system architecture;connection pool

2016-04-20

2016-08-11

時間:2017-02-17

教育部人文社會科學研究青年基金項目(13YJCZH144)

饒 浩(1976-),男,副教授,研究方向為網(wǎng)絡技術(shù)、信息系統(tǒng)分析。

http://www.cnki.net/kcms/detail/61.1450.TP.20170217.1628.024.html

C931.6

A

1673-629X(2017)03-0185-04

10.3969/j.issn.1673-629X.2017.03.039

猜你喜歡
隊列調(diào)整動態(tài)
國內(nèi)動態(tài)
國內(nèi)動態(tài)
國內(nèi)動態(tài)
夏季午睡越睡越困該如何調(diào)整
隊列隊形體育教案
隊列里的小秘密
工位大調(diào)整
基于多隊列切換的SDN擁塞控制*
動態(tài)
在隊列里