・18・计算机与信息技术 开发与应用
基于XML技术的网站内容管理系统的设计与实现
鲍宇 赵亮
(中国矿业大学计算机学院徐州 221008)
摘 要 随着网络发展的逐渐成熟,网络内容管理已经是许多网站实施管理的必备工具。但对于一个小网站来说,使
用一个商业化的内容管理工具的投入是不划算的。本文对这种网站的内容管理进行了设计,使用XML技术,通过XML格式分析器将原有的静态网页同内容管理中动态网页统一成XML格式管理,使得内容管理可以在网站原有的基础上进行。
内容管理;CMS;XML关键词
1 引言
网站内容管理系统是针对网站信息管理、信息发布和维护而开发的基于Web交互模式的内容管理和发布应用系统。其基本原理是把整个的内容分成不同的部分,文本和图像存储在分散空间内(或是一个数据库或是一个分散的文件系统),而这些分散的空间都与HTML模板连接,通过模板的升级来升级网站。它的应用主要有两方面,一类是Internet上建立企业()门户网站或电子政务平台,对内容更新量较大、网站由相对较少的IT人员来维护的机关或企业,可以用该系统快速建立且方便地维护网站或政务的平台,实现对结构化和非结构化数据库的动态信息发布;另一类是在
Intranet上建立内部政务和信息网站,通过内部网站可以对大
用良好的Web界面,使内容管理更为方便。
2 内容管理系统的设计
【3】
许多内容管理系统采用的B/S模式的三层或四层体
系结构,采用ASP/PHP/JSP作为开发工具,基于MSSQL/
MYSQL/Oracle数据库并采用动态网页生成技术的信息采集
发布系统,实现了数据的动态、实时发布检索等功能,改变了传统的网络信息采集发布的模式。系统通常被分离成以下
【2】【3】几个层次:
⑴数据层。该部分以存储数据的形式存在,主要考虑不同类型的数据(文档、纯数据信息等)如何分类存储和海量的数据的分地存储。
⑵逻辑层。该部分以管理优先,对数据内容管理;包括新闻子系统,BBS论坛子系统,全文检索子系统等;并针对内容录入,清晰的业务逻辑和控制各子系统的权限控制机制等;
⑶表现层。以数据表现优先,通常对模板管理(Portal系统),针对数据的最终的输出页面。如网站首页,子频道/专题页,新闻详情页等。
⑷前台发布:面向最终用户的缓存发布,和搜索引擎设计等。
在设计之前,需求分析是很重要的,访问量、权限控制和各种功能需求都是要了解的。我们主要的思路是使用框架,在此基础上针对性地设计应用,将其分解成小的系统组合实现。我们将这种功能模块称为原子功能模块。原子功能的划分将逻辑层划分出来,从而使系统层次被分离出来。原子功能模块的划分要保持如下原则:
①容逻辑和数据分离。内容管理逻辑和业务逻辑需要同数据的表现和数据的存储在设计时分离考虑。业务和管理本身是一个综合系统,需要进一步划分。业务在许多时候是不一样的;管理逻辑在划分时需要注意相对于不同的业务逻辑,页面管理逻辑不一定不同,所以在设计时可能要考虑使用统一的方式管理,但需要注意使用者的权限。
②据存储相对管理逻辑进行划分。多数数据可能是存储在数据库中,但有些数据,如网站中旧的网页、要下载的文档等可能是以文件形式存在,在数据管理中要将其统一,我
量的文档数据分类管理,让不同权限的领导和工作人员(包括全球范围内的部门和人员)通过网络进行高效的交流和信息共享。
现在对于内容管理的设计和使用已经是非常成熟了,例
【1】
如IBM公司的DB2ContentManager、微软的MicrosoftContent【2】ManagementServer等都是非常成熟的产品,而且成功的应用
在许多企业中。随着这种技术的发展,内容管理逐渐转变为企业内部的信息集成,将企业内部的大量数据和文档集成到相应的信息库中。然而,该领域中的高端解决方案(如Open2
Market、Vignette或eContent),需要的不仅仅是管理工具本身的
费用,还需要其它额外的附加费用(如服务器等),所以一些网站使用自己开发的解决方案。许多网站管理已转向脚本
(JSP、ASP或PHP)和数据库的组合,以应付不断成长的站点
内容。这种方法很有效,但不是没有缺点。首先,增加了服务器代价,因此页面可能装入得更慢;另外,基于脚本的网站更容易出现错误;最后,搜索引擎往往不太可能对动态生成的站点建立索引。
ApacheLenya
【3】
技术将文档管理、逻辑、内容和风格进行
完全的分离,允许这四层设计、创建和管理,从而减少管理开销。但其是基于Java技术的,原有Asp网站并不能很好的与之兼容。我们在这种技术基础上,使用Asp.net处理内容管理,并将原有网站内容使用XML统一到新的内容管理系统中来,使其有良好的兼容性。同时利用C#的技术,使
开发与应用 计算机与信息技术
们这里使用了XML数据。
③据表现要注意面向搜索引擎设计。通过URL
REWRITE转向或基于PATHπINFO的参数解析使得动态网
・19・
类、审核、发布等功能的管理。由于网站中所涉及的文件含有原始分散的网页、可以动态生成的网页以及新添加的网页和其它文件,所以对文件分类需要统一格式。我们使用XML数据描述文件信息,格式如下:
页在链接形式上像静态目录结构,方便搜索引擎收录。
根据以上原则,我们对内容管理系统进行设计,如图1:
loadetc.”source=“Whereisit?”date=“creationdate”life=“vailiditylife”memo=“memo”/>
使用统一格式描述可以使所有文件使用统一的页面进行管理,所以对文件需要创建这些格式信息。我们首先遍历了所有文件,根据网站文件的位置、后缀等信息自动分类,然后将信息放置在页面中,让管理员检查,以确保文件分类无误。
(2)实现网站树形目录管理。树形目录可以方便管理
人员使用;在使用树形目录时首先要构建。我们在构建时使
图1 网页数据逻辑示意图
数据层的数据是多样的,使用XML数据描述可以非常好的描述多样数据,保持数据原有特性,为此,我们在数据层向逻辑层提供数据时,在数据层增加一个子层,用于提供数据格式描述,即XML格式分析器(XMLFormatAnalyzer,XML2
FA)。通过XMLFA将数据库数据和文档描述转化为XML数
用遍历递归代码实现如下:
据。并且将查询语句使用XPath在XML文档中查询。XML2
FA主要完成的功能是分析各种文档,对已知类型的和已经
归类的文档做出正确描述,反映文档的基本特性。如图1所示,XMLFA是为逻辑层提供XML格式的数据,将数据层不同类型数据进行统一描述。XMLFA除了分析格式之外,对于数据的安全性也提供了一定的控制。在使用XMLFAXML分析数据时,可以利用角色控制,使XMLFA只提供用户角色权限范围内的数据描述。
逻辑管理层主要是对各种业务逻辑进行划分,将各个原子模块划分出来,针对不同的子模块所采用的逻辑是不同的,所以对于不同的业务逻辑,XMLFA可以提供不同的接口,使数据更好的为逻辑层提供服务。
在表现层上,所有的数据最终是以网页的形式提供给最终用户的,所以数据要通过不同形式将逻辑层的处理结果转换成网页显示;这里的XML数据要通过XSTL样式表进行转换,数据库的查询结果也同样需要转换,发布之后的网页数据才能显示在用户的网页上。
图2 实现遍历树的递规代码
(3)安全权限。安全是所有网站必须解决的问题,在该
模型中除了.net本身所具有的安全功能,对数据的权限访问控制也是常采用的手段。在管理页面中,许多信息是不能出现在页面上的。图2所示代码将所有的信息都暴露在管理员的面前,这是不合法的。我们在实际使用中将目录名字中加入了标志量;对这些含有特殊符号的目录,XML文档节点是不显示的。利用构建节点的不同,我们对于多用户的管理可以有效地做到根据登录者的身份进行分类管理。
【4】
(4)网页信息提示。部分网页在使用中是具有相对的
时效性,所以对于此类网页在有效期限来临时,系统需要提示该网页要被清除,如果管理员没有及时处理,此时该网页将被锁定。我们采用的技术是将网页移动到特定目录,将原有位置替换为特定网页(如正在更新提示的网页)。这样可以有效地防止误导用户使用过期信息。
3 实现技术
【2】
在实现上述设计中,我们利用了C#.net技术,主要因
为它是Windows系统的,可以运行在IIS上,这符合许多小型网站的环境。我们所做的外事网站的内容管理的内容也是属于这种类型。在实现过程中主要是对以下几点问题的解决:
(1)将文件分类。分类网页有助于网站信息的整理、分
4 结论
内容管理系统的使用,尽可能地降低了网站成本,方便管理员的使用,提高了的效率,可以使有限的建设费用可做更多的事情;同时在设计和使用时,可以充分使用面向对象
・20・计算机与信息技术 开发与应用
library/techarticles/0206roth/0206roth.shtml
2 MicrosoftContentManagementServer,http://www.mi2crosoft.com/china/cmserver/tour/sitemanagement/
3 http://lenya.apache.org/
4 赵骆,陈晓慧.基于内容管理的网站自动化生成系统
的技术,将网络服务作为对象考虑,从而更好的提高性能。另外,在系统设计时,系统未来的扩充与升级要考虑进去了,为以后网络的扩充和升级奠定良好的基础;另一方面要提供尽可能多的服务,以不断提高系统的应用价值。
参考文献
1 http://www-900.ibm.com/developerWorks/cn/dmdd/
的开发与实现.计算机科学,2005.vol.32
上接第17页
仿真计算程序完成了水下环境利用结构柔性实现柔顺运动过程的计算。仿真程序开发环境为VisualC++6.0,采用模块化设计方法,由参数读入模块、恒力计算模块、变力计算模块、力合成模块和M文件输出模块等5大模块组成。参数读入模块负责完成各模块的初始化,设置柔性机器人的尺寸、位置和速度等参数,完成对机器人初始状态的设置。恒力计算模块计算重力、浮力、变力计算模块计算驱动力、水的阻力和约束力,力合成模块计算机器人的受力状态。M文件输出模块根据以上模块的计算结果,输出标准的M文件。
3.2 仿真结果的可视化输出
Matlab由于其绘图功能强大,较之VC其语更为简洁明
图5 弹性杆连接柔性机器人运动轨迹
了,并且生成的图形可轻松实现多种功能,诸如图形添加文字说明、缩放、旋转、坐标轴标注、曲线说明等等,这些若由
VC来实现将极为复杂。因此,可视化输出部分在Matlab环
4 结论
通过仿真实现了柔性机器人在水下环境中主动柔顺运动,具有非常优越的运动学性能,对于开发新型机器人具有一些有益的借鉴意义。
系统等.
境下完成。
参考文献:
1 归彤,原培章,赵明扬等.仿象鼻并串联机构回避障
碍“钻洞”的研究[J].机械工程学报,1996,32(6):26230
2 YoramYekutieli,RoniSagiv2Zohar,RanitAharonovetal.ADynamicModeloftheOctopusArm.I.BiomechanicsoftheOcto2pusReachingMovement[J].Neurophysiol94:144321458,2005
3 路同浚,栗波,吴平川等.脊骨式机器人柔性臂机构
的研究[J].高技术通讯,1995,5,27230
4 潘孝勇,姜伟,杨继隆.VisualC++与Matlab的混
图3 柔性机器人初始状态在平面上的投影
合编程[J].计算机仿真,2004,21(3):1402143
5 李庆云,刘永红,杨毅.仿蚯蚓打孔机器人的仿真系
统[J].计算机工程,2001,27(5):13214
6 飞思科技产品研发中心.MATLAB7基础与提高[M].
北京:电子工业出版社,2005
图4 柔性机器人运动目标状态