劉曉剛
(浙江經貿職業技術學院,浙江杭州310018)
基于云計算的遠程教育系統研究*
劉曉剛
(浙江經貿職業技術學院,浙江杭州310018)
中國疆域廣大、人口眾多,遠程教育的應用前景非常廣闊。把云計算的技術與方法運用到遠程教育系統的建設中,可以整合教學信息資源,提高資源的利用率,提升教學水平。文章討論了云計算技術在遠程教育系統中應用時的幾個關鍵問題,在邏輯結構設計、調度機制、數據安全等方面給出了設計方案,為基于云計算的遠程教育系統的具體實現提供了有力支持。
云計算;遠程教育系統;邏輯結構;調度機制;數據安全
中國的遠程教育由于國土面積大、經濟發展不平衡、參與人數多而遇到了較多的困難,現有的遠程教育系統存在軟硬件要求高、資源重復建設、系統擴充能力弱、可配置性差等難題。基于云計算(Cloud Computing)的遠程教育系統能夠充分發揮云計算的特點,統籌使用各地軟、硬件資源,提供強大的遠程教學能力和資源提供能力:各地遠程教育中心能夠統一部署建設資源,有效避免資源重復建設;資源訪問者不需要知道資源位于何處,系統使用統一的資源列表提供最合理的服務,不再受地域、時間的限制;對于任意的一個資源訪問者,系統可以自動分析IP、確定路由,尋找離他最近的資源并建立好連接,提供最快最好的訪問;對于不同用戶,系統可以做功能上的定制而非代碼級定制,不需要獨立部署,提供靈活的自定義功能,從而很好地滿足不同學校的教學需求;系統還可方便地進行調整,以支持單位的變化與發展,達到按需使用和隨處可用;在用戶數大量增加的情況下,無須更改應用架構,僅需增加硬件設備的數量,就可以支撐應用規模的增長;而且基于云計算的遠程教育系統不再強求高性能的服務器,由各地普通的服務器組成“云”來提供高性能的服務,節約了硬件投資;“云”的通用性使資源的利用率較之傳統系統大幅提升,遠程教育單位也無需再負擔高昂的數據中心管理成本。本文嘗試對基于云計算技術的遠程教育系統展開探索,為新型遠程教育系統的建設提供支持。
1.基于云計算遠程教育系統的邏輯結構及設計原理
由于網絡環境不理想,集中式訪問對網絡和服務器壓力太大,中國的遠程教育單位通常建立多臺校外學習中心分流服務器,都采用Browser/Server的網絡結構。校本部建立中央教學資源服務器,省級和地市級學習中心也各自建立資源服務器,都安裝課件供學生上網使用,學生就近訪問學習中心的資源。從使用情況看這種模式有兩個明顯的缺陷:一是由于學習資源種類繁多且體積龐大,在現有的條件下傳輸困難,導致各服務器的資源更新不能同步,部分學習中心的資源殘缺或滯后,學生經常無資源可用。雖然有的學校采用了先進的衛星廣播方式傳輸,但這種方式代價昂貴不利于推廣,而且廣播的單向性也不方便分類選擇下載。學生使用這種遠程教育系統學習,在市級學習中心資源服務器上找不到資源就要訪問省級學習中心,再找不到只有訪問中央服務器,使用不方便且容易造成網絡阻塞;二是要求學生多次注冊,即一個學員要在中央服務器、省級學習中心服務器和地市級學習中心服務器注冊三次,非常繁瑣。
基于云計算的遠程教育系統的邏輯結構如圖1所示。各遠程教育學習中心的資源組成云,遠程教育系統應能夠自動搜索新的資源并選擇最佳路徑來傳送數據,當一臺服務器發生故障時,能自動轉向其他服務器;各模塊設計實現高效的資源共享,實現教學資源的就近訪問;實現一次注冊全部資源服務器共享注冊信息的功能,不需多次注冊。這種系統能充分利用云中的軟硬件資源,提供強大的服務能力。而且可以為不同用戶提供不同配置的應用和界面,具有很強的伸縮性和適用性。

圖1 基于云計算的遠程教育系統邏輯結構
2.基于云計算的遠程教育系統的調度機制
按照云計算提供資源的類型,可以將其劃分為三層。最低層提供基本的基礎設施部件如CPU、內存和存儲,稱為“基礎設施即服務”(Infrastructure as a Service,IaaS)。IaaS層的上面,是為特定需求定制的面向服務的主機環境平臺,稱為“平臺即服務”(Platform as a Service,PaaS)。如谷歌應用引擎就是一個實例,它能夠部署和伸縮基于Python和Java的Web應用。最上面的層為用戶提供其準備使用的應用,稱為軟件即服務(Software as a Service,SaaS)。Web服務通常使用IaaS提供的云計算服務,而Web瀏覽器通常用于訪問SaaS提供的云計算應用。新型的遠程教育系統基于B/S結構,使用由Web瀏覽器提供的SaaS應用。
遠程教育系統的SaaS應用結構可以分為四層:用戶接口層、平衡層、應用邏輯層和數據庫層。租戶使用瀏覽器通過用戶接口層登錄系統,平衡層為系統提供可伸縮性,應用邏輯層包括安全服務、外觀服務和配置服務,數據庫層一般使用共享數據庫和分隔數據模式的方式來設計,以提高數據的安全性。為了實現系統的外觀、功能的可配置性,以及資源的高效、靈活調度,我們設計了面向請求的調度機制。
從租戶來的請求可以分為三類:第一類是外觀請求,外觀請求由外觀模塊支持,這種類型的請求要求SaaS應用在不改變業務服務狀態的基礎上顯示指定信息;第二類是配置請求,這類請求需要改變SaaS應用的配置,由于配置模塊的設計是從業務模塊中隔離出來的,所以配置模塊處理這些請求之后也不改變業務服務的狀態;第三類是資源請求,這種請求要改變業務服務的狀態。例如一位學生提交了一份課件請求,這個操作將激活工作流管理模塊,應用將分配資源去維持這個課件播放的生命周期。使用工作流引擎和規則引擎,SaaS應用能容易地處理請求并安排好應用服務支持它們的資源調度。
通過分析SaaS應用的業務流程,可以使用模塊設計方法將云計算技術的遠程教育系統分成幾個無歸屬和可重用的邏輯功能模塊,如圖2所示。規則引擎(Rule Engine)管理業務規則并決策工作流引擎(Workflow Engine)的操作,工作流引擎能夠裝配一個新進程并且正確執行它。從租戶來的業務請求都被應用接收,通過分析相關的規則,規則引擎將決定如何處理下一步并且發送應答去工作流引擎。之后,工作流引擎將在規則引擎的指導下激活關聯的業務服務(Business Service)模塊。對于租戶的資源請求,業務服務模塊將請求遞交給業務管理模塊(Transaction Management),業務管理模塊調度遠程教育的資源(Video,Image,Text)輸出到瀏覽器,從而完成資源的調度。

圖2 遠程教育調度機制
1.云計算技術遠程教育系統的數據安全性要求
在傳統遠程教育系統中,應用服務器和數據庫設備、網絡都部署在校本部,系統維護都是由學校自己掌握,每個客戶的數據是完全獨立的。而在云計算技術的遠程教育系統中,應用服務器、數據庫設備不再由學校自己管理,而是都部署在軟件服務運營商處,系統維護也不再由學校負責。另外,云計算技術是完全基于互聯網使用的,用戶所有的交互和數據都需要通過互聯網,這也給數據的安全帶來隱患。遠程教育系統雖然不像商業系統那樣對安全性有極高的要求,但是師生信息、試題、答案、課件等是私有數據或具版權的作品,也不允許對外泄漏。這就要求在設計云計算技術的遠程教育系統時,必須采用較可靠的技術和手段來保證數據的安全。
2.云計算SaaS應用的數據隔離方案
在傳統遠程教育系統的應用中,每個用戶的設備是獨立的,相互之間數據是絕對隔離的,應用也是相對獨立的。而對于云計算技術遠程教育系統的SaaS應用來說,應用部分不再獨立,數據設備也可能不獨立,因此必須采用數據隔離的方法來保證用戶數據仍然像傳統應用一樣安全。SaaS應用的數據隔離方案一般有以下三種:
(1)獨立數據庫:一個用戶一個數據庫,這種方案的用戶數據隔離級別最高,安全性最好,但是成本高。
(2)共享數據庫、數據模式(Schema)隔離:多個或所有用戶共享數據庫,但一個用戶單獨一個模式。這種方案為用戶提供了一定程度的邏輯數據隔離,但并不是完全隔離;同時每個數據庫可以支持更多的用戶,成本較低。其缺點是管理比較復雜。
(3)共享數據庫、數據模式共享:用戶共享同一個數據庫、同一個模式,但為每個需要隔離的業務表加上用戶ID來實現用戶數據的隔離。這是共享程度最高、隔離級別最低的模式,但是系統的實施成本最低。這種方案會增加系統設計開發時安全方面的工作量,數據的備份和恢復困難也是其缺點。
考慮成本因素和安全性要求的水平,云計算技術的遠程教育系統采用共享數據庫和數據模式隔離方式,具有較高的安全性和較低的成本,比較適合中國的遠程教育實際情況。但是,除了數據庫中的數據隔離,云計算技術的遠程教育系統還有一個安全性方面的先天缺陷:由于系統由軟件服務運營商開發和維護,開發人員和管理維護人員擁有對敏感數據的控制權,存在一定的安全隱患。
3.針對云計算增強的數據安全性設計
在傳統應用中,對用戶身份密碼要進行加密,但是很少對用戶的業務數據進行加密,因為數據庫都是自己管理。但是在SaaS應用中數據庫由運營商來管理,對于用戶來說,運營商及數據庫管理員不是完全值得信任的,必須對一些敏感數據進行數據隔離,防止被竊取。
我們嘗試通過改變慣用的存儲方法和SaaS用戶的應用來解決這個問題。在開發軟件過程中,我們從軟件中分隔用戶數據,在軟件運行之后,如果用戶的新數據能存儲在一個新的位置,如用戶自己或數據庫服務商提供的一個隔離的數據庫中,而這個新位置是軟件服務運營商所不知道的,就可以有效保護敏感數據。
完成的細節如下:當設計系統時,開發者開發和維護用戶的數據庫,不可避免地獲取了數據庫的結構(大多數情況下他們不需要知道數據的細節),在創建和運行系統需要的數據庫時,我們可以按照通常的加密方式來加密數據庫,同時添加一些小的設計去替換軟件的系統功能,使得當系統運行時用戶可以更改數據存儲的位置。

圖3 數據遷移示意
如圖3所示,軟件服務運營商提供的原數據庫服務器A上實際運轉的數據庫能夠遷移至新的服務器B上運行,即將服務器A上的數據庫拷貝并下載到用戶自己的硬盤上,然后用戶將數據庫中的文件自由移動到其他的服務器數據庫中,并且使用它們作為正式的數據庫文件。
在這種方法中,數據庫被移動,原始數據庫服務提供者失去了獲取服務器A上用戶敏感數據的權力。同時,由于先前設計中的加密限制,服務器B管理者也失去了獲取用戶有價值數據的機會。
但是由于當前開發技術的限制,在用戶通過Web接口鑒別到數據庫的新位置后,在相應的代碼中要修改新數據庫訪問的連接字符串。同時,服務提供方的開發者獲取連接字符串后也能夠輕易地通過ADO.NET等技術獲取其他服務器上的用戶數據。因此必須分隔連接字符串部分的數據代碼,方法是編寫一個小的桌面應用程序,只要輸入數據庫的IP地址和用戶名、密碼等信息,就會自動生成一個新的包含連接字符串的動態鏈接庫文件(.dll),它直接覆蓋替換掉舊的動態鏈接庫,同時更新了連接字符串。因為動態鏈接庫文件是編譯過的,里面的連接字符串無法被竊取。這樣在設計時為用戶數據庫管理系統添加一個替換動態鏈接庫文件的功能,用戶就可以重新指定數據的存放位置,動態鏈接庫的替換過程不被軟件服務運營商知道,軟件開發者和維護者就無法獲得用戶的敏感數據。
中國疆域廣大、人口眾多,遠程教育的應用前景非常廣闊。把云計算的技術與方法運用到遠程教育系統的建設中,不但可以整合教學信息資源,提高資源的利用率,提升教學水平,而且可以為云計算帶來新的應用領域,使云計算服務更加貼近我們的生活和學習,讓我們切身感受到科技帶來的巨大變革。本文討論了云計算技術在遠程教育系統中應用時的幾個關鍵問題,在邏輯結構設計、調度機制、安全性等方面給出了設計方案。筆者認為,基于云計算的遠程教育系統研發技術基本成熟,完全可以利用云計算高效的運算處理能力和無限的存儲能力來提升中國遠程教育的整體水平。☉
[1]Zhang Qiang,Cui Dong,Enhance the user data privacy for SAAS by separation of data,2009International Conference on Information Management,p:130-132,2009.
[2]Meiko Jensen,J?rg Schwenk,Nils Gruschka,Luigi Lo Iacono,On Technical Security Issues in Cloud Computing,2009 IEEE International Conference on Cloud Computing,p:109-116,2009.
[3]Lamia Youseff,Maria Butrico,Dilma Da Silva,Toward a Unified Ontology of Cloud Computing,in ieee xplore,p:2-10,2009.
[4]B?rje Ohlman,Anders Eriksson,René Rembarz,What Networking of Information Can Do for Cloud Computing,200918th IEEE International Workshops on Enabling Technologies: Infrastructures for Collaborative Enterprises,p:78-83,2009.
[5]Liang-Jie Zhang,Qun Zhou,CCOA:Cloud Computing Open Architecture,2009 IEEE International Conference on Web Services,p:607-616,2009.
[6]Stefan Tai,Cloud Service Engineering,200918th IEEE International Workshops on Enabling Technologies:Infrastructures for Collaborative Enterprises:p:3-4,2009.
(編輯:楊馥紅)
book=78,ebook=109
TP302.7
A
1673-8454(2010)15-0078-04
*浙江省教育廳2009年科研項目“基于云計算的遠程教育系統研究”,項目編號:Y200907827。