袁凱烽++喬麗娟
摘要:總結(jié)以往的資源庫建設(shè)中存在的不足的基礎(chǔ)上進(jìn)行了改進(jìn),研究了基于WEB的專業(yè)教學(xué)資源庫的分析與設(shè)計(jì),加強(qiáng)了資源庫平臺的頂層設(shè)計(jì),采用SaaS(軟件即服務(wù))的模式進(jìn)行架構(gòu),實(shí)現(xiàn)資源庫系統(tǒng)可擴(kuò)展、可配置,使資源庫平臺建成一個(gè)服務(wù)于多類對象的“學(xué)習(xí)中心”,設(shè)計(jì)滿足不同專業(yè)的需要的集教學(xué)、學(xué)習(xí)、管理、交流于一體的互動(dòng)化、多元化的共享式的專業(yè)資源庫系統(tǒng)。
關(guān)鍵詞:教學(xué)資源庫;SaaS;可配置
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)21-0080-03
The Analysis and Design of the Professional Teaching Resource Library Based on Saas Architecture
YUAN Kai-feng1, Qiao Li-juan2
(1. Changzhou Vocational Institute of Light Industry, Changzhou 210000, China, 2. Changzhou Textile Garment Institute, Changzhou 210000, China)
Abstract:This essay summarizes the shortages of previous studies on teaching resource database and focuses mainly on the analysis and design of teaching resource database based on web. It emphasizes how to build a professional resource database system which can also be described as a “studying centre” towards multi-kinds of objects by extending and allocating resouces under the framework of SaaS(Software-as-a-Service) Model.
Key words: teaching resouce database; SaaS(Software as a Service); resource allocation
隨著信息網(wǎng)絡(luò)技術(shù)的發(fā)展,信息化手段在教育教學(xué)過程中已經(jīng)得到了廣泛的應(yīng)用,現(xiàn)代信息技術(shù)成為了提高教學(xué)質(zhì)量的重要手段,而資源又是教育信息化的核心,因此,學(xué)校要想促進(jìn)教育教學(xué)改革,全面推進(jìn)素質(zhì)教育,只有利用專業(yè)教學(xué)資源的建設(shè),不斷推進(jìn)教學(xué)資源的共建共享,這對深化教育教學(xué)改革,實(shí)現(xiàn)現(xiàn)代化教育有著非常重要的推動(dòng)作用。
1 系統(tǒng)分析
目前資源庫網(wǎng)站的形式主要還是以資源展示為形式,網(wǎng)站通過將專業(yè)資源庫的相關(guān)知識資源進(jìn)行廣泛的共享,使更多的教師、學(xué)生、學(xué)習(xí)人員從資源庫網(wǎng)站中獲得相應(yīng)的知識信息。但是在各專業(yè)資源庫的建設(shè)還存在著諸多技術(shù)方面的問題,如周期較長,維護(hù)更新難,技術(shù)水平良莠不齊等。
本系統(tǒng)設(shè)計(jì)主要是實(shí)現(xiàn)基于SaaS架構(gòu)的的專業(yè)教學(xué)資源庫系統(tǒng)。用戶在使用系統(tǒng)中各個(gè)不同類型的相關(guān)專業(yè)教學(xué)資源,根據(jù)各個(gè)用戶的不同的權(quán)限來對各教學(xué)資源進(jìn)行操作管理和維護(hù)的專業(yè)資源庫系統(tǒng),并且該系統(tǒng)能滿足不同需求的專業(yè)。在設(shè)計(jì)過程中要做到一次開發(fā)一次部署。利用專業(yè)教學(xué)資源庫來提升本專業(yè)的教學(xué)水平和質(zhì)量,同時(shí)也可利用該系統(tǒng)來進(jìn)行網(wǎng)絡(luò)輔助教學(xué)。這是采用SaaS模式來對專業(yè)資源庫進(jìn)行開發(fā)的重要原因。
2 SaaS體系架構(gòu)設(shè)計(jì)
SaaS是英文Software as a Service的縮寫,中文意思就是:軟件即服務(wù)。
SaaS的核心概念是軟件的服務(wù)化。即,SaaS將軟件看作是一種服務(wù),而不是一種商品。SaaS的基本理論認(rèn)為,軟件的實(shí)質(zhì)是服務(wù)。用戶對軟件的需求實(shí)際上是對應(yīng)用服務(wù)的需求,而用戶使用軟件實(shí)際上是在消費(fèi)應(yīng)用服務(wù)。軟件的用戶是服務(wù)的需求者和消費(fèi)者,而軟件的提供者是服務(wù)的提供者和生產(chǎn)者[1]。
傳統(tǒng)的架構(gòu)是針對單類用戶定制的應(yīng)用性的軟件,只僅僅是對一類用戶實(shí)現(xiàn)其需求,在開發(fā)初期就設(shè)計(jì)完成,沒有相應(yīng)的針對性的配置問題。而在SaaS架構(gòu)模式下,專業(yè)教學(xué)資源系統(tǒng)是開發(fā)針對于不同的專業(yè),也即針對不同的租戶。每個(gè)專業(yè)的專業(yè)教學(xué)資源庫可以為其自己的菜單進(jìn)行設(shè)定,專業(yè)風(fēng)格進(jìn)行界面定制。
因?qū)τ趯I(yè)教學(xué)資源庫平臺的建設(shè)是面向于不同的專業(yè),不同的專業(yè)資源的需求對于開發(fā)者來說,很難做到每個(gè)租戶的需求的統(tǒng)一[2]。因此在SaaS服務(wù)模式中必須要增加其配置的靈活性,這樣可以讓不同需求的租戶進(jìn)行按照其專業(yè)特性的需要進(jìn)行獨(dú)立的配置。而對于系統(tǒng)管理員來說在配置層中重點(diǎn)任務(wù)是對各租戶配置信息進(jìn)行保存,滿足他們不同的需求,這較好地體現(xiàn)了SaaS服務(wù)模式的按需使用[3]。圖1為SaaS模式體系架構(gòu)主要包括六個(gè)方面。
1)元數(shù)據(jù)服務(wù):主要是用于滿足不同租戶的配置需求。包括用戶界面的配置,資源欄目配置,功能配置、菜單配置等可配置的相關(guān)信息,通過可配置來實(shí)現(xiàn)不同租戶的要求。
2)安全服務(wù):主要工作是對各用戶的訪問服務(wù)請示進(jìn)行認(rèn)證,返回用戶認(rèn)證的結(jié)果,通過元數(shù)據(jù)中獲取相應(yīng)的配置信息后,在其可操作的權(quán)限范圍內(nèi)進(jìn)行業(yè)務(wù)服務(wù)。
3)數(shù)據(jù)層:處于最底層,主要是保存專業(yè)資源庫系統(tǒng)所需使用和保護(hù)的數(shù)據(jù),包護(hù)各專業(yè)的資源類信息,以及為實(shí)現(xiàn)個(gè)性化配置的元數(shù)據(jù)及各租戶的基本設(shè)置信息等。
4)數(shù)據(jù)訪問層:還是作為業(yè)務(wù)邏輯層與數(shù)據(jù)層之間的中間層,主要工作就是對數(shù)據(jù)層的存取數(shù)據(jù)層中的元數(shù)據(jù),租戶業(yè)務(wù)數(shù)據(jù)等相關(guān)數(shù)據(jù),為上層提供服務(wù)。
5)業(yè)務(wù)邏輯層:主要實(shí)現(xiàn)業(yè)務(wù)邏輯,為用戶提供業(yè)務(wù)服務(wù),由分配為用戶的實(shí)例調(diào)用。
6)客戶端、表示層:人機(jī)交互層,用戶交互主界面采用瀏覽器方式將用戶請求交給業(yè)務(wù)層。
3 系統(tǒng)的功能模塊設(shè)計(jì)
在SaaS模式中,我們所面對的是眾多的不同的租戶,我們不可能要求他們具有相同的功能。對于大部分人來說用的是部分的功能。這是SaaS所強(qiáng)調(diào)的“按需使用,按需付費(fèi)”[4]。多租戶應(yīng)用能夠支持購買自己所需要的功能,不同的租戶采用不同的功能集合,這就是功能可配置。其基本的思想就是將整個(gè)系統(tǒng)的應(yīng)用進(jìn)行細(xì)分,分解成每個(gè),互相獨(dú)立,基本的功能不重疊的原子功能。不同的租戶的功能集,也就是由這些原子功能集所疊加起來的。因此在對我們專業(yè)資源庫系統(tǒng)進(jìn)行功能設(shè)計(jì)的時(shí)候,我們首先要做的就是對前面所獲取的需求分析進(jìn)行整理,將其分解,最后整理出資源集合。
3.1 原子功能劃分
在對原子功能的進(jìn)行劃分的時(shí)候,針對用戶來說,每個(gè)功能都要有特定的價(jià)值。對無意義的步驟不要進(jìn)行劃分。同時(shí)在分解過程中,關(guān)注原子功能之間的關(guān)系。不能有重疊的功能。在對整個(gè)原子功能進(jìn)行劃分后,他們彼此之間,如果需要使用這些功能的話,那必須要對他們相互之間有關(guān)聯(lián)原子功能進(jìn)行定義集合,這種方式也就是定義功能包。[5]獨(dú)立的原子功能是不能被用戶所用的,而功能包的形成則是供用戶選擇使用。如圖2所示,為本系統(tǒng)的相關(guān)功能的原子功能劃分。
3.2 靜態(tài)建模
靜態(tài)建模主要是由類圖來表達(dá),主要定義系統(tǒng)中相關(guān)的類,以及類之間的相互關(guān)系,如圖3所示是專業(yè)教學(xué)資源庫部分類圖。
4 多租戶數(shù)據(jù)模型
在SaaS模式中,對各個(gè)用戶的數(shù)據(jù)進(jìn)行隔離是很重要的工作。常見SaaS系統(tǒng)的數(shù)據(jù)模型主要有三種形式,分別為獨(dú)立數(shù)據(jù)庫,共享數(shù)據(jù)庫,模獨(dú)立,以及共享數(shù)據(jù)庫。
在本專業(yè)教學(xué)資源庫中,采用共享數(shù)據(jù)庫,共享Schema的方案。共享數(shù)據(jù)庫,共享Schema:即為所有的Tenant共享同一個(gè)數(shù)據(jù)庫,同一個(gè)Schema, 在數(shù)據(jù)庫中主要通過TenantId來區(qū)分各個(gè)Tenant的數(shù)據(jù),這種方案最大的優(yōu)點(diǎn)就是成本低,可支持的Tenant數(shù)量最多。[7]這種方式主要的實(shí)現(xiàn)就是一個(gè)數(shù)據(jù)庫一套數(shù)據(jù)表,對所有的客戶的所有的數(shù)據(jù)進(jìn)行存放。
通過對本系統(tǒng)進(jìn)行的需求分析、系統(tǒng)流程設(shè)計(jì)以及系統(tǒng)功能結(jié)構(gòu)的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫模型,如圖4所示為平臺租戶相關(guān)的數(shù)據(jù)模型。
5 可配置性實(shí)現(xiàn)
可配置性是整個(gè)SaaS的開發(fā)核心與難點(diǎn)所在。因?yàn)樵谠O(shè)計(jì)過程中用戶要求是個(gè)不確定因素。對于專業(yè)資源平臺,主要有以下幾個(gè)不確定的因素,資源屬性的不確定性,功能配置的因素,菜單可配置以及專業(yè)資源庫的界面的不確定。主要采用SaaS對以下幾個(gè)方面進(jìn)行實(shí)現(xiàn)。
5.1 數(shù)據(jù)可配置
定制字段是傳統(tǒng)應(yīng)用開發(fā)中擴(kuò)展數(shù)據(jù)字段采用最常見的一種解決方案。它的主要的表現(xiàn)方式就是在數(shù)據(jù)庫表上增加相應(yīng)的擴(kuò)展定制字段來擴(kuò)展數(shù)據(jù)。預(yù)分配字段是指針對用戶可能出現(xiàn)的擴(kuò)展需求,在原數(shù)據(jù)庫表中預(yù)設(shè)一定數(shù)量的擴(kuò)展字段。各稱值對是數(shù)據(jù)庫中每一條原數(shù)據(jù)記錄的每一個(gè)擴(kuò)展字段都生成一條擴(kuò)展的數(shù)據(jù)行。然后將數(shù)據(jù)表中的相關(guān)聯(lián)數(shù)據(jù)記錄與配置的元數(shù)據(jù)表中的相關(guān)配置記錄進(jìn)行相關(guān)聯(lián)操作,這樣構(gòu)成擴(kuò)展數(shù)據(jù)記錄。該方式對數(shù)據(jù)的擴(kuò)展性、靈活性來說比較高,但是數(shù)據(jù)庫表的設(shè)計(jì)復(fù)雜較高,性能也比較低。
在系統(tǒng)資源庫的設(shè)計(jì)過程中,對于資源信息等相關(guān)表的數(shù)據(jù)擴(kuò)展最要通過名稱值配對形式進(jìn)行解決。
如圖5所示,在對ResourceType表進(jìn)行字段擴(kuò)展的時(shí),在ExtValue擴(kuò)展數(shù)據(jù)中增加相應(yīng)的實(shí)體實(shí)例的擴(kuò)展數(shù)據(jù),而對于擴(kuò)展字段的說明則存放在MetadataFields表中,ExtValue表中的RecordId關(guān)連ResourceType中的ResourceTypeId,F(xiàn)ieldId對應(yīng)MetadataFields中的id 。這種擴(kuò)展方式的優(yōu)點(diǎn)就是擴(kuò)展字段的數(shù)量不會受到限制,有多少擴(kuò)展數(shù)據(jù)存多少,數(shù)據(jù)沒有冗余,能最大化地滿足自定義的需求。
5.2 功能可配置
對于專業(yè)教學(xué)資源庫,我們所面對主要的對象主要還是各個(gè)專業(yè)。在對專業(yè)教學(xué)資源庫功能進(jìn)行可配置的時(shí)候,首先要做的就是將整個(gè)系統(tǒng)的功能進(jìn)行分解,分解成最基本的,彼此相對獨(dú)立、相互不重疊的整個(gè)系統(tǒng)的原子功能。而各個(gè)專業(yè)所對應(yīng)的專業(yè)教學(xué)資源庫,其實(shí)就是對各個(gè)原子功能進(jìn)行的疊加,而對于專業(yè)資源管理員來說,他們所創(chuàng)建用戶的功能也可以理解為原子功能的疊加。
5.3 界面可配置
頁面可配置不同的租戶對不同頁面都有著不同的需求,租戶的個(gè)性化需求針對著頁面上不同的元素含義。針對我們專業(yè)資源系統(tǒng)來說,主要的頁面可配置主要是實(shí)現(xiàn)在其頁面樣式,我們在對本系統(tǒng)的模板進(jìn)行開發(fā)的過程中采用的WEB標(biāo)準(zhǔn)來對整個(gè)模板頁進(jìn)行設(shè)計(jì)。WEB標(biāo)準(zhǔn)制作網(wǎng)頁要求,文檔、樣式與動(dòng)作完全分離,文檔所顯示的主要是頁面的內(nèi)容,而樣式表里主要呈現(xiàn)的是頁面所采用的樣式。因此,頁面可配置主要采用的還是通過CSS樣式表由JavaScript操作來呈現(xiàn)。
6 結(jié)束語
針對目前的專業(yè)資源庫的國內(nèi)外現(xiàn)狀,本文提出了基于SaaS架構(gòu)的專業(yè)教學(xué)資源庫的開發(fā)平臺的分析與設(shè)計(jì),目前該平臺已使用于學(xué)校各專業(yè)資源庫的建設(shè)中,在使用中可方便快捷生成不同專業(yè)類型的資源庫,簡化了建設(shè)資源庫的時(shí)間,降低成本,開成了開發(fā)專業(yè)資源庫統(tǒng)計(jì)標(biāo)準(zhǔn)與規(guī)范。
參考文獻(xiàn):
[1] 楊平, 王平. 各類參考文獻(xiàn)的著錄格式及示例[J]. 計(jì)算機(jī)研究與發(fā)展, 2011(1): 88-89.
[2] 蔡維華, 馬樂, 王華, 等. 基于IGES文件的艦船航行性能數(shù)值仿真模型[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2012, 29(2): 192-194, 236.
[3] Moore B, Mahmoud Q H. A Service Broker and Business Model for SaaS Application[J]. The Third International Conference on Internet and Web Application and Services, 2008, 6.
[4] 李遠(yuǎn)飛. 基于SaaS模式的鋼材運(yùn)輸管理平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].上海: 復(fù)旦大學(xué)圖書館, 2011.
[5] ChangJieGuo. 使用IBM中間件實(shí)現(xiàn)SaaS解決方案[EB/OL].[2009-08-17].http://www.ibm.com/developerworks/cn/webservices/ws-multitenantpart4/.
[6] 師春曉, 房俊, 亓開元,等. 基于SaaS 模式的科技信息資源托管系統(tǒng)[J]. 計(jì)算機(jī)工程, 2012, 38(1).