




已阅读5页,还剩56页未读, 继续免费阅读
(计算机应用技术专业论文)基于easjaguar的多层分布式系统的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于e a s j a g u a r 的多层分布式系统的研究与应用 中文摘要 中文摘要 本文主要研究了e a s j a g u a r 技术以及基于它的多层分布式系统的 基本实现方法,分析了与应用系统整体性能密切相关的连接缓存、数 据更新、生存期和事务管理等诸多问题。接着还探讨t p o w e r d y n a m o c t s w e b 技术和d d e 技术。通过引入面向对象技术和u m l ,本文还探讨了如何 将u m l 应用于多层分布式系统的分析与设计。 基于上述技术基础,结合标识领域的特征,作者研发了方舟标识 管理信息系统l m i s ( l a b e lm a n a g e m e n ti n f o r m a t i o ns y s t e m ) ,并围绕 相关的核心技术及有关的问题进行了研究与应用:提出了基于j a g u a r 技术的后台打印,实现了客户端界面程序的自动更新,利用d d e 技术实 现了基于j a g u a rc t s 的e x c e l 备份数据的动态导入与导出,利用j a g u a r 和数据库技术实现了数据查询的提速。系统采用p b 9 。0 作为程序开发工 具,数据库采用o r a c l e 8 0 。 关键词:e a s j a g u a r 多层体系结构面向对象技术u m l 作者:朱鸿锭 指导教师:孙涌 a b s t r a c tr e s e a r c ha n da p p l i c a t i o no f m u l t i - t i e rd i s t r i b u t e ds y s t e mb a s e do nk a s j a g u a r a b s t r a c t t h eb a s i cr e a l i z a t i o nm e t h o d so fm u l t i - t i e rd i s t r i b u t e d s y s t e mb a s e do nt h et e c h n o l o g yo fe a s j a g u a ra r et h em a i nt o p i c , t h ep r o b l e m ss u c ha sc o n n e c t i n gb u f f e r 、d a t au p d a t e 、1if ecy1e a n dt r a n s a c t i o nm a n a g e m e n tw h i c ha r er e l a t e d t ot h ew h o l e p e r f o r m a n c eo ft h ea p p l i c a t i o ns y s t e ma r ea l s oa n a l y s i s d ,t h e t e c h n o l o g yo fp o w e r d y n a m o c t sw e ba n dd d ea r ea l s od i s c u s s e d b y i n t r o d u c i n go b j e c t o r i e n t e dt e c h n o l o g ya n d n l ,t h em e t h o d sa n d g u i d e l i n e s o ft h e a n a l y s i sa n dd e s i g n o fa p p l y i n gu m li n m u l t i - t i e rd i s t r i b u t e ds y s t e ma r eb a s i c l yd i s c u s s e d b a s e do na b o v et e c h n o l o g y ,a n dc o m b i n e dt h ec h a r a c t e r i s t i c o fl a b e lr e a l m ,t h ea u t h o rd e s i g n e dt h el a b e lm a n a g e m e n t i n f o r m a t i o ns y s t e mo ff a n g z h o ua n ds u r r o u n dp r o b l e mt h a tr e l a t e d c o r et e c h n i q u ea n dr e l e v a n tp r o c e e d sr e s e a r c ha n da p p l i c a t i o n : r e a l i z e dt h eb a c k s t a g e do fp r i n t i n gb a s eo nj a g u a rt e c h n i q u e , r e a l i z e dt h ea u t o m a t i cr e n e w a lo ft h ec u s t o m e r i n t e r f a c e p r o c e d u r e ,m a d eu s eo ft h ed d et e c h n i q u e t or e a l i z e st h ed a t a i m p o r t i n go fe x c e lb a c k u pb a s eo nj a g u a rc t s ,m a d eu s eo fj a g u a r a n dd a t a b a s et e c h n o l o g yt or e a li z e st h eq u i c kd a t as e a r c h i n g ,t h e s y s t e mu s ep o w e r b u il d e r 9 0a sp r o g r a m m i n gp l a t f o r ma n do r a c l e 8 0 a sd a t a b a s e k e y w o r d :e a s j a g u a r m u l t i t i e ra r c h i t e c t u r eo b j e c t o r i e n t e d t e c h n o l o g y u m l 1 1 w r i t t e nb y s u p e r v i s e d z h uh o n g d i n g b ys u ny o n g 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文 不含其他个人或集体己经发表或撰写过的研究成果,也不含为获得苏 州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作 出重要贡献的个人和集体,均己在文中以明确方式标明。本人承担本 声明的法律责任。 研究生签名:二逖日期:口臣! z 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论 文合作部、中国社科院文献信息情报中心有权保留本人所送交学位论 文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论 文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的 保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的 全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:基堕垒叁日期:仨:呈 名:鞴日期:荔f 基于e s j a g l l r 的多层分布式系统的研究与应用 第一章绪论 1 1 研究背景 第一章绪论 本文所研究的标识生产管理系统,是从基于手工管理向计算机网络 管理过渡的产物。由于标识品种繁多,有时一个标识名称就有几种型号。, 标识生产的工序也较为复杂,要经过试样、制版、生产、发货、付款和 采购等步骤,利用手工管理就不能实现数据的实时传送,领导也就不能 掌握生产情况( 试样制版、生产时间、发货情况等) ,客户也就不能了解 产品生产情况。新的标识生产前首先需要进行试样制版,然后经过客户 确认后才能进行生产,对于旧的标识要从历史生产单中进行查找,如果 用手工进行查找可想而知是多么的困难( 目前公司已有近4 万条生产单 记录) ,因此利用网络应用系统进行管理是公司迫切需要解决的问题。 传统的网络应用系统结构是c s 结构,这种结构是指把一个大型的 计算机应用系统变为多个能互为独立的子系统,而服务器便是整个应用 系统资源的存储与管理中心,多台客户机则各自处理相应的功能,共同 实现完整的应用。c s 结构的主要优点是交互性强、响应速度快、利于 处理大量数据,能构造复杂的应用。但是在c s 结构模式中,客户端直接 连接到数据库服务器,由二者分担业务处理,这样体系有以下的缺点: ( 1 ) c 1 l e n t 与s e r v e r 直接连接,安全性低;( 2 ) c l i e n t 程序肥大,并且随 着业务规则的变化,需要随时更新c 1 l e n t 端程序,造成维护工作困难; ( 3 ) 每个c l l e n t 都要直接连到数据库服务器,从而消耗大量本来就紧张 的服务器资源。c s 结构的这些先天不足,随着业务量的变化,出现越 来越多的问题。因此我们可以采用三层结构来缓解以上的问题。 在三层体系结构中,客户机只存放表示层软件,应用逻辑采用专门 第一章绪论 基:t e s j a g u a r 的多层分布式系统的研究与应用 的中间件服务器,后台是数据库。在这种结构中,系统资源被统一管理 和使用。中间件是一种独立的系统软件或服务程序。目前市场上主要的 中间件有c o m + 、c o r b a 、j a g u a rc t s 、t u x e d o 、g o d d e s s 、t - l i n k t - e a s y 、 s i l v e r s t r e a m “。其中j a g u a rc t s 是由数据库厂商s y b a s e 提供的中间件, 由于s y b a s e 有开发大型数据库以及开发工具p o w e r b u i i d e r 的经验,所以 j a g u a rc t s 对数据库有强大的支撑能力,同时,考虑过去p o w e r b u i l d e r 开发的c 1 i e n t s e r v e r 应用,很容易就能把他们转移到三层体系结构中。 随着中间件与w e b 技术的发展,三层b s 体系结构越来越流行。三层 b s 结构的主要优点是分布性强、维护方便、开发简单且共享性强。但 是三层b s 结构也存在着一定的缺点:如响应速度慢,软件的个性化特点 明显降低,难以实现传统模式下的特殊功能要求。例如通过浏览器进行 大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不 便。此外,不能实现复杂的业务流程处理的问题。虽然可以用a c t i v e x 、 j a v a 等技术开发较为复杂的应用,但是相对于发展已非常成熟的c s 系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具 可供使用。 由于本文所研究的标识生产管理系统有一些特定要求:如专用单式 的打印输出、批量数据的导入与导出、个性化设置、复杂试样和生产的 业务流程处理等,如果利用三层b s 体系结构,就不可能很好的解决这 些问题,而借助c s 成熟的技术就能够方便的解决。因此我们可以利用 一种新的多层分布式体系结构,该结构将c s 与b s 进行有效的整合,能 够充分发挥c s 和b s 各自的优点。应该说这种多层体系结构在总体上 优于三层b s 体系结构,特别是对一些有特定需求的应用系统,其优势 就更为明显。为此作者结合多年的实际工作经验,在研究了基于j a g u a r 的多层分布式体系的技术后,利用基于j a g u a r 的多层分布式体系结构进 行了系统的研发,而且对于c s 客户端界面维护困难的问题,本文也给 基于队s j g u a r 的多层分布式系统的研究与应用 第一章绪论 予了很好的解决方案。 目前在多层分布式体系这方面,国外的发展就是将分布对象计算与 w e b 以及嵌入式移动计算结合在一起,另外就是和中间件( 如交易中间 件、通讯中间件等) 的结合。例如d c o m 、c o b r a 新的标准里加入了 i n t e r n e tj 艮务和消息服务,消息服务可以支持异步的方法调用,可以 提高程序的吞吐量,并行能力的加强提高了系统整体的性能,并增加 了系统的灵活性,在这方面,我国和国外的差距还是全面的,应该说 国内一直在跟踪这方面的技术。 经过对市场的调查和查阅了许多文献资料后发现,目前国内在商标 行业方面还没有涉及多层体系结构的应用。如何将多层体系结构应用于 方舟标识管理信息系统的开发中,从而构建出稳健、具有良好扩展性、 易维护性和安全性的网络信息系统。并且如果能在同类行业中获得推 广,将具有很大的现实意义。 1 2 多层分布式构架简介 多层分布式应用体系结构是在两层系统( c s 或b s ) 的基础之上, 增加了应用服务器层,用于封装企业业务规则的这样一种体系结构。 它是在分布式组件技术发展的基础上发展起来的跚。典型的多层分布式 系统的结构。如图1 所示。 图l 典型的多层分布式应用系统 3 第一章绪论 基于e a s j a 6 u a r 的多层分布式系统的研究与应用 多层分布式系统包括数据库服务器、应用服务器、w e b n 务器、客 户端和浏览器。其中业务规则封装在企业组件中,存放在企业服务器中, 客户端程序只需调用企业组件,而无需重新编写程序,提高了程序的重 用性。更改业务规则只需修改企业组件,而不需要对所有的客户端进行 修改。在安全性方面,应用服务器还提供了访问控制机制,使系统有了 更高的安全保证。此外,企业服务器还提供了强大的事务管理机制,在 一定程度上保证了数据的完整性。 在扩展性方面,多层系统的分布式组件可以充分利用多线程以及线 程池、资源池、数据库连接池、对象池等强大功能。分布式技术还提 供了负载平衡和容错能力。在同时访问的用户较多的情况下,服务器 可能会不堪负荷而造成速度缓慢甚至服务失败,此时可以利用负载平 衡和容错能力将负荷平均分配到不同的服务器,将失败的服务转移到 其他的服务器上继续工作。这样增强了系统的稳定性和扩展性,这在两 层系统中是难以实现的。由图1 可知,多层体系结构可将c s 与b s 进行 有效的整合,可以充分的利用各自的优点。 成 本 图2 两层、多层系统的开发、维护成本比较 上图是两层、多层系统的开发、维护成本比较,从中可以看出,多 层系统较两层系统具有较高的开发成本。然而,多层系统较两层系统 却具有较低的维护成本。此外,由于应用服务器、客户端可以分工、同 基于e a s j a g o a r 的多层分布式系统的研究与应用第一章绪论 时进行开发,缩短了开发周期。 1 3 本文的工作 本文通过对标识行业的分析,根据标识行业迫切需要解决的问题, 利用基于e a s j a g u a r 的多层分布式技术,开发了方舟标识管理系统, 并已投入了实际的应用。本论文主要完成了以下工作: 1 分析了标识生产管理的需求,提出了利用基于j a g u a r 的多层分布式 技术进行标识生产管理系统的研发。 2 研究了基于e a s j a g u a r 和p o w e r d y n a m o 的多层分布式系统的基本实 现方法,并分析了与应用系统整体性能密切相关技术。 3 探讨了多层分布式系统的分析与设计方法,并利用统一建模语言 ( u m l ) 进行多层分布式系统的分析与设计。 4 实现了客户端界面的自动升级功能。 5 设计了基于j a g u a r 的多层分布式系统的后台打印。 6 采用d d e 技术,实现了e x c e l 备份数据的导入与导出。 7 利用p b 和o r a c l e 开发了基于j a g u a r 的多层分布式标识生产管理系 统,并已投入了实际应用。 本文的结构如下:第二章介绍了有关的技术背景:第三章介绍了分 布式系统分析与设计方法,并介绍了如何利用这些思想去指导l m i s 的开 发:第四章具体介绍了l m i s 的设计,包括该系统的需求分析,概要设计, 组件设计:第五章详细介绍了几个系统实现的事例:第六章是对整个论 文工作的总结,并提出了几点展望,最后介绍了有关的参考书籍和文献。 第二章技术背景基于e a s j a g u a r 的多层分布式系统的研究与应用 第二章技术背景 2 1j a g u a r 组件三层开发技术 1 概述 j a g u a r c t s ( j a g u a rc o m p o n e n tt r a n s a c t i o ns e r v e r ) 组件事务服务 器是s y b a s e 公司为适应分布式网络应用要求而推出的。目前,该服务器 与动态生成h t m lp a g e 的p o w e r d y n a m o 应用服务器一起,统一在 e a s e r v e r ( e n t e r p r i s ea p p i i c a t i o ns e r v e r ) 这个i n t e r n e t 应用产品框 架下,力求为企业的i n t e r n e t 电子商贸、企业的分布式计算提供完整的、 跨平台的、基于可重用组件的统一解决方案“。 j a g u a rc t s 组件服务器有二种使用方法:一种方法是单独使用,利 用p o w e r b u i l d e r 开发一个客户端程序,通过组件代理对象请求协议、调 用j a g u a rc t s 服务器上的组件方法,访问后台数据库,以此来实现一个 三层( t h r e e t i e r ) 分布式数据库应用系统:另一种方法是与 p o w e r d y n a m o 应用服务器混合使用,首先开发p o w e r d y n a m o 页面脚本,该 脚本中包含调用j a g u a rc t s 中组件的代码,然后由p o w e r d y n a m o 返回 h t m l 执行结果到浏览器,以此实现一个b d j s ( b r o w s e d y n a m o j a g u a r d a t a b a s es e r v e r ) 结构的多层分布式应用系统。本文所研究的方舟标 识管理系统就是一个混合使用的方案。可以说,j a g u a rc t s 是一个通用 的组件运行容器,在其上可部署p o w e r b u il d e r 、j a v a 、c o m a c t i v e x 、 c c + + 开发的组件,供p o w e r b u i l d e r 、j a v a 、c + + 客户端激活调用。另 夕b j a g u a rc t s 可以提供以下服务:透明的客户端会话和组件生存期管理 为程序的开发提供了方便;能够提供高速连接缓存,减少数据库连接次 数,提高运行效率;提供实例池( i n s t a n c ep o o l i n g ) 可以为多个客户端 基于f j 峪j a 6 t j a r 的多层分布式系统的研究与应用 第二章技术背景 高效重复使用组件实例。 多层分布式系统是在客户机服务器技术的基础上发展起来的,其 组件代理请求协议的内部实现是基于c s 机制的。我们采用在三层或多 层架构模式开发企业系统,般基于传统的二层客户j b 务器( c l i e n t s e r v e r ) 模式是不能提供强大的安全访问控制。 2 j a g u a rc t s 三层分布式体系结构 j a g u a rc t s 为基于分布式组件的中间层发布提供了一个应用框架, 其核心部分是一个高性能的组件事务服务器,它提供客户端的连接会 话、访问的安全控制、多线程、与第三层的数据库连接以及事务流的管 理“。我们可以在廉价的单处理机上进行开发工作,然后利用j a g u a r 服务器的平台无关性及可伸缩性,把应用发布到企业级的大、中、小型 多处理机上。 j a g u a rc t s 支持发布p o w e r b u i l d e r 、j a v a 、a c t i v e x 、c c + + 等组 件到中间层事务服务器上,而客户端则使用c o b r a 协议访问组件,这些 客户端可包括p o w e r b u i l d e r 、j a v a 等开发应用程序。e a sj a g u a r n 艮务器 内置了p o w e r b u i l d e r 虚拟机,使得p o w e r b u i i d e r 与e a sj a g u a r 服务器高 度集成,因此可以使用p o w e r b u i l d e r 丰富的系统对象和简单易用的 p o w e r s c r i p t 来开发不可视用户自定义对象,然后将其直接发布到 j a g u a r 艮务器上执行中间件的逻辑计算。此外,p o w e r b u i l d e r 客户端也 可调用位于组件服务器上的其他非p o w e r b u i1 d e r 组件,与此相反,非 p o w e r b u i l d e r 客户端又可调用p o w e r b u i l d e r 发布的组件。j a g u a rc t s 的应用体系结构如图3 所示。 第二章技术背景 基于e s j g u a i l 的多层分布式系统的研究与应用 h p m ii d 衄件 蝴伟 c j 鞋抖 搿件 图3j a g u a rc t s 的应用体系结构 从上图可以看出,j a g u a r 服务器具有与平台无关性,可以用c 或j a v a 语言开发客户端或组件,但是考虑到p o w p r b u i l d e r 对数据库有强大的支 撑性以及兼容性,本文选用p o w e r b u i l d e r 开发客户端和组件。 2 2j a g u a rc t s 组件技术介绍 2 2 1j a g u a rc t s 技术解释 为进一步了解j a g u a rc t s 技术,需要对以下几个名称:组件包、连 接缓存、组件代理对象等加以解释。 1 组件( c o m p o n e n t ) 和包( p a c k a g e ) 组件是一种封装了商业逻辑规则的对象,它运行在j a g u a r f l 艮务器 上,通过一个或多个方法向客户端应用程序提供服务,而客户端通过组 件的代理对象在服务器上创建该组件的实例来调用其上的方法。 包是一组共同工作的组件集合体,我们以包为单位发布组件到 j a g u a r 服务器上。熟悉j a v a 编程的读者知道,在很大程度上,包只是一 个目录,方便对象的导入和解决对象命令上的冲突。j a g u a r 以j a v a 为底 层基础技术,其包的作用也是如此,我们一般把商业逻辑接近的组件放 基于e s j 6 u r 的多层分布式系统的研究与应用第二章技术背景 在同一个包中,不必每个组件单独一个包去发布。j a g u a r 的每个包将对 应生成一个同名的目录,以放置组件的接口定义。 2 连接缓存( c o n n e c t i o nc a c h e ) 我们可以为每个分布式应用在j a g u a r 服务器上建立一个连接缓存, 这样,j a g u a r 服务器上的组件就不必都建立一条与数据库的连接,可以 使用已有的数据库连接缓冲,从而避免因连接次数过多而发生的资源超 载现象。连接缓存的建立可通过j a g u a rm a n a g e r 管理程序进行设置。 3 j a g u a r 组件代理对象( p r o x yo b j e c t ) 每个j a g u a r 服务器上的组件都对应一个客户端的组件代理对象,我 们在客户端通过组件代理对象来调用中间层的组件方法。至于组件代理 对象与组件如何以c o b r a 协议进行通信,程序员不必理会,这是一个透。 明的过程。 p o w e r b u i l d e r 提供了创建组件代理对象的向导,在向导中须提供对 应的包和组件选择。客户端利用连接对象连接上组件服务器后,必须再 使用连接对象创建组件代理对象的实例,以后便可通过该组件的代理对 象,直接向j a g u a r 服务器上的组件发送调用请求,并返回计算结果。 2 2 2j a g u a rc t s 技术应用介绍 本文的组件制作是利用p o w e r b u i l d e r 提供的组件功能进制作,在制 作组件时,首先要建立一个包( 或利用已有的包) ,然后建立组件并将 它放在包中,还要尽最大可能将复杂的业务逻辑功能封装在组件中,不 要让客户端再负担业务处理功能,最后还要考虑给组件配置高速连接缓 存,组件的事务支持。在做好了上述工作后,就可以将包连同组件一起 发布至j a g u a rc t s 组件事务服务器,这样就完成了组件的制作。完成组 件制作后,还要制作客户组件代理对象,组件代理对象就是放置一些客 户界面程序,通过代理对象与服务器组件进行交互,此外还需要制作连 接对象,这是组件代理对象与组件交互的通道。另外,在制作组件前还 第二章技术背景 基于e a s j a g u a r 的多层分布式系统的研究与应用 需要了解组件的生存期、数据更新、事务支持和组件互调用等特点。 1 组件的生存期 为了制作j a g u a r 组件,必须清楚j a g u a r 组件实例的生存期以及在生 存期内发生的事件和行为。 1 ) 组件在第一次被客户端调用其方法时激活,开始了组件的生命 期,此时j a g u a r 服务器会为组件建立一个新的p o w e r b u i l d e r 会话空间。 2 ) 在p o w e r b u i l d e r 会话空间中创建不可视的用户对象实例来代表 j a g u a r 组件,这个过程触发了c o n s t r u c t o r 事件。 3 ) 当不可视用户对象实例化后,j a g u a r 服务器将触发该对象的 a c t i v a t e 事件,此时必须确保实例的状态信息是正确可用的。 4 ) j a g u a r 服务器执行客户端所调用的组件方法。 5 ) 当组件指示其工作已完成,j a g u a r 服务器将触发d e a c t i v a t e 事件,使组件清理其状态信息。如果组件的自动释放属性己设置,在每 一次的组件方法调用完毕后,都会自动触发d e a c t i v a t e 事件。如果自 动释放属性未设置,仅当调用组件上下文事务对象的s e t c o m p l e t e 或 s e t a b o r t 方法时,才会触发d e a c t i v a t e 事件,释放组件并终止运行时会 话。 2 数据的更新 在传统的c l i e n t s e r v e r 应用中,数据库的修改是由客户机上单一 的应用程序发起的,p o w e r b u i l d e r 可自动管理数据窗口的状态信息。在 分布式环境下情况有些不同,应用、组件被分隔在客户端和服务器端, 此时,需要编写一种逻辑来确保客户端数据窗口控件的数据缓存和状态 标志信息能与服务器端的d a t a s t o r e 保持同步。为此p o w e r b u i l d e r 提供 了四个用于同步的函数:g e t f u l l s t a t e 、s e t f u l l s t a t e 、g e t c h a n g e s 及s e t c h a n g e s ,这些函数可以在非分布式应用中使用,主要用于多个数 据窗口控件( 或d a t a s t o r e ) 的同步。 基于e a s 3 a g u a r 的多层分布式系统的研究与应用第二章技术背景 1 ) 传送数据窗口的数据缓冲和状态标志: 为了实现客户端数据窗口控件和服务器端组件d a t a s t o r e 的同步, 必须在任何一端的数据发生变化后,将数据窗口的数据缓存和状态标志 传送到另一端: 如果把数据窗口的完全状态信息传送到另一端,需要做以下处理: 调用g e t f u l l s t a t e 函数获取源数据窗口的当前状态。 调用s e t f u l l s t a t e 函数将获得的完全状态数据设置到目标数 据窗口。 如果仅把修改的状态数据传递到另一端,则需要做以下处理: 调用g e t c h a n g e s 函数获取源数据窗口的更新状态信息。 调用s e t c h a n g e s 函数把获得的更新状态信息设置到目标窗口。 2 ) 利用b l o b 保存数据窗口状态数据: g e t f u l l s t a t e 或g e t c h a n g e s 函数的返回值为b l o b 类型的数据, g e t f u l l s t a t e 返回的b l o b 包含需要重新创建一个数据窗口的所有信 息,包括数据缓存、状态标志、完整的数据窗口说明。g e t c h a n g e s 函数 返回的b l o b 仅提供数据窗口的发生更改或删除的行的缓存敛据和状态 标志。 3 组件的事务支持( t r a n s a c t i o ns u p p o r t ) 利用p o w e r b u i l d e r 开发的j a g u a r 组件,可以在组件的创建向导中设 置其是否支持服务器事务。如果一个组件设置了事务支持属性,那么 j a g u a r 服务器将会确保组件的数据库操作作为组件事务的一部分执行。 多个组件可参与同一个组件事务,此时,这些组件对数据库的更新将会 被同时提交成功或同时失败回滚,实现了组件级的数据库安全保障。 4 组件中调用其他组件的方法 j a g u a r 允许在一个服务器组件中调用另一个组件的方法。为了在当 前服务器中访问其他组件,与客户端调用组件方法一样,在组件中使用 第二章技术背景 基于e a s j a g u a r 的多层分布式系统的研究与应用 连接对象,并利用连接对象创建将被调用的组件的代理对象,在组件的 a c t i v a t e 事件中添加创建事务对象的代码如下例所示。 实例变量t s : t r a n s a c t i o n s e r v e rt s i n t e g e rli _ r e s u l t l i _ r e s u l t = t h l s g e t c o n t e x t s e r v i c e ( ”t r a n s a c t l o n s e r v e r ”,t s ) 5 i fl ir e s u l t lt h e n 莩 错误处理 e n di f 然后,调用c r e a t e i n s t a n c e 函数,实例化另一个组件,再实行调用另 一组件的方法:j 实例化第2 个组件:m y c o m p 2 。n n v o _ c o m p 2m y c o m p 2 , i n t e g e rr e 5 r c = t s c r e a t e i n s t a n c e ( m y c o m p 2 ,”m y p a c k a g e n v oc o m p 2 ”) i fr c ot h e n 2 处理错误 e l s e m y c o m p 2 m e t h o d l0调用另一个组件m y c o m p 2 的万法 ” e n di f 。 一 。# “ 从上面的程序段可见,可以使用t r a n s a c t i o n s e r v e r 事务上下文对 象,该对象的c r e a t e i n s t a n c e 方法提供了访问本地组件方法的能力, c r e a t e i n s t a n c e 方法使用调用该方法的用户、口令来创建另一个组件实+ 例。在使用t r a n s a c t i o n s e r v e r 事务上下文对象前,必须声明一个 t r a n s a c t i o n s e r v e r 类型的变量,然后调用g e t c o n t e x t s e r v i c e 函数来创 建该事务对象。 5 j a g u a r 数据库更新方法: 假设j a g u a r 服务器上的一个组件使用的d a t a s t o r e 为d sn e w ,则客 户端上对应的数据窗口控件为d w - n e w 。在组件的a c t i v a t e 事件中添加连 接数据库、创建d a t a s t o r e 对象、绑定数据窗d 至l j d a t a s t o r e 对象等代码。 在组件的一个方法中,调用d s _ n e w 的r e t r i e v e 函数来检索数据,然后调 用g e t f u l l s t a t e 函数来获取b l o b 类型的结果集,并把该b l o b 以引用的方 基于f a s j a g u a r 的多层分布式系统的研究与应用第二章技术背景 法传递给客户端。因为该组件的自动释放属性并未设置,函数还调用了 s e t c o m p l e t e 函数以释放组件实例。一旦客户端接收到该b l o b 数据,就 调用s e t f u l l s t a t e 函数,把b l o b 中的数据窗口状态信息设置到d wn e w 中,此时数据窗口控件d w _ n e w 就可以进行记录的插入、修改和删除。当 数据发生了修改时,客户端可调用g e t c h a n g e s 函数获取数据窗口的更新 状态数据,然后再调用组件的另一个方法把该b l o b 更新状态数据传递给 服务器,服务器组件的这个方法调用s e t c h a n g e s 函数设置d s _ n e w ,这样 客户端的d w _ n e w 就与组件的d s _ n e w 同步。此时组件调用d a t a s t o r e 的 u p d a t e 函数更新数据库,如果u p d a t e 成功就调用s e t c o m p l e t e 提交数据 库事务,失败则调用s e t a b o r t 进行回滚。如图4 所示。 图4 客户端、服务器组件的典型交互流程 第二章技术背景 基: e a s j a g u a r 的多层分布式系统的研究与应用 第一次更新完成之后,在后续的更新处理中,客户端和服务器就不 用再传递完整的数据窗口状态信息,而只需传递发生了变化的b l o b 数 据。从此时开始,更新处理进入第7 步到第1 4 步的循环处理流程。 2 3p o w e r d y n a m o j a g u a rc t s 多层w e b 应用技术 1 概述 为适应w e b 分布式程序开发需求,s y b a s e 推出t p o w e r d y n a m o 这个 w e b 应用产品,它由一系列公共网关程序( c g i ) 、配套的m a n a g e r p o w e r d y n a m o 站点管理器以及d y n a s c r i p t 服务器端脚本语言构成。相应 地,在p o w e r b u i l d e r 开发平台中,也增加了w e bt a r g e t 功能以支持 p o w e r d y n a m o 站点的搭建和页面脚本歼发,使p o w e r b u i l d e r 成为了一个 以j a v a 为w e b 底层技术的4 g l 开发工具。 基于p o w e r d y n a m o 的w e b 应用技术是真正的“瘦”客户端技术。 p o w e r d y n a m o 与j a g u a rc t s 组件事务服务器有着紧密的关系,它们的组 合构成t s y b a s e 的e n t e r p r i s ea p p l i c a t i o ns e r v e r ( e a s ) 企业应用服务 方案。p o w e r d y n a m o 中的c g i 网关程序可以调用j a g u a rc t s 服务器提供的 通用w e b 数据窗口组件方法,也可以调用程序员自行编写的组件方法, 以此开发一套安全性颇佳、兼备事务处理机制的多层w e b 应用系统皿1 。 2 p o w e r d y n a m o 工作原理 不同于使用其他c g i 脚本语言( 如a s p 、p h p 等) 所进行的w e b 应用程序 的开发,我们可以直接在p o w e r b u i l d e r 的开发平台中通过w e bt a r g e t 创建站点和编写站点页面的d y n a s c r i p t 脚本。p o w e r b u i l d e r 和 p o w e r d y n a m o 的高度集成,为站点的开发提供了便利。此外,p o w e r d y n a m o 不仅支持文档型站点的创建和开发,也支持使用数据库来存储、管理站 点页面。基于数据库的站点功能更为强大,因为利用数据库成熟的数据 基于目 a s j a g u a r 的多层分布式系统的研究与应用 第二章技术背景 搜索和并发处理机制,可以使站点页面的寻找更为迅速、并发访问的能 力更强。在站点的实际部署中,我们只需把站点数据库复制到w e b 目标 用机上就可完成站点页面的部署。浏览器与h t t p 服务器( 配置了 p o w e r d y n a m o 网关) 的交互机制如图5 所示。 。 l 刚娃容机l f t 仲服务器j a g n m r c t s 服务器 图5h t t p 、p o w e r d y n a m o 、j a g u a rc t s 、d bs e r v e r 关系图 从上图可以人看出,当浏览器向h t t p 服务器发送u r l 页面下载请求 时,h t t p 服务器就将请求传递给p o w e r d y n a m o 的c g i 程序( d l l ) ,。 p o w e r d y n a m o 在站点数据库中查询网页位置,取出网页并执行页面中的 d y n a s c r i p t 服务器端脚本。如果脚本中含有j a g u a rc t s 组件方法的调 用,那么p o w e r d y n a m o 的c g i 引擎会连接j a g u a rc t s 并进行组件方法的调 用,此时组件就通过o d b c 、j d b c 或o p e nc 1 l e n t 等驱动程序连接数据库, 执行数据库的操作。当组件方法完成数据库处理后,会将结果集返回到 p o w e r d y n a m o 弓l 擎,p o w e r d y n a m o 将接收的结果集转换为h t m l 格式的数 据。最后,脚本执行完毕,p o w e r d y n a m o 返回h t t p 服务器一个h t m l 文件, h t i p 服务器再将这个h t m l 文件传送回客户端浏览器进行显示。 2 4 动态数据交换( d d e ) 技术 动态数据交换( d d e ) 是用于w i n d o w s 平台上的两个正在运行的应用 程序之间通过发送和接收消息与数据,实现动态数据交换,它是一种在 w i n d o w s 操作系统中基于消息的协议。通过d d e 技术,应用程序可以共 享数据、远程执行命令以及检查错误条件等功能。动态数据交换总是发 第二章技术背景 基于e a s j a g u r 的多层分布式系统的研究与应用 生在两个正在运行的程序之间,在这两个应用程序之间相互发送和接收 命令及数据。这两个正在运行的程序分别称为客户程序和服务器程序。 客户程序就是请求服务程序,而提供服务的程序则称为服务器程序h 。 本文所用的开发工具也支持d d e ,它提供了一系列p o w e r s c r i p t 事件 与函数,通过这些函数,p b 应用可以发送消息至其它支持d d e 的应用程 序,并且可以响应其他d d e 应用程序的请求。p bd d e 应用程序可以是客 户也可以是服务器。如果p b 应用向别的应用发送请求,则p b 发送端此时 即为客户:相反,如果接收别的应用命令或者数据请求的应用程序就是 服务器。 d d e 的实现步骤:d d e 应用程序在开始交换数据以前必须由客户端发 出初始请求,建立与服务器端的d d e 连接。在建立连接后客户端可以连 续向服务器发送数据请求,在建立d d e 连接时有三种连接方式可以采用: ( 1 ) 冷连接;( 2 ) 嗳连接:( 3 ) 热连接。冷连接和暧连接都无法在客户端 知道服务器端是否修改了数据,而热连接就可以使服务器端和客户端彼 此知道是否被修改。本系统由于不需要进行数据的实时修改,因此采用 冷连接方式。 基于e a s j g u a r 的多层分布式系统的研究与应用 第三章多层分布式系统的分析与设计方法 第三章多层分布式系统的分析与设计方法 3 1 分布式系统的面向对象分析与设计 多层体系结构是在组件技术的基础之上发展起来的,而组件技术是 基于面向对象技术的。组件是具有一致的、定义良好的界面的可执行 软件模块,一个组件可以包含一个或多个类。因此它适合于使用面向 对象的分析设计方法。 3 1 1 面向对象的基本思想 面向对象的两个最基本概念是对象( o b j e c t ) 和类( c l a s s ) :对象 是对客观事物的具体描述,它具有属性( a t t r i b u t e ) 和方法( m e t h o r d ) , 对象的属性只能通过它自己的方法进行改变;类则是对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境经理年终工作总结
- 公司火灾安全培训内容课件
- 2025年全国成人高校招生考试数学(理)复习题库及答案
- 全运会足球运动员代表资格协议书5篇
- 公司法课件收费
- 公司母亲节课件
- 月度工作汇报排版
- 2025租赁续租合同模板
- 公司旺季员工安全培训课件
- 新课标数学低学段案例解读
- 时文语法填空-电影篇 《731》 《长安的荔枝》 《戏台》
- 主题一 2. 设计节电方案(课件) 综合实践活动教科版五年级上册
- 生产成本控制及预算管理表格模板
- 2025年家庭健康管理师考试模拟题及答案
- 浙江省浙南名校联盟2025-2026学年高二上学期开学返校联考英语试卷(含音频)
- 砂石骨料加工管理办法
- 西师大版数学六年级上册 第一单元测试卷(A)(含解析)
- 人形机器人-价值5万亿美元的全球市场 Humanoids A $5 Trillion Global Market
- 好好说话暖人心课件
- 部队新闻培训课件
- 船员技能评估体系-洞察及研究
评论
0/150
提交评论