卓越網絡學習系統計劃書
V0.2
方兵
2004年6月
這是有關卓越網絡學習系統的系統設計,這個設計整合了現有DS(當然DS需要為此進行重新開發新版本)和我們設想中的資訊資源庫系統,并提供了更多更進階的功能。該系統從語言學習出發,又不局限于語言學習,是一個全功能的綜合學習系統。
從中可以看出,這個網絡學習系統是網絡時代的産物,充分展現了“一切都是服務的理念”,并有效的整合了地域上的一切可利用的資源,充分發揮了分布式計算的作用。并不局限于英語學習,可以将各種學習功能納入其中,并可以于随時随地進行通路。從中,我們可以感受到,這套網絡學習系統的推出必将是帶來學習方式的新的突破。
一. 系統特性
1. 通用的服務接口,各學校可友善的共享資源;
2. 良好的使用者體驗(XP),友善多樣的使用者界面;
3. 開放的程式設計接口,輕松擴充系統功能;
4. 完善的網絡通路機制,随時随地享受服務;
5. 優秀的緩存機制,聯機和離線均可使用;
6. 動态加載運作元件,采用“徐徐注入”的方式減少需要加載的程式集大小;
7. 程式自動更新,有效降低部署成本;
8. 高效的開發效率,穩定、安全的系統。
二. 實體拓撲結構
卓越網絡學習系統的實體拓撲結構有如下幾種形式,如下圖所示:
![](/image//images/blog_csdn_net/lornshrimp/25629/r_Able语言学习系统.jpg)
這是很傳統的一種組網方式,學校的所有教學活動在一個獨立的校園網内進行。這種網絡拓撲結構适用于較小的、單校區的學校,如中學,小型的大學等等。
這種組網方式則沒有一個明顯獨立的校園網,學校的的各項教學活動集中進行,但在全校範圍内來看則有呈現一種分散的形态。這種網絡拓撲結構适用于較大的或多校區的學校,是目前最常見的校園組網方式。
這種組網方式呈現出一種非常明顯的完全分散形态,學校的各項教學活動都是完全分散進行。這種網絡拓撲結構适用于沒有地理意義上的學校概念的學校,如函授學院、遠端學院、網上學校等等。這種系統才是真正意義上的網絡學習系統。
基于以上三種組網方式,我們在做開發的時候,要充分考慮組網的靈活性和不确定性,開發出能同時适用于以上三種網絡結構的網絡學習系統。
解決以上問題的方案是,充分利用WebSevices和.net Remoting的強大的穿透防火牆的能力,在對性能要求和互動要求比較高的地方使用.net Remoting,在其他地方使用WebServices。具體在圖上已做了标注。
三. 系統功能簡述
基于以上網絡拓撲結構,現針對各網絡節點對各自要實作的功能作一個簡單叙述:
1. Able資源中心①包括伺服器和用戶端兩個元素,兩元素之間通過WebServices相連。Able資源中心實作如下服務:
a) 注冊鑒權,各學校客戶隻有在注冊并繳納服務費之後才能享受Able資源中心提供的一系列增值服務;
b) 大學資源中心伺服器儲存資源的清單,各大學資源中心在使用注冊的帳戶登陸之後和獲得各大學資源中心伺服器儲存資源的清單,進而可與各大學資源中心共享資源;
c) Able提供的教學資源,這裡和上面提供的大學資源中心伺服器儲存的資源的清單可以按學科分類,并分為基本資源和擴充資源,分别收取服務費;
d) 教學論壇、教學聊天室;
e) Able提供的互動實驗室,這些互動實驗室屬于增值服務,隻有各學校購買相應實驗室的一定時間的服務,該學校的大學資源中心才能下載下傳并分發給本校學生使用;
f) 提供系統的更新服務,分發系統的更新及擴充元件;
g) 收集系統Bug及客戶體驗報告,以便在後續開發中參考。
此處應當考慮伺服器群集技術的應用。
2. 大學資源中心②包括伺服器和用戶端兩個元素,兩元素之間通過WebServices相連。大學資源中心實作如下服務:
a) 紀錄學校使用者的活動,學校的教師和學生的身份認證資訊儲存在這裡,并紀錄下使用者在系統中的活動資訊,并可以查詢分析;
b) 資源儲存和分發,學校的有關教學資源儲存在這裡,可以分發給各語音教室從事各項教學活動;
c) 本校的教學論壇和教學聊天室;
d) 轉發Able教學論壇和教學聊天室的資訊;
e) 互動實驗室的存儲和分發,隻有購買了相應實驗室的一定時間的授權才能在服務期内使用;
f) 與其他學校資源中心交換資源資訊,教學資源有是否公開屬性,如果屬性為真,則該資源可與其他學校資源中心共享;
g) 從Able資源中心下載下傳并更新自身程式,擷取并分發語音教室、客戶機的更新程式。
此處應當考慮伺服器群集技術的應用。
3. 教室教師機④和教室學生機④是目前DS系統的組成部分。當然DS需要為滿足這裡的功能需求進行重新開發。在此基礎上,為從以控制系統為中心轉向以教學資源為中心,加入了教室伺服器③,在軟體開發上教室伺服器和教室教師機作為兩個獨立的元件來開發,在部署上可以根據需要部署在同一機器上或是分開部署。教室伺服器(教師機)實作如下功能:
a) 接受教師機的指令控制學生機進行各項教學活動,;
b) 從校資源中心擷取并分發教學資源,并根據需要進行緩存,以備以後教學使用;
c) 轉發教學論壇和教學聊天室的資訊;
d) 轉發互動實驗室資訊;
e) 将學生在本教室中的活動送出校資源中心;
f) 從校資源中心下載下傳并更新自身程式,擷取并分發學生機的更新程式。
此處應當考慮一台伺服器同時對多個語音教室的教室機和學生機的控制(基于會話的概念)和伺服器群集技術的利用。
4. 教室教師機④将實作如下功能:
a) 從教室伺服器擷取教學資源并播放,并根據需要進行緩存,以備以後教學使用;
b) 在教師控制下向教室伺服器發出指令以控制學生機的活動;
c) 将學生的活動發給教室伺服器并轉發到校資源中心。
d) 教學論壇和教學聊天室用戶端;
e) 互動實驗室用戶端;
f) 從教室伺服器下載下傳并更新自身程式。
5. 教室學生機⑤将實作如下功能:
a) 在教師機的控制下開展各項教學活動;
b) 從教室伺服器擷取教學資源并播放,并根據需要進行緩存,以備以後教學使用;
c) 将學生的活動發給教室伺服器并轉發到校資源中心;
d) 教學論壇和教學聊天室用戶端;
e) 互動實驗室用戶端;
f) 從教室伺服器下載下傳并更新自身程式。
6. 校外系統⑥的使用,學校的教師、學生在校外時,比如在家裡、在移動中,一樣可以通過各種方式來享受我們的服務。校外系統分為教師版和學生版。他們可以:
a) 通過各種方式來擷取資源進行學習,無論是使用電腦還是移動裝置;
b) 可以将資源緩存在本地,進而無論在聯機時還是在離線時均可自由的學習;
c) 備課、資源錄入群組織;
d) 将師生的活動發給教室伺服器并轉發到校資源中心;
e) 教學論壇和教學聊天室用戶端;
f) 互動實驗室用戶端;
g) 從教室伺服器下載下傳并更新自身程式。
四. 系統邏輯結構
基于以上功能分析,卓越網絡學習系統大緻分為如下六個子系統,每個子系統又分為若幹個子產品,邏輯結構圖目前暫定如下,在系統分析設計過程中應該會做調整:
下面就系統邏輯結構和實體拓撲結構的關系作一個說明:
1. 服務注冊和鑒權子系統有兩個子子產品,分别是服務注冊續費和服務登陸鑒權。服務注冊續費子產品部署于Able資源中心(資料存儲),而服務登陸鑒權則位于Able資源中心(身份認證)和學校資源中心(請求發起)。
2. 資源管理子系統有兩個子子產品,分别是試題庫管理子產品和教學課件管理子產品。
i. 試題庫管理子產品分為四個子子產品:試題錄入子子產品位于Able資源中心(資源存儲)和學校資源中心(資源存儲),在教室伺服器上有轉發功能,在教師機和校外系統教師版上有錄入界面;試題查詢子子產品位于Able資源中心(查詢搜尋)、學校資源中心(查詢搜尋)、教室伺服器(轉發和緩存功能)和教師機(查詢界面和緩存功能)、校外系統教師版(查詢界面和緩存功能);試卷生成子子產品位于學校資源中心(查詢試題和生成試卷)、教室伺服器(轉發功能)、教師機(控制界面)和校外系統教師版(控制界面);試卷呈現子子產品位于教師機、學生機以及校外系統教師版。
ii. 教學課件管理子產品分為三個子子產品:課件錄入子子產品位于Able資源中心(資源存儲)和學校資源中心(資源存儲),在教室伺服器上有轉發功能,在教師機和校外系統教師版上有錄入界面;課件查詢子子產品位于Able資源中心(查詢搜尋)、學校資源中心(查詢搜尋)、教室伺服器(轉發和緩存功能)、教師機(查詢界面和緩存功能)、學生機(查詢界面和緩存功能)和校外系統(查詢界面和緩存功能);課件呈現子子產品位于教師機、學生機和校外系統。
3. 受控教學子系統分為三個子子產品,分别是廣播授課、分組讨論和師生問答。三個子子產品均位于教師機、教室伺服器和學生機。
4. 師生活動記錄和分析子系統分為四個子子產品,分别是考試成績管理、教學活動管理、網絡作業管理和師生登陸鑒權。除考試成績管理中的子子產品考試成績記錄和網絡作業管理的子子產品作業批改僅位于學校資源中心(資料存儲和客觀題自動判分)、教室伺服器(轉發功能)、教師機(主觀題手動判分)和校外系統教師版(主觀題手動判分)外,其他各子產品均位于學校學校資源中心(資料存儲和查詢)、教室伺服器(中轉功能)、教師機、學生機和校外系統中。
5. 系統更新服務和客戶體驗報告子系統位于整個系統的每一個節點中。
6. 互動社群子系統位于整個系統的每一個節點中,其中Able資源中心和大學資源中心作為服務端,教室伺服器作為轉發器,教室機、學生機和校外系統作為用戶端。
五. 系統開發原則
本系統在開發中,必須遵守如下原則:
1. 松耦合、元件化;
為了實作前述友善可擴充的系統特性,系統各子產品之間必須要實作松耦合、元件化。這裡的元件并不僅是指本文前述的子產品,作為項目的最初計劃書,這裡的子產品劃分相當的粗略,在後面詳細設計階段會劃分出更多更詳細的子產品,開發應當在該詳細級别的程度上實作松耦合、元件化。
2. 分層開發,層間通過接口通路;
基于前述松耦合、元件化的要求以及動态系統更新的要求,各元件都應當遵循分層開發的約定,初定應當劃分為如下三層:
1) 資料通路層。這一層封裝對資料的讀取和通路,在資料庫端,是對資料庫的通路;在用戶端,是調用網絡接口,如WebServices或.net Remoting;
2) 業務邏輯層。這一層封裝對資料的處理和業務邏輯的實作;
3) 業務界面層。這一層并不指的僅是使用者界面,而是指暴露出來用于供外界調用的接口。對于使用者端來說,是使用者界面;而對于網絡服務端來說,則可能是WebServices或.net Remoting的API。
原則上各元件都應當實作以上三層,但在實際設計中,應根據實際情況進行調整增減。
層與層之間應當通過接口通路而不是直接調用,其目的在于友善的更新和擴充系統。
3. 規範的接口定義;
既然各程式集之間要求通過接口通路而不是直接調用,那麼接口的定義将成為系統開發中最為首要和重要的問題,無論本項目最後由多少人來開發,在制定好科學而規範的接口之後,項目将能夠非常容易的分解安排,每位開發人員完成自己那部分工作的接口實作,整個系統就能夠很好的工作。
4. 程式集動态加載;
實作程式集動态加載也是可擴充應用程式的一個重要特征,在設計和開發中要注意并充分使用這一技術。
5. 細顆粒的程式集;
為實作以上程式集動态加載的特征,并有效降低網絡下載下傳程式集對帶寬的要求,單個程式集(exe,dll,etc)的大小必須限制在可接受的範圍内,一般來說,每個檔案應當小于200k。
6. 單伺服器通路;
單伺服器通路是簡化系統設計,增強穩定性的重要原則。簡單的說就是卓越網絡學習系統雖然是一個複雜的網絡系統,很多節點在網絡中既做伺服器又作客戶機,但隻要在設計中注意一點,就是節點自身作為客戶機時隻通路一個伺服器,就能夠從單體角度看系統複雜度得到盡量的降低,這樣在将來部署的時候也能夠盡量的簡單。如教室教師機隻通路教室伺服器,即使有些操作需要通路學校資源中心,也需通過教室伺服器中轉。
六. 項目生命周期
卓越網絡學習系統項目預計需耗用200-240個人月,生命周期規劃為如下五個階段:
其中互動社群子系統中的互動實驗室子產品為增值服務子產品,将在系統投入運作後再行開發,下述的項目周期中隻開發接口。
1. 分析
本階段分為開始和細節兩個子階段。
開始階段應當完成以下工作:
a) 前景文檔:對核心項目需求、關鍵性質、主要限制做一個一般性的前景說明(本文檔可以認為是);
b) 最初的頂級用例:系統應當實作哪些頂級意義上的功能,以便讓使用者能夠使用這些功能。
細節階段應當完成以下工作:
a) 詳細的需求說明書:對系統功能的需求的盡可能纖細的需求說明書,從每一個細節來說明希望系統将是個什麼樣子;
b) 詳細的用例模型:系統應當實作的每一個細節上的功能;
本階段投入的人月大體為項目全部人月的15%。
2. 設計
本階段應當完成以下工作:
a) 詳細的互動模型:該模型精确的描述使用者使用每一個功能流程,并描述在使用該功能的過程中,需要與哪些系統元件發生互動;
b) 接口設計:應當制定出規範的接口定義,然後編碼階段便可以開始,和設計的後階段同時進行;
c) 資料庫設計;
d) 類設計;
本階段投入的人月大體為項目全部人月的25%。
3. 編碼
本階段應當完成以下工作:
a) 接口開發,完成接口的開發工作,并再次論證接口設計的合理性和可行性;
b) 資料庫開發;
c) 類的實作。
本階段投入的人月大體為項目全部人月的30%。
4. 測試
本階段應當完成以下工作:
a) 系統測試;
b) Bug排除;
c) 使用者手冊的編寫。
本階段投入的人月大體為項目全部人月的20%。
5. 部署
本階段應當完成以下工作:
a) 系統的部署;
b) 互動社群子系統中的互動實驗室子產品的開發;
c) 進入後續維護階段。
本階段是項目開發完成後的一項長期工作。
七. 開發語言及相應的技術
本系統采用C#語言開發,網絡連接配接采用.net Remoting和WebServices,其他技術包括DirectX9.0b。
八. 開發工具
本系統采用如下開發工具進行開發:
1. 設計模組化工具 Rational Rose
2. 編碼工具 Visual Studio.net 2003
3. 資料庫工具 SQL Server 2000
4. 版本控制工具 Visual Source Safe 6.0c
九. 部署環境
伺服器環境為Windows 2000 Server/2003 + SQL Server 2000;用戶端環境為Windows 2000 Professional/XP。
十. 對現有API使用的建議
由于卓越網絡學習系統中的受控教學子系統已有用C++開發的産品DS1.0,對于這部分系統的開發有兩個想法,一是直接利用現有系統的API,将其整合到新的網絡學習系統中去,二是采用.net技術進行重新開發。
直接利用現有系統的API的好處是利用了現有資源,縮短了開發周期,降低本系統的開發成本,但是其副作用也是顯而易見的:
1. 現有API很難說可以不做任何變動直接拿來用,估計需要根據實際情況進行相應修改,這樣修改的風險就無法預測和控制了,考慮到再測試等等方面的因素,在某種不如意的情況下付出的成本可能比采用.net技術重新開發的成本相當甚至更高;
2. 該部分将無法跨防火牆通信,進而使我們的系統無法滿足前述第三種網絡拓撲結構,失去一部分市場;
3. 這部分将無法實作動态加載,也就無法實作動态更新和動态擴充。
解決方案有如下兩種:
一是直接采用.net技術重新開發;
二是将現有系統的API進行相應修改,然後采用.net技術開發相應的擴充卡,調用這些API,然後再在适當的時候用采用.net技術重新開發的相應元件替換掉這些API。