張園田
(重慶電力高等專科學校,重慶400053)
近年來,隨著計算機技術的大力發(fā)展和網(wǎng)絡的普及,個人電腦(PC)已經(jīng)走進了千家萬戶,這為多媒體教學軟件的使用和發(fā)展提供了前提條件。而多媒體教學軟件所具備的生動活潑、寓教于樂、趣味性強等特點,也決定了它深受學生的喜愛。另外,多媒體教學軟件具有強大的的數(shù)據(jù)庫能力和跟蹤能力,能方便老師和家長對孩子的學習情況進行跟蹤觀察,以便于及時發(fā)現(xiàn)和解決問題。如今,多媒體教學軟件已經(jīng)越來越受到學生、家長和老師的歡迎。其中,作為一個開放的多用戶教學平臺,學生成績管理系統(tǒng)也逐漸成為課堂教學的重要輔助和補充。
在1980年代末,人們就提出了客戶/服務器(C/S)模式。它的關鍵在于功能的分布:一部分功能被放在客戶機上執(zhí)行,另一部分功能則在服務器上執(zhí)行。而隨著應用系統(tǒng)的大型化及基于Internet的應用發(fā)展要求的不斷提高,這種模型逐漸得到了廣泛的應用。
傳統(tǒng)的兩層客戶機/服務器模式比較適合于小規(guī)模、用戶較少、單一數(shù)據(jù)庫且在安全、快速的網(wǎng)絡環(huán)境下(例如局域網(wǎng))運行。但是,隨著應用系統(tǒng)的規(guī)模不斷擴大,復雜性越來越高,尤其在多用戶、多數(shù)據(jù)庫且不穩(wěn)定的網(wǎng)絡環(huán)境下,兩層結構的應用模型將無法適應。[1]
三層客戶/服務器模式(以下簡稱三層模式)在兩層模式的基礎上,增加了新的一級。它將應用功能分成表示層(UI)、功能層(BT)和數(shù)據(jù)層(DA)三部分。其目的是:對這三層進行明確分割,并在邏輯上使其獨立。原來的數(shù)據(jù)層作為DBMS已經(jīng)獨立出來,所以,關鍵是要將表示層和功能層分離成各自獨立的程序,并且還要使這兩層間的接口簡潔明了。[2]一般情況是只將表示層配置在客戶機中,也可以把邏輯層也放在客戶機中,這樣的話,與二層C/S結構相比,其程序的可維護性要好得多。其體系結構關系如圖1所示。
圖1 三層架構體系示意圖
如果將邏輯層和數(shù)據(jù)層分別放在不同的服務器中,則服務器和服務器之間也要進行數(shù)據(jù)傳送。但是,由于在這種形態(tài)中三層是分別放在各自不同的硬件系統(tǒng)上的,所以靈活性很高,能夠適應客戶機數(shù)目的增加和處理負荷的變動。[3]而系統(tǒng)規(guī)模越大這種形態(tài)的優(yōu)點就越顯著。
值得注意的是:三層C/S結構各層間的通信效率若不高,即使分配給各層的硬件能力很強,其作為整體來說也達不到所要求的性能。此外,設計時必須慎重考慮三層間的通信方法、通信頻度及數(shù)據(jù)量。這和提高各層的獨立性一樣是三層C/S結構的關鍵問題。
三層模式的主要優(yōu)點表現(xiàn)在以下幾個方面[4]。(1)具有靈活的硬件系統(tǒng)構成。對于各個層可以選擇與其處理負荷和處理特性相適應的硬件。這是一個與系統(tǒng)可縮放性直接相關的問題。(2)提高程序的可維護性。三層C/S結構中,應用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。(3)利于變更和維護應用技術規(guī)范。因為是按層分割功能,所以各個程序的處理邏輯變得十分簡單。(4)進行嚴密的安全管理。越關鍵的應用,用戶的識別和存取權限設定越重要。在三層C/S結構中,識別用戶的機構是按層來構筑的,對應用和數(shù)據(jù)的存取權限也可以按層進行設定。
成績管理業(yè)務系統(tǒng)需要滿足五種不同角色的操作需求,分別表現(xiàn)在以下幾個方面。(1)教學主管負責管理班級、學生的學習和訓練成績,生成報表,根據(jù)學生的成績進行評價并指導教師工作。(2)教師可以查看、管理所負責課程、班級、小組、學生的學習和訓練成績,根據(jù)成績指導學生學習和訓練;學習和訓練成績有數(shù)值表格、進度條、發(fā)展曲線等顯示形式;成績包括每個單獨訓練成績和若干單獨訓練成績組成的單元成績2種形式。(3)組長可以查看小組和組員成績。(4)學生在參加課程學習和訓練時會產(chǎn)生評價成績,學生可以看到以分值、獎品、進度條等形式顯示的成績;學生可以在學習和訓練過程中看到即時成績、單元訓練成績。(5)家長根據(jù)權限可以按時查看學生的成績統(tǒng)計表格和獎品。
將五種用戶的需求匯總,可以看出,總計有兩種數(shù)據(jù)輸入模塊,負責將學生訓練時產(chǎn)生的單項成績和單元成績輸入數(shù)據(jù)庫。四種數(shù)據(jù)輸出界面,分別負責從數(shù)據(jù)庫中讀出課程內(nèi)容、單項成績、單元成績和成績排名予以顯示。
本系統(tǒng)總體硬件架構由學生機、邏輯服務器以及數(shù)據(jù)庫服務器三部分組成。其網(wǎng)絡架構如圖2所示。
這是本系統(tǒng)中所擁有最多的計算機,從理論上來說,這類機器的最大數(shù)量并無限制;從實際上來講,學生機同時登陸的數(shù)量只要不超過系統(tǒng)最大負載能力就可以同時運行。學生機上主要運行三層架構的UI層。該層包括了客戶端,但不包括業(yè)務邏輯處理部分和數(shù)據(jù)庫部分。當需要調用下層功能時,學生機的客戶端通過UI接口向下層業(yè)務發(fā)出請求,并在收到響應后在UI上顯示出來。從功能上來說,學生機及其上所運行的UI層需實現(xiàn)以下功能:(1)運行客戶端程序;(2)提供優(yōu)秀的圖形UI界面以吸引用戶;(3)允許用戶進行登陸、注冊、查看和訓練等業(yè)務;(4)對用戶提交的請求做出響應,并把業(yè)務邏輯和數(shù)據(jù)庫訪問請求向下層提交;(5)接收來自業(yè)務邏輯層返回的指令或數(shù)據(jù);(6)將下層內(nèi)容重組,顯示在UI界面上。
圖2 機房管理系統(tǒng)網(wǎng)絡構架圖
總的來說,學生機充當網(wǎng)絡架構中的終端角色。
這種計算機充當服務器的角色,為多臺學生機提供服務,在其之上,運行的是業(yè)務邏輯層(BL),該層主要負責本系統(tǒng)所涉及業(yè)務的邏輯實現(xiàn)。從結構上來說,邏輯服務器對學生機提交的所有請求進行響應,作出判斷或計算,將結果返回學生機,若所提交的請求需訪問數(shù)據(jù)庫(例如查詢成績、提取題庫等),向下層(DA)發(fā)出請求。
從功能上來講,邏輯服務器需提供以下功能:(1)擁有控制權限,對學生機上的用戶界面(UI)進行控制;(2)對學生機提交的業(yè)務邏輯請求進行響應;(3)可向數(shù)據(jù)庫服務器(DA)提出數(shù)據(jù)庫訪問請求;(4)將計算結果或數(shù)據(jù)返回學生機相應UI界面。
總的來說,邏輯服務器充當了C/S結構中服務器的角色,但是與傳統(tǒng)意義的服務器有所不同的是,它并不具備數(shù)據(jù)庫,也不提供數(shù)據(jù)庫處理功能。取而代之的是,將數(shù)據(jù)庫請求繼續(xù)向下層提交,并響應下層返回的結果。
數(shù)據(jù)庫服務器作為三層架構的最下一層(DA),其功能是將業(yè)務邏輯服務器從繁瑣的數(shù)據(jù)庫處理中解放出來,并且由于單獨設置了數(shù)據(jù)庫服務器,可以很方便地設置并管理權限,也便于進行安全設置,防止數(shù)據(jù)庫被破壞。從邏輯上來講,數(shù)據(jù)庫服務器(DA)對上層(BL)提交的數(shù)據(jù)庫處理請求(包括查詢,添加,刪除和更新等)進行響應并做出處理。之后,向上層返回所請求的數(shù)據(jù)。
從功能上來講,數(shù)據(jù)庫服務器主要需要實現(xiàn)以下四個方面的功能:(1)構建并維護數(shù)據(jù)庫文件;(2)在數(shù)據(jù)庫內(nèi)建立所需的所有表,并標好字段;(3)提供數(shù)據(jù)庫訪問接口,包括添加、刪除、查詢和更新等;(4)對上層(BL)提交的數(shù)據(jù)訪問請求做出響應,并用接口返回所需數(shù)據(jù)。
因此,三層架構中的業(yè)務邏輯服務器則可以從繁重的數(shù)據(jù)庫處理任務中解放出來,有利于平衡整個系統(tǒng)的負載,不至于出現(xiàn)性能瓶頸;另一方面,由于數(shù)據(jù)庫服務器的出現(xiàn),使得數(shù)據(jù)庫的一致性問題得到了很好的解決,開發(fā)時不需過多關注數(shù)據(jù)一致性問題。同時,使用軟件的三層架構,讓每一層的功能十分清晰,不至于出現(xiàn)混亂,有利于軟件開發(fā)。
根據(jù)前面的分析,成績管理業(yè)務中查詢模塊主要在UI層,而插入模塊主要在BL層,功能是記錄用戶的練習成績,并允許用戶通過查詢窗體進行查看。實現(xiàn)方法是通過提供窗體與相應的接口,與用戶展開互動,當需要訪問數(shù)據(jù)庫時,使用數(shù)據(jù)庫提供的接口完成用戶成績的錄入、刪除、更新和查詢。
成績管理業(yè)務的總體邏輯圖,如圖3所示。
圖3 系統(tǒng)總體邏輯圖
作為一個團隊合作的項目,每個人的業(yè)務流程都或多或少地會涉及數(shù)據(jù)庫訪問,因此,開發(fā)一套通用的數(shù)據(jù)庫訪問接口組件就變得十分有必要了,它可以讓所有人使用相同的接口訪問數(shù)據(jù)庫,不但避免了兼容性問題,同時也減少了重復勞動,提高了開發(fā)效率。[5]
數(shù)據(jù)庫內(nèi)各表關系圖如圖4所示。
圖4 數(shù)據(jù)庫內(nèi)各表關系圖
數(shù)據(jù)庫訪問組件包括提供字段集模板md_score和md_score2,提供BL層接口bl_score和DA層接口da_score與dalSHFDB,同時,提供數(shù)據(jù)庫連接接口da_conn供da_score調用。其關系如圖5所示。
圖5 系統(tǒng)各層關系圖
由圖5可看出,bl_score工作在BL層,為UI層提供數(shù)據(jù)庫訪問接口,而它自己又調用da_score的函數(shù)實現(xiàn)功能,起到了承上啟下的作用。
運用計算機進行多媒體電子教學,是當今教育領域的一個重要的研究課題,是計算機成為當今社會輔助教學手段發(fā)展的必然趨勢。本文通過對實際業(yè)務的分析,確定了成績管理業(yè)務系統(tǒng)的設計思想和運行流程,闡述了網(wǎng)絡教學系統(tǒng)的C/S結構實現(xiàn)思想,并給出了系統(tǒng)的C/S模型。同時,在基于三層架構的軟件框架理論之上,設計了網(wǎng)絡教學系統(tǒng)的標準組件和業(yè)務邏輯模塊劃分,以及完成了對數(shù)據(jù)庫訪問接口組件的整體規(guī)劃。但是,在具體如何界定各層的范圍以及確定隔層調用的接口上,還需要在實際應用中對實際需求進行選擇和分析。
[1] Len Bass,Paul Clements,Rick Kazman.軟件構架實踐[M].北京:清華大學出版社,2004.
[2] 童吉輝.面向對象技術與軟件開發(fā)[J].技術研發(fā),2010,(5):40-44.
[3] 付樹才.基于C/S模式的機房管理系統(tǒng)的設計與實現(xiàn)[D].北京:北京科技大學,2008.
[4] 易金聰,張秀萍,寧正元.基于C/S與B/S模式的管理信息系統(tǒng)的設計與實現(xiàn)[J].微型電腦應用,2003,(4):113-116.
[5] 魏祖寬,江利娟,金在弘.數(shù)據(jù)庫訪問技術比較研究[J].計算機與現(xiàn)代化,2009,(12):87-92.