王 軍 , 弓 英
早期的網(wǎng)站由純粹的HTML頁面組成,每一個頁面,都是由設(shè)計師將內(nèi)容與設(shè)計進(jìn)行整合,然后合成一個頁面。后來動態(tài)網(wǎng)站技術(shù)的出現(xiàn),人們將內(nèi)容本身保存在關(guān)系數(shù)據(jù)庫里,然后當(dāng)用戶瀏覽時再動態(tài)地從數(shù)據(jù)庫中取出內(nèi)容,使用程序生成HTML傳達(dá)給用戶。純粹的靜態(tài)技術(shù)過分強(qiáng)調(diào)內(nèi)容的表現(xiàn)形式,從而使得效率低下,而動態(tài)網(wǎng)頁技術(shù)則因為包含比較高的技術(shù)含量,以及受限于技術(shù),從而忽略了內(nèi)容的表現(xiàn)[1]。
內(nèi)容管理系統(tǒng)中通過模板技術(shù)來解決這個矛盾,有效地將內(nèi)容和表現(xiàn)形式進(jìn)行分離。與傳統(tǒng)模板相比,協(xié)同模板[2]便于維護(hù)和管理,具有良好的可讀性和可擴(kuò)充性,盡可能地縮短了開發(fā)周期,減少了修改代價,且可重用性、可繼承性好[3]。
在CMS中,模板承載著網(wǎng)站的頁面結(jié)構(gòu)和顯示風(fēng)格[4]。模板分為頻道模板和模塊模板,頻道模板是指整個頻道網(wǎng)頁的設(shè)計樣式,頻道模板可以應(yīng)用到主機(jī)、站點中,將決定整個網(wǎng)站整體風(fēng)格與樣式。模塊模板是指整個對于頻道中加載的不同模塊的設(shè)計樣式,模塊模板可以應(yīng)用到各個模塊中,將決定網(wǎng)站頻道內(nèi)容的細(xì)致風(fēng)格與樣式。
CMS中所用的模板,實質(zhì)上是由模板定義語言定義的一個 HTML頁面文件,在此文件中定義了在什么位置顯示什么信息,以及用什么樣式進(jìn)行顯示。所設(shè)計的模板文件只包含HTML代碼和標(biāo)簽,完全不包含任何邏輯代碼。頁面邏輯完全被封裝到標(biāo)簽里面,有后臺的標(biāo)簽解析程序來完成。這樣就可以較好的實現(xiàn)模板的所見即所得開發(fā)和重用性。這樣的設(shè)計可以使得這些模板在任何瀏覽器中都可以正常顯示,用戶使用起來也非常方便[5]。
內(nèi)容管理[6]CM(Content Management)是電子商務(wù)時代的新寵。內(nèi)容管理涵蓋企業(yè)內(nèi)聯(lián)網(wǎng)、因特網(wǎng)和企業(yè)外聯(lián)網(wǎng)應(yīng)用,大大突破了傳統(tǒng)信息流管理軟件、辦公自動化軟件以及文檔管理軟件的應(yīng)用范圍、使用效果和商業(yè)價值。
內(nèi)容管理系統(tǒng)是一種位于WEB前端(Web服務(wù)器)和后端辦公系統(tǒng)或流程(內(nèi)容創(chuàng)作、編輯)之間的軟件系統(tǒng)。內(nèi)容的創(chuàng)作人員、編輯人員、發(fā)布人員使用內(nèi)容管理系統(tǒng)來提交、修改、審批、發(fā)布內(nèi)容。這里指的“內(nèi)容”可能包括文件、表格、圖片、數(shù)據(jù)庫中的數(shù)據(jù)甚至視頻等一切你想要發(fā)布到Internet、Intranet以及Extranet網(wǎng)站的信息。內(nèi)容管理基本結(jié)構(gòu)如圖1所示[7]。

圖1 內(nèi)容管理基本結(jié)構(gòu)圖
內(nèi)容的存儲使用關(guān)系數(shù)據(jù)庫,而使用模板來合成最終的頁面。模板讓設(shè)計師的才能發(fā)揮到極至,而又不影響效率。給業(yè)務(wù)人員以業(yè)務(wù)的視圖,如果讓業(yè)務(wù)人員來管理內(nèi)容,則他們并不清楚頁面的概念,他們只知道“內(nèi)容”或者說是“文檔”的概念。在他們看來,他們手里有的只是一篇一篇的文檔,里面有表格,有數(shù)據(jù),他們提供這些原始的資料,至于如何在網(wǎng)站上呈現(xiàn),他們并不明白,也不理會。模板與實際信息內(nèi)容相結(jié)合即可產(chǎn)生完整的頁面,如圖2所示。

圖2 內(nèi)容管理系統(tǒng)中頁面生成基本結(jié)構(gòu)
協(xié)同設(shè)計[8-9]技術(shù)將計算機(jī)技術(shù)、多媒體技術(shù)和網(wǎng)絡(luò)通信技術(shù)與先進(jìn)制造技術(shù)相結(jié)合,支持時間上分離、空間上分布、工作上互相依賴的協(xié)作成員協(xié)同工作,使工作群體成員在異地分布的網(wǎng)絡(luò)共享環(huán)境下協(xié)同工作、交互協(xié)商、分工合作,并行協(xié)作開發(fā)同一產(chǎn)品,共同完成設(shè)計任務(wù),從而最大限度地縮短產(chǎn)品的開發(fā)周期。
協(xié)同模板[10]的實質(zhì)是借助協(xié)同和模板技術(shù),在網(wǎng)絡(luò)環(huán)境下,由一群設(shè)計者,相互交流協(xié)作,共同完成一項設(shè)計任務(wù)。協(xié)同模板包含著協(xié)同設(shè)計對象以及約束關(guān)系等信息,體現(xiàn)出協(xié)同模板的屬性與操作。協(xié)同模板研究的主要目的是在協(xié)同設(shè)計和模板技術(shù)的研究基礎(chǔ)上,充分結(jié)合二者優(yōu)勢,探索具有協(xié)同機(jī)制和模板理論相結(jié)合的協(xié)同模板的設(shè)計環(huán)境和流程框架。
CMS中每個模板有兩部分組成:靜態(tài)頁面和動態(tài)組件。靜態(tài)頁面就是該模板每次被調(diào)用的時候都不會更改的東西,包括樣式文件,圖片文件,F(xiàn)lash,JavaScript文件等。而動態(tài)組件則是每次模板生成的時候都會根據(jù)標(biāo)簽進(jìn)行動態(tài)生成的頁面片段。以往都是由美工人員對網(wǎng)站各個頻道的頁面進(jìn)行美工設(shè)計,制作出 HTML頁面,然后網(wǎng)站的系統(tǒng)管理員進(jìn)行標(biāo)簽制作,頁面邏輯全都封裝在標(biāo)簽里,在 HTML頁面的相關(guān)地方插入制作好的標(biāo)簽即可,包括頁面模板、頻道模板等。
協(xié)同模板設(shè)計過程中,一個設(shè)計任務(wù)被分成若干子任務(wù)。每個子任務(wù)根據(jù)相應(yīng)的子模板進(jìn)行設(shè)計,設(shè)計結(jié)果以子模板參數(shù)文件的形式保存起來并傳遞給總設(shè)計端。總設(shè)計端利用模板復(fù)合技術(shù)將子任務(wù)設(shè)計結(jié)果復(fù)合起來,形成完整的設(shè)計對象的模板信息。模板復(fù)合需要的信息包括:子模板參數(shù)文件、結(jié)構(gòu)文件、設(shè)計約束文件、位置關(guān)系文件等。其中子模板參數(shù)文件是子任務(wù)的設(shè)計結(jié)果。而設(shè)計約束、位置關(guān)系文件則是任務(wù)總體約束信息、各子任務(wù)間的約束關(guān)系信息。模板復(fù)合時要根據(jù)任務(wù)數(shù)據(jù)庫中的總體約束信息,生成模板中描述約束、位置關(guān)系的XML文件信息,并復(fù)合到總模板中去。
將協(xié)同機(jī)制應(yīng)用到CMS模板制作過程中,總設(shè)計對象可分為若干基本部分,每個設(shè)計部分作為一個子任務(wù),總設(shè)計者提出這些設(shè)計要求方面的指標(biāo)和約束。子設(shè)計者根據(jù)設(shè)計要求和約束,進(jìn)行子任務(wù)的設(shè)計。設(shè)計算法為:首先總設(shè)計者對網(wǎng)站的設(shè)計任務(wù)和對象進(jìn)行分析,根據(jù)設(shè)計對象結(jié)構(gòu)、功能以及約束等,產(chǎn)生設(shè)計任務(wù),發(fā)起一次協(xié)同模板過程。
① 分解設(shè)計任務(wù),給出任務(wù)前驅(qū)圖;
② 分配子任務(wù),同時給出設(shè)計要求和約束信息,作為設(shè)計依據(jù);
③ 根據(jù)任務(wù)前驅(qū)圖判斷該子任務(wù)的前驅(qū)任務(wù)是否都已經(jīng)完成;
④ 如果該任務(wù)沒有前驅(qū)任務(wù),或者該任務(wù)的所有前驅(qū)任務(wù)都已經(jīng)完成,則可以進(jìn)行設(shè)計,否則必須等待其所有前驅(qū)任務(wù)都完成才可以進(jìn)行;
⑤ 根據(jù)經(jīng)驗或者計算得出滿足設(shè)計要求和約束的子任務(wù)設(shè)計信息,完成設(shè)計之后,設(shè)計結(jié)果保存為樣式文件;
⑥ 復(fù)合子任務(wù)設(shè)計結(jié)果,并實時顯示當(dāng)前設(shè)計結(jié)果;
⑦ 對子任務(wù)設(shè)計結(jié)果檢驗,若滿足相應(yīng)條件,則通過驗收。否則,需進(jìn)行重新設(shè)計;
⑧ 子任務(wù)通過驗收,根據(jù)任務(wù)前驅(qū)圖的控制,向受該任務(wù)約束的所有后繼任務(wù)發(fā)送任務(wù)完成同步消息,并傳遞相關(guān)的設(shè)計信息;
⑨ 重復(fù)以上過程,直到所有子任務(wù)設(shè)計完成,提交并通過驗收。如果最終設(shè)計結(jié)果滿足要求,則這次協(xié)同模板過程結(jié)束,設(shè)計結(jié)果保存為模板文件。否則將不符合要求的任務(wù)發(fā)回去重新設(shè)計,如此反復(fù)進(jìn)行上述過程,直到最終結(jié)果滿意為止。
將最終設(shè)計出來的頁面保存為模板文件,在部署網(wǎng)站時就可利用這些設(shè)計好的模板,結(jié)合內(nèi)容,產(chǎn)生相應(yīng)的頁面。此過程中所用的樣式、標(biāo)簽,既可存于數(shù)據(jù)庫中,也可導(dǎo)出xml文件進(jìn)行保存。該設(shè)計思想在廈門氣象局開發(fā)內(nèi)容管理系統(tǒng)用以部署相關(guān)網(wǎng)站時得到了很好的應(yīng)用。
協(xié)同設(shè)計的意義除去技術(shù)本身之外,重要的在于通過它將個人設(shè)計轉(zhuǎn)化為團(tuán)隊設(shè)計。在協(xié)同設(shè)計和模板技術(shù)的研究基礎(chǔ)上,結(jié)合內(nèi)容管理系統(tǒng)的模板制作,探索具有協(xié)同機(jī)制和模板技術(shù)相結(jié)合的協(xié)同模板的設(shè)計算法。協(xié)同模板便于維護(hù)和管理,具有良好的可讀性和可擴(kuò)充性。對某一子部分設(shè)計不滿意時,根據(jù)實際需求,可以很方便地在原有基礎(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] 譚立球,費耀平,李建華,等.多網(wǎng)站內(nèi)容管理系統(tǒng)的設(shè)計和實現(xiàn)[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] 張猛.多模式動態(tài)內(nèi)容管理系統(tǒng)的研究與實現(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].通信技術(shù),2003(12):97-101.
[10] 石慧.基于約束模型的協(xié)同模板任務(wù)機(jī)制研究[D].合肥:合肥工業(yè)大學(xué),2006.