吳乃鑫
(無錫職業(yè)技術(shù)學(xué)院 數(shù)字化校園中心,江蘇 無錫 214121)
每年的單獨招生工作是我院招生工作的一個非常重要的組成部分,其中相當(dāng)一部分生源來自于單獨招生工作。我院是國家首批28所“國家示范性高等職業(yè)院校之一”,可以采用單獨招生系統(tǒng)的形式,并不需要使用江蘇省里統(tǒng)一的單獨招生系統(tǒng),我院的單獨招生系統(tǒng)在單獨招生報名期間是24小時開放的,并非江蘇省統(tǒng)一單獨招生系統(tǒng)每天只開放8小時,近幾年我院的單獨招生系統(tǒng)都是招生辦公室委托數(shù)字化校園中心負(fù)責(zé)開發(fā)、運行和維護,通過這幾年的開發(fā)和維護積累了不少經(jīng)驗,同時也得到了許多反饋信息,其中一個很重要反饋信息是在大并發(fā)量的情況時系統(tǒng)性能出現(xiàn)下降,用戶體驗不好,響應(yīng)時間過長等,造成這樣的現(xiàn)象,原因可能有多種情況,既有硬件因素也有軟件因素,本文撇開硬件因素,重點來分析一下軟件系統(tǒng)的原因,哪些地方需要進行優(yōu)化和改進,分析數(shù)據(jù)庫層面的,前臺程序?qū)用娴?,圖片切割層面的等等。盡量提高整個系統(tǒng)的性能,給報考同學(xué)留下一次愉快的報考經(jīng)歷。
根據(jù)我院每年的單招招生簡章及招生流程,單獨招生報名系統(tǒng)設(shè)計主要表現(xiàn)在以下幾個方面:①易操作性:由于面向?qū)ο鬄楦咧谢蛑新毶?,所以界面一定要友好,操作一定要方面。?良好的擴展性和伸縮性:由于每年的招生簡單不盡相同,有所差異,所以在設(shè)計時就應(yīng)充分考慮到。
在系統(tǒng)設(shè)計時,對于單獨招生報名系統(tǒng)來說,要充分考慮報名流程。我院單獨招生的報名流程,如圖1所示:
圖1 單獨招生報名流程圖
單獨招生系統(tǒng)包含三個子系統(tǒng),單獨招生報名子系統(tǒng)、單獨招生后臺子系統(tǒng)、單獨招生成績查詢子系統(tǒng)如圖2所示。
圖2 單獨招生系統(tǒng)結(jié)構(gòu)圖
單獨招生報名系統(tǒng)主要用于單招報名開始時,網(wǎng)上填報系統(tǒng)。主要功能有:信息注冊,基本信息錄入填寫、修改,報名信息表打印,考生信息確認(rèn)密碼修改等等。
后臺管理系統(tǒng)主要用于后臺管理,主要功能有:考生信息管理、繳費確認(rèn)管理等等。
成績查詢系統(tǒng)主要用于用于考生對考試成績的查詢。
性能優(yōu)化是指在不影響系統(tǒng)正常運行的前提下,使之運行地更快,完成特定功能所需的時間更短,更好地用戶體驗。用戶訪問一個網(wǎng)站打開頁面超過2分鐘,肯定讓人受不了,提交一個操作超過半分鐘,同樣讓人受不了,所以性能優(yōu)化是一項非常重要的工作,同樣也是一個復(fù)雜的工作,因為這不僅涉及web應(yīng)用程序本身,需要從整體上來考慮,Web程序本身、數(shù)據(jù)庫設(shè)計、Web應(yīng)用服務(wù)器(IIS)等,對于招生系統(tǒng)來說,可以從以下4個方面給出優(yōu)化。
(1)頁面緩存[1]。由數(shù)據(jù)庫驅(qū)動的 Web應(yīng)用程序,如果需要改善其性能,最好的方法是使用緩存功能。由于從內(nèi)存中返回的數(shù)據(jù)的速度始終比新提供的數(shù)據(jù)速度快,因而可以大大提高應(yīng)用程序的性能,但是緩存有一個缺點,就是數(shù)據(jù)過期問題,例如顯示的內(nèi)容可能不是最新的,最準(zhǔn)確的,所以在使用緩存時要特別注意,必須設(shè)置適合的緩存策略。
(2)頁面加速。頁面加速主要包含幾個方面:①圖片,在切片圖片時,不能切割成太碎,碎片太多時會影響向Web服務(wù)器請求的次數(shù)。②分離CSS文件,盡量將CSS文件放到一個單獨的文件中,使用獨立的CSS文件能減少頁面的數(shù)據(jù)量。
從應(yīng)用系統(tǒng)部署及軟件架構(gòu)來看,應(yīng)當(dāng)將應(yīng)用服務(wù)器與數(shù)據(jù)庫服務(wù)器分離,從而剝離業(yè)務(wù)處理和數(shù)據(jù)處理,減少因硬件原因?qū)е碌膚eb應(yīng)用程序性能下降,這需要硬件支持。
良好的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,對于一個web程序來說非常重要,這不僅僅會影響到前端的程序設(shè)計,也會影響到整個應(yīng)用程序的性能。所以對數(shù)據(jù)庫進行重新優(yōu)化,重新設(shè)計,這主要體現(xiàn)在以下幾個方面。
(1)表結(jié)構(gòu)優(yōu)化。重新分析原有的表結(jié)構(gòu),重新整合原有的數(shù)據(jù)表,對于一些數(shù)據(jù)表、數(shù)據(jù)字段是否需要存在,進行仔細(xì)斟酌,例如去掉原有的性別表,同時增加程序的靈活性,增加了中學(xué)名稱。
(2)存儲過程使用[2]。存儲過程是優(yōu)化數(shù)據(jù)庫性能一個很重要的方法,存儲過程是一組被編譯之后的SQL語句,它不僅僅能減少網(wǎng)絡(luò)的傳輸量還能加快程序執(zhí)行的速度。在單招招生報名系統(tǒng)中,我們對于報名信息的寫入到數(shù)據(jù)中,采用了存儲過程的方法,編寫了名稱為procInsEnrInfo,大大地提高了數(shù)據(jù)插入速度。
良好、合理的網(wǎng)站配置文件,對于web應(yīng)用程序來說,是必不可少的,不能采取默認(rèn)的配置形式,默認(rèn)的配置形式是一種通用的做法,并不適合特定的應(yīng)用程序,所以我們要根據(jù)不同的應(yīng)用,配置不同的參數(shù),對于web.config來說,我們在發(fā)布程序的時候應(yīng)當(dāng)將<compilation debug=“true”> 改成<compilation debug=“false”>,也可以設(shè)置machine.config文件對線程進行重新配置。這一切要源于對性能的監(jiān)控,對發(fā)現(xiàn)瓶頸的地方及時做出相應(yīng)的參數(shù)調(diào)整。
我們假設(shè)在網(wǎng)絡(luò)穩(wěn)定的情況下,對單獨招生系統(tǒng)的登錄模塊進行性能測試,同時要求最大相應(yīng)時間為3秒,CPU的利用率小于80%,采用業(yè)界成熟的自動化性能測試工具 Apache ab[3]、Hp Loadrunner 11.0[4]。
為了驗證單獨招生系統(tǒng)優(yōu)化之后的性能,我們搭建測試環(huán)境,測試環(huán)境軟、硬件配置如表1:
表1 測試環(huán)境軟、硬件配置
以上測試環(huán)境并沒有包含網(wǎng)絡(luò)帶寬因素,對登錄模塊進行了測試,從并發(fā)量20至200下,不同的并發(fā)數(shù),響應(yīng)時間是不盡相同的,測試結(jié)果如表2:
表2 不同并發(fā)量下的響應(yīng)時間
軟件性能優(yōu)化是一項很重要的工作,也是一項長期的工作,這不僅僅跟軟件本身優(yōu)化還跟軟件的架構(gòu)有關(guān),同時也跟硬件資源有關(guān),如服務(wù)器資源、網(wǎng)絡(luò)帶寬等等,本文重點研究了招生系統(tǒng)在大并發(fā)量下的可用性、穩(wěn)定性、可度量的相應(yīng)時間等等。測試及實踐證明是可行的,達到了預(yù)期的效果。
[1] 朱曄.ASP.NET第一步-基于 C#和 ASP.NET2.0[M].北京:清華大學(xué)出版社,2007:472.
[2] 黃有福 基于ADO.NET數(shù)據(jù)庫訪問技術(shù)及性能優(yōu)化分析[J].硅谷,2012:20.
[3] Apache ab[EB/OL].(2013-02-19)[2014-03-10]http://httpd.apache.org/docs/2.0/programs/ab.html.
[4] Loadrumer 11.0[EB/OL].(2012-08-07)[2014-03-10] http://www8.hp.com/tw/zh/software-solutions/loadrunner-load-testing/index.html.