吳乃鑫
(無錫職業技術學院 數字化校園中心,江蘇 無錫 214121)
每年的單獨招生工作是我院招生工作的一個非常重要的組成部分,其中相當一部分生源來自于單獨招生工作。我院是國家首批28所“國家示范性高等職業院校之一”,可以采用單獨招生系統的形式,并不需要使用江蘇省里統一的單獨招生系統,我院的單獨招生系統在單獨招生報名期間是24小時開放的,并非江蘇省統一單獨招生系統每天只開放8小時,近幾年我院的單獨招生系統都是招生辦公室委托數字化校園中心負責開發、運行和維護,通過這幾年的開發和維護積累了不少經驗,同時也得到了許多反饋信息,其中一個很重要反饋信息是在大并發量的情況時系統性能出現下降,用戶體驗不好,響應時間過長等,造成這樣的現象,原因可能有多種情況,既有硬件因素也有軟件因素,本文撇開硬件因素,重點來分析一下軟件系統的原因,哪些地方需要進行優化和改進,分析數據庫層面的,前臺程序層面的,圖片切割層面的等等。盡量提高整個系統的性能,給報考同學留下一次愉快的報考經歷。
根據我院每年的單招招生簡章及招生流程,單獨招生報名系統設計主要表現在以下幾個方面:①易操作性:由于面向對象為高中或中職生,所以界面一定要友好,操作一定要方面。② 良好的擴展性和伸縮性:由于每年的招生簡單不盡相同,有所差異,所以在設計時就應充分考慮到。
在系統設計時,對于單獨招生報名系統來說,要充分考慮報名流程。我院單獨招生的報名流程,如圖1所示:

圖1 單獨招生報名流程圖
單獨招生系統包含三個子系統,單獨招生報名子系統、單獨招生后臺子系統、單獨招生成績查詢子系統如圖2所示。

圖2 單獨招生系統結構圖
單獨招生報名系統主要用于單招報名開始時,網上填報系統。主要功能有:信息注冊,基本信息錄入填寫、修改,報名信息表打印,考生信息確認密碼修改等等。
后臺管理系統主要用于后臺管理,主要功能有:考生信息管理、繳費確認管理等等。
成績查詢系統主要用于用于考生對考試成績的查詢。
性能優化是指在不影響系統正常運行的前提下,使之運行地更快,完成特定功能所需的時間更短,更好地用戶體驗。用戶訪問一個網站打開頁面超過2分鐘,肯定讓人受不了,提交一個操作超過半分鐘,同樣讓人受不了,所以性能優化是一項非常重要的工作,同樣也是一個復雜的工作,因為這不僅涉及web應用程序本身,需要從整體上來考慮,Web程序本身、數據庫設計、Web應用服務器(IIS)等,對于招生系統來說,可以從以下4個方面給出優化。
(1)頁面緩存[1]。由數據庫驅動的 Web應用程序,如果需要改善其性能,最好的方法是使用緩存功能。由于從內存中返回的數據的速度始終比新提供的數據速度快,因而可以大大提高應用程序的性能,但是緩存有一個缺點,就是數據過期問題,例如顯示的內容可能不是最新的,最準確的,所以在使用緩存時要特別注意,必須設置適合的緩存策略。
(2)頁面加速。頁面加速主要包含幾個方面:①圖片,在切片圖片時,不能切割成太碎,碎片太多時會影響向Web服務器請求的次數。②分離CSS文件,盡量將CSS文件放到一個單獨的文件中,使用獨立的CSS文件能減少頁面的數據量。
從應用系統部署及軟件架構來看,應當將應用服務器與數據庫服務器分離,從而剝離業務處理和數據處理,減少因硬件原因導致的web應用程序性能下降,這需要硬件支持。
良好的數據庫結構設計,對于一個web程序來說非常重要,這不僅僅會影響到前端的程序設計,也會影響到整個應用程序的性能。所以對數據庫進行重新優化,重新設計,這主要體現在以下幾個方面。
(1)表結構優化。重新分析原有的表結構,重新整合原有的數據表,對于一些數據表、數據字段是否需要存在,進行仔細斟酌,例如去掉原有的性別表,同時增加程序的靈活性,增加了中學名稱。
(2)存儲過程使用[2]。存儲過程是優化數據庫性能一個很重要的方法,存儲過程是一組被編譯之后的SQL語句,它不僅僅能減少網絡的傳輸量還能加快程序執行的速度。在單招招生報名系統中,我們對于報名信息的寫入到數據中,采用了存儲過程的方法,編寫了名稱為procInsEnrInfo,大大地提高了數據插入速度。
良好、合理的網站配置文件,對于web應用程序來說,是必不可少的,不能采取默認的配置形式,默認的配置形式是一種通用的做法,并不適合特定的應用程序,所以我們要根據不同的應用,配置不同的參數,對于web.config來說,我們在發布程序的時候應當將<compilation debug=“true”> 改成<compilation debug=“false”>,也可以設置machine.config文件對線程進行重新配置。這一切要源于對性能的監控,對發現瓶頸的地方及時做出相應的參數調整。
我們假設在網絡穩定的情況下,對單獨招生系統的登錄模塊進行性能測試,同時要求最大相應時間為3秒,CPU的利用率小于80%,采用業界成熟的自動化性能測試工具 Apache ab[3]、Hp Loadrunner 11.0[4]。
為了驗證單獨招生系統優化之后的性能,我們搭建測試環境,測試環境軟、硬件配置如表1:

表1 測試環境軟、硬件配置
以上測試環境并沒有包含網絡帶寬因素,對登錄模塊進行了測試,從并發量20至200下,不同的并發數,響應時間是不盡相同的,測試結果如表2:

表2 不同并發量下的響應時間
軟件性能優化是一項很重要的工作,也是一項長期的工作,這不僅僅跟軟件本身優化還跟軟件的架構有關,同時也跟硬件資源有關,如服務器資源、網絡帶寬等等,本文重點研究了招生系統在大并發量下的可用性、穩定性、可度量的相應時間等等。測試及實踐證明是可行的,達到了預期的效果。
[1] 朱曄.ASP.NET第一步-基于 C#和 ASP.NET2.0[M].北京:清華大學出版社,2007:472.
[2] 黃有福 基于ADO.NET數據庫訪問技術及性能優化分析[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.