(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf_第5页
已阅读5页,还剩87页未读 继续免费阅读

(计算机应用技术专业论文)基于jcr的web内容管理系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏大学硕士学位论文 摘要 传统方法建设门户网站的主要问题在于:需要专业技术人员,编 辑需要手工制作页面;改版不方便,需要修改所有页面;或者需要修 改程序,需要技术人员参与改版;网站速度慢,安全性、可靠性不高; 无法实现信息的统一发布管理。本课题的目标是设计开发一套基于 j c r 标准的w e b 内容管理系统( w e bc o n e n tm a n a g e m e n t ,w c m ) 。系统 需要拥有丰富的表现形式和强大的数据管理功能,使一般非专业技术 人员可以随时方便地实现信息的发布和维护而无须掌握复杂的技术。 本文研究了内容管理的内涵和国内外内容管理系统的发展状况, 参考y j c r 内容管理标准,实现了一个基于j 2 e e 架构的应用系统底层 架构。集成了s t r u t s 2 ,s p r i n g ,h i b e r n a t e 等优秀的开源组件分别实现 基于m v c 的表现层,轻量级业务中间件和对象关系映射。在此架构的 基础上,设计开发了一套完整的基于j c r 内容仓库的w e b 内容管理系 统。通过对j c r 的扩展,将w e b 内容管理中的各种w e b 元素模型和内容 对象做了高层的抽象和定义。前台门户实现了面向搜索引擎优化的 u r l 。系统还能够支持包括掌上设备在内的多重设备访问和r s s 聚合订 阅。在对外展示上,能够灵活的定制各种模板,方便的实现换肤功能。 系统还实现了基于r b a c 的角色关系控制,以及和其它系统的单点登 陆。系统的所有内容结点均可以通过生成静态页面的方式实现缓存, 这样系统就更具有伸缩性。最后在l u c e n e 基础之上设计了内容系统的 全文搜索引擎。 江苏大学硕士学位论文 目前该系统已经用于多个门户网站的建设,并且在多个电子政务 内网中作为办公系统运行。 关键词:内容管理系统,软件架构,w e b 内容管理,j a v a 内容仓库 j l 江苏大学硕士学位论文 a b s t r a c t t h ep r o b l e mo fu s i n gt r a d i t i o n a lw a yt ob u i l dp o r t a lw e b s i t ei st h a ti t n e e d st e c h n i c a lp e o p l e ,e d i t st h ec o n t e n tp a g eb yh a n d t h ee d i t i o n c h a n g ei sn o tc o n v e n i e n t ,n e e d st oc h a n g ea l lp a g e s p e r h a p sn e e d st o m o d i f yt h ea p p l i c a t i o n ,t h i sw i l li n v o l v e dt e c h n i c a lp e o p l et op a r t i c i p a t e i n t h ew e b s i t ep e r f o r m a n c ei ss l o w , t h es e c u r i t ya n dt h er e l i a b i l i t ya r e n o th i g h i ti su n a b l et or e a l i z et h eu n i f i e di n f o r m a t i o np u b l i c a t i o n m a n a g e m e n t t h i sg o a lo ft h i st h e s i si st od e v e l o paj c rs t a n d a r db a s e d w e bc o n t e n tm a n a g e m e n ts y s t e m ( w c m ) t h es y s t e mn e e d st oh a v et h e r i c hg u ia n dp o w e r f u ld a t am a n a g e m e n tf u n c t i o n ,e n a b l e st h eg e n e r a l n o n - p r o f e s s i o n a l sc o n v e n i e n t l yr e a l i z et h ei n f o r m a t i o np u b l i c a t i o na n d m a i n t e n a n c ew i t h o u tt og r a s pt h ec o m p l e x t e c h n o l o g y t h i st h e s i sh a ss t u d i e dt h ec o n n o t a t i o no fc o n t e n tm a n a g e m e n ta n dt h e d e v e l o p m e n tc o n d i t i o n o fd o m e s t i ca n df o r e i g nc o n t e n tm a n a g e m e n t s y s t e m ,w er e f e r r e dt ot h ej c r c o n t e n tm a n a g e m e n ts t a n d a r da n dr e a l i z e d nj 2 e eb a s e dw e ba p p l i c a t i o nf r a m e w o r k i n t e g r a t e ds t r u t s 2 ,s p r i n g , h i b e r n a t ea n ds oo no u t s t a n d i n go p e ns o u r c ep r o j e c tt o r e a l i z et h e m v c ,t h el i g h t w e i g h ts e r v i c em i d d l e w a r ea n dt h eo b j e c t r e l a t i o n s m a p p i n g b a s e do ni t , w ed e s i g n e da n dd e v e l o p e dac o m p l e t e l yj c r b a s e dw e bc o n t e n tm a n a g e m e n ts y s t e m t h r o u g hb ye x t e n d i n gt h ej c i 乙 w em a k eh i g h l e v e la b s t r a c ta n dd e f i n i t i o no fa l lk i n d so fw e be l e m e n t m o d e l sa n dc o n t e n to b j e c t s t h ef r o n tp o r t a lh a sr e a l i z e ds e a r c he n g i n e 1 1 1 江苏大学硕士学位论文 f r i e n d l yu r l t h es y s t e ma l s oc a ns u p p o r tm u l t i p l ee q u i p m e n ti n c l u d i n g t h ep a l ma n dr s ss y n d i c a t i o n i nt h ep o r t a l ,i tc a r lc u s t o ma n yt e m p l a t e s , f a c i l i t a t e ss k i n s w i t c hf u n c t i o n t h es y s t e mh a sa l s or e a l i z e dr b a cb a s e d a c c e s sp e r m i s s i o nc o n t r o l ,a sw e l la ss s o p l u g i nw i t ho t h e rs y s t e m a l l t h ec o n t e n tp a g ec a l lb eb u f f e r e dt os t a t i ch t m l p a g e ,m a k et h es y s t e m m o r es c a l a b l e f i n a l l yw ed e s i g n e daf u l l - t e x ts e a r c he n g i n eb a s e do nt h e l u c e n e a tp r e s e n tt h i ss y s t e mh a sa l r e a d yb e e nu s e dt ob u i l dp o r t a lw e b s i t e i t a l s o b eu s e da so as y s t e mi ne - g o v e r n m e n tn e t w o r k k e yw o r d s :c o n t e n tm a n a g e m e n ts y s t e m ,s o f t w a r ea r c h i t e c t u r e ,w e b c o n t e n tm a n a g e m e n t ,j a v ac o n t e n t r e p o s i t 0 9 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指 导下,独立进行研究工作所取得的成果。除文中己注明引用 的内容以外,本论文不包含任何其他个人或集体已经发表或 撰写过的作品成果。对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到本声明的 法律结果由本人承担。 学位论文作者签名:瓦蛾 日期:2 0 0 7 年6 月8 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文 的规定,同意学校保留并向国家有关部门或机构送交论文的 复印件和电子版,允许论文被查阅和借阅。本人授权江苏大 学可以将本学位论文的全部内容或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和 汇编本学位论文。 保密厂 ,在年解密后适用本授权书。 本学位论文属r 不保密团。 学位论文作者签名:虿时 2 0 0 7 年6 月8 日 指导教师签名:嘏嘶 2 0 0 7 年6 月8 日 江苏大学硕士学位论文 第一章绪论 1 1 内容管理系统研究状况 1 2 1 内容管理和内容管理系统概述 数据是各个应用系统最基本的存在形式,作为信息的载体,保存在文档或者 数据库中。而信息则是作为包含一定意义的数据而存在。“内容”,就是具有价值 的能够容易( 数字化) 、安全( 权限控制) 、快速( 元数据管理) 地进行共享和利 用的信息资产。进一步说,内容实质上就是任何类型的数字信息的统称,可以是 文本、图形图像、w e b 页面、业务文档、数据库表单、视频、声音文件等。应该 说,内容是一个比数据、文档和信息更广的概念,是对各种结构化数据、非结构 化文档、信息的聚合。 内容管理从字面上看包含了两个方面:内容与管理。管理就是施加在“内容” 对象上的一系列处理过程,包括收集、确认、批准、整理、定位、转换、分发、 更新、存档等,目的是为了使“内容”能够在正确的时间、以正确的形式传递到 正确的地点和人。真正的内容不是单一的、无任何关联的一些数据,而是经过整 理、加工甚至重构的具有利用价值的数字对象;由此可见,“内容管理”所需要 的功能是广泛的,其主要的目的就是将信息的价值提升到更高的层次,而不仅仅 是存储管理这么简单。 内容管理系统( c o n t e n tm a n a g e m e n ts y s t e m ,c m s ) 是企业信息化建设和电 子政务的新宠,也是一个相对较新的市场,对于内容管理,业界至今还没有一个 统一的定义,不同的研究机构有着不同的理解 1 3 : 内容管理可以定义为:协助组织和个人,借助信息技术,实现内容的创建、 储存、分享、应用、更新,并在企业个人、组织、业务、战略等诸方面产生价值 的过程。而内容管理系统就是能够支撑内容管理的一种工具或一套工具的组合和 平台。 根据不同的内容管理对象,基本可以将企事业单位的内容管理需求划分为三 类:针对门户网站的协作型内容管理、针对商业文档的协作型文档管理、针对 江苏大学硕士学位论文 w e b 应用程序的协作型程序管理: ( 1 ) 门户或者网站内容管理( w e bc o n t e n tm a n a g e m e n t ,w c m ) ,用户一般希 望能帮助实现在组织型的协作模式下,用户之间透明地相互使用可靠的内容,具 有权限控制功能,能与多种门户产品全面集成。 ( 2 ) 商业文档的管理( d o c u m e n tm a n a g e m e n t ,d m ) ,用户通常要求软件能使 用最少的i t 资源,帮助简化业务流程,节省文档的浏览、添加和搜索时间,节 省文档转化为p d f 的时问,帮助加快审批流程。 ( 3 ) w e b 应用程序管理,则要求能建立多组间的协作,降低开发成本,同时 还能提高控制代码和内容的质量和简化开发环境。 1 2 2 内容管理和内容管理系统的发展 1 2 2 1 内容管理早期发展概况 在电子发布阶段,知识仓库的概念第一次被引入到内容管理中,价格低廉且 具有图形显示器的图形工作站的出现,使用户界面的研究和应用出现了一个飞 跃。在1 9 8 2 年召开的a c ms i g g r a p h 在美国的西雅图“图形输入和交互技术”专 题讨论会,在会上首次提出了用户界面和应用程序相分离的基本思想。随着图形 界面的问世,一种新的所见即所得( w h a ty o us e ei sw h a ty o ug e t ,吖s i w y g ) 用户界面风格开始出现。 1 9 8 5 年,f i l e n e t 公司发布了名为w o r k f l o 的软件系统,该系统主要针对基 于纸张的业务流程自动化,这也是工作流第一次被引入到内容管理中 2 。工作 流是针对日常工作中活动而提出的一个概念,其目的是通过将工作分解成不同的 任务,然后通过一定的规则和过程来执行这些任务并对他们进行监督,达到提高 办事效率、降低成本的目标。应用于内容管理中,则是指文章或者页面在不同用 户之间流转的一个过程。经常被用于对薪的或者修改后的文章执行审核或者发布 控制。在工作流执行过程中,工作流监控系统在执行操作的同时对操作对象和用 户发送信息。例如,新的文章被提交后,相应的编辑会接受到该文章处于待审阅 列表的消息。 2 江苏大学硕士学位论文 1 2 - 2 2 当前国内外内容管理软件概述 内容管理软件市场作为一个新兴市场,在市场上起主导地位的,大部分是新 公司新产品,也包含一些进入较早的国际大公司如i n t e r w o v e n 、b r o a d v i s i o n 、 v i g n e t t e 和d o c u m e n t u m 等 1 6 。 1 p r i s m 网站内容管理系统是由c n e t 在1 9 9 5 年首先引入的并且取得专利,c n e t 是一个互联网新闻发布公司发布了第一套网站发布系统p r i s m 3 。作为互联网 上第一家大容量发布者,翻e t 面临了一些非常严重的新的产品挑战。网站发布 是一个非常复杂的过程。首先作者必须提交一种以直观的工具编辑的文章。然后 编辑需要评阅文章并做出相应的修改,有可能退回给作者修改。下一步,轮到版 本编辑对文章进行版本校对。不同版本的文档可以在作者,编辑,校对之间来回 流转。一旦内容最终确定之后,内容将更具需要以网站显示的布局格式存放。编 辑可能决定是否增加相关链接。有些人需要决定文章将放在网站的什么地方。一 切都完成之后,文章最终被提交到发布的网站上,供用户使用。 2 v i g n e t t e 目前许多专家都认定术语“内容管理”是由v i g n e t t e 在1 9 9 6 年发布的 s t o r y s e r v e r 和s t o r y b u i l d e r 两套软件而最早引入的。根据f r a n kg i l b a n e 的 文章和g i i b a n e 1 的报告,“v i g n e t t e 对内容管理这个术语与网站内容管理系 统相关联负有很大的责任,这一点上是很少值得争议的。v i g n e t t e 内容管理为 网络应用提供创建、管理和发布内容的支持。v i g n e t t e 在企业网络应用中处于 领先的地位。v i g n e t t ev 7 的最大优点在于它对开发标准的支持、开箱即用的功 能和通过通用界面来管理不同格式、不同存储位置的内容。 3 d o c u m e n t u m 在1 9 9 6 年l o 月,d o c u m e n t u m 发布了名为“r i g h t s i t e ”的行业网站内容 管理系统。d o c u m e n t u m 是市场上第一家利用标准关系型数据库技术以及面向对 象方法提供企业级文档管理解决方案的公司。d o c u m e n t u m 是第一家,也是唯一 一家能够以一个集成平台方式提供完整企业内容管理解决方案的公司。该平台包 括了一流的文档管理、网络内容管理以及数字资产管理技术。 4 i n t e r w o v e n 江苏大学硕士学位论文 i n t e r w o v e n 是世界领先的企业内容管理软件提供商。i n t e r w o v e n6 是向所 有企业现有的数据资源“开放”的内容管理平台,它能够“动态”地同时处理编 码和内容,“灵活”地智能浓缩来源于元数据的内容,“迅捷”地利用其特有的专 利技术和基于标准的组件。 i 2 2 3 国内内容管理软件概述 国内的情况在w c m 方面并不明朗,根据目前掌握的资料,市场上主要是由 以前的内容检索服务商为主,纷纷推出了各自的w c m 产品,并且延续了一定的 客户和市场份额。t r s 1 7 和t u r b o c m s 1 8 是目前国内影响力较大的两个内容管 理产品。 lt r s t r s 是由北京拓尔思信息技术有限公司开发的内容管理产品,该公司是国内 首家也是最大的内管理产商。t r s 内容管理产品体系分为三个层次:核心技术、 支持平台和行业应用,覆盖了e c m 基础设施架构到特定业务应用各个层面。t r s w c m 内容协作平台,包含内容创建、内容交付、基于模板的跨媒体内容发布及多 站点管理于一体,并提供企业级团队沟通协作和工作流管理。利用t r s w c m 可以 轻松创建企业内部站点、外部资源门户、企业信息管理平台、企业工作协作平台 等应用; 2t u r b o c m s t u r b o c m s 是由北京泰得方舟科技中心开发的,其客户包括索尼( 中国) 索 尼探梦网站、联想公司网站2 0 0 3 新版、央视国际c c t v c o m 等。t u r b o c m s 包 含内容采编模块、文件管理模块、模板管理模块、网站管理模块、用户管理模块 和网站发布模块。该产品使用基于角色的用户管理,提供对多种用户角色的管理, 用户可以自定义角色。在内容管理创作上提供了w y s i w y g 编辑界面,支持多格 式文字编辑功能,还支持对d r e a n w e a v e r 和f r o n t p a g e 整合,提供模板制作功 能。 江苏大学硕士学位论文 1 2内容管理相关知识概述 l ,2 1 内容管理总体流程 一个完整的内容管理包含以下阶段:获取、整合、校验、识别、转换、分类、 链接、访问、发布和更新。在实际中更多采用简化的d a d ( d e v e l o p ,a s s e m b l e , d e l i v e r y ) 4 模型,分为获取、存储和发布三个阶段。 内容获取是根据业务需要将内容从概念转换为实际的内容的过程。内容获取 可以分为外部内容收集和内容创建两个方面。通过提供相关工具如信息抓取引擎 可以将外部的内容进行转换。内容的构建则需要提供专门的可视化编辑工具,在 网站内容管理中体现为所见即所得的编辑器。内容的创建由内容创建人员负责, 在整个创建过程中他们并不关心如何能够内容拆分成内容组件进行存放,具体的 工作由内容获取提供的拆分工具完成。通常这个过程中为内容创作人员提供创作 模板,通过使用模板来创建内容使得内容可以自动地被拆分为内容组件提交给内 容管理系统。出于不同的业务需求,需要将现有的简单内容进行组装形成更为复 杂的内容,例如一篇文章需要包含文章内容本身,同时需要作者、编辑审核人员 和出版校对人员等信息。从外部获取得到的内容需要经过转换才能成为符合要求 的内容,内容转换中一个很重要的问题就是如何识别从网上传进来的内容的结 构,目前一个较好的方法是采用基于x m l 格式的内容交换方式。 内容存储由系统自动执行,负责内容和元数据的存储,并为内容的访问和处 理提供相应的支持,如内容元数据检索等。内容通常采用关系数据库来存储,也 可以是对象数据库,l d a p 数据库或是文件系统。无论采用何种形式的存储都需 要支持对内容元数据、内容组件、文本信息、二进制元素的存储。与数据库类似, 内容管理需要支持对内容的查询、更新和删除等操作。然而因为内容本身构成的 复杂性,其查询机制相对要复杂的多。因为内容管理的对象大多为非结构化或是 半结构化数据,要实现基于语义的统一查询是非常困难的事情,这也是需要解决 的一个重要问题。在对内容的管理中大多属于事务性处理( 对多个元数据进行操 作) ,因而需要提供基于事务的处理机制。在网站内容管理系统中,大量的内容 通过动态组装生成,对应的内容都是动态地从内容仓库中获取,因此需要采用缓 存机制来加速内容的动态获取。 江苏大学硕士学位论文 内容发布阶段完成将内容从计算机处理的形式到适合于人们阅读的形式的 转换。发布的形式多种多样,包含h t m l 网页、p d f 文档、o f f i c e 文档和w m l 格 式等等。内容本身与发布的形式相分离,即相同的内容可以以不同的形式发布到 不同的媒介上而不改变内容本身的含义。一种较好的方式是采用x m l 格式来描 述内容的发布形式,在同一个x m l 文件中定义不同的发布格式,在发布过程中 根据发布媒介选择对应的发布格式。内容发布过程中采用模板来保证统一的发布 格式,同时使用相同的样式描述语言( 如x s l t ) 来控制模板中内容的排版布局, 使得发布过程可以自动的进行,降低了内容发布的复杂性。内容生成后还需要将 内容部署到最终的存储媒介上,如网页需要传送到服务器上,为了提高内容的访 问速度还需要支持跨网络边界的发布,即将内容发布到与内容浏览者地理位置较 近的服务器上 1 9 。 在发布结束后,还需要对已经发布内容的进行维护和修改,如内容失效、内 容删除、链接的校验等。在网站应用中经常需要对已发布的页面作调整,比如界 面风格,需要反馈到前面的内容构建中。 内容管理的整体流程如图i - i 所示: 1 2 2 内容管理核心概念 图卜1 内容管理流程 内容管理的核心概念有以下几个:内容构件,内容模板,工作流。 在发布过程中,大多数发布人员( 期刊发行者、网站管理人员等) 习惯于直 接发布的方式。在确定出版物的布局之后,他们采用手工方式将内容装到出版物 上,这样的好处是可以不断地调整布局直到满足要求为止。在内容管理系统中, 发布人员并不创建最终的页面,而是通过创建模板来创建最终的发布页面。 6 江苏大学硕士学位论文 内容模板是一个结构化页面的框架,通常是组合文档或者页面组织框架。在 模板中包含多个分块,或是h t m l 和x m l 中的多个d i v 块。由于一个小块可以 使用内容模板,如此下去可以无限的循环嵌套,这样的小块有时也被称为 p o r t l e t 。p o r t l e t 可以是门户中一些块中的任何元素,它是由a p p l e t s 和 s e r v l e t s 类推而来的。p o r t l e t 可以是h t m l 片段、j a v a s c r i p t 脚本、煳l 、 r d f 、图片或者f l a s h 动画。基于p o r t l e t 和片段来构建模板的最大目的是为 了提高元素的复用性和降低模板创建的工作量。模板中内容元素的识别通过可以 唯一确定的标签来实现,所有的内容管理系统都有各自独特的标签库。通过使用 标签内容可以自动地与模板相匹配从而生成最终页面。 为了易于对内容进行管理和重构,基于“分割”的思想将内容切分为更小单 位的元素。构件是内容管理中的最小单位,内容的创建、删除和维护等操作都是 以构件为基础的。所有的构件都有一些共同的属性,如大小、名称、格式等等。 但是每一个构件都是独立的,即不局限于某一特定的上下文环境。正确的构件划 分可以带来高效的内容复用,但并不代表内容构件的划分是任意的。正如软件构 件的划分,内容构件的划分也必须依照一定的原则来进行,诸如高聚合、松耦合 等等,而且这种划分通常是与内容管理的具体应用领域相关的。 内容管理的生命周期从内容的设计开始,然后是内容创作、审批、转换、存 储、测试,直到部署,部署完成后还涉及内容的维护、监控和更新升级,直到最 后内容失效,这是内容生命周期才算结束。工作流的引入就是解决内容整个生命 周期的流程的自动化处理 2 。最简单的工作流可以只包含两个活动初始和结束, 中间不需要审批和核准,将创建好的内容直接发布,通过工作实例中的失效时间 来确定内容是否有效。复杂的工作流涉及到多级审批过程,这一点尤其体现在对 合同等重要内容的处理之上。为了支持工作流,一般c w s 系统都提供消息传递 机制来自动通知用户有关任务和内容状态信息,基于e m a i l 的消息传递最为常 见。 江苏大学硕士学位论文 1 3j a v a 内容管理标准 1 3 1j c r 标准概述 目前内容管理系统在技术上形成了分立局面,很多供应商都提供专有的仓库 引擎。这些困难加剧了此类系统的复杂性和不可维护性,促进了供应商封闭,并 增加了企业市场中长期遗留支持的需要。随着企业对内容和文档管理的日益普 及,对标准的内容仓库接口的需求到达了前所未有的紧追程度。f 3 l 】 c o n t e n tr e p o s i t o r yf o rj a v at e c h n o l o g y 规范由j a v ac o m m u n i t yp r o c e s s 开 发为j s r - 1 7 0 2 0 ,目的就是满足这些行业需求。该规范在j a v a x j c f 名称空问下 提供一个统一的a p i ,允许人们以供应商中立的方式访闯任何规范兼容的仓库 实现。 但是a p i 标准并不是j a v ac o n t e n tr e p o s i t o r y ( j c r ) 提供的惟一特性。 j s r - 1 7 0 的一个主要优点是,它不绑定到任何特定的底层架构。例如图i 2 所示。 j s r - 1 7 0 实现的后端数据存储可以是文件系统、关系数据库、支持x m l 的系 统,甚至还可以是s q l 数据库。此外,j s r - 1 7 0 的导出和导入功能允许一个集 成器在内容后端与j c r 实现之间无缝地切换。j c r 提供一个直观的界面,可以 出现在各种现有内容仓库上面,同时同步地标准化诸如版本控制、访问控制和搜 索之类的复杂功能。 图1 2j c r 的作用 8 江苏大学硕士学位论文 j c r 的核心就是r e p o s i t o r y 模型。r e p o s i t o r y 模型是一个简单的层次结构, 看起来很像一棵n 层的树。它包含单个内容仓库和一个或多个工作区 ( w o r k s p a c e ) 。每个工作区包含一棵条目( i t e m ) 树:条目可以是节点( n o d e ) 或者 属性( p r o p e r t y ) ,如图l - 3 所示。节点可以具有零个或多个子节点,以及零个或 多个相关的属性,实际内容就存储在这些属性中。 9 图1 - 3j c r 节点、属性的u m l 图 每个节点有且只有一个主节点类型( p r i m a r yn o d et y p e ) 。主节点类型定义节 点的特征,比如允许节点具有的属性和子节点。除了主节点类型之外,节点还可 能具有一个或多个m i x i n 类型。m i x i n 类型很像修饰器( d e c o r a t o r ) ,为节点提 供额外的特征。具体来说,j c r 实现可以提供三种预定义的m i x i n 类型: m i x :v e r s i o n a b l e ,它允许节点支持版本控制。 m i x :l o c k a b l e ,它为节点启用锁定功能。 m i x :r e f e r e n c e a b l e ,它提供一个自动创建的j e r :u u i d 属性,该属性给予节点 一个惟一的、可引用的标识符。 图1 - 4 中阐释了这一结构。圆圈代表节点,矩形代表属性。节点a 、b 和 c 起源于单个根节点。节点a 有两个属性:一个字符串“j o h n ”和一个整数2 2 。 江苏大学硕士学位论文 i 鼍” o 图1 - 4j c r 一个具有多个工作区的r e p o s i t o r y 模型 下面是j c r 预定义的节点类型: 每个仓库都必须支持主节点类型n t :b a s e 。还有很多仓库可以支持的其他公 共节点类型: n t :u n s t r u c t u r e d 是最灵活的节点类型。它允许任意数量的子节点或属性,而 这些子节点和属性又可以具有任意的名称。该节点类型将用于表示j c r w i k i 项。 n t :f i l e 用于表示文件。它需要单个子节点,叫做j e r :c o n t e n t 。该节点类型将 用于表示图像和应用中的其他二进制内容。 n t :f o l d e r 节点类型可用于表示文件夹,比如常规文件系统中的文件夹。 n t :r e s o u r c e 通常用于表示文件的实际内容。 n t :v e r s i o n 支持版本控制的仓库所必需的节点类型。 在j s r - 1 7 0 规范的第6 7 2 2 1 节中可以找到整个节点类型层次结构。 r e p o s i t o r y 模型的一个有用却常被忽视的特性是它对名称空间( n a m e s p a c e ) 的支持。名称空间防止来自不同来源和应用领域的条目及节点类型之间出现命名 冲突。名称空间利用一个前缀进行定义,并由一个:( 冒号) 字符分隔。 1 3 2j c r 参考实现 目前基于实现j c r 接口的开源产品主要有a p a c h ej a c k r a b b i t 1 l 】,e x o p l a t f o r m 1 3 和m a g n o l i a 1 2 。 a p a c h ej a c k r a b b i t 是由a p a c h ef o u n d a t i o n 提供的j s r - 1 7 0 的开放源码 1 0 江苏大学硕士学位论文 实现。该项目是由d a ys o f i w a r e 启动的,d a ys o f t w a r e 是j s r - 1 7 0 标准的发起人 之一。现在该项目的代码是j c r 接口的官方参考实现,并且为其它j c r 实现提 供了兼容性测试工具( t e c h n o l o g yc o m p a t i b i l i t yk i t ,t c k ) 在第三章中,我们将详细描述使用j a c k r a b b i t 在构建系统内容仓库中的配 置和使用方法。 1 4 问题的研究意义 传统方法建设门户网站的主要问题在于:需要专业技术人员,编辑需要手工 制作页面;改版不方便,需要修改所有页面;或者需要修改程序,需要技术人员 参与改版;网站速度馒,安全性、可靠性不高;无法实现视音频信息的统一发布 管理。 本课题的目标是设计开发套基于j c r 标准的w e b 内容管理系统( w e bc o n t e n t m a n a g e m e n t ,w c m ) 。系统需要拥有丰富的表现形式和强大的数据管理功能,使一 般非专业技术人员可以随时方便地实现信息的发布和维护而无须掌握复杂的技 术。 该系统可以作为专业的门户网站内容管理及信息发布工具。通过模板迸行信 息发布,不需要大量专业人员的投入,一次投入,多年使用,可以随时更新网站 内容和网站风格( 替换模板即可) ,可以开展多种复杂灵活专业的应用。 利用本系统构建门户网站建设具有以下突出优势: 减少专业技术人员投入,提高网站信息发布效率; 网站建设简单快捷、网页表现形式丰富多彩,对技术人员的依赖将大大 减少: 网站模板与数据呈现分离,网站数据安全、改版容易; 具备强大的编辑、审核、发布、访问等权限管理,管理容易、使用安全: 底层数据库统一构建,有效实现信息安全存储、有效分类、数据信息资 源共享: 强大的分级权限管理,各分支部门可即时进行网站内容的更新维护,无 江苏大学硕士学位论文 须专人操作; 可视化模板编辑,真正实现网站页面设计的所见即所得; 1 5 本文结构 前面描述了当前内容管理系统研究的现状以及对存在的问题作了简单的介 绍。接下来介绍了j a v a 内容管理标准j c r 及其参考实现。并指出了本课题的研 究意义。 本文第二章对一些流行的开源应用框架进行了集成,设计了一个基于j 2 e e 的系统底层架构。第三章设计了内容管理系统的总体架构,内容模型,以及对 j c r 结点进行了扩充。第四章设计和实现了系统的前台w e b 导航结构,模板引擎, 内容发布流程以及角色控制等安全策略。第五章在l u c e n e 的基础上实现了内容 管理系统中重要的全文搜索引擎。第六章介绍系统的实现案例。最后文章将对系 统设计与实现以及应用过程中碰到的问题作总结。 江苏大学硕士学位论文 第二章系统底层架构设计与实现 2 1 多层应用架构的设计 分层设计的概念不是最近才出现的,早在网络体系的设计中就采用了分层的 思想,如i s o 模型。j 2 e e 应用程序设计中采用类似策略,例如在解决不同数据 库的访问问题上,数据源( 如o r a c l e 或者s y b a s e ) 可以互相切换而不需要影 响和改动其他层。即应用程序如何读取数据和业务逻辑流程的处理相分离,互不 干扰。从本质上来看,分层的方法降低了技术更新所带来的风险。如果应用分层 的方法将系统的部署机制( 如s e r v l e t s ,j a v ab e a n s ) 独立出来,一旦改变新 的部署机制对业务逻辑和数据访问的毫无影响。如果能将业务逻辑和数据访问从 应用程序中独立出来,那么增加新的w e b 服务部署不影响整个应用程序。图2 - 1 显示了一个多层的j 2 e e 应用架构。 客户赫w 由层 中间业务层 数据库系统层 图2 一lj 2 e e 分层模型 在系统设计时,我们对三层架构进行进一步的细化,以达到一种层间松散耦 合的效果,同时能与标准的数据访问技术集成,提高系统灵活性、复用性和可维 护性,从而简化了w e b 应用程序的开发。通过这种设计模型把应用逻辑、处理过 程和显示逻辑分成不同的组件实现。软件体系结构如图2 2 所示: 江苏大学硕士学位论文 图2 2 软件体系结构图 w e b 展示层 展示层是应用程序中负责最终用户通过用户界面在物理上所看到一切事物。 j 2 e e 的部署程序支持h t m l j a v a s c i p t 接口和a p p l e t 接口。大多数应用程序使 用h t m l ,j 2 e e 应用程序通过s e r v l e t s 和j s p 对静态页面和动态生成的内容进行 绑定生成。越来越多的产商采用m v c 模式来控制展示层逻辑。m v c 是 m o d e l v i e w - c o n t r o l l e r 的简写。“m o d e l ”代表的是应用的业务逻辑,“v i e w ” 是应用的表示层( 由模板页面产生) ,“c o n t r o l l e r ”,也就是上图中的a c t i o n 是提供应用的处理过程控制。 中间业务逻辑层 业务逻辑层的对象( s e r v i c e ) 将数据与业务规则、限制和活动结合在一起, 业务对象应当与数据访问层、值对象层和部署层分离以提高类的可复用性。业务 对象通常被用于对不同数据访问对象的活动的整合。在业务逻辑中通常包含由部 署层所提供一些资源如数据库连接,以允许业务逻辑对象的重新部署和发布。对 于在应用程序中被非j a v a 的程序调用的情况,通常采用w e b 服务的方式来部 署。当出现可能会在h t m l 或j s p 页面上使用业务对象的时候,业务对象最好 通过部署包来应用而不是直接使用 江苏大学硕士学位论文 领域模型层 每个应用程序都有自己的数据项,这些数据项之间大多存在着关联或者所属 关系。将这类数据项对象作为独立的主要考虑编程的方便性和性能改进。这类对 象通常作为领域对象( d o m a i no b j e c t ) ,例如,在报告的记录中会涉及许多相关 的信息,那么在编程中可以把这些相关信息封装到领域模型里面来代替在不同的 接口之间传递各项独立的参数。一般一个值对象有可以被访问和修改填充,这类 对象都要实现j a v a i o s e r i a l i z a b l e 接口,以便可以传输到远程的客户端。 数据访问对象层 数据库访问对象负责对某些类型的持久性数据,通常是关系数据库,也可能 是文件、x l l l 文档或是其他类型的持久性数据。该层的主要目的就是将数据访问 同应用程序的其他部分相分离,使得数据源的切换和在应用程序之间共享数据访 问对象来得更为容易。大中型的组织一般都在多个应用系统中使用相同的数据访 问逻辑。在代码的控制上,一般将数据访问对象从包的层次上加以区分。一般采 用简单模式的数据访问,在简单模式中根据不同的存储对象建立不同的访问对 象。在支持多数据源的情形下,数据访问对象的模式采用基于工厂模式,在这种 模式中建立d a o 作为接口对象,然后根据不同类型的数据库实现d a o 接口。 下面我们将选用一些优秀的开源应用开发框架来分别实现上述架构中的各 个层。 2 2 使用开源应用程序开发框架 2 2 1 对象关系映射组件 面向对象的软件和关系数据库一起使用是一个相当麻烦的工作。解决这个 问题的办法就是使用对象,关系映射工具来简化数据库访问的琐碎操作。对象关 系数据库映射( o b j e c t r e l a t i o n a lm a p p i n g ( o r m ) ) 这个术语表示一种技术,用来把对 象模型表示的对象映射到基于s q l 的关系模型数据结构中去。 2 6 】 本系统中我们选用h i b e r n a t e 作为对象关系映射的框架。h i b e r n a t e 是一个面 向j a v a 环境的对象关系数据库映射工具。它通过x m l 配黄文件将对象和数据 库表间建立映射。 江苏大学硕士学位论文 h i b e r n a t e 不仅仅管理j a v a 类到数据库表的映射( 包括j a v a 数据类型到s q l 数据类型的映射) ,还提供数据查询和获取数据的方法,可以大幅度减少开发时 人工使用s q l 和j d b c 处理数据的时间。 h i b e r n a t e 的目标是简化开发者通常的数据持久化相关的编程任务。对于以 数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑, 此时h i b e r n a t e 可能不是最好的解决方案;对于那些基于j a v a 的中间层应用中, 它们实现面向对象的业务模型和商业逻辑的应用,h i b e r n a t e 是最有用的。 2 2 2 轻量级业务中间件 s p r i n g 提供了一种轻量级的解决方案,用于建立“快装式企业应用”。在此 基础上,s p r i n g 还提供了包括声明式事务管理,r m i 或w e bs e r v i c e 远程访问业 务逻辑,以及可以多种方法进行的持久化数据库的解决方案。另外,s p r i n g 还有 一个全功能m v c 框架,并能透明的把a o p ( a s p e c to r i e n t e dp r o g r a m m i n g ,面 向方面编程) 集成到软件中去。f 2 7 1 面向方面编程( a o p ) 提供从另个角度来考虑程序结构以完善面向对象 编程( o o p ) 。面向对象将应用程序分解成各个层次的对象,面a o p 将程序分 解成各个“方面”或者说“关注点”。这馒得可以模块化诸如事务管理等这些横 切多个对象的关注点。 可以把s p r i n g 看做一个标准开发组件,根据自己的需要,只取用它的部分 组件使用而无需涉及其它。例如,可以利用控制反转容器在前台的展现层使用 s t r u t s ,还可以只使用h i b e r n a t e 集成编码或者j d b c 抽象层去处理数据存储。 s p r i n g 被设计成( 并将持续保持) 无侵入性的方式,意味着应用几乎不需要对框 架进行依赖( 或根据实际使用的范围,将依赖做到最小) 。 s p r i n g 框架包含许多特性,并被很好地组织在图2 - 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论