劉淇峰,陳雪蛟
(1.北京工業(yè)大學(xué) 軟件學(xué)院,北京 100124;2.河北農(nóng)業(yè)大學(xué) 信息科學(xué)與技術(shù)學(xué)院,河北 保定 071000)
基于Yaf的高校教育CMS服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
劉淇峰1,陳雪蛟2
(1.北京工業(yè)大學(xué) 軟件學(xué)院,北京 100124;2.河北農(nóng)業(yè)大學(xué) 信息科學(xué)與技術(shù)學(xué)院,河北 保定 071000)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,高校各院系、部門網(wǎng)站作為高校信息公開(kāi)展示和教育資源共享的基礎(chǔ)平臺(tái),地位日顯重要。但管理人員技術(shù)水平參差不齊,網(wǎng)站結(jié)構(gòu)布局各不相同,資源共享困難等問(wèn)題,為網(wǎng)站日后的建設(shè)和管理埋下重大隱患。因此,需要針對(duì)高校網(wǎng)站使用人群和管理人群的特點(diǎn),研究一個(gè)通用的教育內(nèi)容管理系統(tǒng)(CMS)服務(wù)平臺(tái),為建立教育資源共享、統(tǒng)一規(guī)范管理、服務(wù)靈活配置的校園數(shù)字化生態(tài)環(huán)境提供參考。
CMS;Yaf;教育服務(wù)
在早期的高校網(wǎng)站建設(shè)中,站點(diǎn)通常采用手工管理方式,新聞、通知等信息的發(fā)布都需要管理人員使用Dreamweaver、FrontPage、Photoshop等專業(yè)網(wǎng)頁(yè)制作軟件手工編輯成靜態(tài)頁(yè)面,然后利用FTP上傳到網(wǎng)絡(luò)中心提供的服務(wù)器上進(jìn)行發(fā)布。隨著時(shí)代的發(fā)展,高校各院系、部門網(wǎng)站作為校園信息化應(yīng)用平臺(tái),日益凸顯其重要性,早期的建站技術(shù)及設(shè)計(jì)理念已經(jīng)不能很好地適應(yīng)龐大的業(yè)務(wù)信息量及需求的變化,并存在改版更新困難、系統(tǒng)擴(kuò)展能力差等問(wèn)題。因此,愈來(lái)愈多的高校開(kāi)始采用CMS進(jìn)行各院系、部門網(wǎng)站的建設(shè)與管理。
CMS是Content Management System的縮寫,意為“內(nèi)容管理系統(tǒng)”。這是一個(gè)寬泛的定義,從一般的博客系統(tǒng)、新聞發(fā)布系統(tǒng)到綜合性的網(wǎng)站管理系統(tǒng),都可以稱為內(nèi)容管理系統(tǒng)。其功能并不只限于文本處理,也可以處理圖片、視頻、音頻甚至電子郵件檔案,幾乎所有的網(wǎng)站元素均可由系統(tǒng)靈活配置。優(yōu)質(zhì)的CMS通常擁有許多基于模板的主題設(shè)計(jì)與個(gè)性化服務(wù),可以加快網(wǎng)站開(kāi)發(fā)速度,減少開(kāi)發(fā)成本,整個(gè)站點(diǎn)的建立只需在友好的Web界面下創(chuàng)建幾個(gè)頁(yè)面即可完成,大大提高了建站效率。
隨著CMS的廣泛運(yùn)用,目前多數(shù)高校采用“主頁(yè)發(fā)布審批責(zé)任制”等管理方式,實(shí)現(xiàn)各院系、部門網(wǎng)站內(nèi)容的責(zé)任管理,但由于各院系、部門網(wǎng)站管理人員技術(shù)水平參差不齊,維護(hù)人員隊(duì)伍不穩(wěn)定等原因,使得高校內(nèi)各院系、部門站點(diǎn)表現(xiàn)出形式風(fēng)格不一致、內(nèi)容更新不及時(shí)、系統(tǒng)擴(kuò)展能力差等問(wèn)題,始終在一個(gè)高成本、低效率的惡性循環(huán)中運(yùn)行。當(dāng)前高校的網(wǎng)站建設(shè)依然面臨著幾個(gè)問(wèn)題:第一,站點(diǎn)通常只能在一套CMS下運(yùn)行,若想靈活地改變模板框架或遷移到其他CMS架構(gòu)下則十分困難;第二,各站點(diǎn)之間沒(méi)有規(guī)范的服務(wù)接口相關(guān)聯(lián),信息資源相對(duì)分散,造成信息孤島,不利于教育資源的分配與共享;第三,不同的站點(diǎn)采用不同的CMS,導(dǎo)致高校網(wǎng)絡(luò)中心需要部署多種不同的運(yùn)行環(huán)境,各異的框架結(jié)構(gòu)、繁多的數(shù)據(jù)格式也大大加重了維護(hù)的負(fù)擔(dān)。
本文研究了一種通用的高校教育CMS服務(wù)平臺(tái),將高校內(nèi)的各個(gè)站點(diǎn)統(tǒng)一配置,資源集中管理,以解決上述問(wèn)題。
高校在研發(fā)一些院系網(wǎng)站和Web應(yīng)用時(shí),會(huì)考慮以下問(wèn)題:一是開(kāi)發(fā)周期短,通常搭建一個(gè)站點(diǎn)的時(shí)間會(huì)控制在一個(gè)月以內(nèi),這就需要開(kāi)發(fā)工具簡(jiǎn)單便捷、功能豐富;二是維護(hù)成本低,高校中各院系、部門的網(wǎng)站一般由教師或?qū)W生維護(hù),專業(yè)能力有限,因此要求站點(diǎn)運(yùn)行環(huán)境穩(wěn)定,管理和遷移操作簡(jiǎn)單易行。
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,PHP在Web開(kāi)發(fā)中使用越來(lái)越多。其容易學(xué)習(xí)、性能強(qiáng)大、成本低廉、擴(kuò)展靈活的特點(diǎn),正滿足這些需求。因此,本平臺(tái)選擇PHP作為開(kāi)發(fā)語(yǔ)言,并以Yaf框架搭建平臺(tái)的底層架構(gòu)。
Yaf,全稱Yet Another Framework,是一個(gè)C語(yǔ)言編寫的以PHP擴(kuò)展形式提供的PHP開(kāi)發(fā)框架。與一般的PHP框架相比,它更快、更輕便。它提供了Bootstrap、路由、分發(fā)、視圖、插件,是一個(gè)全功能的PHP框架。
目前PHP的框架層出不窮,其中不乏優(yōu)秀的框架,比如Zend Framework、Yii、CI、Think PHP等等。但到底用不用框架還存在很大的爭(zhēng)論,反對(duì)者認(rèn)為使用框架會(huì)降低性能,經(jīng)常舉的例子就是Zend Framework,而支持者則認(rèn)為,采用框架能極大地提高開(kāi)發(fā)效率,損失部分性能也是值得的。這也正是同一單位內(nèi)框架種類繁多的一個(gè)原因。有的項(xiàng)目為了性能而選擇某些框架,而另外一些項(xiàng)目,則為了更好的封裝選擇了另外的框架,這就導(dǎo)致了多種版本的類庫(kù)、框架、約定、規(guī)范并存。而Yaf的產(chǎn)生則很好地解決了這一矛盾。
Yaf的主要優(yōu)勢(shì)體現(xiàn)在三個(gè)方面。(1)Yaf是一個(gè)性能強(qiáng)大的框架。一般的PHP框架邏輯復(fù)雜,內(nèi)存開(kāi)銷較大,而如果用C擴(kuò)展來(lái)實(shí)現(xiàn),就能大幅減少這部分對(duì)資源的消耗。Yaf相比原生的PHP,幾乎不會(huì)帶來(lái)額外的性能開(kāi)銷,所有的框架類無(wú)需編譯,在PHP啟動(dòng)的時(shí)候加載,并常駐內(nèi)存。經(jīng)Yaf框架作者惠新宸官方測(cè)試,Yaf和原生的PHP相比,在同樣的功能下,性能損失小于10%,而在和Zend Framework的對(duì)比中,Yaf的性能是Zend Framework的50~60倍。(2)Yaf是一個(gè)高度靈活可擴(kuò)展的框架,支持自定義視圖引擎(如Smarty),支持插件;內(nèi)建多種路由,可以兼容目前常見(jiàn)的各種路由協(xié)議;強(qiáng)大而又高度靈活的配置文件支持,并支持緩存配置文件,避免復(fù)雜的配置結(jié)構(gòu)帶來(lái)的性能損失。(3)Yaf的部署十分方便,只需根據(jù)PHP版本,在PHP配置中引入相應(yīng)的Yaf擴(kuò)展即可正常使用。
3.1 架構(gòu)設(shè)計(jì)
根據(jù)前文提到現(xiàn)今各高校網(wǎng)站的發(fā)展?fàn)顩r,平臺(tái)的設(shè)計(jì)需要滿足以下特點(diǎn):
(1)操作便捷。由于平臺(tái)的用戶多為教師或?qū)W生等非專業(yè)人士,這就需要平臺(tái)的UI設(shè)計(jì)簡(jiǎn)明清晰,功能使用操作簡(jiǎn)便,用戶可以輕松上手。
(2)規(guī)范統(tǒng)一。所有的站點(diǎn),采用統(tǒng)一的模板格式,統(tǒng)一的資源管理,統(tǒng)一的業(yè)務(wù)邏輯,統(tǒng)一的數(shù)據(jù)庫(kù)存儲(chǔ),方便高校網(wǎng)絡(luò)中心的日常管理以及日后的研發(fā)與擴(kuò)展工作。
(3)配置靈活。平臺(tái)應(yīng)提供豐富的模板樣式,使用戶可以方便地進(jìn)行站點(diǎn)樣式的切換與更新,并具有多種常用的教育功能服務(wù),如視頻、考試等,供用戶選擇配置。
針對(duì)這些特點(diǎn),平臺(tái)的基本架構(gòu)如圖1所示。
平臺(tái)架構(gòu)主要分為基礎(chǔ)服務(wù)、資源服務(wù)、功能服務(wù)三部分,根據(jù)規(guī)??蛇M(jìn)行統(tǒng)一或獨(dú)立部署。用戶通過(guò)統(tǒng)一身份驗(yàn)證登陸平臺(tái),在其匹配的權(quán)限范圍內(nèi),可對(duì)對(duì)應(yīng)的站點(diǎn)進(jìn)行管理操作。
圖1 高校教育CMS服務(wù)平臺(tái)基本架構(gòu)
平臺(tái)基礎(chǔ)服務(wù)是平臺(tái)的根本,包括站點(diǎn)管理、用戶管理、首頁(yè)管理、板塊管理、文章管理等,可對(duì)管理站點(diǎn)進(jìn)行基本的編輯配置,并提供訪問(wèn)其他各類服務(wù)的通用接口。
資源服務(wù)是平臺(tái)的內(nèi)容支撐,存儲(chǔ)各類門戶模板文件、教育資源文件等??筛鶕?jù)需求對(duì)網(wǎng)站模板進(jìn)行豐富的樣式定制和自由擴(kuò)展,以及對(duì)視頻、音頻、課件等海量教育資源的分配管理。
功能服務(wù)作為平臺(tái)的重要補(bǔ)充部分,統(tǒng)一封裝了在線考試、視頻教學(xué)、論壇、郵件等常用的教育功能類服務(wù),用戶可根據(jù)需求進(jìn)行配置和自主開(kāi)發(fā)。
3.2 分層設(shè)計(jì)
根據(jù)平臺(tái)的基本架構(gòu),需在Yaf的基礎(chǔ)上,對(duì)框架的層次進(jìn)行一定的封裝,如圖2所示。
圖2 對(duì)Yaf的層次封裝
3.2.1 Template層
本層負(fù)責(zé)實(shí)現(xiàn)用戶的各種交互界面。采用Smarty模板引擎和Bootstrap前端框架進(jìn)行設(shè)計(jì)實(shí)現(xiàn),以頁(yè)面訪問(wèn)或Ajax異步請(qǐng)求的方式向下層發(fā)送請(qǐng)求。
3.2.2 Action層
本層負(fù)責(zé)對(duì)用戶請(qǐng)求的路由。抽象出Action-Base類,定義對(duì)請(qǐng)求的通用處理框架。在Action-Base基礎(chǔ)上,根據(jù)請(qǐng)求不同,封裝出四類基本Action:TplAction面向頁(yè)面展示請(qǐng)求,主要負(fù)責(zé)平臺(tái)前端各頁(yè)面的渲染工作;JsonAction面向功能性請(qǐng)求,為平臺(tái)各接口提供統(tǒng)一的Json格式數(shù)據(jù)封裝,以便前端通過(guò)Ajax方式請(qǐng)求調(diào)用,如院系站點(diǎn)的建立、各模塊的發(fā)布、修改等;DownloadAction面向下載請(qǐng)求,如下載課件、視頻資源等等;ApiAction面向外部應(yīng)用請(qǐng)求,用于訪問(wèn)平臺(tái)集成的各類通用服務(wù),如在線考試、遠(yuǎn)程視頻等。平臺(tái)所有的Action行為在此四類Action上進(jìn)行擴(kuò)展。
3.2.3 Service層
本層負(fù)責(zé)服務(wù)的邏輯實(shí)現(xiàn)。抽象出Service-Base類,定義連接數(shù)據(jù)庫(kù)、用戶驗(yàn)證、基本的業(yè)務(wù)流程和數(shù)據(jù)處理框架。在ServiceBase基礎(chǔ)上,根據(jù)服務(wù)的業(yè)務(wù)不同,封裝出兩類基本Service:BrowseService面向?yàn)g覽類服務(wù),如頁(yè)面顯示、新聞列表的獲取等;CommitService面向提交類服務(wù),使用數(shù)據(jù)庫(kù)事務(wù)封裝整個(gè)邏輯,保證數(shù)據(jù)的一致性,如站點(diǎn)的添加、刪除等。各服務(wù)接口在此基礎(chǔ)上進(jìn)行具體的業(yè)務(wù)實(shí)現(xiàn)。
3.2.4 Dao層
本層負(fù)責(zé)數(shù)據(jù)的操作訪問(wèn)。DaoBase封裝基本的CURD操作、事務(wù)操作等。每一個(gè)繼承它的Dao文件面向一張具體的數(shù)據(jù)庫(kù)表(如ArticleDao面向文章表),實(shí)現(xiàn)具體的數(shù)據(jù)操作。
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
平臺(tái)基于MySQL數(shù)據(jù)庫(kù),為支持事務(wù)選用InnoDb引擎,基礎(chǔ)表包括平臺(tái)站點(diǎn)表、用戶表、板塊表、文章表等。各表通過(guò)Code與站點(diǎn)表的Code相關(guān)聯(lián),其基礎(chǔ)表結(jié)構(gòu)設(shè)計(jì)如表1~表4所示。
表1 平臺(tái)站點(diǎn)表
表2 用戶表
表3 板塊表
表4 文章表
3.4 測(cè)試實(shí)現(xiàn)
測(cè)試環(huán)境采用WampServer搭建,在PHP配置中以擴(kuò)展形式引入Yaf,根據(jù)前文的設(shè)計(jì)進(jìn)行了開(kāi)發(fā)實(shí)現(xiàn),管理平臺(tái)及站點(diǎn)效果如圖3所示。
圖3 管理平臺(tái)及站點(diǎn)效果
基于Yaf的高校教育CMS服務(wù)平臺(tái)將傳統(tǒng)的面向校內(nèi)單一二級(jí)單位的CMS整合起來(lái),提供面向一所高校的統(tǒng)一服務(wù)。平臺(tái)在向各院系、部門提供豐富的建站功能的同時(shí),規(guī)范了校內(nèi)網(wǎng)站的管理模式,極大地降低了高校網(wǎng)絡(luò)管理人員的維護(hù)和研發(fā)成本。平臺(tái)既可以供高校直接搭建與使用,也可以在其框架基礎(chǔ)上,按照實(shí)際需求進(jìn)行擴(kuò)展配置和二次開(kāi)發(fā)。
本文只是進(jìn)行了初步的探究,如今隨著云計(jì)算技術(shù)的迅猛發(fā)展,可以在此CMS服務(wù)平臺(tái)的基礎(chǔ)上,進(jìn)一步搭建面向國(guó)內(nèi)眾多高校的智慧教育云平臺(tái),打造高效穩(wěn)定,教育者、受教育者、服務(wù)資源等多方協(xié)同的智慧教育數(shù)字化生態(tài)環(huán)境。
[1]黃海艇,胡俊溟.基于CMS的高校學(xué)院網(wǎng)站建設(shè)[J].電腦學(xué)習(xí),2009(1).
[2]丁利娟.基于CMS的高校網(wǎng)站建設(shè)[J].價(jià)值工程,2010(10).
[3]崔琦.基于CMS的校園招生網(wǎng)站的研究與實(shí)現(xiàn)[D].青島:中國(guó)海洋大學(xué),2013.
[4]惠新宸.Yaf(YetAnotherFramework)用戶手冊(cè)[EB/OL].(2012-09-08)[2015-2-20].http://www.laruence.com/ manual/index.html.
[5]惠新宸.Yaf|風(fēng)雪之隅[EB/OL].(2010-09-04)[2015-01-06].http://www.laruence.com/tag/yaf.
Design and Implement of a College Education CMS Service Platform based on Yaf Framework
LIU Qi-feng1,CHEN Xue-jiao2
(1.School of Software Engineering,Beijing University of Technology,Beijing 100124,China;2.College of In formation Science and Technslogy,Agricultural University of Hebei,Hebei Baoding 071000,China)
As internet technology grows explosively,as the basic platform to display its information and share educational resources,web site of departments in college play more and more important role in our daily life.However, the management technology is uneven,web sites'structure and layout are not all the same and resources share difficultly.All these problems make great hazard for further construction and management.As college website has its special users and managers,people should research and develop ageneraleducation contentmanagementsystem (CMS)service platform,which provides a reference for digital campus environment to establish education resource sharing,make standardized management and improve the flexibility for controlling service.
CMS;Yaf;education service
TP393.072
A
1673-2022(2015)02-0010-04
2015-02-25
劉淇峰(1989-),男,河北滄縣人,碩士研究生,研究方向?yàn)檐浖こ獭⑿畔⑴c服務(wù)工程。
河北軟件職業(yè)技術(shù)學(xué)院學(xué)報(bào)2015年2期