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

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

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

文档简介

哈尔滨工程大学硕士学位论文 摘要 内容管理是当前信息技术应用领域中热门的研究方向,但是内容管理应 用的供应厂商对市场的认知各有不同,所开发的产品都是建立在私有仓库引 擎基础之上。这种情况不但增加了系统的复杂性,还给系统的扩展和长期维 护增加了难度。随着内容管理应用程序的应用不断增多,对于公共的、标准 的内容仓库a p i 的需求也变得日益强烈。 本课题的目标是通过对j c r 的研究,将j c r 应用于第2 4 届世界大学生 冬季运动会的内容管理系统当中,以满足大冬会组委会筹备阶段对大量信息 的处理和共享的迫切要求,保证大冬会的顺利进行。 本论文考察整理了国内外内容管理系统的发展状况,经过对j c r 相关概 念和核心技术的深入研究,对大冬会组委会在筹备阶段的实际情况和所面临 的困难进行了调研与分析,并设计、实现了一个融合s t r u t s 2 、s p r i n 9 2 0 等优 秀开源组件的j a v ae e 架构的轻量级应用系统。通过将j n d i 对j c r 的扩展 以及j c r 与s p r i n 9 2 0 的无缝整合,使得j c r 的思想与技术充分体现和应用 在大冬会赛会信息平台当中。并创造性的扩展实现了符合大冬会实际业务逻 辑的j c r 节点类型,同时在j c r 实现的l u e e n e 搜索引擎的基础上增加了对 存储在p d f 等特殊文件格式内容的搜索。 伴随着第2 4 届世界大学生冬季运动会的胜利闭幕,由笔者设计开发的基 于j c r 的大冬会赛会信息平台显示出良好的运行效果。 关键词:c m s ( 内容管理系统) ;内容仓库;j c r ;j n d i 技术; 哈尔滨工程大学硕士学位论文 a b s t r a c t c o n t e n tm a n a g e m e n ti st h eh o tr e s e a r c hi s s u ei nc u r r e n ti n f o r m a t i o n t e c h n o l o g ya p p l i c a t i o nf i e l d b e c a u s eo fd i f f e r e n tv e n d o r sh o l d i n gd i f f e r e n t a c k n o w l e d g eo ft h em a r k e t ,t h ep r o d u c t sd e v e l o p e db yt h e ma r ea l lo nt h eb a s i so f p r o p r i e t a r yr e p o s i t o r ye n g i n e s t h e s ed i f f i c u l t i e se x a c e r b a t et h ec o m p l e x i t ya n d m a i n t a i n a b i l i t yo fs u c hs y s t e m s ,p r o m o t ev e n d o rl o c k i n , a n di n c r e a s et h en e e d f o r l o n 9 4 e r ml e g a c ys u p p o r t i nt h e e n t e r p r i s e m a r k e t w i t ht h e g r o w i n g p o p u l a r i t y o fc o n t e n t m a n a g e m e n ta p p l i c a t i o n s ,t h e n e e df o rac o m m o n , s t a n d a r d i z e da p if o rc o n t e n tr e p o s i t o r i e sh a sb e c o m ea p p a r e n t t h et a r g e to ft h i st h e s i si sr e s e a r c ho nj c r ( c o n t e n tr e p o s i t o r yf o rj a v a ) , t h e n u t i l i z ej c ri n t o 也e2 4 mh a r b i nw i n t e ru 1 1 i v e r s i a d ei n f om a n a g e m e n t p l a t f o r m ,t os a t i s f yt h en e e do fo r g a n i z i n gc o m m i t t e ef o rh a r b i n2 4 恤w i n t e r u n i v e r s i a d ed u r i n gt h ep r e p a r a t i o n sa n dc o m p e t i t i o nt i m e t i l i st h e s i sh a sa r r a n g e dt h ed e v e l o p m e n tc o n d i t i o no ff o r e i g na n dd o m e s t i c c o n t e n tm a n a g e m e n ts y s t e m s ,a n ds t u d i e dt h ec o n n o t a t i o na n dc o r et e c h n o l o g y d e e p l y t h r o u g ha n a l y z i n gt h ea c t u a l c o n d i t i o na n dd i f f i c u l t i e so fo r g a n i z i n g c o m m i t t e ef o rh a r b i n2 4 mw i n t e ru n i v e r s i a d e w eh a v ed e s i g n e da n dr e a l i z e da j a v ae eb a s e dp l a t f o r ma n di n t e g r a t e dl i g h tw e i g h t e df i a r n e w o r ks u c ha ss t r u t s 2 a n ds p r i n e 2 0w h i c ha r eo p e ns o u r c e d c o m p l e t e l ya p p l yj c ri n t ot h ep l a t f o r m , i n t e g r a t i n gj c ra n ds p r i n 9 2 0 ,a n do b t a i nar e p o s i t o r yo b j e c t 谢t hj n d i d e s i g n a n dr e f e rs y s t e me l e m e n tn o d em o d e l sw h i c ha r ef i t t i n gw i t l lt h ep l a t f o r m 、析t h s e l f i nt h es a m et i m e ,w eh a v eu s e dl u c e n et oe n h a n c et h es e a r c hf u n c t i o no f j c s ot h a tt h eu s e rc a ns e a r c ht h ek e yw o r d sw h i c ha r es t o r e di np d fa n ds o m e o t h e rf i l ef o r m a t s k e y w o r d s :c m s ( c o n t e n tm a n a g e m e n ts y s t e m ) ;c o n t e n tr e p o s i t o r y ;j c r ; j n d i ; 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用己在 文中指出,并与参考文献相对应。除文中已注明引用的内容外, 本论文不包含任何其他个人或集体已经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) :邈哼彳 日期: 应卅斫年弓月l 乒日 。 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可口在授予学位1 2 个月后口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 i , 作者( 签字) :像访彳导师( 签字) :翮瀚 。 日期:j 川鹎月l 怕口丫年孑月l 今日 i 哈尔滨工程大学硕士学位论文 第1 章绪论 1 1 内容管理系统的研究背景 互联网的迅速发展与普及,使得各领域的文档工作向电子化、网络化的 方向发展,管理工作的重点也由文件实体转变为文件的信息内容。2 0 0 7 年i d c ( 美国国际数据公司) 进行了一项题为数字宇宙膨胀:到2 0 1 0 年全球信息 增长预测【l 】的研究。研究结果称,2 0 0 6 年全球产生的数字化信息总量达1 6 1 0 亿吉比特,其中原创信息为4 0 0 亿吉比特。而到2 0 1 0 年,全球产生的数字化 信息总量有望达到9 8 8 0 亿吉比特。数字化信息不但数据总量在不断增大,其 表现形式也随着互联网承载能力的增强由原先的各类电子文档,图片等小规 模信息发展成为音频,视频记录等大规模电子文件。与此相反,以“萨班斯 法案 为代表的法规对企业的信息留存、文档管理却提出了很高的要求。内 容管理随之被提上日程,成为继信息资源管理、知识管理之后的又一热点。 内容管理的学术定义和技术标准,产业界不断地开展讨论并形成了多种 说法。内容管理领域的先驱者、美国著名学者b o bb o i k o 在“c o n t e n t m a n a g e m e n tc o n c e p t s l 2 1 刀一文中提出的“内容管理是指在目标出版物 ( i n t a r g e t e dp u b l i c a t i o n s ) 中有效地收集、管理和形成可利用的信息。内容管 理的两大要点p 】是第一在收集方面包括信息的创建和获取,并将信息转换为 一个主要格式( 如x m l ) 和分割成被称之为内容元件( c o n t e n tc o m p o n e n t s ) 的离散的数据块,元件是指元数据容器,其作用是为了使内容能够便捷的组 织、存储和检索信息。第二,内容被放置于一个由数据库记录和包含内容元 件的文件组成的存储环境中进行相应的管理,然后使内容变得可利用。 内容管理系统( c o n t e n tm a n a g e m e n ts y s t e m ,简称c m s ) 是企业信息化 建设和电子政务的新宠,也是一个相对较新的市场。对于内容管理系统,虽 然没有一个严格的定义,但从其功能层面上来描述,内容管理系统是能够支 撑内容管理的工具组合,主要包括收集系统、管理系统、发布系统和工作流 系统【4 l 。 w e b 内容管理系统是随着互联网,企业网等迅速发展后的产物,是内容 哈尔滨工程大学硕士学位论文 管理应用的一个分支。在b s 应用日益普及之后,其专注点从早期的侧重于 格式模板和布局的设计到如今企事业局域网内的各种办公电子资源的一体化 整合,从单一的电子文件,电子报表的统计到各种多媒体文件的汇总管理, 可以说w e b 内容管理系统所涉及的范围越来越广。 1 2 内容管理系统的发展及现状 1 2 1 内容管理系统的发展概况 内容管理系统最初起源于许多i c p 公司内部,用于管理他们的复杂的数 据内容,当时的内容管理系统只是针对一个平台、一台p c 上的信息管理。 伴随着信息产业的不断发展,内容管理系统融合了许多先进技术,形成了一 个综合的应用领域。应用范围主要表现在面向内容的网站建设与管理,针对 诸如信息检索系统、数字图书馆等特定应用的专用内容管理,以及注重非结 构化信息平台的开发和建设的通用内容管理。如今的内容管理系统在政府机 关、金融行业、保险行业、教育行业、媒体行业等重要领域都发挥着重要的 作用。 1 2 2 国外内容管理系统概述 国外内容管理系统处于领先地位的主要是美国,以及少数的西欧国家, 并且大规模的企业级付费软件系统与灵活易于扩展的开源软件都很活跃。国 外从事内容管理系统研发的主要厂商包括m a m b o 、v i g n e t t e 、i n t e r w o v e n 、 b r o a d v i s i o n 、o p e n m a r k e t 、a t g 、a l i a i r e 、h u m m i n g b i r d 等,这些公司c m 产品和解决方案大多基于j a v ae e 、p h p 等平台,功能丰富,专业性很强, 主要面向企业级用户。在开源领域中,内容管理系统的竞争十分激烈,从最 早的p h p n u k e 、x o o p s ,到现在的d r u p a l 、m a m b o ,开源w e b 内容管理系 统越来越多。2 0 0 6 以前,开源w e b 内容管理系统中从技术领域上讲,处于 领先地位的主要是p h p 领域的应用,如d r u p a l 、j o o m l a 、x o o p s 等。而近来 随着基于j s r 1 7 0 t 5 1 标准应用的增加,以及j s r 2 8 3 t 6 1 草案的发布,j a v a 社区 中,以j a v ae e 技术架构为基础的内容管理系统也逐渐增多。下面对目前基 于j c r 的内容管理系统的实现做简单的介绍: 一 2 哈尔滨下程大学硕士学位论文 1 j a c k r a b b i t j a c k r a b b i t l 7 1 是j s r - 1 7 0 的参考实现,a p a c h e 基金的一部分,提供级别1 、 级别2 和可选功能。在撰写本文时,它已经完成过内部测试阶段并有多个官 方公开的发布版本,这些版本已经足够稳定,可以被用在产品环境。此外, j a c k r a b b i t 也被用来作为d a ys 0 1 a r e ( j c r 的领导者) 的商业产品的基础。 除了实现j s r - 1 7 0 中定义的所有特性,j a c k r a b b i t 还加入了额外的功能( 如 s e s s i o n l i s t e n e r s 或c u s t o m n o d e 注册) ,以及一些其他组织机构捐献来的项目 套件,包括:j c a 连接器、t a g l i b 、w r e b d a v 接口、虚拟文件系统和j d b c 后 端。j a c k b a b b i t 目前是a p a c h e 的顶级项目之一。 2 c r x d a y 软件机构在2 0 0 8 年7 月发布了c o n t e mr e p o s i t o r ye x t r e m et s i ( c r x ) 的1 4 版本,c r x 就是一个扩展自j s r - 1 7 0 的内容仓库。在这一版本中,c r x 增加了对a p a c h ed e r b y 的支持,积极、消极的磁盘存储。以及对j s r 1 7 0 规 范内容的全面实现。c r x 可以看作是a p a c h ej a c k r a b b i t 和a p a c h es l i n g 项目 的商业产品。在j a c k r a b b i t 基础上进行了最优化配置,更多的附加功能,以 及便于简化使用的打包设置。由于采用了a p a c h ed e r b y 作为持久层,c r x 体现出了更加强大的性能。 总体来说,目前c r x 处于j a v a 内容管理系统商业化的前沿,在一定程 度上影响着j a v a 内容仓库标准制定的未来走向。 3 j e c e i r a 和m a g n o l i a 与j a c k r a b b i t 相比,j e c e i r a 是相对较新的项目。实现了级别1 和级别2 的基本需求,只在写操作时,支持来自可选级别的观察功能。j e c e i r a 的许可 证是a p a c h e2 0 ,使用h s q l 数据库作为它的存储引擎。不幸的是,这个项 目处于未完成阶段,在过去的很长一段时间没有新版本发布,然而它却被 m a g n o l i a 所使用。m a g n o l i a 是一款商业化的开源企业c m s 系统,最早发布 于2 0 0 3 年。透过一个以a j a x 为基础的界面样式来整合w e b 内容管理( w c m ) , 文档管理( d m s ) 等系统。m a g n o l i ai n t e r n a t i o n a l 分别于2 0 0 6 年10 月和2 0 0 8 年1 2 月发布了它的企业管理系统3 0 版本和4 0 版本。新版本的新特色包含 了工作流,内容版本控制,支持j s r - 1 6 8 规范,单点登入,新的模板编辑器, 以及改善了整个使用者介面等等。此外,m a g n o l i a 支持超过1 5 种以上的语 哈尔滨工程大学硕士学位论文 言,包含中文、英文、俄文、以及西班牙文等。 m a g n o l i a 是目前较为活跃的项目之一,包括一个开源与两个企业应用版 本。 1 2 3 国内内容管理系统概述 内容管理在国外市场发展相对比较成熟,在国内尚处于认知度普遍提高 的阶段。随着内容管理不断普及和升温,国内研究的组织和学者也越来越多。 市场上主要是由以前的内容检索服务商为主,纷纷推出了各自的内容管理系 统产品,并且延续了一定的客户和市场份额。 根据应用的领域类别划分,国内的内容管理系统可以分成三个类别【9 】: 第一类别,面向政府、媒体、i c p 、大型企业,以网站为主,包括各种类型 的信息发布。第二类别,面向政府、事业单位,内外网应用,特点是需求变 化大,用户间的需求有很大差距,内容管理只是一个大的系统中的一部分, 比如电子政务中的一小块内容。一般在实施时要求定制开发,不可能用现成 产品来满足需求。这样的解决方案有:方正祥羽、清华万博等。第三类别, 面向企业及个人应用。基本上国内的内容管理系统以付费产品为主,其中最 出名的要数t u r b o c m s 和t r s ,都是p h p 平台下的应用,而且价格相对比较 贵,报价多在几十万人民币。 根据技术架构类别划分,国内的内容管理系统以p h p 和a s p 为主,不 但市场份额大,而且产品实现数量多,占据了市场的主流地位。在j a v a 平台 下,目前可知的产品并不多,包括早期的n c t a r kc m s 和方正翔宇c m s ,以 及目前比较出色的j e e c m s 。j e e c m s 是j a v ae e 版网站管理系统( j a v a e n t e r p r i s ee d i t i o nc o n t e n tm a n a g es y s t e m ) 的简称,提供原代码下载,但是笔 者下载之后,发现c o m p o n y j a v a c o m m o n 包的源码没有尚未发布,据其官方 网站称会在下一个版本中发布。j e e c m s 使用目前j a v a 主流技术架构: h i b e m a t e 3 + s t r u t s 2 + s p r i n 9 2 0 + f r e e m a r k e r 。a j a x 使用j q u e r y 和j s o n 实现。 视图层并没有使用传统的j s p 技术,而是使用更为专业、灵活、高效 f r e e m a r k e r 。数据库使用m y s q l ,并可支持o r a c l e 、d b 2 、s q l s e r v e r 等主 流数据库。应用服务器使用a p a c h et o m c a t ,并支持其他o r a c l ew 曲l o g i c 、 m m w e b s p h e r e 等应用服务器。截止到2 0 0 8 年1 2 月已经发布了v 2 0 版本, 4 哈尔滨工程大学硕士学位论文 j j tii i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i 置 可以说为国内j a v a 平台下的开源内容管理系统领域做出了巨大的贡献。 总体而言,国内的内容管理系统还只具备w e b 内容管理系统的特点,即 模板定制,内容的发布,b b s 管理等。最显著的不足在于缺乏功能模块的可 制定性,几乎无法扩展。而且重复性产品很多,缺乏自己的特点,比如 t u r b o c m s 的很多功能是跟国外的i n t e r w o v e n 很相似。无论是企业还是开源 社区都缺乏长久的产品规划,缺乏对标准( 如j s r - 1 7 0 ) 的实现与支持,不 利于内容管理系统在国内的长久发展和客户群的建立。 1 3 问题的研究意义 虽然企业管理( e c m ) 市场发展很快,需求量也很大,但是目前为止, 企业管理系统所属的内容管理系统开发领域却呈现出一片混乱的场面。一段 时间以来市场上出现了各个厂家开发的不同的c m s 系统,这些系统都建立 在不同厂商各自的内容仓库之上。由此所带来的后果就是每个c m s 开发商 都提供了自己的a p i 来访问内容仓库。这给应用程序的开发者带来了很大的 困扰,因为不但要学习不同的开发商提供的a p i ,而且开发出来的代码也与 这些特定的a p i 产生了绑定,对系统的移植以及与其他应用相融合带来了很 大的困难。 笔者在开发第2 4 届世界大学生冬季运动会大冬会赛会信息平台的开发 中也遇到了类似的问题。本系统采用自行设计开发的内容管理系统实现各种 信息的维护与发布。但是在整合组委会其他系统的时候就显得比较困难。因 为组委会目前所使用的其他系统架构都是采用不同内容管理系统实现的,还 有一些应用系统对数据的管理更是方式多样。所以要在这些现有的软件系统 之上建立一个统一管理的综合性软件系统,是一件十分困难的事情。 j c r ( j a v a 内容仓库) 正是为解决这一问题而出现的,该标准提供了一 套标准的a p i 来访问任何数据仓库。通过对j a v a 内容仓库相关概念的研究、 扩展及应用可以很好的解决笔者在大冬会软件系统开发中所遇到的问题,更 重要的是目前j a v a 内容仓库在国外属于起步阶段之后的一个相对繁荣的时 期,而从目前各方面的信息渠道所获得的信息可知国内的相关领域则是研究、 应用都显得很平静。将j c r 引入j a v a 领域的内容管理系统,对于统一不同的 内容管理系统,增强其扩展性都有着重要的研究价值和现实意义。 哈尔滨工程大学硕士学位论文 i i liimi - - ii 一i i i i i i i i i i i i i i 萱 1 4 论文组织结构 本文的组织结构安排如下: 第1 章为绪论部分。主要介绍论文研究的背景和意义、内容管理系统的 研究现状、论文的研究内容以及论文的结构安排。 第2 章介绍了实现内容管理系统的相关概念及核心技术。在这部分中, 主要介绍了j a v a e e 技术并阐述它在开发w e b 应用中的作用,针对当前的体 系结构特点,采用了目前比较流行的开源框架的组合应用并就相关内容进行 简单描述。然后,突出介绍了s t r u t s 2 关于零配置的新特性编程技术和面向切 面编程技术在s p r i n 9 2 0 中的增强。最后,重点介绍j c r 的动机与目标、仓 库模型和兼容级别等核心概念。 第3 章提出了第2 4 届世界大学生冬季运动会大冬会赛会信息平台的需求 和设计。首先,根据系统的功能需求和实际的使用环境,笔者设计出系统完 整的体系结构并进行模块的详细划分和设计,归纳出了系统的整体流程,分 析了相关的技术整合关键点,为实现大冬会赛会信息平台做了充分地准备工 作。 第4 章描述了利用关键的技术对系统中关键问题的实现过程。首先,描 述了采用j a v a 内容仓库技术实现通用信息等模块。其次,描述了利用设计模 式和面向切面编程在报名注册系统中的实现和应用。最后,分别描述了x p a t h 技术和l u e e n e 框架在大冬会赛会信息平台的中针对普通图文信息和p d f 格 式信息的搜索实现。 在结论中,对本文的内容给出了一个总结,并在此基础上提出了以后的 研究方向。 6 哈尔滨工程大学硕士学位论文 i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i it -i i i i i i 第2 章相关概念及核心技术 2 1j a v ae e 技术 j a v ae e 1 0 】( j a v a t mp l a t f o r me n t e r p r i s ee d i t i o n ) j a v a 企业级平台,其前身 为j 2 e e 。目的在于降低多层次企业级开发的成本和复杂度。j a v ae e 应用程 序能及时应对企业级应用的复杂的需求,并且能够对其进行扩展和快速的部 署。为了达到这些目标,j a v ae e 制订了一个标准的框架结构,内容如下: j a v ae ep l a t f o r m :一个标准的j a v ae e 应用程序的宿主平台。 j a v ae ec o m p a t i b i l i t yt e s ts u i t e :一套用于测试并验证产品是否合乎 j a v ae e 平台标准的兼容性组件。 j a v ae er e f e r e n c ei m p l e m e n t a t i o n :为标准的j a v ae e 应用程序提供的自 适应的测试体系。 j a v ae eb l u e p r i n t s :一组最佳实践的瘦客户端多层架构服务的集合。 2 1 1j a v a 匪体系结构 j a v ae e 平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑 根据其实现的不同功能被封装到不同的组件中,组成j a v ae e 应用程序的大 量程序组件根据在其所属的多层的j a v ae e 的环境中所处的层被安装到不同 的机器中。图2 1 表示了多层的j a v ae e 应用程序根据下面的描述被分为不同 的层。 1 客户端机器的客户层组件 2 运行在j a v ae e 服务器中的w e b 层组件 3 运行在j a v ae e 服务器中的业务层组件 4 与数据库交互的数据持久层组件 一般而言,j a v ae e 的多层分布式体系结构按照业务逻辑划分为多个组 件,每个应用组件分布在不同的机器上。 7 哈尔滨工程大学硕士学位论文 客户层 l w e b , 层 | 业务逻辑层l 霉笑麓: 何入居 客户机 ; i i j a v ae e 程序 图2 1j a v ae e 多层体系结构图 客户层,客户层由w e b 浏览器或其他一些基于网络终端组成。用户可通 过客户层访问w e b 层的静态或由动态页面和获取所需的信息。 w e b 层,w e b 运行在w e b 服务器上,是由j a v aw ,e b 应用程序构成。用 于接收客户请求,返回动态的w e b 页面。这些基本组件通过打包来创建j a v a b e a n 组件,w e b 组件用来和客户层进行交互。表现层可能包含j a v ab e a n 对 象来处理用户的输入,并调用业务逻辑层对应的业务组件进行处理。 业务逻辑层,业务逻辑层运行在j a v ae e 服务器上。它解决或满足特定 业务逻辑代码构建成e j b 组件。e j b 组件从表现层接收数据,按照业务规则 对数据进行处理。处理过程中,业务层可能需要调用数据持久层,完成数据 的检索或持久化。最后,业务层将处理结果返回给表现层。 数据持久层,数据持久层处于业务逻辑层和数据库或其他文件系统之间, 负责封装或解析数据完成数据的成就存储。j a v a 领域中的数据持久层本质为 j d b c 技术,许多组件都是对j d b c 技术的封装。 j a v ae e 体系结构中,包括了两种容器:w _ e b 容器和e m 容器。w e b 容 器管理w e b 组件,e j b 容器管理e j b 组件。w e b 组件运行在体系结构中的表 现层,e m 组件包含了业务逻辑层和数据持久层。 8 哈尔滨丁程大学硕士学位论文 2 1 2j a v ae e 的未来发展 作为2 0 0 5j a v ao n e 开发者大会的压轴戏,j a v a 之父j a m e sg o s l i n g 作了 题为“j a v a 技术下一个十年贡献【l l 】”的演讲。谈到未来j a v a 的发展时,j a m e s g o s l i n g 提到了有关j a v a 软件的性能和复杂性问题。鉴于许多机器运行着大 量进程的实际情况,人们对线程模型投以越来越多的关注。随着人们对桌面 应用的要求越来越高,系统将变得越来越复杂。他指出:“从工程的角度来看, 未来1 0 年内我们所面临的最大挑战就是复杂性问题。 从官方的倡导方面,e j b 的革新和w e bs e r v i c e s 的引入更多地反映了此 前j a v a 领域的一些弯路。而随着开源软件运动的兴起,则是j a v a 下一个十 年更加繁荣的保障。与e j b 提供的重量级架构不同,借助a o p 和i o c 机制, 轻量级容器能够最大程度地降低代码对于专用接口的依赖性,以简短、轻便、 专注、可移植的方式实现业务对象。 在j a v ao n e2 0 0 7 开发者大会上有篇名为“mf u t u r eo ft h ej a v a t e c h n o l o g yw r e bt i d l 2 】”的演讲,其中包括了s u n 的s e r v l e t3 0 、r e s t 、c o m e t 计划。例如s u n 向j c p 提交了s e r v l e t 3 0 规范,a n n o t a t i o n 标注的s e r v l e t s , 可编程访问并动态改变的w e b x m l ,使得以往经常需要重启的w e b 应用配置 终于拥有了动态特性,w e bf r a m e w o r k 们拥有了热插拔的能力。 这些都体现了j a v a 积极进步的方方面面,从j a v a 领域的应用广度和活 跃程度上看,4 5 0 万的使用者为了j a v a 的美好明天共同奋斗,j a v ae e 的发 展蓝图将是由官方与社区共同努力来谱写的。 2 2 开源框架组合应用 目前,开源社区的项目技术日益丰富、成熟和稳定,使用开源框架开发 w e b 应用的公司和人员越来越多。开源社区拥有大量的从事软件开发的精英, 他们不断的追求模式和框架的完善和高效,所以,采用轻量级框架和容器开 发中小型企业w e b 应用是大势所趋。 轻量级框架是为j a v ae e 体系结构不同层次而设计的,每个层次上都有 很多优秀的框架,严格地遵守j a v ae e 的技术规范,符合统一的设计模式思 想。表示层有s t r u t s 、w e b w o r k 、t a p e s t r y 等框架,把j a v ae e 的j s p 和s e r v l e t 9 哈尔滨工程大学硕士学位论文 技术利用m v c 模式组合起来,让它们发挥各自的作用来完成表示层的功能。 业务逻辑层有s p r i n g 框架,它是一种轻量级的容器,采用了依赖注入( i o c ) 和面向切面编程( a o p ) 等核心技术来组织和管理普通的j a v a 对象,让对象 更加松耦合的组织在一起,完成业务逻辑层功能。数据持久层有h i b e r n a t e 、 j d o 等,采用了对象关系映射( o l 洲) 的技术,可以轻松地将以面向对象思 想封装的对象的各个状态映射到基于s q l 的关系模型数据结构中去【1 3 】。 2 2 1s t r u t s 2 技术 s t r u t s 2 以w e b w o r k 优秀的设计思想为核心,吸收了s t r u t s l 的部分优点, 建立了一个兼容w e b w o r k 和s t r u t s l 的m v c 框架【1 4 j 。s t r u t s 2 的目标是希望 可以让原来使用s t r u t s l 、w - e b w b r k 的开发人员,都可以平稳过渡到s t r u t s 2 框架当中。在s t r u t s 2 当中大量使用拦截器机制来处理用户请求,从而允许用 户的业务逻辑控制器与s e r v l e ta p i 做到很好的分离,充分起到了软件工程中 解耦的思想。 s t r u t s 2 框架的大致处理流程如下: 1 浏览器发送请求,例如请 求m y p a g e a c t i o n 、r e p o r t s r e p o r t p d f 等。 2 核心控制器f i l t e r d i s p a t c h e r 根据请求决定调用合适的a c t i o n 。 3 拦截器链自动对请求应用通用功能,例如工作流、文件上传等功能。 4 回调a c t i o n 的e x e c u t e 方法,获取用户请求参数,执行数据操作。 实际上a c t i o n 只是一个控制器,它会调用业务逻辑组件来处理用户的请求。 5 a c t i o n 的e x e c u t e 方法处理结果信息将被输出到浏览器中,s t r u t s 2 支持的视图技术非常多,既支持j s p ,也支持v e l o c i t y 、f r e e m a r k e r 等模板技 术。 与其他m v c 框架一样,s t r u t s 2 也需要大量的配置文件支持程序的运行。 但是当工程很大时,不论是前期的开发还是后期的维护,大量的配置文件都 会对工程的正确性造成不小的影响。笔者在开发过程中,总结出一套关于 s t r u t s 2 的零配置的使用方法,只需要很小的配置便能支持大部分的程序运行。 s t r u t s 2 从2 0 6 版本后引入了零配置的新特性,其方式是使用元数据并 通过约定的规则和注解来实现控制跳转逻辑,从而达到零配置的目的。然而, 在笔者看来,这种方式是将配置从x m l 格式换成了注解方式,并不是真正 1 0 哈尔滨工程大学硕士学位论文 意义上的零配置。而且,这种方式也未必比x m l 形式的配置更好,因为对 元数据的修改必然会导致项目的重新编译和部署。 其实,s t r u t s 2 的a c t i o n p a c k a g e s 配置机制已经使用了c o c ( c o n v e n t i o n o v e rc o n f i g u r a t i o n ) ,笔者通过研究发现如果在对r e s u l t s 的处理过程中也实现 c o c ,就可以去除在每个a c t i o n 中都要写的注解的工作【1 5 】。在严谨的项目中, p a c k a g e 、a c t i o n 的名称和页面的路径、名称一定存在着某种关系。比如,页 面的路径可能和p a c k a g e 是对应的,页面的名称可能和a c t i o n 的名称是对应 的,或是根据某种法则运算得到。在s t r u t s 2 中有个名为g l o b a l r e s u l t s 的配置 属性,可以根据某些对应规则编写r e s u l t ,将它配到g l o b a l r e s u l t s 中,从而 真正免去r e s u l t 的配置。笔者在使用s t r u t s 2 的时候放弃了s t r u t s 2 的笨拙的 i j i 标签,r e s u l t 只输出x m l 或j s o n ,u i 则使用标准的h t m l + c s s ,使用 j s 组件来操作s t r u t s 2 的输出数据,这样表现层和应用服务器的职责分配的 更为明确、合理的、更易于静态化部署的开发组合。 零配置的最重要一点是根据项目的规则编写合理严格的r e s u l t ,将它配 到g l o b a l - r e s u l t s 中,从而大大减少r e s u l t 的配置。例如,通过使用j s o n p l u g i n 插件的功能,使得s t r u t s 2 的结果只输出j s o n 类型。这样使用j s o n r e s u l t 时, 不再需要知道页面的位置、名称等信息,仅仅关心数据输出。可以将这个 r e s u l t 配成全局类型,大部分a c t i o n 将不再需要对r e s u l t 进行任何配置。在 s t r u t s x m l 文件中加入如下代码: s u c c e s s s h t m l 配置文件中的s u c c e s s 是j s o n 输出,j a v a 源代码中的a c t i o n 返回s u c c e s s , 但并不会匹配到g l o b a l r e s u l t s 中配置。因为,这里是把g l o b a l r e s u l t s 配置到 “w u 2 4 - d e f a u l t 这个p a c k a g e 下的,而s t r u t s 2 根据a c t i o n p a c k a g e s 找到的 a c t i o n 不会匹配到这个p a c k a g e 上。解决办法是在s t r u t s x m l 中增加一个属性 c o n s t a n t 哈尔滨工程大学硕士学位论文 通过这样的配置,不论是访问a p p p e r s o n l i s t p e o p l e ,还是访问 a p p g r o u p l i s t g r o u p ,所有的配置仅仅是w e b x m l 和s t r u t s x m l 中的几行,j a v a 代码中也没有加任何注解。如果再加上几百个a c t i o n ,配置仍然就这几行。 对于某些a c t i o n 确实需要配置的情况,可以加注解,也可以针对这些 a c t i o n 来写些x m l 配置。一个项目中,大部分a c t i o n 的配置是可以遵从一 定规则的,可以使用规则来简化配置,只有少部分需要配置。 2 2 2s p rin 9 2 0 技术 s p r i n g 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。 框架的主要优势之一就是其分层架构,分层架构允许开发者选择使用某一个 组件,同时为j a v ae e 应用程序开发提供集成的框架。s p r i n g 框架包含许多 特性,并被很好地组织在图2 2 所示的七个模块中【16 1 。 图2 2s p r i n g 框架结模块构图 组成s p r i n g 框架的每个模块( 或组件) 都可以单独存在,或者与其他一 个或多个模块联合实现。每个模块的功能如下: 1 核心容器:核心容器提供s p r i n g 框架的基本功能。核心容器的主要 组件是b e a n f a c t o r y ,它是工厂模式的实现。b e a n f a c t o r y 使用控制反转( 1 0 c ) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 2 s p r i n g 上下文:s p r i n g 上下文是一个配置文件,向s p r i n g 框架提供 上下文信息。s p r i n g 上下文包括企业服务,国际化、校验和调度功能。 1 2 哈尔滨工程大学硕士学位论文 3 s p r i n g a o p :通过配置管理特性,s p r i n ga o p 模块直接将面向方面 的编程功能集成到了s p r i n g 框架中。所以,可以很容易地使s p r i n g 框架管理 的任何对象支持a o p 。 4 s p r i n gd a o :j d b cd a o 抽象层提供了有意义的异常层次结构,可 用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结 构简化了错误处理,并且极大地降低了需要编写的异常代码数量。 5 s p r i n go r m :s p r i n g 框架插入了若干个o r m 框架,从而提供了o r m 的对象关系工具,其中包括j d o 、h i b e r n a t e 和i b a t i s 。所有这些都遵从s p r i n g 的通用事务和d a o 异常层次结构。 6 s p r i n gw e b 模块:w e b 模块建立在应用程序上下文模块之上,为基 于w e b 的应用程序提供上下文。所以,s p r i n g 框架支持与m v c 框架的集成。 7 s p r i n gm v

温馨提示

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

评论

0/150

提交评论