(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf_第1页
(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf_第2页
(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf_第3页
(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf_第4页
(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(通信与信息系统专业论文)基于jsf构架的再保系统研究.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 随着i n t e r n e t 技术和企业信息化的发展,构建基于w e b 的应用系统的需求 越来越复杂,开发周期越来越短,同时对于系统的稳定性、扩展性和可维护性 要求也越来越高,传统的c 1i e n t s e r v e r 方式已经不能适应新的需要了。s u n 公 司提出了j 2 e e 设计模式,它是一个能够构建分布式企业应用并能满足扩展性、 性能和安全性的解决方案。基于j 2 e e 的多层w e b 体系结构逐渐发展成熟,多层 的j a v aw e b 应用开发己成为主流。于是怎样快速地构建一个具有可重用性、可 扩展性和易维护的w e b 应用成为j 2 e e 开发的首要问题。j a v a s e r v e rf a c e s 可以 开发一个运行在j a v a 服务器上的w e b 应用,它可以向客户端提供用户界面。用 户界面组件是在服务器上运行的,对在客户端生成的事件作出响应,使用户界 面本身更容易分布。 本文依托武汉纬创软件公司所承接的烈g 台北公司再保系统。本文的主要 研究内容是基于j s f 框架和h i b e r n a t e 技术的再保系统的设计和实现。在研究思 路方面,首先对当前j 2 e e 的发展进行了介绍,探讨了m v c 模式的特点和不同 的实现方式,并对持久层的h i b e r n a t e 技术进行了深入的分析,同时给出了实现 方式;然后阐述了w e bu i 开发框架j s f ,j s f 框架是由s u n 公司官方所推出的 开发框架,该框架基于事件驱动,提供了强大的可重用的u l 组件,并拥有许多 第三方公司提供的u i 组件,并分析现有框架在开发过程中遇到的问题和不足, 根据w e b 系统开发的特点提出了一种集成j s f 和h i b e r n a t e 的w e b 应用的架构 模型;结合再保系统进行了分析,确定该系统需要解决的问题,给出了其解决 方案,并分析该方案的优势和存在的不足,同时提出了系统性能优化的方案。 实践表明,应用这种集成框架可以提高系统开发的效率,同时满足系统扩展性 和可维护性的要求。 关键词:j 2 e e ;m v c 模式;j s f 框架;h i b e r n a t e 技术 武汉理工大学硕士学位论文 a b s t r a c t w r i t l lt h ei n t e r n e ta n di n f o r m a t i o n t e c h n o l o g ya n de n t e r p r i s ed e v e l o p m e n t , c o n s t r u c t i o no fw 曲- b a s e da p p l i c a t i o n sd e m a n dm o r ea n dm o r ec o m p l e x m o r ea n d m o r es h o r td e v e l o p m e n tc y c l e ,t h es y s t e ms t a b i l i t y , s e a l a b i l i t ya n dm a i n t a i n a b i l i t y r e q u i r e m e n t sa r ea l s ob e c o m i n gm o r ea n dm o r e 。t r a d i t i o n a lc l i e n t | s e r v e rc a l ln o t m e e tt h en e wn e e d s s u nr a i s e dj 2 e ed e s i g np a a e m s ,i ti st ob u i l dad i s t r i b u t e d e n t e r p r i s ea p p l i c a t i o n sa n dt om e e tt h es e a l a b i l i t y , p e r f o r m a n c ea n ds e c u r i t ys o l u t i o n s b a s e do nj 2 e em u l t i - t i e rw 曲a r c h i t e c t u r eg r a d u a l l yd e v e l o pa n dm a t u r e ,m u l t i j a v a w r e ba p p l i c a t i o nd e v e l o p m e n th a sb e c o m et h em a i n s t r e a m s oh o wf a s tt ob u i l da r e u s a b l e ,e x t e n s i b l e ,a n dm a i n t a i nt h ed e v e l o p m e n to fj 2 e ew e b a p p l i c a t i o i l sb e c o m e t h em o s ti m p o r t a n ti s s u e j a v a s e r v e rf a c e sc a nb er u no nt h ed e v e l o p m e n to faj a v a a p p l i c a t i o ns e r v e ro nt h ew 曲,i tc a np r o v i d et ot h ec l i e n tu s e ri n t e r f a c e u s e r i n t e r f a c ec o m p o n e n t so nt h es e r v e rr u n n i n go nt h ec l i e n tt or e s p o n dt ot h ei n c i d e n t g e n e r a t e ds ot h a tt h eu s e ri n t e r f a c ei t s e l fm o r ee a s i l yd i s t r i b u t e d i nt h i sp a p e r , b a s e do nw u h a nw i s t r o ns o f t w a r ec o m p a n yu n d e r t a k i n gt h ei n g t a i p e ir e i n s u r a n c es y s t e m 皿em a i nr e s e a r c hi sb a s e do nj s fa n dh i b e m a t e t e c h n o l o g yf r a m e w o r kr e i n s u r a n c es y s t e md e s i g na n di m p l e m e n t a t i o n r e s e a r c hi d e a s , f i r s to nt h ec u r r e n tj 2 e ed e v e l o p m e n tw e r ei n t r o d u c e dt oe x p l o r et h ec h a r a c t e r i s t i c s o ft h em v cm o d e l ,a n dt h eh i b e r n a t ep e r s i s t e n c el a y e rt e c h n o l o g yi n - d e p t ha n a l y s i s ; t h e ne x p o u n d e dt h ew e bu id e v e l o p m e n tf r a m e w o r kj s f j s ff r a m e w o r kb yt h e c o m p a n ys u no f f i c i a l l yl a u n c h e dt h ed e v e l o p m e n to ft h ef r a m e w o r k ,w h i c hi sb a s e d o l le v e n t - d r i v e n , p r o v i d i n gap o w e r f u lr e u s a b l eu ic o m p o n e n t s ,a n dw i t hm a n y t h i r d - p a r t yc o m p a n i e st op r o v i d et h eu ic o m p o n e n t s ,a n di na c c o r d a n c ew i t ht h e c h a r a c t e r i s t i c so fw e bs y s t e m sd e v e l o p m e n ta n dj 2 e ed e s i g np a t t e r n sb yi n a d e q u a t e a l li n t e g r a t e dj s fa n dh i b e r n a t ew e ba p p l i c a t i o nf r a m e w o r km o d e li nc o n j u n c t i o n w i t ht h er e i n s u r a n c es y s t e mw a sa n a l y z e d ,p r e s e n t e di t ss o l u t i o n , a n dp e r f o r m a n c e o p t i m i z a t i o no ft h es y s t e m p r a c t i c es h o w st h a tt h ea p p l i c a t i o no ft h i si n t e g r a t e d s y s t e md e v e l o p m e n tf r a m e w o r kc a ni m p r o v et h ee f f i c i e n c y , w h i l em e e t i n gs y s t e m s e a l a b i l i t ya n dm a i n t a i n a b i l i t yr e q u i r e m e n t s k e y w o r d s :j 2 e e ;m v cm o d e l ;j s ff r a m e w o r k ;h i b e r n a t et e c h n o l o g y 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人 已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的 学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 签名:撇日期:型址址 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保 留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 武汉理工大学硕士学位论文 第1 章绪论 1 1 本课题研究的背景、目的和意义 i n t e m e t 技术的发展加快了基于网络应用程序的设计和开发,传统的 c l i e n t s e r v e r 方式已经不能适应新的需要了。在传统的c l i e n t s e r v e r 模型中,表 示逻辑层位于客户端,数据逻辑位于服务器端,而业务逻辑位于客户端或者同 时存在于客户端和服务器端。j 2 e e 技术正是基于i n t e m e t 上w e b 特点产生和发 展的,提供了一个基于组件的方法来设计、开发、装配以及部署应用程序,将 业务逻辑从客户端、服务器端独立出来,更适用于日益复杂化的和日益变化的 业务逻辑的需求,从而带来了开发、维护和使用时的便利。j 2 e e 的这种开放性 标准,不仅能够帮助开发者能够节省很多时间用于分析构建客户的业务模型, 而且可以在个平台上构建各个信息系统。因此j 2 e e 已经成为了当前构建企业 信息系统的主流技术。 j 2 e e 是一个基于组件的、以应用服务器为核心的多层应用体系结构。这种 多层结构简化了开发、配置和维护应用的过程,它最大的优点就是将企业的业 务逻辑和显示逻辑分开,应用服务器为组件提供了一系列的底层服务,如事物 管理、多线程、分布式程序设计、缓存池等。这就使得开发者能够将精力集中 于特定的领域的业务规则的组织上,而不用过多的关心那些底层的复杂繁琐的 系统级事项。j 2 e e 平台由一整套服务、应用程序接口和协议构成,图1 1 给出 了j 2 e e 平台的基本体系结构。 武汉理工大学硕士学位论文 铿a cp h t t p 一h t t p s a p p l e t 卜一 j 2 s ej a c c a p p c l i e n t j 2 e e 服务 j 2 s e h t t p p a t t p s w e b 容器 j s p s e r v l e t j 2 e e f j 报务 j 2 s e e j b 容器 到b j 2 e e 服务 j 2 s e 艘鏊i 数 划器_ - 叫瑶 i 库 j d b c ( 数据库连接) 图1 1j 2 e e 体系结构 j a v a s e r v e rf a c e s ( j s f ) 是一种用于构建w e b 应用程序的标准j a v a 框架。 它提供了一种以组件为中心来开发j a v aw e b 用户界面的方法,从而简化了开发。 j a v a s e r v e rf a c e s 还引起了广大j a v aw 曲开发人员的兴趣。企业开发人员和w 曲 设计人员将发现j s f 开发可以简单到只需将用户界面d 组件拖放到页面 上,而系统开发人员将发现丰富而强健的j s fa p i 为他们提供了无与伦比的功能 和编程灵活性。j s f 还通过将良好构建的模型视图控制器( m v c ) 设计模式集 成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于j s f 是 通过j a v ac o m m u n i t yp r o c e s s ( j c p ) 开发的一种j a v a 标准,因此开发工具供应商 完全能够为j a v a s e r v e rf a c e s 提供易于使用的、高效的可视化开发环境。 j a v a s e r v e rf a c e s ( j s f ) 正在改变基于j a v a 的w e b 应用程序的编写方式。j s f 的设 计目的是为了简化高性能j a v aw e b 应用程序用户界面( u i ) 的创建和开发流程 【l 】 o 从核心来看,j a v a s e r v e rf a c e s 是构建w e b 应用程序用户界面的标准j a v a 框 架。j s f 的关键优势是它简化了用户界面的开发,而用户界面开发通常是w e b 应用程序开发中较为困难和烦琐的部分。虽然不用专门针对企业w e b 应用程序 设计的综合框架,只用基本的j a v aw e b 技术( 例如j a v as e r v l e t 和j a v a 服务器页 面) 也能构建用户界面,但是这些核心技术通常会带来各种开发和维护问题。 j a v a s e r v e rf a c e s 在以前的许多j a v a 开发框架经验之上,提供了健壮、优良、具 有制作良好开发模式的框架,从而避免了这些问题。 2 武汉理工大学硕士学位论文 j a v a s e r v e rf a c e s 的设计目标是在以下几方面简化j a v aw e b 应用程序的用户 界面开发: ( 1 ) 为w e b 用户界面的构建提供以组件为中心的、独立于客户端的开发手 段,从而提高开发人员的生产率,提高易用性。 ( 2 ) 简化从w e b 用户界面对应用程序数据的访问和管理。 ( 3 ) 用简单的、非侵入的方式在多个请求和多个客户之间自动管理用户界 面的状态。 ( 4 ) 提供一个对拥有不同技能组合的各类开发人员都友好的开发框架。 除了这些细节之外,j s f 还提供了另一项重要的好处。它吸取了多年来w e b 应用程序开发实践中的最佳元素,把它们组合成一个简单、全面、标准的a p i , 用于构建j a v aw e b 应用程序的用户界面。而且,在没有牺牲j 2 e ew e b 应用程 序开发威力和灵活性的情况下,它带来了前所未有的简易和生产率。 1 2j 2 e e 技术的发展现状 j 2 e e 平台提供了多种开发技术,其中较为常用的主要有以下几种: ( 1 ) e j b ( e m e r p r i s ej a v ab e a n ) 包含应用程序中存在的业务数据和业务逻辑。 尽管也可以使用标准的j a v a 对象包含这些业务逻辑和业务数据,但使用e j b 可 能解决使用j a v a 对象所遇到的很多问题,例如可伸缩性、生命周期管理和状态 管理等。e j b 实质上是一个被管理的中间件,存在于j 2 e e 容器中,由j 2 e e 容 器进行创建、控制和销毁。容器负责管理当前存在的e j b 数目和e j b 所使用的 资源,例如内存和数据库连接【2 j 。每个容器维护一个非配给客户端的可重用e j b 实例池。当客户端不再需要e j b 时,e j b 实例将被返回至e j b 实例池,并释放 e j b 实例的全部资源。e j b 实例池和e j b 实例的循环使用意味着需要的e j b 实 例更少,他们占用的资源也就更少,并且很多客户端之间可以共享e j b 实例, 这最大限度的提高了基于e j b 的应用程序的可伸缩性。使用e j b 实例的客户端 无需了解容器所做的工作。客户端与一个支持业务方法的远程组件进行对话。 如何实现这些方法以及容器所实现的任何功能对应用程序的客户端部分而言都 是可见的。要使用容器提供的服务,e j b 必须与部署描述符打包在一起,部署描 述符说明了实现服务所需的组件。然后容器将使用次信息为组件执行认证和事 物划分,图1 2 给出了客户端如何使用j n d i 和r m i 来访问e j b 。 3 武汉理工大学硕士学位论文 图1 2 客户端访问e j b 方式 ( 2 ) s e r v l e t 是一个服务器端组件,它可以用来扩展任何运行j a v a 的服务器 的功能,但是大多数s e r v l e t 是用来在w e b 服务器上编写w e b 应用程序的,他 们通常用来创建的内容是非静态的w e b 页面,内容会根据用户输入或其他变量 数据而改变的w e b 页面称为动态页面。s e r v l e t 是创建动态页面的一种方法。 下面列出s e r v l e t 主要特性和优点: s e r v l e t a p i 提供了为w e b 应用程序定制的接口; s e r v l e t 是独立于服务器平台的,这使得s e r v l e t 可移植而且可重用; s e r v l e t 是高效的和可扩展的; s e r v l e t 运行在服务器内,所以可以为某种目的委托服务器执行特定的功能。 ( 3 ) j s p ( j a v as e r v e r p a g e ) 是简化s e r v l e t 编写的一种技术,它将j a v a 代码和 h t m l 语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用j a v a 代码来编写,而对固定不变的静态内容采用普通h t m l 页面的方式编写。图1 3 给出了采用了s e r v l e t j s p 的b s 构架。 bmws石database r 、 s e r v e r l 溅器b ,、 数 据 卜、 卜库 测览器 服 _ 1 务 器 浏览器b 一 图1 3b s 构架 4 武汉理工大学硕士学位论文 ( 4 ) j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 为分离服务提供者与服务使用 者提供了一种必不可少的机制。命名服务允许服务提供者根据服务的名字注册 所能提供的服务。用户或客户只需要知道服务的名字即可使用这些服务。j n d i 是为j a v a 程序中命名和目录服务定义接口的j a v aa p i 。j n d l 只是一个a p i 而不 是一个命名和目录服务。要使用j n d i ,命名和目录服务的一个实现必须可用。 j n d i 为底层服务提供者实现提供了一个跨服务的接口。图1 4 给出了j n d i 的体 系构。 j a v 耀序 肺m i 应用编程接口 命名管理器 j n d i 服务提供者接口 图1 4 刷d i 体系结构 ( 5 ) j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 技术是j a v a 语言进行数据库访问的 标准扩展,为j a v a 程序员提供了访问关系型数据库的标准a p i 。通过使用j d b c , 开发者可以用一种灵活的方式进行数据操作。在进行数据库操作时,客户端调 用执行j d b c 驱动程序的标准a p i ,然后由这些a p i 访问特定的数据库。j d b c 和o d b c 十分相似,而且两者可以通过j d b c o d b c 连接桥进行访问。j d b c 包括对数据库连接池的支持,这增强了数据库和应用代码间的相互独立性。 ( 6 ) j t a ( j a v a t r a n s a c t i o na p i ) 事务处理技术是保证一系列操作正确完成的 保护机制。例如:事务处理所提供的典型的保护措施是保证在一个事务环境中 的全部操作均正确执行,否则全部不执行。事务处理能够保证系统数据的一致 性。事务处理可以允许多个用户同时访问相同数据,但本质上将其相互隔离, 它是同步处理的一种高级形式。s u n 公司为了更好的实现事务处理机制,推出了 两个a p ij a v a 事务处理a p i ( j t a ) 和j a v a 事务处理服务( j t s ) 。j t a 是应用程 序用以控制事务的较高层次的事务处理接口,通常用户直接调用该接口实现具 体的事务处理。j t s 是一套底层事务处理接口:以c o r b a 中的对象事务处理服 务( o t s ) 为基础,通常客户端代码不直接与j t s 相互作用。j t s 技术使多个厂家 5 武汉理工大学硕士学位论文 产品在不同环境下能够协同进行事务处理。 ( 7 ) j m s ( j a v am e s s a g es e r v i c e ) 技术提供创建、发送、接收、读取消息的服 务。j m s 定义了一组公共的应用程序接口和相应语法,使得j a v a 应用能够和各 种消息中间件进行通信。使用j m s 的a p i ,能够最大限度地提高消息应用的可 移植性。j m s 技术支持点对点的消息通信,同时支持发布订阅式的消息通信。 j m s 消息服务技术为分布式对象之间提供了可靠的异步通信方式,相比同步通 信方式,采用异步通信方式使得整个系统的可靠性得到了很大的提高。s u n 公司 发布了j a v a 消息处理a p i ,提供可移植性的消息服务。j m s 技术提供了与厂家 无关的分布式对象可事务处理、可容错的异步通信方式。 ( 8 ) j a v a m a i l 技术可以为应用程序增加电子邮件功能。j a v a m a i l 定义了一 套可由用户编写代码的接口,通过接口将用户的代码和具体的协议、邮件服务 分离,这样i n t e r n e t 邮件代码具备跨平台、跨通信协议的良好的移植性。同时, j a v a m a i l 提供一些常用服务支持当前比较通用的邮件协议。 ( 9 ) 分布式远程组件之间有多种方法实现互调。通常有用在j a v a 平台的 r e m o t em e t h o di n v o c a t i o n ( r m i ) 、兼容多种平台的c o r b a 微软公司的 d i s t r i b u t e d c o m ( d c o m ) 和w e bs e r v i c es i m p l eo b j e c ta c c e s sp r o t o c o l ( s o a p ) 技 术。s o a p 技术基于h 1 m 协议,可以穿过防火墙,有很好的发展前景。r m i 技术、d c o m 技术、c o r b a 技术基于t c p i p 协议,但又互不相同。d c o m 主 要用在微软的操作环境,它的特点是速度较快,但协议复杂,实现困难;c o r b a 兼容多种平台,能够支持企业的遗留系统,因此被广泛使用。c o r b a 支持企业 遗留系统,使用c o r b a 开发应用程序可以充分地利用原有的资源 3 1 。 ( 1 0 ) r m i ( r e m o t em e t h o di n v o c a t i o n ) 是一种远程调用其它计算机商务方法 的机制。r m i 是一种底层潜在的机制,e j b 应用r m i 作为组件和客户端之间底 层通信a p i 。r m i 用在j a v a 平台上,主要用于j a v a 组件的远程调用,是分布式 对象应用程序的主要机制之一。程序设计时,先使用接口定义远程对象,然后 像使用本地对象一样调用这些远程对象的方法,调用过程对用户透明。在j 2 e e 应用程序中,r m i 的应用非常广泛,e j b 组件之间、基于j a v a 的客户与服务器 之间的互操作都是基于r m i 的。r m i i i o p 是j a v a 环境用来兼容c o r b a 的协议。 r m i i n t e m e t 技术支持o m g 映射,支持与c o r b a 和其它非j a v a 环境远程过程 调用方法的兼容。j 2 e e 架构不同层间的通信使用了标准的i i o p 协议。 6 武汉理工大学硕士学位论文 1 3 本文主要研究内容和组织结构 从i n g 再保系统这个大型的项目为出发点,本文的主要研究内容如下: ( 1 ) 分析了j s fw e b 框架的特性,并分析了再保系统采用j s f 框架的原因。 ( 2 ) 分析了在数据持久化层采用的h i b e r n a t e 技术,讨论了采用该技术的好 处。 ( 3 ) 给出了j s f 框架与h i b e r n a t e 技术的整合方案。 ( 4 ) 分析了对再保系统性能进行优化的方法,有选择的使用h i b e r n a t e 技术。 全文共分为5 章: 第1 章绪论部分概括了国内j 2 e e 研究水平和发展趋势。 第2 章介绍了j 2 e e 当前的主要开发技术和模式,重点分析了m v c 模式和 对象持久化层技术。 第3 章介绍了再保系统的要求,并分析了采用j s f 构架来开发再保系统的 原因,同时给出了j s f 构架与h i b e r n a t e 技术的整合方案。 第4 章介绍了再保系统的具体实现,并分析了再保系统各层和模块的功能 特点以及进行交互的方式。 第5 章对全文进行总结,分析了当前再保系统仍存在的问题,提出了以后 进一步的优化方式。 7 武汉理工大学硕士学位论文 第2 章j 2 e e 及其主要技术 2 1j 2 e e 开发中主要使用的技术和框架 j 2 e e 是一种利用j a v a 平台来简化企业解决方案的开发、部署和管理相关复 杂问题的体系结构。j 2 e e 技术的基础就是核心j a v a 平台,j 2 e e 不仅巩固了标 准版中的许多优点,同时还提供了对e j b ( e n t e r p r i s ej a v ab e a n s ) ,s e r v l e t ,j s p ( j a v a s e r v e r p a g e s ) 以及x m l 技术的全面支持。其最终目的就是成为一个能够使企业 开发者大幅缩短投放市场时间的体系结构。 j 2 e e 可以理解为一个企业级的中间件体系或平台,它把多种分散到网络上 的资源和应用连接起来,为构造和管理可伸缩的企业级业务应用提供了一系列 的应用组件及运行环境。从物理上看,j 2 e e 环境可分布驻留到一个以上的服务 器,单一的业务应用能够以一组分布式组件的形式部署到网络上的一个或者多 个服务器。 j 2 e e 体系结构提供中间层集成框架用来满足高可用性、高可靠性以及高可 扩展性的需求。通常这些是由分布的应用程序来实现的,包括前端数据端和后 端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与 e i s ( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 相结合的功能。这些中间层把客户端从复杂的 商业逻辑中分离出来,利用成熟的网络技术使用户在管理上所花费的时间最小 化。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性,同 时提供对现有应用程序集成强有力支持,增强了安全机制,提高了性能。 j 2 e e 平台为实现和部署企业级应用程序提供了一个标准,促进企业组织加 快在信息化经济中竞争的步伐。这个标准是通过一系列的相关规范来定义的, 其中关键的有j 2 e e 规范、e j b 规范、s e r v l c t 、j s p 规范等1 4 。 j 2 e e 平台指定了n 层体系架构的企业级应用程序技术,包括组件技术、服 务技术和通信技术。它们的内容如下: 组件技术,所有的j 2 e e 组件都需要一个容器来提供其运行的环境。此环境 可以提供组件的生命周期管理、安全、多线程以及实例池之类的服务。组件技 术有a p p l e t 、应用程序客户端组件、w e b 组件、e j b 组件。其中w e b 组件包括 8 武汉理工大学硕士学位论文 j s p 和s e r v l e t 组件。而e j b 又可以再细分为s e s s i o nb e a n ,e n t i t yb e a n 和m d b ( 消 息驱动b e a n ) 。由于j 2 e e 体系结构的庞大和复杂,为了便于识别不同群体所执 行的任务,在应用程序开发和部署的整个生命周期中,j 2 e e 平台定义了6 种不 同的角色:j 2 e e 产品提供者、组件提供者、应用程序开发者、部署人员、系统 管理人员、开发工具提供者。 服务技术包括:名称目录服务( j n d i ) 、事务服务( j t a ,j t s ) 、安全服务( j a a s ) 、 数据库的访l h ( j d b c ) 和连接器结构( j c a ) 。 通信技术,j 2 e e 规范要求支持以下几种类型的通信技术i n t e r a c t 协议( t c p i p , h t t p ,s s l ) 、远程方法调用( r m i 协议) 、对象管理组协议( i i o p ) 、消息接发技术 ( j m s ,j a v a m a i l ) 以及数据格式。 2 2m v c 模式 2 2 1m v c 模式的背景 设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。 对象设计应该对问题有针对性,同时对将来的问题和需求也要有足够的通用性。 有经验的面向对象设计者能做出良好的设计:当找到一个好的解决方案,他们 会一遍又一遍地使用。因此,会在许多面向对象系统中看到类和相互通信的对 象的重复模式。这些模式解决特定的设计问题,使面向对象设计更灵活、优雅, 最终复用性更好。它们帮助设计者将新的设计建立在以往工作的基础上,复用 以往成功的设计方案,这就是通常所说的设计模式。 将面向对象软件的设计经验作为设计模式记录下来,每一个设计模式系统 地命名和解释了面向对象系统中一个重要的和重复出现的设计。设计模式使人 们可以更加简单方便地复用成功的设计和体系结构,帮助做出有利于系统复用 的选择,避免设计伤害了系统复用性。 一般而言,一个模式有四个基本要素: ( 1 ) 模式名称( p a t t e r nn a m e ) 描述一个助记名,它用一两个词来描述模式的 问题、解决方案和效果。基于一个模式词汇表,开发者之间就可以讨论模式并 在编写文档时使用它们。模式名可以帮助人们思考,便于我们与其他人交流设 计思想及设计结果。找到恰当的模式名也是设计模式编目工作的难点之一。 ( 2 ) 问题( p r o b l e m ) 描述应该在何时使用模式。它解释了设计问题和问题存 9 武汉理工大学硕士学位论文 在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等;也可 能描述了导致不灵活设计的类或对象结构。 ( 3 ) 解决方案( s o l u t i o n ) 描述设计的组成成分、它们之间的相互关系及各自 的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解 决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述 和怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 ( 4 ) 效果( c o n s e q u e n c e ) 描述模式应用的效果及使用模式应权衡的问题。软 件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复 用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性 或可移植性的影响。 许多程序都需要可视化接口,这些可视化接口的增加会体现出o o d 设计的 不足,使得一个好的面向对象的设计走向反面。可视化接口有三个方面可能会 给应用开发带来困难: ( 1 ) 可视化接口提高了传统的面向操作的拓扑结构。 ( 2 ) 用户接口通常对于同样的信息经常会需要许多不同的显示。 ( 3 ) 可视化接口在整个设计阶段还会进行较大的改变。 用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进 行操作和i o 交互的作用。用户希望保持交互操作界面的相对稳定,但更希望根 据需要改变和调整显示的内容和形式。例如,要求支持不同的界面标准或得到 不同的显示效果,适应不同的操作需求。这就要求界面结构能够在不改变软件 的功能和模型情况下,支持用户对界面构成的调整。 m v c ( m o d e l v i e w - c o n t r o l l e r ) 是一种交互界面的结构组织模式,是x e r o x p a r c 在八十年代为编程语言s m a l l t a l k 8 0 发明的一种软件设计模式。m v c 模 式允许一个开发者将一个可视化接口连接到一个面向对象的设计中,而同时还 可以避免我们上面讨论的几个问题。通过创建模型( m o d e l ) 、视图( v i e w ) 和控制 器( c o n t r o l l e r ) 三个层,m v c 将面向对象的设计与可视化接口分开【5 1 。 2 2 2m v c 的设计方式 一个以m v c 为架构的系统包含了很多的设计模式,但是与m v c 最为密切 相关的是下面三种:o b s e r v e r ,c o m p o s i t e 和s t r a t e g y ( 1 ) o b s e r v e r 模式: 1 0 武汉理工大学硕士学位论文 m v c 通过使用定购通知的方式分离模型和视图。视图要保证自己能正确地 反映出模型的内容和状态。一旦模型的内容发生变化,必须有一个机制来使得 模型能够通知相关的视图,使得相关的视图可以在适当的时机刷新数据。这个 设计还可以解决更一般的问题,将对象分离,使得一个对象的改变能够影响到 另一些对象,而这个对象并不知道那些被影响的对象的细节。这就是被描述为 o b s e r v e r 的设计模式1 6 j 。 o b s e r v e r 设计模式定义对象间的一对多的依赖关系,当一个对象的值或状态 发生改变时,所有与它有依赖关系的对象都得到通知并自动更新。某一数据可 能有多种显示方式,并且可能同时以不同的方式显示。当通过某一种方式改变 了数据,那么其他的显示都应该能立即知道数据的改变和做相应的调整。图2 1 给出了o b s e r v e r 设计模式的体系结构。 图2 1o b s e r v e r 设计模式 ( 2 ) c o m p o s i t e 模式: m v c 的一个重要特征就是视图可以嵌套。嵌套的组合视图可用于任何视图 可用的地方,而且可以管理嵌套视图。这种思想反映出将组合的视图与其组件 平等对待的设计。这种设计思想在面向对象领域内被描述成为c o m p o s i t e 的设计 模式。 c o m p o s i t e 模式将对象组合成树形结构以表示“部分一整体”层次结构,使组 合对象的使用和单个对象的使用具有一致性。图2 2 给出了c o m p o s i t e 设计模式 的体系结构。 武汉理工大学硕士学位论文 ( 3 ) s t r a t e g y 模式: m v c 的另一重要特征是可以在不改变视图本身的情况下而改变视图对用户 输入的响应方式。这对一个经常需要变更响应方式的系统来说是非常重要的。 m v c 把响应方式封装在控制器中,视图使用控制器子类的实例来实现一个特定 的响应策略。要实现不同的响应策略,只要用不同种类的控制器实例替换即可。 还可以在运行时刻通过改变视图的控制器来改变视图对用户输入的响应策略。 这种视图一控制器的关系被描述为s t r a t e g y 设计模式的一个例子。 s t r a t e g y 模式定义了一系列的算法,并且把它们封装起来,使它们可以互相 替换,使得算法可以独立于使用它的客户端而替换。图2 3 给出了s t r a t e g y 设计 模式的体系结构。 图2 2c o m p o s i t e 设计模式 图2 3s t r a t e g y 设计模式 1 2 武汉理工大学硕士学位论文 2 2 3m v c 模式结构 m v c 模式提供了一种按功能对各种对象进行分割的方法,强制性的使应用 程序的输入、处理和输出分开,其目的是为了将各对象间的耦合程度减至最小。 使用m v c 的应用程序被分成三个核心部件:模型、视图、控制器。它们各自处 理自己的任务。 视图( v i e w ) 代表用户交互界面,对于w e b 应用来说,可以概括为h t m l 界 面,但有可能为x h t m l ,x m l 和a p p l e t 。随着应用的复杂性和规模性,界面的 处理也变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计模式对于 视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视 图上的业务流程的处理。比如一个订单的视图只接受来自模型的数据并显示给 用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型( m o d e l ) 就是业务流程、状态的处理以及业务规则的制定。业务流程的 处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的 处理结果。业务模型的设计可以说是m v c 最主要的核心。如前所述的e j b 就是 一个典型的模型应用的例子,按这种模型设计就可以利用某些技术组件,从而 减少了技术上的困难。m v c 并没有提供模型的设计方法,而只告之应该组织管 理这些模型,以便于模型的重构和提高重用性。业务模型还有一个很重要的模 型那就是数据模型。数据模型主要指实体对象的数据保存和读取。比如将一张 订单保存到数据库,或从数据库获取订单。可以将这个模型单独列出,所有有 关数据的操作只限制在该模型中。 控制器( ( c o n 舡d l l 啪可以理解为从用户接收请求,将模型与视图匹配在一起, 共同完成用户的请求。控制器就是一个分发器,选择什么样的模型和视图,可 以完成什么样的用户请求,都由它决定。控制器并不做任何的数据处理,它接 受用户的输入并调用模型和视图去完成用户的需求。所以当单击w e b 页面中的 超链接和发送h t m l 表单时,控制器本身不输出任何东西和做任何处理。它只 是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显 示模型处理返回的数据【6 j 。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果 用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视 图都应反映出这些变化。因此,无论何时发生了何种数据变化,控制器都会将 变化通知所有的视图,导致显示的更新。图2 4 给出了m v c 的结构图。 武汉理工大学硕士学位论文 选 择 视 图 控制器 发送用户请求 发送请求到模型 选择视图来响应 爨息崔 用户界面信息 ii 交互用户i 请求模型厂= = 用 户 请 求 业 务 处 理 模型 业务流程处理 业务状态改变 图2 4m v c 结构图 实现基于m v c 的应用需要完成以下流程,图2 5 给出了主要流程 分析应用问题,对系 i统进行分离 之乡 设计和实现每个视图 之乡 设计和实现每个控制器 之乡 使用可安装和卸载的控制器 图2 5m v c 模式的主要流程 ( 1 ) 分析应用问题,对系统进行分离。分析应用问题,分离出系统的内核 功能、对功能的控制输入、系统的输出行为三大部分。设计模型部件使其封装 内核数据和计算功能,提供访问显示数据的操作,提供控制内部行为的操作以 及其他必要的操作接口。以上形成模型类的数据构成和计算关系。这部分的构 成与具体的应用问题紧密相关。 ( 2 ) 设计和实现每个视图。设计每个视图的显示形式,它从模型中获取数 据,将它们显示在屏幕上。 ( 3 ) 设计和实现每个控制器。对于每个视图,指定对用户操作的响应时间 1 4 武汉

温馨提示

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

评论

0/150

提交评论