厲毅,鄭煒
(浙江廣播電視大學(xué)遠(yuǎn)程開放實驗室,浙江 杭州 310030)
基于SOA的遠(yuǎn)程實驗教學(xué)系統(tǒng)的設(shè)計與實現(xiàn)*
厲毅,鄭煒
(浙江廣播電視大學(xué)遠(yuǎn)程開放實驗室,浙江 杭州 310030)
由于缺乏統(tǒng)一的標(biāo)準(zhǔn)和規(guī)范,現(xiàn)有的實驗教學(xué)系統(tǒng)之間往往無法協(xié)作和互操作,造成實驗資源的重復(fù)建設(shè)和浪費。本文闡述了整合遠(yuǎn)程實驗資源的基本思路和相關(guān)軟件技術(shù),提出了基于SOA的遠(yuǎn)程實驗教學(xué)系統(tǒng)的三層技術(shù)架構(gòu)、系統(tǒng)功能架構(gòu)和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),突破了遠(yuǎn)程開放實驗教學(xué)環(huán)境建設(shè)中的共性關(guān)鍵技術(shù),建設(shè)完成了浙江廣播電視大學(xué)遠(yuǎn)程開放實驗平臺,初步實現(xiàn)了25項實驗軟件的整合。
SOA;遠(yuǎn)程實驗;實驗整合;實驗教學(xué)系統(tǒng);面向服務(wù)架構(gòu)
由于缺乏統(tǒng)一的標(biāo)準(zhǔn)和規(guī)范,現(xiàn)有的實驗教學(xué)系統(tǒng)往往成為了一個個“孤島”,無法實現(xiàn)資源共享和實驗數(shù)據(jù)交互,造成實驗資源的重復(fù)建設(shè)和浪費。[1]發(fā)展基于SOA架構(gòu)技術(shù)的在線實驗平臺,支持動態(tài)的實驗資源集成,對實驗室資源的充分利用和教育資源的共享具有重要和深遠(yuǎn)的意義。[2]
SOA(Service-oriented Architecture,面向服務(wù)架構(gòu))技術(shù)被認(rèn)為是當(dāng)前先進的軟件工程方法,其體系架構(gòu)由服務(wù)注冊中心、服務(wù)消費者、服務(wù)提供者三個角色構(gòu)成。其中,服務(wù)提供者負(fù)責(zé)使用WSDL描述和定義應(yīng)用程序的功能并將服務(wù)信息發(fā)布到服務(wù)注冊中心,使其可以被訪問、接受和處理。服務(wù)消費者在服務(wù)注冊中心檢索需要的服務(wù),并根據(jù)服務(wù)定義綁定和調(diào)用服務(wù)提供者已注冊的Web服務(wù)。服務(wù)注冊中心負(fù)責(zé)對外公布Web服務(wù)并允許服務(wù)消費者檢索所需要的服務(wù)。
SOA體系架構(gòu)具有以下特點:可重用原有資源,易于集成和管理,減少系統(tǒng)開發(fā)成本,方便地實現(xiàn)系統(tǒng)整合。
針對不同編程語言、不同體系架構(gòu)、不同底層數(shù)據(jù)庫、不同操作系統(tǒng)的遠(yuǎn)程實驗軟件,建立一個融合各種遠(yuǎn)程實驗資源的完整實驗體系需要創(chuàng)新的實驗整合思路和成熟可靠的軟件技術(shù)。
1.遠(yuǎn)程實驗整合基本思路
為降低實驗體系的建設(shè)和運行管理成本,提高可用性和穩(wěn)定性,需要考慮數(shù)據(jù)標(biāo)準(zhǔn)、服務(wù)的封裝和注冊、用戶管理和認(rèn)證授權(quán)機制、監(jiān)控機制、技術(shù)規(guī)劃和運維流程等問題。在數(shù)據(jù)標(biāo)準(zhǔn)問題上,需要為實驗軟件操作信息和實驗結(jié)果建立統(tǒng)一的數(shù)據(jù)模型和數(shù)據(jù)接口規(guī)范,方便不同實驗軟件的數(shù)據(jù)共享和數(shù)據(jù)整合。在服務(wù)的封裝和注冊問題上,把原有實驗軟件提供的功能分解成適合復(fù)用和新業(yè)務(wù)組合的Web服務(wù),并進行注冊與管理。服務(wù)消費者只需關(guān)心如何組合應(yīng)用現(xiàn)有的原子服務(wù),以及組合服務(wù)遵循的執(zhí)行規(guī)則,不需了解Web服務(wù)功能實現(xiàn)的技術(shù)細(xì)節(jié),達(dá)到松散耦合的目標(biāo)。[4]在用戶管理和認(rèn)證授權(quán)機制問題上,建立統(tǒng)一的身份管理和認(rèn)證授權(quán)機制。采用單點登錄方式進入實驗平臺,集成各實驗軟件的用戶認(rèn)證,提高系統(tǒng)安全性和工作效率。在監(jiān)控機制問題上,需要整合各類服務(wù)器,建立統(tǒng)一監(jiān)控機制。在技術(shù)規(guī)劃和運維流程問題上,構(gòu)建跨系統(tǒng)的技術(shù)規(guī)范,指導(dǎo)、約束第三方實驗軟件系統(tǒng)提供商,規(guī)范遠(yuǎn)程實驗教學(xué)系統(tǒng)的招標(biāo)選型、管理維護等。
2.遠(yuǎn)程實驗整合相關(guān)技術(shù)
SOA并沒有定義實現(xiàn)服務(wù)的具體技術(shù)和方法。目前,被認(rèn)為最適合實現(xiàn)面向服務(wù)架構(gòu)的技術(shù)標(biāo)準(zhǔn)是Web Service,實現(xiàn) Web Service的核心技術(shù)為 XML、SOAP、WSDL和UDDI等。[5]XML(Extensible Markup Language)表現(xiàn)形式極其簡單,任何應(yīng)用程序都可以輕易地讀寫其中數(shù)據(jù)。SOAP(Simple Object Access Protocol)稱為簡單對象訪問協(xié)議,可以和許多互聯(lián)網(wǎng)協(xié)議結(jié)合使用。WSDL(Web Services Description Language)用來描述Web服務(wù)之間的通信,是Web服務(wù)事務(wù)、服務(wù)組合、服務(wù)安全的規(guī)范和標(biāo)準(zhǔn)。UDDI(Universal Description,Discovery and Integration)是一套分布式的為Web服務(wù)提供信息注冊中心的規(guī)范。
結(jié)合SOA架構(gòu)的參考模型,本文提出了遠(yuǎn)程實驗教學(xué)系統(tǒng)的系統(tǒng)模型架構(gòu)、系統(tǒng)功能架構(gòu)和系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
1.系統(tǒng)模型架構(gòu)
遠(yuǎn)程實驗教學(xué)系統(tǒng)的模型架構(gòu)如圖1所示。該系統(tǒng)由服務(wù)支撐層、通用服務(wù)層和服務(wù)應(yīng)用層組成,[6]各層邏輯清晰,功能明確,注重體現(xiàn)標(biāo)準(zhǔn)化、重用性、健壯性。
服務(wù)支撐層集成了數(shù)據(jù)庫存儲軟件的基本信息以及接口信息,由實驗管理平臺、實驗數(shù)據(jù)、集成軟件數(shù)據(jù)及實驗資源數(shù)據(jù)構(gòu)成,位于數(shù)據(jù)庫服務(wù)器端,負(fù)責(zé)處理來自服務(wù)提供者的注冊、注銷請求,更新服務(wù)注冊中心的服務(wù),與已注冊服務(wù)進行匹配與映射,對各類異構(gòu)的實驗資源進行服務(wù)化封裝、服務(wù)化適配和消息代理,從而為遠(yuǎn)程實驗教學(xué)項目的創(chuàng)建提供所需的服務(wù)化資源,為系統(tǒng)提供底層支持。
通用服務(wù)層提供多學(xué)科課程遠(yuǎn)程實驗教學(xué)公共服務(wù),包括實驗課程管理、實驗項目管理、實驗前測管理、實驗成績管理、實驗交流和新聞管理等。它向服務(wù)支撐層發(fā)出請求,建立實際的數(shù)據(jù)庫連接,根據(jù)服務(wù)應(yīng)用層提交的用戶請求生成SQL語句檢索或更新數(shù)據(jù)庫,并把數(shù)據(jù)處理結(jié)果返回給服務(wù)應(yīng)用層,由服務(wù)應(yīng)用層負(fù)責(zé)顯示給用戶。
服務(wù)應(yīng)用層是遠(yuǎn)程實驗教學(xué)系統(tǒng)的用戶接口部分,負(fù)擔(dān)著用戶與實驗軟件之間的對話功能,讓教師和學(xué)生直接面向遠(yuǎn)程實驗教學(xué)系統(tǒng)的統(tǒng)一平臺。實驗項目的運行和操作通過通用服務(wù)層提供的服務(wù)實現(xiàn),通過瀏覽器或客戶端軟件實現(xiàn)用戶與通用服務(wù)層的通信。該層可以有效支持實驗軟件的重構(gòu)與資源重用,每個實驗項目在服務(wù)應(yīng)用層都是基于標(biāo)準(zhǔn)的HTML表單開發(fā)的網(wǎng)頁單元,負(fù)責(zé)接收實驗所需的輸入數(shù)據(jù)以及顯示實驗結(jié)果。
2.系統(tǒng)功能架構(gòu)
遠(yuǎn)程實驗教學(xué)系統(tǒng)分為基礎(chǔ)數(shù)據(jù)管理、用戶權(quán)限管理、實驗管理(實驗管理分為實驗前準(zhǔn)備、實驗過程管理和學(xué)生實驗)、交流平臺、平臺新聞五大模塊,如圖2所示。
系統(tǒng)的基礎(chǔ)數(shù)據(jù)管理模塊包括教學(xué)點管理、實驗注冊接入管理、學(xué)期管理、專業(yè)管理、課程管理、教師管理、學(xué)生管理、選課管理、資源分類管理等。用戶權(quán)限管理模塊包括角色管理、用戶管理、權(quán)限管理等。實驗管理是最主要的功能模塊,包含實驗前準(zhǔn)備、實驗過程管理和學(xué)生實驗等。交流平臺包含即時通和實驗社區(qū)模塊,提供了實驗責(zé)任教師與實驗輔導(dǎo)教師、實驗輔導(dǎo)教師與學(xué)生之間的即時交流功能。平臺新聞包含新聞類別管理和新聞發(fā)布模塊。
3.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示。教師和學(xué)生可以在家里或?qū)W校實驗室通過互聯(lián)網(wǎng)遠(yuǎn)程登錄實驗教學(xué)系統(tǒng)。系統(tǒng)配置Web服務(wù)器1臺,進行軟件發(fā)布和訪問。配置臨時文件服務(wù)器1臺,用于存儲用戶的Session、臨時文件等數(shù)據(jù)。配置文件備份服務(wù)器1臺,將軟件和每次實驗產(chǎn)生的物理數(shù)據(jù)進行備份,可制定時間和周期。配置數(shù)據(jù)備份服務(wù)器1臺,按照時間和周期對數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進行定期的備份。配置特殊服務(wù)器1臺,用于特殊的實驗軟件或數(shù)據(jù)庫。
系統(tǒng)建立在較高性能的服務(wù)器或服務(wù)器集群上,為確保負(fù)載均衡,配置負(fù)載服務(wù)器一臺,安裝Nginx(engine x)服務(wù)或Windows系統(tǒng)自帶的網(wǎng)絡(luò)負(fù)載平衡管理器,架設(shè)在路由器后。
浙江廣播電視大學(xué)從2006年以來致力于遠(yuǎn)程實驗的整合研究[7],建設(shè)了浙江省財政廳資助的遠(yuǎn)程開放實驗室,開發(fā)了集成教務(wù)管理、實驗軟件管理、學(xué)生信息管理、實驗數(shù)據(jù)采集和分析的遠(yuǎn)程開放實驗平臺。
1.遠(yuǎn)程開放實驗平臺基本情況
遠(yuǎn)程開放實驗平臺以.NET技術(shù)為依托,采用基于SOA的開放式系統(tǒng)架構(gòu)和XML/HTTP等協(xié)議標(biāo)準(zhǔn)設(shè)計開發(fā)。
(1)用戶角色。用戶分為以下角色:實驗中心管理員、教學(xué)管理員、教學(xué)點管理員、課程主持教師、實驗責(zé)任教師、實驗輔導(dǎo)教師、學(xué)生。實驗中心管理員可以根據(jù)平臺提供的自由分配功能對各類型的教師進行權(quán)限分配管理,不同類型教師和管理員分別對應(yīng)各級電大教師的工作職責(zé)。
(2)平臺接入實驗項目。遠(yuǎn)程開放實驗平臺已完成二期建設(shè),接入了電子商務(wù)、計算機網(wǎng)絡(luò)等25門課程的實驗項目,可以滿足各學(xué)科專業(yè)的50余門課程的遠(yuǎn)程實驗。
(3)平臺實驗的組合。實驗責(zé)任教師可以選擇遠(yuǎn)程開放平臺所提供的任意子實驗,組合成具體課程的實驗項目,并靈活配置必做和選做實驗項目。配置界面如圖4所示。
(4)平臺實驗的管理
平臺實驗的管理過程包括實驗安排、實驗預(yù)約管理與審核、實驗分組管理、指定實驗輔導(dǎo)教師、學(xué)生成績統(tǒng)計分析、實驗監(jiān)控、實驗結(jié)果等。
2.遠(yuǎn)程開放實驗平臺的應(yīng)用集成
(1)身份認(rèn)證集成。用戶一旦登錄遠(yuǎn)程開放實驗平臺,再登錄其他實驗軟件時不需重新登錄。
(2)電大中心網(wǎng)站集成。電大中心網(wǎng)站主頁中有對應(yīng)的欄目存放遠(yuǎn)程實驗相關(guān)的信息,包括各實驗項目對應(yīng)軟件的使用情況等。經(jīng)過身份認(rèn)證的用戶可以通過電大中心網(wǎng)站進入到遠(yuǎn)程開放實驗平臺的子模塊。
(3)各類實驗軟件集成。遠(yuǎn)程開放實驗平臺可以集成基于B/S或C/S架構(gòu)的實驗軟件。對于B/S架構(gòu)的軟件,根據(jù)鏈接地址進入到軟件模塊,對于C/S架構(gòu)的軟件也可以直接進入某個模塊菜單對應(yīng)的功能。
(4)教務(wù)系統(tǒng)集成。遠(yuǎn)程開放實驗平臺所需的人員信息(包括學(xué)生、教師和實驗管理員)、班級信息、專業(yè)信息、專業(yè)課程信息、機構(gòu)信息等可由教務(wù)系統(tǒng)導(dǎo)出??梢酝ㄟ^開放教務(wù)系統(tǒng)數(shù)據(jù)接口的方式進行導(dǎo)出,也可以將教務(wù)系統(tǒng)的數(shù)據(jù)導(dǎo)出到Excel或dbf文件,然后導(dǎo)入到平臺進行操作。
3.實驗平臺與實驗軟件的數(shù)據(jù)共享
對于步驟型實驗軟件,將學(xué)生操作的步驟所對應(yīng)的分?jǐn)?shù)作為學(xué)生的成績。通過Web Service方法將學(xué)生在第三方實驗軟件中的操作步驟以及實驗成績獲取到平臺中,平臺返回獲取結(jié)果給第三方實驗軟件。對于結(jié)果型實驗軟件,通過Web Service方法傳遞實驗成績至實驗平臺,實驗平臺返回相應(yīng)的操作結(jié)果給第三方實驗軟件。
實驗成績共享的部分XML代碼如下:
基于SOA架構(gòu)、具備實驗軟件整合能力的遠(yuǎn)程實驗教學(xué)系統(tǒng)的設(shè)計與實現(xiàn),為提高遠(yuǎn)程教育中實驗資源的共享率和利用率提供了好的解決思路。由于遠(yuǎn)程實驗教學(xué)資源來自于不同的高校、公司、研究院所等,不同實驗操作過程均有其獨立的業(yè)務(wù)流程和規(guī)則,在實驗整合和服務(wù)組裝過程中業(yè)務(wù)層面的異構(gòu)問題仍有待解決和完善。☉
[1]馬華,陳振.基于構(gòu)件組裝的遠(yuǎn)程實驗教學(xué)系統(tǒng)研究及應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2009,18(11):130-134.
[2]尹學(xué)松等.反思、探索與突破——對遠(yuǎn)程開放實驗教學(xué)的思考[J].遠(yuǎn)程教育雜志,2008(2):45-48.
[3]邱波.SOA在校際虛擬實驗系統(tǒng)共享中的應(yīng)用[J].實驗室研究與探索,2010,8(29):58-60.
[4]裘慧奇,陳世平,朱宇紅.基于SOA的區(qū)域內(nèi)高校校際間網(wǎng)上資源共享和協(xié)作服務(wù)模式研究[J].計算機應(yīng)用研究,2011,1(28):192-194.
[5]陳艷麗等.基于SOA的開放式遠(yuǎn)程實驗教學(xué)系統(tǒng)框架[J].計算機時代,2010(4):23-25.
[6]張海軍,史維峰,劉偉.基于SOA企業(yè)應(yīng)用集成框架研究與實現(xiàn)[J].計算機工程與設(shè)計,2008,4(29):2085-2092.
[7]齊幼菊,尹學(xué)松,龔祥國.遠(yuǎn)程開放實驗平臺的研究與設(shè)計[J].中國遠(yuǎn)程教育,2007(10):53-56.
(編輯:金冉)
G434
B
1673-8454(2012)11-0043-04
*項目來源:浙江省教育廳2010年度研究課題“移動學(xué)習(xí)在遠(yuǎn)程教育中的應(yīng)用研究”(Y201018097),浙江省教育規(guī)劃2011年度課題“終身學(xué)習(xí)框架下基于遠(yuǎn)程開放實驗的成人學(xué)習(xí)研究”(SCG408)。