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