□ 賀志強
基于SOA的教育資源共享框架及支撐系統(tǒng)的開發(fā)研究
□ 賀志強
教育資源庫的建設(shè)面臨著資源難以大范圍共享和重用的問題。本文參考國內(nèi)現(xiàn)有研究成果,在對北京市屬高校特色教育資源庫建設(shè)項目現(xiàn)狀進行充分調(diào)研的基礎(chǔ)上,提出了一個基于SOA的資源共享框架并搭建了支撐系統(tǒng),論述了系統(tǒng)的主要架構(gòu)和關(guān)鍵技術(shù)實現(xiàn)。希望在對現(xiàn)有各資源站點改動最小的基礎(chǔ)上解決資源的共享問題,提高工作效率并在此基礎(chǔ)上創(chuàng)新現(xiàn)有資源應(yīng)用和管理方式,以提高優(yōu)質(zhì)資源的利用率。
SOA;Web Services;資源共享;優(yōu)化架構(gòu);系統(tǒng)開發(fā)
教育資源庫的建設(shè)是近年來教育信息化建設(shè)的核心內(nèi)容,它為教育教學(xué)工作提供了豐富的教學(xué)資源來源,極大地促進了教學(xué)質(zhì)量的提高。分布式資源庫設(shè)計模式的應(yīng)用,從很大程度上整合了各學(xué)校分散的資源,有效地避免了資源的重復(fù)建設(shè),有利于實現(xiàn)資源的更大范圍共享。當前較多采用的方式是手動上傳資源目錄(或同時上傳資源實體)至中心服務(wù)節(jié)點以供查詢和下載[1]。這種方式技術(shù)上實現(xiàn)比較容易,但在操作層面上卻欠缺科學(xué)性和合理性:一方面因為信息交換量大,通過手工方式進行數(shù)據(jù)交換和管理,不但工作量大、效率低下,也極易出錯,而且各系統(tǒng)之間的數(shù)據(jù)不能及時更新[2];另一方面如果中心節(jié)點存放資源實體,容易因為大數(shù)據(jù)量的讀取和存儲產(chǎn)生錯誤,延長訪問時間甚至造成網(wǎng)絡(luò)堵塞[3]。
以北京市高等學(xué)校特色教育資源建設(shè)項目為例。從2005年開始,在北京市教委的領(lǐng)導(dǎo)下圍繞“整合資源、共建共享、服務(wù)教學(xué)”的原則,依托各市屬高校進行了民族音樂、影視、服裝藝術(shù)等具有北京市地方特色的主題資源的開發(fā)建設(shè)。經(jīng)過幾年的建設(shè),搭建了北京市特色教育資源網(wǎng)和各特色資源建設(shè)高校的校內(nèi)資源平臺。[4]當前采用的資源共享方式是通過手動上傳資源目錄和資源實體至中心節(jié)點實現(xiàn)的。隨著建設(shè)的深入,我們發(fā)現(xiàn)有必要改善這種資源建設(shè)的架構(gòu):在對現(xiàn)有各資源站點改動最小的基礎(chǔ)上,減少大工作量的手動操作方式,提高工作效率和準確度,在此基礎(chǔ)上解決因資源量不斷豐富和訪問量逐漸增大而導(dǎo)致網(wǎng)絡(luò)擁堵的可能性。并在此基礎(chǔ)上改進資源應(yīng)用和管理模式,為后續(xù)資源建設(shè)提供更易于集成和擴展的分布式資源應(yīng)用建設(shè)方式。研究表明,基于SOA(面向服務(wù)架構(gòu))搭建的分布式應(yīng)用系統(tǒng)是一種很好的解決方案[5]。
SOA(Service-Oriented Architecture)是當前信息技術(shù)領(lǐng)域研究的熱點問題。它是一個可以將應(yīng)用程序的不同功能單元通過服務(wù)間定義良好的接口聯(lián)系起來的組件模型。SOA通過服務(wù)接口的標準化描述,包含了與服務(wù)交互需要的全部細節(jié)。該接口通過隱藏實現(xiàn)服務(wù)的細節(jié),允許獨立于實現(xiàn)服務(wù)所依賴的硬件、軟件平臺和編程語言而服務(wù)。SOA包括服務(wù)使用者、服務(wù)提供者和服務(wù)注冊中心三種角色,每個服務(wù)是這三種角色中的某一種或多種,角色間的操作包括發(fā)布、查找、綁定和調(diào)用。具體流程是:首先服務(wù)提供者發(fā)布服務(wù)描述到服務(wù)注冊中心以供調(diào)用,然后服務(wù)請求者通過服務(wù)注冊中心查找到所需的服務(wù)描述后定位至對應(yīng)服務(wù)地址,來綁定和調(diào)用服務(wù)提供者提供的服務(wù)。以此為基礎(chǔ)實現(xiàn)的服務(wù)架構(gòu)能夠根據(jù)需求通過網(wǎng)絡(luò)對松散的粗粒度應(yīng)用組件進行分布式部署、組合和使用,將應(yīng)用程序的不同功能單元(即服務(wù))通過相互之間定義的接口和標準聯(lián)系起來。[6][7]因此通過各類服務(wù)接口的制定,可以在現(xiàn)有資源管理系統(tǒng)改動最小的前提下實現(xiàn)資源的無縫共享。
近年來興起的Web Service技術(shù)是實現(xiàn)SOA的主流方式,Web Service是用標準Internet技術(shù)建立的提供應(yīng)用程序功能的一個網(wǎng)絡(luò)訪問接口。它由XML+HTTP+SOAP+WSDL+UDDI這一系列協(xié)議組成,其中通過XML進行數(shù)據(jù)的描述和交換,使用SOAP協(xié)議在服務(wù)提供者與服務(wù)請求者之間進行通信,借助HTTP傳送WWW方式的數(shù)據(jù),通過WSDL協(xié)議定義服務(wù)接口,使用UDDI協(xié)議進行Web Services注冊和查找。即由服務(wù)提供者將服務(wù)接口用WSDL描述出來,然后使用UDDI在服務(wù)代理處(中心注冊中心)將這些服務(wù)接口進行注冊。注冊成功后服務(wù)請求者使用UDDI在服務(wù)代理處查詢所需的服務(wù)接口的描述文件,然后綁定這些服務(wù)并調(diào)用,這些通信操作都由SOAP來完成。[8][9]
本系統(tǒng)的開發(fā)基于Microsoft.NET平臺,它提供了對 Web service的支持(由.NET Framework提供),包括了對Web service的構(gòu)建和使用,使得不需要任何其它工具就可以完成對Web service的開發(fā)[10]。本研究中,基于SOA的教育資源共享框架的工作流程分為以下兩步:第一步是資源站點將提供的資源服務(wù)接口用WSDL描述后,將本資源站點Web服務(wù)注冊到UDDI注冊中心。注冊中心管理員審核并發(fā)布審核通過的資源站點Web服務(wù)。第二步是由目錄中心調(diào)用UDDI注冊中心發(fā)布的Web服務(wù),以獲取各資源站點的Web服務(wù)注冊信息并通過程序?qū)⒏髻Y源站點中的資源信息同步更新至目錄中心數(shù)據(jù)庫中,然后數(shù)據(jù)綁定至公共服務(wù)平臺供用戶查閱、下載和管理資源。整個系統(tǒng)的架構(gòu)如圖2所示。
有必要指出,本系統(tǒng)采用設(shè)置目錄中心數(shù)據(jù)庫保存各資源站點數(shù)據(jù)信息再通過公共服務(wù)平臺查看,而非一般的直接從各資源站點調(diào)用服務(wù)的方式,即服務(wù)中心直接調(diào)用各站點服務(wù)來檢索數(shù)據(jù)的方式。因為后者雖然不需要在中心平臺設(shè)置數(shù)據(jù)庫存儲資源數(shù)據(jù),可實時從各站點調(diào)用數(shù)據(jù),但相比而言,前者可以:①復(fù)用原有集中服務(wù)平臺的檢索功能,不必重新開發(fā),同時對于涉及眾多參數(shù)條件的資源檢索來說后者技術(shù)實現(xiàn)上要更困難;②保證網(wǎng)速正常,不會因調(diào)用服務(wù)太多或網(wǎng)絡(luò)問題而影響速度;③可方便實現(xiàn)對各站點資源進行統(tǒng)一管理和相關(guān)應(yīng)用推薦,以凸顯優(yōu)秀資源,進一步了解各站點資源建設(shè)數(shù)量等情況。所以系統(tǒng)由以下四部分組成:注冊中心站點和資源站點的Web服務(wù)實現(xiàn)、資源站點注冊與管理中心、目錄中心同步主控程序和教育資源公共服務(wù)應(yīng)用平臺。對于整個系統(tǒng)來說,重點和難點是如何設(shè)計和實現(xiàn)Web服務(wù)、進行Web服務(wù)安全設(shè)置以及如何同時更新多站點資源的問題。
Microsoft ASP.NET實現(xiàn)Web服務(wù)的一種高效的方法是使用Web Method框架。Web Method框架使用戶只需專注于Web方法的開發(fā),.NET可以根據(jù)Web方法自動生成相關(guān)標準文檔和接口,只需修改接口描述文檔即可。服務(wù)添加完成后,客戶端即可通過Web服務(wù)代理 (Web Service Proxy) 調(diào)用Web服務(wù)。[11]由上述關(guān)于系統(tǒng)的架構(gòu)描述,我們知道本系統(tǒng)主要涉及注冊中心站點和資源站點兩類Web服務(wù)的實現(xiàn)。同步程序服務(wù)器需從資源站點注冊中心獲取各資源站點Web服務(wù)信息,因此注冊中心需要提供Web服務(wù)供目錄程序調(diào)用,以獲取資源站點Web服務(wù)注冊信息。同樣,同步程序服務(wù)器還需通過請求資源站點Web服務(wù)將資源站點中的資源信息更新到中心數(shù)據(jù)庫中。各資源站點只需提供統(tǒng)一的Web服務(wù)接口即可實現(xiàn)資源的更新,同時本系統(tǒng)提供了一個資源站點Web服務(wù)的參考實現(xiàn)以便于更好地被各資源站點應(yīng)用。各資源站點雖然資源參數(shù)存儲種類和數(shù)目不同,可參照已定義好的統(tǒng)一接口標準將資源屬性對應(yīng)于標準屬性用XML格式字符串描述出來以供調(diào)用。部分資源如果缺少某些必備屬性,在描述時可保持為空,資源更新后由站點管理員在中心服務(wù)平臺手動添加該屬性即可。
資源站點注冊與管理中心完成對資源服務(wù)站點的Web服務(wù)接口的注冊和審核工作,資源站點需要提供站點信息、Web服務(wù)接口信息、信任賬號等信息,這些信息將用于主控程序的讀取并實現(xiàn)資源同步。為了便于單獨管理、排除其它程序影響及與目錄中心同步主控程序進行綁定,本平臺是獨立于教育資源公共應(yīng)用服務(wù)平臺而開發(fā)的。
該中心的用戶有兩類:站點管理員與中心管理員。各資源庫的站點管理員可進行站點Web服務(wù)注冊、更新和刪除等操作,并查看同步日志和修改個人信息。中心管理員負責對注冊的站點Web服務(wù)進行審核,審核通過的Web服務(wù)才能被調(diào)用到目錄中心的數(shù)據(jù)庫上。同時中心管理員可以查看同步日志,針對同步過程出現(xiàn)的錯誤和信息進行相應(yīng)的調(diào)整。
一旦所有的資源站點都提供了統(tǒng)一的WEB服務(wù)接口,就可以通過目錄中心同步主控程序?qū)崿F(xiàn)資源信息(目錄)的同步。該程序除了完成底層的數(shù)據(jù)同步外,還需要提供配置程序和完成同步站點的管理。主要功能如下:
(1)調(diào)用資源站點注冊與管理中心Web服務(wù),將各資源站點信息同步到目錄中心。用戶可以查看站點的類型,站點類型有三種:新站點、需要更新的站點、不需要更新的站點(不需要接收)。管理員選擇接收要更新的站點,即可將選擇的站點信息更新到目錄中心中。
(2) 對接收的站點執(zhí)行資源描述信息的同步。選中資源站點后,先選擇同步類別(自動同步或手動同步)。選擇自動同步后,只需填入自動同步的間隔天數(shù)和開始時間便會按設(shè)定時間自動執(zhí)行同步。獲取資源描述信息時又有兩種方法:資源初始化與資源同步。資源初始化是指目錄中心將所有的資源描述信息全部獲取過來。資源同步是指目錄中心保持原有數(shù)據(jù)不變,只需獲取更新的部分(由站點更新時間判斷)。資源站點資源描述信息的同步狀態(tài)有五種:初始化,繼續(xù)初始化,同步,繼續(xù)同步,停止。管理員可以在進度欄中查看資源同步進度,并手動停止、暫?;蚶^續(xù)某進程。如果程序意外關(guān)閉,會自動記錄資源的同步進程,程序重啟后先開始未完進程,再執(zhí)行別的進程。在服務(wù)調(diào)用過程中我們考慮了以下三個問題:
·大數(shù)據(jù)量由于網(wǎng)絡(luò)原因造成數(shù)據(jù)丟失的問題。Web服務(wù)調(diào)用時一次調(diào)用大的數(shù)據(jù)量很容易由于網(wǎng)絡(luò)的原因造成數(shù)據(jù)的丟失和中斷。該系統(tǒng)設(shè)計采用的解決方法是:先使用Web服務(wù)獲取某個資源站點所有需要同步的有效資源數(shù)目,然后由目錄中心根據(jù)資源數(shù)目將所有資源分成若干段,再通過Web服務(wù)將資源標識GUID分段同步到目錄中心數(shù)據(jù)庫,最后根據(jù)每個資源的GUID同步資源(基于每個資源都有唯一的標識GUID)。這樣就能保證每次傳送的數(shù)據(jù)量較小,防止傳送的資源數(shù)據(jù)量過大而出現(xiàn)數(shù)據(jù)丟失的情況,過程如圖3。
·數(shù)據(jù)傳輸過程中的安全性問題。本系統(tǒng)采用WS-Security來保證Web服務(wù)的數(shù)據(jù)安全。它定義了允許傳遞安全令牌的SOAP擴展。采用WS-Security構(gòu)建的框架可以在異類Web服務(wù)環(huán)境中交換安全消息,因此非常適用于異構(gòu)的分布式資源庫系統(tǒng)。運用WS-Security類可以通過X.509證書或用戶名/密碼來驗證Web service用戶,可以數(shù)字式簽署或加密SOAP消息??紤]到前者會增加維護開銷,我們采用用戶名/密碼的方式對客戶機進行驗證。具體過程是:客戶端通過SOAP擴展,在SOAP消息中加入用戶名和口令(明文或加密),發(fā)送給Web Service端;服務(wù)端接到消息后,同樣通過擴展從消息上下文中得到用戶名和口令,通過程序驗證正確后再進行其它操作。[12]
·多站點資源如何同時更新問題。調(diào)用資源站點Web服務(wù)來更新資源站點信息時,如果一個站點Web服務(wù)調(diào)用完成后才進行下一個站點Web服務(wù)調(diào)用,會造成大量的Web服務(wù)一直在等待中,相應(yīng)的資源信息不能及時更新。為了解決這一問題,本系統(tǒng)在同步設(shè)計時采用了多線程的方法。多線程是并發(fā)地執(zhí)行兩個或多個任務(wù)的機制,能夠?qū)崿F(xiàn)多個站點資源同時更新的過程。同時使用多線程能夠使用戶界面對后臺任務(wù)改變做出響應(yīng),用戶可以通過用戶界面查看更新過程的各種實時狀態(tài)。[13]
該平臺負責提供前臺顯示程序,顯示并且供用戶檢索同步過來的資源信息。通過后臺管理,管理員對資源進行統(tǒng)一管理,同時實現(xiàn)資源的推優(yōu)去劣,優(yōu)化了資源管理模式。主要功能有:
用戶管理模塊:進行用戶注冊、用戶管理和權(quán)限分配管理。
目錄檢索模塊:供用戶檢索資源,分為關(guān)鍵字檢索和高級檢索兩類。
資源管理模塊:提供了資源列表、資源編輯和資源刪除功能。平臺會自動記錄用戶的訪問、下載、共享、評價、推薦和共享等操作并做匯總處理,并按相關(guān)規(guī)則進行資源應(yīng)用排序處理,對優(yōu)秀資源自動或由管理員推薦在相關(guān)專欄的形式呈現(xiàn),供用戶選擇使用,以提高優(yōu)秀資源利用率。對排名墊底的無效或過期資源進行刪除處理,既優(yōu)化了資源管理結(jié)構(gòu),又能排除大量無效資源,提高優(yōu)秀資源的發(fā)現(xiàn)率。同時對于部分同步后缺少某些必備屬性的資源來說,各學(xué)校管理員可以在平臺中補充這些屬性,以兼容各資源庫站點資源呈現(xiàn)形式,統(tǒng)一資源格式,方便用戶的檢索和查看。
資源應(yīng)用專欄:按資源訪問量、資源下載量、資源評價、資源推薦量、資源共享量和資源最近更新等為篩選參數(shù),呈現(xiàn)各項指標的資源排序列表,方便用戶的選擇,以提高資源利用率。
學(xué)校管理模塊:對參與資源建設(shè)的各學(xué)校的管理。
以上述設(shè)計的系統(tǒng)模型為基礎(chǔ)搭建的基于SOA的北京市高校特色資源共享系統(tǒng),經(jīng)過初步試用,證明了該體系結(jié)構(gòu)的可行性,也實現(xiàn)了在各資源庫系統(tǒng)改動最小的情況下實現(xiàn)資源的最大共享和組織管理的優(yōu)化配置。當然系統(tǒng)的現(xiàn)有功能還需根據(jù)實際需求進行添加和完善,如進一步細化訪問權(quán)限(如公開、登錄訪問、設(shè)定學(xué)?;蚪巧L問等),以保護資源的版權(quán)問題;用數(shù)字證書身份驗證方法完善Web服務(wù)的安全[14]。相信隨著研究的不斷深入和系統(tǒng)功能的不斷完善,該研究將凸顯其重要的實踐意義。
[1]賀志強,韓政濤,賀龍祥.教育資源建設(shè)平臺的發(fā)展與展望[J].現(xiàn)代教育技術(shù),2009,(4):67-72.
[2]杜娟,徐魯強.一種基于Web Services的數(shù)字化校園中信息整合的實現(xiàn)方案[J].微計算機信息,2006,(27):236-238.
[3]余勝泉,朱凌云,曹曉明.教育資源管理的新發(fā)展[J].中國電化教育,2003,(9):96-99.
[4]趙清,張豫,張京彬.特色資源整合助北京高校信息化發(fā)展[J].中國教育信息化,2009,(5):49-51.
[5][6]高哲.基于SOA軟件架構(gòu)的研究與應(yīng)用[D].武漢理工大學(xué),2007.
[7]SOA 知識簡介[J].金融電子化,2007,(9):62.
[8]陽紅,梁京章,黃金貴.Web Service技術(shù)在遠程教育系統(tǒng)中的應(yīng)用[J].計算機與現(xiàn)代化,2008,(1):107-111.
[9]王錢永.數(shù)字化校園中基于SOA的高校教育資源整合系統(tǒng)研究[J].中國教育信息化,2008,(11):60-63.
[10][13]Jeff Prosise,王鐵等.Microsoft.NET程序設(shè)計技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,2003.
[11]邵良杉,劉好增,馬海軍.ASP.NET(C#)實踐教程[M].北京:清華大學(xué)出版社,2007.
[12][14]Web服務(wù)安全性[DB/OL].http://msdn2.microsoft.com/zh-cn/library/aa302390.aspx,2004-10-08.
2009-10-25
賀志強,北京師范大學(xué)教育技術(shù)學(xué)院(100875)。
責任編輯 鄭 重
Educational Resources Sharing and Support System Based on SOA:Research and Development
He Zhiqiang
Sharing and repetitive use has always been an outstanding issue foreducational resource banks(ERB).This paper aims to improve the situation by the idea of a SOA-based framework for sharing ERB based on detailed analysis of ERB projects in higher educational institutions in Beijing.This framework takes a two-phase workflow.First,the websites provide service for registration,auditing and releasing of educational resources;secondly,a directory center accesses the web service registered in the registration center so that information about all educational resources can be synchronized into the directory center,and be accessible to users for browsing,downloading and management.In addition,the author also discusses the main framework and key technology of the system.
G40-057
B
1009—458x(2010)02—0065—04
SOA;web services;resource sharing;optimum framework;systemic development