廣東財經大學華商學院 譚良舟
教務管理系統性能優化研究
廣東財經大學華商學院譚良舟
基于計算機應用的實踐與研究,從應用環境、傳統優勢技術、高新IT技術等角度出發,探討教務管理系統的性能優化策略。
計算機應用;信息管理系統;教務系統;優化策略
隨著信息技術的高速發展,各高校的教學管理也走向了信息化,其中教務系統是最基本、應用最廣泛的信息管理系統。然而隨著在校學生人數的不斷增加,學分制改革的不斷推進,歷史數據的不斷疊加,教務管理系統在處理由于大量學生同時訪問而產生的高并發、大流量的數據時,已顯露出諸多的瓶頸與局限,嚴重地影響了學校的教學工作進度,制約了教學管理信息化的發展,有學校投入大量的資金采購新型的硬件設備,希望以此來提高系統的高并發事件處理能力,可是由于系統架構本身就存在缺陷,使得單純地拓展硬件設施并不能獲得系統處理性能的線性提高。因此,應該從軟件架構和應用環境出發,結合先進的計算機科學技術和成熟的傳統優勢技術,探索出一套能支持高并發、響應速度快、分析執行能力強的系統優化策略。
云計算是最新的IT技術之一,它通過把互聯網上的計算資源連結起來,形成一個虛擬的超級計算機集群,為用戶提供按需即取的計算服務。云計算具有虛擬化、通用性強、超大規模、極其廉價、高可擴展性、高可靠性等特點。把教務管理系統放到“云端”,則可讓云中數以百萬計的計算機群為教務管理系統提供所需的網絡、儲存、應用軟件、服務器等資源,使各種量大復雜的數據分析和數據處理不會再受牽制于應用環境中可能導致系統瓶頸的軟硬條件,不用去擔心機房服務器不夠、配置不足、版本不高、安全薄弱等硬性條件的不足,更不用去擔心維護系統的人力資源、專業技能、費用開支等等,并且始終享有資源充足、高效快捷的系統環境。可是,由于教務系統里含有許多私隱信息,如學生學籍檔案、教師信息等等,所以服務器必須處在自己學校可管控的領域,有些甚至還要通過內網隔離,所以在運用云技術之前,必須先準備一套可靠的網絡安全方案,或者可以像浙江大學那樣建設自己的云計算中心,中心有多個計算集群、數據庫集群,提供的服務也是相當穩定的。
選課高峰期出現的系統癱瘓是各大高校常見的頑疾。因為一般選課系統都是將所有的數據庫操作語句直接寫在應用服務器上,而選課期間的高并發訪問需要對數據庫進行非常頻繁的操作,而此時需要對數據庫操作語句進行解析和編譯,當有成千上萬的人同時選課時,操作數成幾何倍數增加,此時CPU的使用率已經是100%,由于遇上系統反應遲滯,用戶還會重復地點擊,導致服務器無法響應,隨著操作用戶的增加,等待處理的進程增多,而CPU資源和內存資源無法及時釋放,最終導致內存耗盡,服務器癱瘓。針對這種瓶頸,可以把數據庫操作語句寫成存儲過程,將一個或多個SQL操作語句寫成一個代碼塊發送給服務器,在運行這些操作語句之前,數據庫就已經對其進行了解析與編譯,并得出了優化后的執行方案。由于這個過程很大一部分工作就是對操作語句進行解析與編譯,而這些工作在前期已經完成,所以這種已經編譯好的過程可以以極快的速度執行,提高了系統的性能。PL/SQL(Procedural Language/SQL)就是一個很好的過程性語言,用于從各種環境中訪問Oracle數據庫。與SQL相比,PL/SQL可以通過增加變量、類型、過程、循環控制結構等,在其它過程性語言中進行結構的擴展,從而達到優化數據庫運行的目的。總的來說,存儲過程有如下優點:(1)一般情況下數據庫要執行一個動作,需要先進行編譯,然后再執行。而存儲過程則是把動作寫成一組已經編譯過的代碼,所以執行速度比普通的數據庫語句要快得多。(2)由于存儲過程是將一大堆SQL語句組合成一組語句塊來進行傳輸的,所以在網絡傳輸過程中能降低網絡通信量,提高傳輸速度。(3)存儲過程可以避免沒有權限的用戶直接訪問數據庫,而改為在控制下間接地訪問數據庫,從而提了數據的安全性。
有統計表明,單純地對硬件或者其他外部條件入手進行優化所獲得的性能提升,只能占到所有優化的40%左右,而其他60%則需要對系統內部包括軟件架構進行優化。對教務管理系統的優化同樣可以從應用程序的框架搭建來展開,選用一個最合適的多層體系框架可以獲得不俗的優化效果。不熟悉軟件架構搭建的朋友可以從SSh(struts+spring+hibernate)入手,雖然現在做Java web的基本都沒使用SSh了,但是作為入門來說SSH仍然是不二之選。從SSH出發,再拓展到其他如Spring MVC+Ibatis/MyBatis+Oracle等,研究一套最適合本校系統的軟件架構。SSH框架中,Struts 主要做控制操作,就是頁面請求到Struts的Action,在Action中接收請求數據并且處理,然后返回結果再應答給JSP頁面,Struts就是一個很完美的MVC結構的開發框架。Spring的主要技術是IOC和AOP(依賴注入和面向切面),IOC技術主要是幫助類初始化和實例化,并且在Spring中每個類都可以有對應的Bean,在配置文件中,然后把Bean逐層注入到其他應用類。AOP技術主要是做事物處理,一般聲明式事物和編程式事物較通用。Hibernate:就是數據持久化,將數據庫中的表映射為相應的實體,以便對實體的操作。在這里struts擔當控制器,就好比你要做車去深圳,要先跟售票員買票,拿到票后才能去坐車,struts就是售票員,它接到你的請求之后就去Hibernate那里取票,然后再給你票,spring就是車站的保安,負責管理買賣票,像struts擔任控制器的有(struts1/2,webwork,servlet,JSF),Hibernate處理后臺(增刪改查)和JDBC,類似的框架有JPA,spring管理,依賴注入/AOP 事物等等。在教務管理系統中采用這種框架為系統提供了一個更高級的應用程序體系架構,使系統具更高的可靠性、擴展性和可維護性。
虛擬化技術(Virtualization)是將各種計算機資源如CPU、內存、硬盤、服務器等進行虛擬擴展的一種技術。例如把一臺計算機虛擬為多臺計算機,每臺虛擬計算機又可以運行各自的應用程序,而各臺計算機和各個應用程序之間又是相互獨立運行,互不干擾的,這樣就得以打破物理架構的限制,擴展了原有的軟硬件環境,使用戶可以更充分地運用這些資源。針對教務系統,我們可對其進行硬件虛擬化和軟件虛擬化。在硬件方面,可選取在高并發事件中仍有空閑資源的服務器進行虛擬化,如VMware Workstation,Xen,KVM等虛擬化產品都具有較為成熟的虛擬化技術方案,對這些服務器進行虛擬化使這些空閑資源可以用到其他進程上,緩解了系統的壓力。另外,我們不僅可以挖掘利用服務器的剩余空閑資源,還可以對舊設備進行再利用,節約了硬件設備的資金投入同時還實現了現有資源的充分利用。虛擬化技術可以使不同配置不同版本的服務器設備在虛擬的運行環境中得到統一,使他們能夠相互兼容,共同協作,從而優化了整個硬件環境。在軟件方面,可以在操作系統層面增添虛擬服務器功能,如Oracle數據庫運行的操作系統Solaris,就可以采用Solaris Container技術,它將Solaris系統虛擬化為多個虛擬系統,每個系統都運行著獨立的用戶賬戶和應用程序,他們都擁有獨立的資源,運行著相互獨立的Oracle數據庫,這就相當于有多個數據庫在同時運作,從而提高了整個系統并發處理事務的能力。
內存的讀寫速度要遠遠快于硬盤等存儲媒介,有報告稱內存的讀取速度比硬盤快一萬多倍。在內存資源有剩余的情況下,運用Oracle緩存技術把在選課期間需要頻繁訪問的、數據量比較少的目標表(如choose_credit,choose_need_course等)存放在Oracle自身管理的內存中,避免了文件系統的I/O,提高了數據的訪問速度,因而提高了系統的響應時間。特別是在集中選課期間,小的目標數據庫表通常是每個學生選課時需要訪問的選課條件和參數,利用緩存技術來提高響應時間是非常必要的。采用以下命令將表緩存到Oracle內存中,如把Choose_credit放入內存中。使用語句alter table choose_credit storage(buffer_pool keep)。在進行全校性選課或者其他會造成訪問量突增的活動前,采用這一緩存技術,將需要經常訪問到的數據量比較少的目標表預先存放在內存里,則可以大大地提升系統的響應速度。
教務管理系統的優化建設,能在緩解高并發事件頑疾的基礎上,推進學分制改革等新型的高校人才培養模式,進而全面提高教學質量,推動我國教育事業的發展。所以,完善和優化教務管理系統,是推進高校質量工程和教學改革工程必不可少的一個重要環節。
[1]高杰欣.教務系統應用瓶頸及優化策略研究[J].中國管理信息化.
[2]譚艷.高校教務管理系統優化方案研究[D].南華大學.
[3]蔡炳躍.教務管理系統的系統管理設計和性能優化研究[D].廈門大學.