




已阅读5页,还剩55页未读, 继续免费阅读
(管理科学与工程专业论文)基于mvc模式的corbaweb框架的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于删c 模式的c o r b a - w e b 框架的研究与应用摘要随着软件技术的飞速发展,w e b 技术和c o r b a 技术已经成为研究和发展的主流方向。w e b 可以提供友好的用户界面,但无法胜任大规模的业务逻辑计算。而作为分布式对象技术的c o r b a 组件可以提供大规模的独立的分布式计算,因此将c o r b a 技术应用到w e b 环境中,发挥两者的优势,有利于开发优于传统b ,s 结构的应用平台。本文首先综述了c o i 出a 中间件和s t r u t s 框架技术。其次,研究了s t r u m框架与c o r b a 集成的目的和策略,给出了基于s t r u t s 框架和j a v a 反射机制构建w 曲层与综合利用多种设计模式构建业务层的集成框架和方法,并通过s t r u t s框架的a c t i o n 类作为连接表示层和业务层的适配器,把表示层和业务层有机的结合到一起,使得表示层和业务层之间有着明确的分工与协作,降低表示层和业务层之间耦合度,提高软件的性能和可重用性,以满足大型系统的开发。最后以电子商场购物系统为例,应用本文给出的s t r u t s 与c o r b a 的集成框架和方法,构建了一个可重用、可维护和易扩展的w e b 应用,进一步说明如何应用本文给出的s t r u t s 与c o r b a 的集成框架和方法。关键词:c o r b a ;m v c ;设计模式:s t m t s ;j a v a 反射机制i i ir e s e a r c ha n da p p l i c a t i o no fc o r b a - w e bf r a m e w o r kb a s e d o nm v ca b s t r a c tw i t ht h ef a n t a s t i cd e v e l o p m e n to fs o f t w a r et e c h n o l o g y ,w e ba n dc o r b aa r et h et w oh o ts p o t s w h i c hm a k ep e o p l ed e v e l o pa n dr e s e a r c h w r e bp r e s e n t sp e o p l ew i t hf r i e n d l ya n dc o n v e n i e n tl l $ 。ri n t e r f a c e b r a ti te a f f tc o m p l e t el a r g e - s c a l eb u s i n e s sc o m p u t i n g c o r b ac o m p o n e n tc a np r o v i d el a r g e - s c a l ei n d e p e n d e n td i s l r i b u t e dc o m p u t i n ga sad i s t r i b u t e do b j e c tt e c h n o l o g y w ea p p l yc o r b at e c h n o l o g yt ot h e强,e be n v i r o n m e n ta n dm a k eu s eo ft h e i ra d v a n t a g e st h a tc a np r o d u c eab e t t e ra p p l i c a t i o np l a t f o r mt h a nt h et r a d i t i o n a lb ss t r u c t u r e t h et h e s i sf i r s td e s c r i b e sc o r b am i d d l e w a r ea n ds t r u t sf r a m e w o r k , t l l 吼f o c u so ni n t r o d u c i n gt h eo b j e c t i v ea n ds t r a t e g yo ft h ei n t e g r a t i o ns t o a t sf r a m e w o r kw i t hc o r b ac o m p o n e n t am e t h o da n di n t e g r a t i o nf r a m e w o r kc o m p o s i n gw e bt i e rw h i c hi sb a s e do ns t r u t sf r a m e w o r k & j a v ar e f l e c t i o na n db u s i n e s st i e rw h i c hi sb a s e do nt h em u l t i p l ed e s i g n - p a t t e r n si sp r o p o s e d w ec o m b i n eb u s i n e s sl a y e ra n dt h el a y e rt o g e t h e rb yt h es t r u t sf r a m e w o r kc l a s sa c t i o nc l a s sw h i c hi saa d a p t e rc o m b i n i n gw 曲t i e ra n db u s i n e s st i e rt om a k et i e ra n dt i e rw i t had e a rd i v i s i o no fl a b o r , l o w e rt h et i e rc o u p l i n g ,i m p r o v et h es y s t e mp e r f o r m a n c ea n dr e u s a b i l i t y ,s u i t a b l ef o rl a r g e s c a l es y s t e md e v e l o p m e n t f i n a l l yw ea p p l yt h i si n t e g r a t i o nf r a m e w o r kt oe l e c t r o n i cm a l l a n df u r t h e ri l l u s t r a t et h et h em e t h o da n dt h es t r u t s & c o r b ai n t e g r a t i o nf r a m e w o r kw h i c hi sp r e s e n t e di nt h i st h e s i s k e yw o r d s :c o r b a ;m v c ;d e s i g np a t t e r n s ;s t r u t s ;j a v ar e f l e c t i o n插图清单图2 - 1s t r u t s 实现的m v c 框架7图2 - 2a c t i o n f o r mb e a n 的作用图2 30 m g 对象管理体系结构o m a 1 0图2 - 40 r b 体系结构1 1图3 1s t r u t s + c o r b a 框架体系结构1 6图3 - 2 业务层使用的设计模式1 9图3 3 客户端生成订单过程2 0图3 - 4c o r b a 外观模式2 1图3 5c o r b a 外观模式在性能上的优势2 2图3 - 6 服务器定位器模式2 5图3 7 非值对象传输2 6图3 - 8 值对象传输图3 - 9 业务代理模式结构图2 8图4 1 前台功能结构图4 0图4 - 2 在线购物流程图4 l图4 3 电子商城关系数据模型4 2图4 - 4 主界面4 9图4 5 订单信息界面4 9图4 - 6 收银台界面5 0v i独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得金壁王些叁堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。学位论文作者签名:她0柳岬年n 彤学位论文版权使用授权书本学位论文作者完全了解金墅王些太堂有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金胆王业盘堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书)学位论文签字日期学位论文作者毕业后去向:工作单位:通讯地址:导师签名:锄目签字日期:印年z 月d 日电话:邮编:嗣罐致谢值此论文完成之际,衷心地向辛勤培育我的导师李兴国教授表示崇高的敬意和深深的感谢。三年来,李老师在学习、生活和工作上给了我无微不至的关心和帮助,我所取得的每一点成绩都倾注了恩师的大量心血,使我毕生难忘。从论文的选题、构思到撰写以及修改完成都得到了李老师的指导、关心和支持。李老师渊博的知识、严谨与实事求是的治学态度、高深的学术造诣、敏锐的学术思想、忘我的工作精神、以及诲人不倦的师者风范是我终身学习的楷模。感谢合肥工业大学管理学院杨善林、倪志伟、何建民、钟金宏、刘心报、梁昌勇、杜习英、卢光松、杨颖、顾东晓等老师对我的关心、指导和帮助,他们的教诲为本文的研究提供了理论基础,并创造了许多必要条件和学习机会。在三年的研究生生活中,王靓、宁平、王炎、刘勇、林晓华、顾兢晶、舒艳华、石勇、李旭军、张炳明、龚芳、周志纯、张薇等同学在学习上和生活上也给予我很大的帮助,在此一并谢过!感谢父母的养育之恩和亲人对我的支持! 感谢各位评审专家在百忙中抽出时间对论文进行了仔细的评阅。v作者;许玉龙2 0 0 7 年5 月2 2 日第一章绪论随着软件技术的不断发展,作为分布式计算的两种主要技术i n t e r n e t 技术和分布式对象技术已经成为研究和发展的方向【l j 。分布式技术的主流技术之一是l m e m e t 技术。互联网技术( w w w 或w e b技术) 是i n t e m e t 技术最成熟的技术之一。w e b 技术将浏览器这一标准作为用户和系统的接口,消除了图形用户界面的开发、安装和维护,这是它的一个巨大优势。并将遍布于i n t e m e t 网络中各种异构数据结构集成在一起,形成全世界信息共享。分布计算的主流技术的另一技术便是分布对象技术。分布对象计算的组成是分布计算和对象模型,是面向对象技术在网络上的拓展。它具有开发快速,成本较低以及应用软件灵活性较高等优点。分布对象技术已成为建立网络软件应用框架的核心技术。目前,由三项标准构成了分布对象技术的主流:对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 推出的c o r b a ,微软推出的c o m 仍c o m 以及s u n 公司的j a v ar m i 。c o r b a 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整且先进,独立于系统平台和开发语言,被支持程度广泛的特点,己逐渐成为分布计算技术的标准。与其他两项技术相比,c o r b a技术推出时间最早,规范最全,以及平台无关性较好,在实际应用中占据着相当大的比例,在开发大型分布式应用系统中表现出强大的生命力。由于c o r b a提供了上述的种种优点,因此它成为分布式应用开发者的主要选择之一。1 1 课题研究背景与意义c o r b a 规范在提出以后,几经补充和完善以适应不断变化和发展的计算机相关技术。但是,毕竟c o r b a 的方案早在1 9 8 9 年就已经开始制定,在现今新的技术环境下,它本身在某些方面也暴露出来一些缺点和不足。c o r b a 技术是出于对局域网分布对象技术的应用而提出的,其规范本身并没有涉及太多i n t e r n e t 上的应用。这样,i n t e m e t 的用户就不能够通过互连网络异地访问c o r b a系统。这在一定程度限制了c o r b a 系统的推广应用,在这种情况下,分布式应用被局限在局域网环境下。而我们可以看到i n t e m e t 的形成和发展就是以分布式、开放性和平台无关性为基础,这是i n t e m e t 与生俱来的属性。基于i n t e m e t 这些天生的优点正好可以弥补了c o r b a 分布式中间件技术的不足,故将c o r b a 分布式对象技术与w e b 技术( i n t e m e t 技术中的一种主要技术) 相结合显得非常的有价值。c o r b a 分布对象技术与w 曲之间的结合使得w e b 的应用发展到了一个新的阶段:动态应用发布阶段。浏览器和服务器不仅将各种超媒体信息提供给用户,而且能够使用户通过w e b 浏览器自由地访问分布在网络上的由对象组成的各种应用,从而真正实现网络计算。分布对象技术成为这一阶段w e b 应用开发的基石,这种新的w e b 体系结构被称为w e b 对象计算,相对于原有的两层客户服务器结构,它一般分为三层,客户层、业务层、数据层。这种三层的体系结构,由于以分布对象技术为基础架构,增加了应用层,将客户与数据资源分隔开,降低了w e b 服务器的负载,避免了w e b 服务器的性能缺陷对整体性能的影响。这种c o r b a 与w e b 体系结构的优点有【2 1 :( i ) c o r b a 技术是一个完整的、开放的、稳定的分布对象计算体系。( 2 ) c o r b a 的“即插即用”的“软件总线”特性,为w w w 创建了一个面向对象的软构件环境,使得在开发新的w e b 应用时非常方便。( 3 ) c o r b a 作为一种通用的分布系统开发平台,为应用程序开发者屏蔽了数据编码、网络传输、对象定位等许多网络编程细节。( 4 ) c o r b a 本身规定了一整套的对象服务,如名字服务、安全服务、消息服务等,这些服务可以被c o r b a w e b 环境中的各种应用所使用,从而达到增强其功能和性能的目的。c o m j a 和w c b 的结合,构架出真正的三层体系结构,大大方便了w w w应用程序的开发、发布和维护,有助于在w w w 上建立分布对象环境,推动w w w 进入动态的应用发布阶段,从而极大地提高了w w w 的分布计算能力。这种三层的体系结构,以分布对象技术为基础构架,增加了应用层,将客户层与数据层隔开,降低了w e b 服务器的负载,避免了w e b 服务器的性能缺陷对整个性能的影响。并且具有连接缓冲,负载均衡,安全管理等功能,从而提高了w e b 应用整体的灵活性,可伸缩性,可扩展性。目前大多数的c o r b a _ w 曲体系结构的解决方案主要两种:( 1 ) 通过a p p l e t 调用c o r b a 组件客户端首先从w e b 服务器中下载a p p l e t ( 客户小应用程序) 和j a v a o r b 类库( 提供c o r b a 客户端运行环境) ,a p p l e t 查找该对象的相应的s t u b ,并通过该s t u b 向本地的o r b 核心发出请求,本地o r b 再通过i i o p 协议与远程o r b 进行通信,远端o r b 核心将请求发送给相应的对象适配器,对象适配器在调用相应的c o r b a 伺服程序。这种方法优点有:服务器端应用配置灵活,应用集成无需配置到w e b 服务器所在的节点上,因而不会增加服务器的开销;由于a p p l e t s 与服务方的c o r b a 对象间使用i i o p 协议交互,因此可以利用o r b的并发和多线程机制对多个并发请求进行响应,提高服务器的处理能力;采用这种典型的c o r b a i i o p 的w e b 计算体系结构可以保证系统的可移植性、互操作性和可复用性,以及高可扩展性。然而这种方法最主要的缺点就是客户端网络传输负载很大,必须下载大量的a p p l e t 代码、o r b 类库和i i o p 通信开销,缺乏真正的可用性。另外由于i i o p 通信到目前为止没有统一的防火墙标准,这2也限制了其在i n t e r a c t 上的广泛使用。( 2 ) 通过j s p 文件中内嵌的j a v a 代码调用c o r b a 组件即在j s p 代码中直接嵌入调用c o r b a 组件完成相应操作的j a v a 代码。这种方式,当j s p 被翻译成s e r v l e t 时,j a v a 代码会被插入到生成的s e r v l e t 中。导致程序的可读性极差,且不易维护和调试。而且当用户对页面的要求有所变化时,往往会导致对一个对方的修改而其它多处地方也要进行相应的修改,甚至还会涉及到对核心代码的修改,造成了实际开发工作量的增大。再者这种方法使得h t m l 语言和j a v a 代码混合在一起,使得表示层和业务处理紧密的耦合在一起不利于代码的维护和扩展,所以这不是一个好的方法。基于以上两种方法的不足,本文提出了s t r u t s + c o r b a 集成框架,它是基于目前比较流行的m v c 模式的开发框架。s t r u t s 框架是m v c 设计模式的一种具体实现,这种框架的优点是将系统分为模型、视图、控制三个模块,三个模块相互独立,任何一个模块的改变都不会影响其它的模块,降低了模块之间的耦合,提高了模块的可重用性和可伸缩性。w e b 层由s t r u t s 框架实现,关键业务核心在c o r b a 的服务层实现,两种技术的结合,形成适合于大型b s 系统的开发。所以将s t r u t s 框架与c o r b a 技术集成是非常有意义的。s t r u t s 是m v c 设计模式的一种实现,它是一个框架而不是一个库,但也包含了丰富的标记库和独立于该框架工作的实用程序类,而且其标记库具有强大的的页面开发功能,因此近年来被越来越多地运用于很多大型系统,成为应用开发中最为流行的框架之一。s t r u t s 中使用的是一个m o d e l 2 应用程序框架,这种框架也就是所谓的模型一试图一控制器设计模式。“m o d e l ”代表的是应用的业务逻辑( 通过j a v a b e a n ,e j b 组件,c o r b a 等组件实现) 。“v i e w ”是应用的表示( 由j s p 技术产生) 。“c o n t r o l l e r ”是提供应用的处理过程控制( 一般是一个s e r v l e t ) 。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件。s t r u t s 框架的优点表现在以下几个方面 3 1 1 4 1 :( 1 ) 具有采用m v c 设计模式的所有可获得的特性和优点,很好地体现了m v c 设计模式的基本原理,对于想开发自己的m v c 框架的开发人员也是学习的好例子;( 2 ) 提供了一个方便的方法对应用程序的信息进行国际化;( 3 ) 设计良好、功能强大的标记库,并且这些标签库有比较详尽的说明文档,使用这些标签库可以减少j s p 页面上杂乱无章的j a v a 代码,便于页面开发人员和j a v a 开发人员的分工;( 4 ) s t r u t s 框架是可重用的、源代码开放的基础性架构,利用它可以显著的缩短应用的开发周期、降低开发的成本和投资,而且并不存在任何的侵权问题;( 5 ) 提供了灵活的机制来处理错误和异常;( 6 ) s t r u t s 具有页面导航功能,通过一个配置文件控制整个系统各部分的联系,使系统的脉络更加清晰,这对于后期的维护非常有好处。c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,通用对象请求代理体系结构) 是由o m g ( o b j e c tm a n a g e m e n tg r o u p ,对象管理组) 组织制订的中间件技术的标准,它在整个中间件领域内占有举足轻重的地位,从某种程度上说,它代表了中问件发展的方向。c o r b a 是分布式平台中安全的、事务性的、可伸缩性的商业组件模型,特别适合于封装应用的业务逻辑和核心数据并作为应用的m o d e l 组件,作为当今主流的服务器端组件体系结构c o r b a 具有以下的特点嘲:( 1 ) 引入代理( b r o k e r ) 概念。代理起到如下作用:完成对客户方提出的抽象服务请求的映射;自动发现和找到服务器;自动设定路由,实现服务方程序的执行。( 2 ) 客户方程序与服务方程序完全分离。与传统的客户服务器方式有很大的不同,客户将不再与服务方发生直接的联系,而仅需要与代理发生联系,客户与服务器方都可方便升级。( 3 ) 提供软件总线机制。任何应用系统只要提供符合c o r b a 系统定义的一组接口规范,就可以方便的集成到c o r b a 系统中,这个接口规范独立于任何实现语言和环境。因此,客户应用与服务对象之间可以透明地交互运行,实现应用软件在软件总线上的即插即用。( 4 ) 分层的设计原则和实现方式。c o r b a 系统的底层核心是一个精练的系统,各种复杂系统和应用可以由核心扩展和延伸。( 5 ) 跨平台性。由于c o r b a 规范中定义了i d l 语言这一与平台无关的语言,并引入代理( o r b ) 概念,因此c o r b a 应用具有较好的跨平台性。( 6 ) 互操作性。c o r b a 在客户和服务器之间提供了两层可操作性。一方面它将客户与服务器都抽象为对象,所有功能都封装在对象内部,对外提供简单的接口,可被其它对象以动态或静态方式调用。另一方面,对象间的通信是通过o r b 代理实现,对象不必关心细节,由o r b 定址发送请求。从以上s m u t s 框架和c o r b a 组件的各自的特点,如果集成s t r u t s 框架和c o r b a 组件,就可以综合利用两者的优势,从而高效、快速的构建出一个可维护、易扩展的i v i v c 模式应用。1 2 论文的组织结构本课题的方向是研究将s t r u t s 框架与c o r b a 组件技术如何有效的集成起来,其核心就是综合利用多种设计模式构建业务层,基于s t r u t s 框架和j a v a反射机制构建w e b 层,降低模块之间的耦合度,提高系统的性能和可重用性。该集成框架使得w e b 层和业务层逻辑上在一起,物理上可以分布在不同的机器上,有利于减轻w e b 服务器的负担。本文共分五个部分,结构组织如下:4第一章绪论,论述了本课题的研究背景,问题来源及本课题意义。第二章s t r u t s 框架和c o r b a 技术,首先介绍了s t r u t s 结构和工作流程,其次介绍了c o r b a 的发展历程、c o r b a 的体系结构以及c o r b a 系统开发的一般过程。第三章s t r u t s 框架和c o r b a 的集成研究,本章是全文的重点,具体详细的说明了s t r u t s 框架和c o r b a 的集成的方案策略,首先研究将多种设计模式运用到c o r b a 中去实现业务层以提高系统的性能,并给出了具体实现,接下来探讨了w e b 层的构建,并在w e b 层构建中使用了j a v a 反射机制以减少了重复代码的编写。第四章实例分析,介绍一下电子商城的功能图以及系统用户购物的工作流程然后把第三章中设计出来的集成框架运用到电子商城系统中去。第五章总结和展望,对全文进行总结并对相关技术的发展情景作了展望。第二章s t r u t s 框架和c o r b a 技术近年来,软件复用已经成为软件工程领域中最重要的目标之一。s t r u t s 框架与c o r b a 技术在软件框架和构件方面已被大量实例证明是有效的软件复用技术,本章将重点介绍s t r u t s 框架的和c o r b a 技术的结构体系、工作原理,为下一章s t r u t s 与c o r b a 的集成奠定了一个理论技术基础。2 1s t r u t s 框架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 xp a r c 在八十年代为编程语言s m a l l t a l k - 8 0 所发明的一种软件设计模式,它为开发交互式应用系统提供了一个优秀的模式,是一种目前广泛流行的软件开发设计模式。随着网络应用的快速发展,使用m v c 设计模式设计开发w e b 应用软件的优势也慢慢地呈现出来,大多数的w e b 层应用框架都可以使用不同类型的m v c 设计模式f 7 l 。m v c 模式利用控制器来分离模型和视图,达到层与层之间松耦合的效果,能够有效地解决在w e b 应用系统开发过程中由于系统结构的复杂程度较高而带来的诸多关键性问题,m v c 模式己被推荐为s u n 公司j 2 e e 平台的设计模式,基于m v c 模式的j 2 e e 应用开发在实际应用中,受到越来越多的欢迎。在最初的j s p 网页中,像数据库查询语句这样的数据层代码和像h t m l 这样的表示曾代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心地计划和不断地尝试。然而m v c 能从根本上强制性地将他们分开,具有设计清晰、模块设计和代码的可重用性、功能强大的用户界面、有利于软件工程化管理等优点1 8 。但实际开发过程中,直接通过编码的方式实现m v c 模式,工作量是十分巨大的。如果能够找到一种基于m v c 设计模式韵,现有的、开放源码的开发框架,将其应用到实际开发中来,必定会起到事半功倍的作用。s t r u t s 框架就是这样一个完全实现m v c 模式的、开放源码的开发框架。2 1 1s t r u t s 框架结构体系s t r u t s 实质上就是在j s pm o d e l 2 的基础上实现的一个m v c 框架。在s t r u t s框架中,模型由实现业务逻辑的j a v a b e a n 或e j b 组件构成,控制器由a c t i o n s e r l e t和a c t i o n 来实现,视图由一组j s p 文件构成。如图2 - 1 显示了s t r u t s 实现的m v c框架【9 1 。( 1 ) 视图视图就是一组j s p 文件。在这些j s p 文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的j s p 标签或客户标签,如s t r u t s 标签库中的标签。6图2 - 1s t r u t s 实现的m v c 框架此外,通常把s t r u t s 框架中的a c f i o n f o r mb e a n 也化分到视图模块中。a “o l l f o 珊b e a n 也是一种j a v a b e a n ,除了具有一些j a v a b e a n 的常规方法,还包含一些特殊的方法,用于验证h t m l 表单数据以及将其属性重新设置为默认值。s t r u t s 框架把用户输入的表单数据保存在a c t i o n f o 衄b e a n 中,把它传递给控制器,控制器可以对a c t i o n f o r mb e a n 中的数据进行修改,j s p 文件使用s t r u t s 标签读取修改后的a c t i o l l f o 姗b e a n 的信息,重新设置h t m l 表单。图2 - 2a c t i o n f o r mb e a n 的作用( 2 ) 模型模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由j a v a b e a n 或e j b 组件来实现。( 3 ) 控制器控制器由a c t i o n s e r l c t 类和a c t i o n 类来实现。a c f i o n s e r l e t 类是s t r u t s 框架中的核心组件。a c t i o n s e r l e t 继承了j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,它在m v c 模型中扮演中央控制器的角色。a c t i o n s e r l e t 主要负责接收h t t p 请求信息。根据配置文件s t r u t s - c o n f i g x m l 的配置信息,把请求转发给适当的a c t i o n 对象。如果该a c t i o n 对象不存在,s t r u t s c o n f i g x m l 会先创建a c t i o n 对象。a c t i o n 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。对于小型简单的应用,a c t i o n 类本身也可以完成一些实际的业务逻辑。对于大型应用,a c t i o n 充当用户请求和业务逻辑处理之间的适配器( a d a p t o r ) ,其功能就是将请求与业务逻辑分开,a c t i o n 根据用户请求调用相关的业务逻辑组件。业务逻辑由j a v ab e a n 或e j b 来完成,a c t i o n 类侧重于控制应用程序的流程,而不是实现应用程序的逻辑。通过将业务逻辑放在单独的j a v a 包或e j b 中,可以提高应用程序的灵活性和可重用性。当a c t i o n s c d c t 控制器收到用户请求后,把请求转发到一个a c t i o n 实例。如果这个实例不存在,控制器会首先创建它,然后调用这个a c t i o n 实例e x e c u t e 0方法。a c t i o n 的e x e c u t e 0 方法返回a c t i o n f o r w a r d 对象,它封装了把用户请求再转发给其它w e b 组件的信息。用户定义自己的a c t i o n 类,即a c t i o n 基类的子类时,必须覆盖e x e c u t e 0 方法。再a c t i o n 基类中该方法返回n u l l 。2 1 2s t r u t s 框架工作流程对于采用s t r u t s 框架的w e b 应用,在w e b 应用启动时就会加载并初始化a c t i o n s e r v l c t ,a c t i o n s e r v l c t 从s t r u t s c o n f i g x m 文件中读取信息,把他们存放到各种配置对象中,例如a c t i o n 的映射信息存放在a c t i o n m a p p i n g 对象中。当a c t i o n s e r v l c t 接收到一个客户请求将其如下流程:( 1 ) 检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不在,就返回用户请求路径无效的信息。( 2 ) 如果a c t i o n f o r m 实例不存在,就创建一个a c t i o n f o r m 对象,把客户提交的表单数据保存到a c t i o n f o r i n 对象中。( 3 ) 根据配置信息决定是否需要表单验证。如果需要验证,就调用a c t i o n f o i 1 1 1 的v a l i d a t e 0 方法。( 4 ) 如果v a l i d a t e 0 方法返回n u l l 或返回一个不包含a c t i o n m e s s a g e 的a t i o n e r r o r s 对象,就表示表单验证成功。( 5 ) a c t i o n s c r v l c t 根据a c t i o n m a p p i n g 实例包含的映射信息决定将请求转发给哪个a c t i o n 。如果相应的a c t i o n 实例不存在,就先创建这个实例,然后调用它的e x e c u t e 0 方法来处理业务逻辑。( 6 ) a c t i o n 的e x e c u t e 0 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再把客户请求转发给a c t i o n f o r w a r d 对象指向的j s p 组件。( 7 ) a c t i o n f o r w a r d 对象指向的j s p 组件生成动态网页,返回给客户。2 2 c o r b a 技术8分布对象技术已经发展成为当今分布式异构环境下建立应用系统集成框架和标准构件的核心技术。其中,最突出的技术之一就是c o r b a 技术。由于c o r b a 技术在开放性、先进性、完整性、连续性和成熟程度、异构平台之间的平稳移植方面的突出表现,使其已经成为建立应用框架和软构件的技术标准,在开发大型分布式应用系统中表现出强大的生命力。c o r b a 最终目的是分布式软件集成。c o r b a 即代表了一种软件开发模式、一种软件开发标准,也提供了软件开发必须的服务、可使用的工具集。c o r b a 整体上是由o r b ( 对象请求代理) 、c o r b a 服务、c o r b a 工具集与符合c o r b a 标准的各种应用程序、对象共同综合形成的1 0 l 【1 1 】【1 2 1 。2 2 ic o i a 主要版本的发展历程c o r b a ( c o m m o n0 b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公用对象请求代理结构) 是o m g ( 对象管理组) 提出的一系列有关对象技术的规范之一,它是o m g 发布的o m a ( 对象管理体系) 参考模型的核心o r b ( 对象请求代理)的功能描述与约赳1 3 】。o m g 组建于1 9 8 9 年,它的中心任务是基于实用的对象技术,建立一个体系结构和一组规范,在分布式环境下实现应用的集成,使得基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操作性【1 4 ”】。o m a 是o m g 组织在1 9 9 0 年为实现上述目标而制订的一个以c o r b a为核心o r b 规范的参考模型。o m a 提供了一个完整的体系构架,这个构架以足够灵活、丰富的形式适用于各类分布式系统。1 9 9 0 年1 1 月,o m g 发表对象管理体系指南,初步阐明了c o r b a 的思想。1 9 9 1 年1 0 月,o m g 推出1 0 版,其中定义了接口定义语言( i d l ) 、对象管理模型以及基于动态请求的a p i 和接口仓库等内容。1 9 9 1 年1 2 月,o m g 推出了c o r b a i 1 版,在澄清了1 0 版中存在的二义性的基础上,引入了对象适配器的概念。1 9 9 6 年8 月,o m g 基于以前的升级版本,完成了2 0 版的开发,该版本中重要的内容是对象请求代理间协议( i i o p ,h i t e m e ti n t e r - o r bp r o t o c 0 1 ) 的引入,用以实现不同厂商的o r b 真正意义上的互通。在c o r b a 2 0 规范推出不久c o r b a 2 2 规范问世,从c o r b a 2 2 规范开始,o m g 组织将p o a 规范为服务方对象适配标准。1 9 9 8 年9 月,o m g 发表了c o r b a 2 3 版,增加了支持c o r b a 对象的异步实时传输、服务质量规范等内容。2 0 0 2 年,c o r b a 技术己经发展到3 0 版本。增加了三个主要特性:可移植的对象适配器p o a ( p o r t a b l eo b j e c ta d a p t e r ) ;支持异步方法调用( a s y n c h r o n o u sm e t h o di n v o c a t i o n , a m i 和支持通过值传递对象( o b j e c tb yv a l u e ,o b v ) 。这就使得9c o r b a 支持越来越多的不同的异构系统,越来越具有开放性。2 2 2 对象管理体系结构( o m a )如图2 3 所示为o m g 对象管理体系结构【1 6 1 :图2 0o m g 对象管理体系结构( 1 ) 对象请求代理0 r b ( o b j e c tr e q u e s tb r o k e r ) 。o r b 是对象总线,是c o r b a 体系的核心组成部分,它使对象能在一个分布式环境下透明地建立和接收请求和应答。客户并不需要了解与服务器对象通信、激活、或者存储服务器的内部机制。它是建立分布式对象应用的基础,也是在异构和同构环境中应用之间的交互性的基础。c ) 对象服务( o b j e c ts e r v i c e s ) 。它是与领域无关的( 或水平定向的) 接口,是一个服务集合,用于支持使用和实现对象的基本功能,被用于许多分布式对象的应用程序。( 3 ) 公共设施( c o m m o nf a c i l i t i e s ) 。公共设施是可用于大多数应用领域、面向终端用户的设施,包括分布式文档设施、打印设施、数据库设施、电子邮件设施等。( 4 ) 应用对象( a p p l i c a t i o no b j e c t ) 。为特定应用所开发的界面,是项目开发组的某个特定产品。( 5 ) 领域接口( d o m a i ni n t e r f a c e s ) 。类似于对象服务和通用设施,但针对的是特殊的应用领域,与领域有关。2 2 3o r b 体系结构( 1 ) 对象请求代理( o r b ) 结构c o r b a 规范给出了o r b 的基本结构及其各部分的功能描述,它包括:界面定义语言( i d l ) 、静态调用界面( i d ls t u b ) 、o r b 界面、动态调用界面( d ) 、静态框架界面( s t a t i cs k e l e t o n ) 、动态框架界面( d s i ) 、对象适配器( o b j e aa d a p t e r ) 、界面库( i n t e r f a c er e p o s i t o r y ) 、对象实现库( i m p l e m e n t a t i o nr e p o s i t o r y )1 0和o r b 间互操作协议i i o p 。这些部分的关系如图2 - 4 所示,图中的箭头表示调用或执行关系1 1 7 1 。图2 - 4o r b 体系结构对象请求代理( o i 出) 是o m a 的核心基础设施,c o r b a 规范规定了o r b的标准体系结构。o r b 负责完成查找请求的对象实现、让对象实现准备好接收请求、传递构成请求的数据等任务所需的全部机制。客户程序所看到的对象接口完全独立于对象所处的位置、实现对象的程序设计语言以及对象接口中未反映的其他特性。为调用远程对象实现的一个实例,客户程序必须首先获取一个对象引用。客户程序发出远程调用的方式与本地调用相似,只不过调用的是远程对象实例的对象引用。o r b 检查对象引用,如何发现目标对象是远程的,就将参数打包并通过网络传递给远程对象所在的o r b 。o r b 提供的最基本功能是从客户程序向对象实现传递请求。在逻辑上o r b可理解为一个由o r b 接口定义的服务集合,但在物理上o r b 通常不必实现为一个单独的组件( 例如进程或程序库) 。o r b 内核( o r bc o r e ) 是o r b 最关键的部分,负责请求的通信设施,每一个o r b 产品供应商都有一个自己特有的o r b内核【1 8 】【1 9 1 。( 2 ) i d l 语言和语言映射当采用c o r b a 技术来编写分布式系统时,需要使用接口定义语言( i d l ) 来编写相关的程序接口。在各种情况下,接口定义语言提供了将对象的接口与其实现分离的能力 2 0 1 1 2 1 1 。o m gi d l 是一种说明性语言,它不能用于编写实际的应用程序,与具体的宿主语言无关。它只适用于说明对象的接口,定义用于对象通信的数据类型。i d l唯一的目的是允许对象接口以与任何具体的编程语言无关的形式来定义这些接口。这就强制性地使界面与对象实现分离。这一点是c o r b a 支持异构系统和独立开发的应用程序集成的关键,因为不同的平台经常会支持不同的语言田l 。o m gi d l 不能直接运用到具体的应用程序中去,那么就需要把i d l 描述的特性映射为具体语言的实现,这就是语言映射的任务。到目前为止,o m g 已经为c 、c + + 、s m a l l t a l k 、a d a 9 5 、c o b o l 和j a v a 的语言映射制定了标准。c o r b a通过o r b 和i d l 实现客户与服务端的互操作,它将客户和服务器都抽象成对象,只是规范这些对象的接口定义,而屏蔽了具体实现。客户方与服务器之间的通信由o r b 这个代理来完成,对象不必关心通信的细节。( 3 ) o r b 间的互操作o m g 组织早在1 9 9 1 年就制订了c o r b a l 0 规范,其后又推出了c o r b a i 1和c o r b a l 2 。但是,由于在c o r b a i x 版本的规范中并没有对用于o r b 间通信的消息的数据格式和协议进行规定,每个o r b 软件供应商都不得不开发他们自己的网络协议,或者借用其它分布式系统技术的网络协议,这造成了“孤岛”,给c o r b a 技术、产品的推广和应用带来了极为不利的影响。为了实现o r b 间的互操作,c o r b a 规范还定义了g i o p 协议和i i o p 协议。g i o p ( g l o b a li n t e r _ o r bp r o t o c 0 1 ) 是互操作体系结构的基础,它为o r b 之间的通信规定了传输文法和信息格式。g i o p 简单且易于实现。对任何面向连接的传输协议作极少量的假设后,其上都可以直接建立g i o p 。i i o p ( i n t e m e ti n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南昌校园安全教育主题展厅
- 累积滑移施工方案
- 保险公司营销策略方案
- 景区公众号活动方案策划
- 会计实习报告范文两篇
- 建筑车行坡道分析方案设计
- 会务会展活动施工方案
- 九年级化学第五单元定量研究化学反应第2节化学反应的表示练习试题以及答案(适合鲁教版)
- 城镇雨污管网施工方案
- 2025至2030年中国维生物磷酸酯镁市场分析及竞争策略研究报告
- 中国冠心病康复循证实践指南(2024版)第一部分
- DL∕T 1870-2018 电力系统网源协调技术规范
- 预防导管相关性血流感染(CDC指南解读)
- AQ 1083-2011 煤矿建设安全规范 (正式版)
- FZ∕T 54007-2019 锦纶6弹力丝行业标准
- 2024年江苏省高中学业水平合格性考试数学试卷试题(答案详解1)
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 关于颈椎病介绍
- 膝痹病的中医治疗方案
- Know Before You Go:趣谈“一带一路”国家智慧树知到期末考试答案2024年
- 静疗健康宣教
评论
0/150
提交评论