王 軍 , 弓 英
早期的網(wǎng)站由純粹的HTML頁(yè)面組成,每一個(gè)頁(yè)面,都是由設(shè)計(jì)師將內(nèi)容與設(shè)計(jì)進(jìn)行整合,然后合成一個(gè)頁(yè)面。后來(lái)動(dòng)態(tài)網(wǎng)站技術(shù)的出現(xiàn),人們將內(nèi)容本身保存在關(guān)系數(shù)據(jù)庫(kù)里,然后當(dāng)用戶瀏覽時(shí)再動(dòng)態(tài)地從數(shù)據(jù)庫(kù)中取出內(nèi)容,使用程序生成HTML傳達(dá)給用戶。純粹的靜態(tài)技術(shù)過(guò)分強(qiáng)調(diào)內(nèi)容的表現(xiàn)形式,從而使得效率低下,而動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)則因?yàn)榘容^高的技術(shù)含量,以及受限于技術(shù),從而忽略了內(nèi)容的表現(xiàn)[1]。
內(nèi)容管理系統(tǒng)中通過(guò)模板技術(shù)來(lái)解決這個(gè)矛盾,有效地將內(nèi)容和表現(xiàn)形式進(jìn)行分離。與傳統(tǒng)模板相比,協(xié)同模板[2]便于維護(hù)和管理,具有良好的可讀性和可擴(kuò)充性,盡可能地縮短了開(kāi)發(fā)周期,減少了修改代價(jià),且可重用性、可繼承性好[3]。
在CMS中,模板承載著網(wǎng)站的頁(yè)面結(jié)構(gòu)和顯示風(fēng)格[4]。模板分為頻道模板和模塊模板,頻道模板是指整個(gè)頻道網(wǎng)頁(yè)的設(shè)計(jì)樣式,頻道模板可以應(yīng)用到主機(jī)、站點(diǎn)中,將決定整個(gè)網(wǎng)站整體風(fēng)格與樣式。模塊模板是指整個(gè)對(duì)于頻道中加載的不同模塊的設(shè)計(jì)樣式,模塊模板可以應(yīng)用到各個(gè)模塊中,將決定網(wǎng)站頻道內(nèi)容的細(xì)致風(fēng)格與樣式。
CMS中所用的模板,實(shí)質(zhì)上是由模板定義語(yǔ)言定義的一個(gè) HTML頁(yè)面文件,在此文件中定義了在什么位置顯示什么信息,以及用什么樣式進(jìn)行顯示。所設(shè)計(jì)的模板文件只包含HTML代碼和標(biāo)簽,完全不包含任何邏輯代碼。頁(yè)面邏輯完全被封裝到標(biāo)簽里面,有后臺(tái)的標(biāo)簽解析程序來(lái)完成。這樣就可以較好的實(shí)現(xiàn)模板的所見(jiàn)即所得開(kāi)發(fā)和重用性。這樣的設(shè)計(jì)可以使得這些模板在任何瀏覽器中都可以正常顯示,用戶使用起來(lái)也非常方便[5]。
內(nèi)容管理[6]CM(Content Management)是電子商務(wù)時(shí)代的新寵。內(nèi)容管理涵蓋企業(yè)內(nèi)聯(lián)網(wǎng)、因特網(wǎng)和企業(yè)外聯(lián)網(wǎng)應(yīng)用,大大突破了傳統(tǒng)信息流管理軟件、辦公自動(dòng)化軟件以及文檔管理軟件的應(yīng)用范圍、使用效果和商業(yè)價(jià)值。
內(nèi)容管理系統(tǒng)是一種位于WEB前端(Web服務(wù)器)和后端辦公系統(tǒng)或流程(內(nèi)容創(chuàng)作、編輯)之間的軟件系統(tǒng)。內(nèi)容的創(chuàng)作人員、編輯人員、發(fā)布人員使用內(nèi)容管理系統(tǒng)來(lái)提交、修改、審批、發(fā)布內(nèi)容。這里指的“內(nèi)容”可能包括文件、表格、圖片、數(shù)據(jù)庫(kù)中的數(shù)據(jù)甚至視頻等一切你想要發(fā)布到Internet、Intranet以及Extranet網(wǎng)站的信息。內(nèi)容管理基本結(jié)構(gòu)如圖1所示[7]。
圖1 內(nèi)容管理基本結(jié)構(gòu)圖
內(nèi)容的存儲(chǔ)使用關(guān)系數(shù)據(jù)庫(kù),而使用模板來(lái)合成最終的頁(yè)面。模板讓設(shè)計(jì)師的才能發(fā)揮到極至,而又不影響效率。給業(yè)務(wù)人員以業(yè)務(wù)的視圖,如果讓業(yè)務(wù)人員來(lái)管理內(nèi)容,則他們并不清楚頁(yè)面的概念,他們只知道“內(nèi)容”或者說(shuō)是“文檔”的概念。在他們看來(lái),他們手里有的只是一篇一篇的文檔,里面有表格,有數(shù)據(jù),他們提供這些原始的資料,至于如何在網(wǎng)站上呈現(xiàn),他們并不明白,也不理會(huì)。模板與實(shí)際信息內(nèi)容相結(jié)合即可產(chǎn)生完整的頁(yè)面,如圖2所示。
圖2 內(nèi)容管理系統(tǒng)中頁(yè)面生成基本結(jié)構(gòu)
協(xié)同設(shè)計(jì)[8-9]技術(shù)將計(jì)算機(jī)技術(shù)、多媒體技術(shù)和網(wǎng)絡(luò)通信技術(shù)與先進(jìn)制造技術(shù)相結(jié)合,支持時(shí)間上分離、空間上分布、工作上互相依賴的協(xié)作成員協(xié)同工作,使工作群體成員在異地分布的網(wǎng)絡(luò)共享環(huán)境下協(xié)同工作、交互協(xié)商、分工合作,并行協(xié)作開(kāi)發(fā)同一產(chǎn)品,共同完成設(shè)計(jì)任務(wù),從而最大限度地縮短產(chǎn)品的開(kāi)發(fā)周期。
協(xié)同模板[10]的實(shí)質(zhì)是借助協(xié)同和模板技術(shù),在網(wǎng)絡(luò)環(huán)境下,由一群設(shè)計(jì)者,相互交流協(xié)作,共同完成一項(xiàng)設(shè)計(jì)任務(wù)。協(xié)同模板包含著協(xié)同設(shè)計(jì)對(duì)象以及約束關(guān)系等信息,體現(xiàn)出協(xié)同模板的屬性與操作。協(xié)同模板研究的主要目的是在協(xié)同設(shè)計(jì)和模板技術(shù)的研究基礎(chǔ)上,充分結(jié)合二者優(yōu)勢(shì),探索具有協(xié)同機(jī)制和模板理論相結(jié)合的協(xié)同模板的設(shè)計(jì)環(huán)境和流程框架。
CMS中每個(gè)模板有兩部分組成:靜態(tài)頁(yè)面和動(dòng)態(tài)組件。靜態(tài)頁(yè)面就是該模板每次被調(diào)用的時(shí)候都不會(huì)更改的東西,包括樣式文件,圖片文件,F(xiàn)lash,JavaScript文件等。而動(dòng)態(tài)組件則是每次模板生成的時(shí)候都會(huì)根據(jù)標(biāo)簽進(jìn)行動(dòng)態(tài)生成的頁(yè)面片段。以往都是由美工人員對(duì)網(wǎng)站各個(gè)頻道的頁(yè)面進(jìn)行美工設(shè)計(jì),制作出 HTML頁(yè)面,然后網(wǎng)站的系統(tǒng)管理員進(jìn)行標(biāo)簽制作,頁(yè)面邏輯全都封裝在標(biāo)簽里,在 HTML頁(yè)面的相關(guān)地方插入制作好的標(biāo)簽即可,包括頁(yè)面模板、頻道模板等。
協(xié)同模板設(shè)計(jì)過(guò)程中,一個(gè)設(shè)計(jì)任務(wù)被分成若干子任務(wù)。每個(gè)子任務(wù)根據(jù)相應(yīng)的子模板進(jìn)行設(shè)計(jì),設(shè)計(jì)結(jié)果以子模板參數(shù)文件的形式保存起來(lái)并傳遞給總設(shè)計(jì)端??傇O(shè)計(jì)端利用模板復(fù)合技術(shù)將子任務(wù)設(shè)計(jì)結(jié)果復(fù)合起來(lái),形成完整的設(shè)計(jì)對(duì)象的模板信息。模板復(fù)合需要的信息包括:子模板參數(shù)文件、結(jié)構(gòu)文件、設(shè)計(jì)約束文件、位置關(guān)系文件等。其中子模板參數(shù)文件是子任務(wù)的設(shè)計(jì)結(jié)果。而設(shè)計(jì)約束、位置關(guān)系文件則是任務(wù)總體約束信息、各子任務(wù)間的約束關(guān)系信息。模板復(fù)合時(shí)要根據(jù)任務(wù)數(shù)據(jù)庫(kù)中的總體約束信息,生成模板中描述約束、位置關(guān)系的XML文件信息,并復(fù)合到總模板中去。
將協(xié)同機(jī)制應(yīng)用到CMS模板制作過(guò)程中,總設(shè)計(jì)對(duì)象可分為若干基本部分,每個(gè)設(shè)計(jì)部分作為一個(gè)子任務(wù),總設(shè)計(jì)者提出這些設(shè)計(jì)要求方面的指標(biāo)和約束。子設(shè)計(jì)者根據(jù)設(shè)計(jì)要求和約束,進(jìn)行子任務(wù)的設(shè)計(jì)。設(shè)計(jì)算法為:首先總設(shè)計(jì)者對(duì)網(wǎng)站的設(shè)計(jì)任務(wù)和對(duì)象進(jìn)行分析,根據(jù)設(shè)計(jì)對(duì)象結(jié)構(gòu)、功能以及約束等,產(chǎn)生設(shè)計(jì)任務(wù),發(fā)起一次協(xié)同模板過(guò)程。
① 分解設(shè)計(jì)任務(wù),給出任務(wù)前驅(qū)圖;
② 分配子任務(wù),同時(shí)給出設(shè)計(jì)要求和約束信息,作為設(shè)計(jì)依據(jù);
③ 根據(jù)任務(wù)前驅(qū)圖判斷該子任務(wù)的前驅(qū)任務(wù)是否都已經(jīng)完成;
④ 如果該任務(wù)沒(méi)有前驅(qū)任務(wù),或者該任務(wù)的所有前驅(qū)任務(wù)都已經(jīng)完成,則可以進(jìn)行設(shè)計(jì),否則必須等待其所有前驅(qū)任務(wù)都完成才可以進(jìn)行;
⑤ 根據(jù)經(jīng)驗(yàn)或者計(jì)算得出滿足設(shè)計(jì)要求和約束的子任務(wù)設(shè)計(jì)信息,完成設(shè)計(jì)之后,設(shè)計(jì)結(jié)果保存為樣式文件;
⑥ 復(fù)合子任務(wù)設(shè)計(jì)結(jié)果,并實(shí)時(shí)顯示當(dāng)前設(shè)計(jì)結(jié)果;
⑦ 對(duì)子任務(wù)設(shè)計(jì)結(jié)果檢驗(yàn),若滿足相應(yīng)條件,則通過(guò)驗(yàn)收。否則,需進(jìn)行重新設(shè)計(jì);
⑧ 子任務(wù)通過(guò)驗(yàn)收,根據(jù)任務(wù)前驅(qū)圖的控制,向受該任務(wù)約束的所有后繼任務(wù)發(fā)送任務(wù)完成同步消息,并傳遞相關(guān)的設(shè)計(jì)信息;
⑨ 重復(fù)以上過(guò)程,直到所有子任務(wù)設(shè)計(jì)完成,提交并通過(guò)驗(yàn)收。如果最終設(shè)計(jì)結(jié)果滿足要求,則這次協(xié)同模板過(guò)程結(jié)束,設(shè)計(jì)結(jié)果保存為模板文件。否則將不符合要求的任務(wù)發(fā)回去重新設(shè)計(jì),如此反復(fù)進(jìn)行上述過(guò)程,直到最終結(jié)果滿意為止。
將最終設(shè)計(jì)出來(lái)的頁(yè)面保存為模板文件,在部署網(wǎng)站時(shí)就可利用這些設(shè)計(jì)好的模板,結(jié)合內(nèi)容,產(chǎn)生相應(yīng)的頁(yè)面。此過(guò)程中所用的樣式、標(biāo)簽,既可存于數(shù)據(jù)庫(kù)中,也可導(dǎo)出xml文件進(jìn)行保存。該設(shè)計(jì)思想在廈門氣象局開(kāi)發(fā)內(nèi)容管理系統(tǒng)用以部署相關(guān)網(wǎng)站時(shí)得到了很好的應(yīng)用。
協(xié)同設(shè)計(jì)的意義除去技術(shù)本身之外,重要的在于通過(guò)它將個(gè)人設(shè)計(jì)轉(zhuǎn)化為團(tuán)隊(duì)設(shè)計(jì)。在協(xié)同設(shè)計(jì)和模板技術(shù)的研究基礎(chǔ)上,結(jié)合內(nèi)容管理系統(tǒng)的模板制作,探索具有協(xié)同機(jī)制和模板技術(shù)相結(jié)合的協(xié)同模板的設(shè)計(jì)算法。協(xié)同模板便于維護(hù)和管理,具有良好的可讀性和可擴(kuò)充性。對(duì)某一子部分設(shè)計(jì)不滿意時(shí),根據(jù)實(shí)際需求,可以很方便地在原有基礎(chǔ)上根據(jù)約束進(jìn)行修改,有的只需修改css或js文件即可,且協(xié)同模板的復(fù)用性好,在已有模板的基礎(chǔ)上,可以很方便地產(chǎn)生新的模板,使網(wǎng)站風(fēng)格發(fā)生改變。
[1] 劉永先.基于 Microsoft.NET框架的網(wǎng)站內(nèi)容管理系統(tǒng) GXCMS的研究[D].成都:電子科技大學(xué),2007.
[2] Liu Xiaoping,Liu Xiaoyun, Hou Zhengfeng, et al. Research on Cooperative Template Design[C].USA:IEEE,2001:52-55.
[3] 陳雪源.協(xié)同模板的表示與復(fù)合的研究[D].合肥:合肥工業(yè)大學(xué),2005.
[4] 譚立球,費(fèi)耀平,李建華,等.多網(wǎng)站內(nèi)容管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用, 2004,24(11):4-6.
[5] 喻斌.內(nèi)容管理系統(tǒng)中模板技術(shù)的研究與應(yīng)用[D]. 南昌:南昌大學(xué),2007.
[6] Mc Nay H E.Enterprise Content Management:an Overview[C].USA:IEEE,2002:396-402.
[7] 張猛.多模式動(dòng)態(tài)內(nèi)容管理系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:上海海事大學(xué),2007.
[8] Sun Linfu. Computer Supported Collaborative Design Based on Knowledge[C]. USA:IEEE,2004:26-31.
[9] 殷烽華,陳進(jìn).一種基于SystemC的軟硬件協(xié)同設(shè)計(jì)方法[J].通信技術(shù),2003(12):97-101.
[10] 石慧.基于約束模型的協(xié)同模板任務(wù)機(jī)制研究[D].合肥:合肥工業(yè)大學(xué),2006.