王 军 , 弓 英
早期的网站由纯粹的HTML页面组成,每一个页面,都是由设计师将内容与设计进行整合,然后合成一个页面。后来动态网站技术的出现,人们将内容本身保存在关系数据库里,然后当用户浏览时再动态地从数据库中取出内容,使用程序生成HTML传达给用户。纯粹的静态技术过分强调内容的表现形式,从而使得效率低下,而动态网页技术则因为包含比较高的技术含量,以及受限于技术,从而忽略了内容的表现[1]。
内容管理系统中通过模板技术来解决这个矛盾,有效地将内容和表现形式进行分离。与传统模板相比,协同模板[2]便于维护和管理,具有良好的可读性和可扩充性,尽可能地缩短了开发周期,减少了修改代价,且可重用性、可继承性好[3]。
在CMS中,模板承载着网站的页面结构和显示风格[4]。模板分为频道模板和模块模板,频道模板是指整个频道网页的设计样式,频道模板可以应用到主机、站点中,将决定整个网站整体风格与样式。模块模板是指整个对于频道中加载的不同模块的设计样式,模块模板可以应用到各个模块中,将决定网站频道内容的细致风格与样式。
CMS中所用的模板,实质上是由模板定义语言定义的一个 HTML页面文件,在此文件中定义了在什么位置显示什么信息,以及用什么样式进行显示。所设计的模板文件只包含HTML代码和标签,完全不包含任何逻辑代码。页面逻辑完全被封装到标签里面,有后台的标签解析程序来完成。这样就可以较好的实现模板的所见即所得开发和重用性。这样的设计可以使得这些模板在任何浏览器中都可以正常显示,用户使用起来也非常方便[5]。
内容管理[6]CM(Content Management)是电子商务时代的新宠。内容管理涵盖企业内联网、因特网和企业外联网应用,大大突破了传统信息流管理软件、办公自动化软件以及文档管理软件的应用范围、使用效果和商业价值。
内容管理系统是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。内容管理基本结构如图1所示[7]。
图1 内容管理基本结构图
内容的存储使用关系数据库,而使用模板来合成最终的页面。模板让设计师的才能发挥到极至,而又不影响效率。给业务人员以业务的视图,如果让业务人员来管理内容,则他们并不清楚页面的概念,他们只知道“内容”或者说是“文档”的概念。在他们看来,他们手里有的只是一篇一篇的文档,里面有表格,有数据,他们提供这些原始的资料,至于如何在网站上呈现,他们并不明白,也不理会。模板与实际信息内容相结合即可产生完整的页面,如图2所示。
图2 内容管理系统中页面生成基本结构
协同设计[8-9]技术将计算机技术、多媒体技术和网络通信技术与先进制造技术相结合,支持时间上分离、空间上分布、工作上互相依赖的协作成员协同工作,使工作群体成员在异地分布的网络共享环境下协同工作、交互协商、分工合作,并行协作开发同一产品,共同完成设计任务,从而最大限度地缩短产品的开发周期。
协同模板[10]的实质是借助协同和模板技术,在网络环境下,由一群设计者,相互交流协作,共同完成一项设计任务。协同模板包含着协同设计对象以及约束关系等信息,体现出协同模板的属性与操作。协同模板研究的主要目的是在协同设计和模板技术的研究基础上,充分结合二者优势,探索具有协同机制和模板理论相结合的协同模板的设计环境和流程框架。
CMS中每个模板有两部分组成:静态页面和动态组件。静态页面就是该模板每次被调用的时候都不会更改的东西,包括样式文件,图片文件,Flash,JavaScript文件等。而动态组件则是每次模板生成的时候都会根据标签进行动态生成的页面片段。以往都是由美工人员对网站各个频道的页面进行美工设计,制作出 HTML页面,然后网站的系统管理员进行标签制作,页面逻辑全都封装在标签里,在 HTML页面的相关地方插入制作好的标签即可,包括页面模板、频道模板等。
协同模板设计过程中,一个设计任务被分成若干子任务。每个子任务根据相应的子模板进行设计,设计结果以子模板参数文件的形式保存起来并传递给总设计端。总设计端利用模板复合技术将子任务设计结果复合起来,形成完整的设计对象的模板信息。模板复合需要的信息包括:子模板参数文件、结构文件、设计约束文件、位置关系文件等。其中子模板参数文件是子任务的设计结果。而设计约束、位置关系文件则是任务总体约束信息、各子任务间的约束关系信息。模板复合时要根据任务数据库中的总体约束信息,生成模板中描述约束、位置关系的XML文件信息,并复合到总模板中去。
将协同机制应用到CMS模板制作过程中,总设计对象可分为若干基本部分,每个设计部分作为一个子任务,总设计者提出这些设计要求方面的指标和约束。子设计者根据设计要求和约束,进行子任务的设计。设计算法为:首先总设计者对网站的设计任务和对象进行分析,根据设计对象结构、功能以及约束等,产生设计任务,发起一次协同模板过程。
① 分解设计任务,给出任务前驱图;
② 分配子任务,同时给出设计要求和约束信息,作为设计依据;
③ 根据任务前驱图判断该子任务的前驱任务是否都已经完成;
④ 如果该任务没有前驱任务,或者该任务的所有前驱任务都已经完成,则可以进行设计,否则必须等待其所有前驱任务都完成才可以进行;
⑤ 根据经验或者计算得出满足设计要求和约束的子任务设计信息,完成设计之后,设计结果保存为样式文件;
⑥ 复合子任务设计结果,并实时显示当前设计结果;
⑦ 对子任务设计结果检验,若满足相应条件,则通过验收。否则,需进行重新设计;
⑧ 子任务通过验收,根据任务前驱图的控制,向受该任务约束的所有后继任务发送任务完成同步消息,并传递相关的设计信息;
⑨ 重复以上过程,直到所有子任务设计完成,提交并通过验收。如果最终设计结果满足要求,则这次协同模板过程结束,设计结果保存为模板文件。否则将不符合要求的任务发回去重新设计,如此反复进行上述过程,直到最终结果满意为止。
将最终设计出来的页面保存为模板文件,在部署网站时就可利用这些设计好的模板,结合内容,产生相应的页面。此过程中所用的样式、标签,既可存于数据库中,也可导出xml文件进行保存。该设计思想在厦门气象局开发内容管理系统用以部署相关网站时得到了很好的应用。
协同设计的意义除去技术本身之外,重要的在于通过它将个人设计转化为团队设计。在协同设计和模板技术的研究基础上,结合内容管理系统的模板制作,探索具有协同机制和模板技术相结合的协同模板的设计算法。协同模板便于维护和管理,具有良好的可读性和可扩充性。对某一子部分设计不满意时,根据实际需求,可以很方便地在原有基础上根据约束进行修改,有的只需修改css或js文件即可,且协同模板的复用性好,在已有模板的基础上,可以很方便地产生新的模板,使网站风格发生改变。
[1] 刘永先.基于 Microsoft.NET框架的网站内容管理系统 GXCMS的研究[D].成都:电子科技大学,2007.
[2] Liu Xiaoping,Liu Xiaoyun, Hou Zhengfeng, et al. Research on Cooperative Template Design[C].USA:IEEE,2001:52-55.
[3] 陈雪源.协同模板的表示与复合的研究[D].合肥:合肥工业大学,2005.
[4] 谭立球,费耀平,李建华,等.多网站内容管理系统的设计和实现[J].计算机应用, 2004,24(11):4-6.
[5] 喻斌.内容管理系统中模板技术的研究与应用[D]. 南昌:南昌大学,2007.
[6] Mc Nay H E.Enterprise Content Management:an Overview[C].USA:IEEE,2002:396-402.
[7] 张猛.多模式动态内容管理系统的研究与实现[D].上海:上海海事大学,2007.
[8] Sun Linfu. Computer Supported Collaborative Design Based on Knowledge[C]. USA:IEEE,2004:26-31.
[9] 殷烽华,陈进.一种基于SystemC的软硬件协同设计方法[J].通信技术,2003(12):97-101.
[10] 石慧.基于约束模型的协同模板任务机制研究[D].合肥:合肥工业大学,2006.