




已阅读5页,还剩89页未读, 继续免费阅读
(微电子学与固体电子学专业论文)基于xpo的net应用开发框架的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于x p o 的n e t 应用开发框架的设计与实现 专业:徽电子学与固体电子学 硕士生:范伟贤 指导教师:彭自成副教授 摘要 当前,随着管理信息系统的发展,业务处理越来越复杂,需求变化越来越频繁, 构建相应软件系统的难度亦不断增大软件开发者总是希望使用应用框架来提高应 用系统的开发效率和减少需求变化带来的风险。本文的工作就是设计和实现基于 x p o 对象持久化工具的n e t 应用开发框架,简称为x a f 。x a f 应用框架的研究和设计 过程均采用面向对象方法分析和设计 本文首先介绍了使用x p o 对象持久化工具的原因和x a f 应用框架的总体项目情 况基于x p o 对象持久化工具进行应用框架服务组件构建是本次研究的设计特色 然后着重讨论了x a f 跨领域应用框架组件设计方案,包括:x p o 数据层服务组件、 类工厂服务组件、配置服务组件和用户身份验证授权服务组件,同时也简要介绍了 x p o 对象持久化工具的基本用法和框架构建过程中使用的若干个设计模式接着详 细讨论了x a f 特定领域应用框架组件设计方案,包括数据绑定服务组件和报表输出 服务组件,这两个服务组件是专门针对管理信息系统的普遍需求而设计和实现的, 具有一定的代表性接着详细叙述了在设计方案的基础上实现x a f 应用框架各个服 务组件的过程。最后,在x a f 应用框架之上构建一个管理信息系统x a f l ) e m o 作为演 示系统来集成测试x a f 应用框架各个服务组件的功能。 基于x p o 的x a f 应用框架能够支持开发者快速开发管理信息系统,具有良好的 可扩展性和可重用性,并且开发者可以根据实际需要选用或改写x a f 应用框架中的 任一服务组件而不会影响到其他模块但是x a f 应用框架在分布式环境的应用和日 志跟踪方面的支持需要进一步完善,对事务的支持也需要更加细致 关键词,陋t ,o ,应用框架。服务组件,管理信息系统 t h er e s e a r c ha n di m p l e m e n to ft h e n e ta p p l i c a t i o n f r a m e w o r kb a s e do nx p o m a j o r :m i c r o e l e c t r o n i ea n dc o n d e n s e d e k e t r o n i c s n a l n e * w e i - x 讧nf a n s u p e r v i s o r :v i c e - p r o z i - c h e n gp e 哩 a b s t r a c t n o w a d a y s - a l o n gw i t h t h ec o m p l e xb u s i n e s s p r o c e d u r e sa n dd i v e r s es y s t e m r e q u i r e m e n t m a n a g e m e n ti n f o r m a t i o ns y s t e md e v e l o p e r se x p e c tl l l a lt h ea p p l i c a t i o n f r a m e w o r kc o u l de n h a n c et h ew o r ke f f i c i e n c ya n dr e d u c et h er i s k so fr e q u i r e m e n t d i v e r s i f i c a t i o n a c c o r d i n gt ot h ea n a l y s i sa n dd e s i g nb yo b j e c t - o r i e n t e dm e t h o d 【, t h i sp a p e r f o c u so nt h er e s e a r c ha n di m p l e m e n to ft h e 脚a p p l i c a t i o nf i l m e w o r kb a s e do n x p o , w h i c h i sn a m e dx a f t h i sp a p e rf i r s t l yi n t r o d u c e st h eg e n e r a ls i t u a t i o na n dd e s i g n 亿a m r eo f x a f , e x p l a i n t h em a s t h a tt h ex p ou t i l i t yi st h er i g h tc h o i s et ob u i l du pt h ex a fi n f r a s t r u c t u r e t h e n g o e sd e e pi n t ot h er e s e a r c ha n di m p l e m e n to ft h ex a fr e g u l a rd o m a i ns e r v i c e s c o m p o n e n t s ,i n c l u d i n gx p o d a t al a y e rs e r v i c e ,c l a s sf a c m ws e r v i c e , e n n f i g u r a t i o ns e r v i c e a n di d e n t i t yv a l i d a t i o na n da u t h o r i z a t i o ns e r v i c e m e a n w h i l e , t h ep a p e rb r i e f yi n t r o d u c e t h ex p oo b j e c tp e r s i s t e n tu t i l i l ya n ds e v e r a ld e s i g np a t t e r o s a n dt h e ne n t e r si n t ot h e r e s e a r c ha n di m p l e m e n to f t h ex a fs p e c i f i cd o m a i ns e r v i c e sc o m p o n e n t s ,i n c l u d i n gd a t a b i n d i n gs e r v i c ea n dr e p o r ts e r v i c e , w h i c ha i m a tt h es p e c i a l t yr e q u i r e m e n to f m a n a g e m e n t i n f o r m a t i o ns y s t e mi m p l e m t a t i o n a tl 淞t ,n l ea u t h o rb u i l du pad e m os y s t e mc a l l e d x a f d e m ot ot e s tt h ec o m p o s i t i v ex a fi nd e t a i l 1 i la l l , t h ex a fc a ns u p p o r tt h ed e v e l o p e r st ob u i l dl l ps o t h v a r ea p p l i c a t i o nf l e e t l y w i t hf a v o r a b l ee x p a n s i b i l i t ya n dr e u s ea b i l i t y d e v e l o p e r sc o u l dp i c k u po rm o d i f ya n y s i n g l es e r v i c ec o m p o n e n to fx a f b a s e do nt h e i rn e e d s i nt h ef u t u r e ,t h ex a fn e e d st o i m p r o v et h ed i s t r i b u t e de n v i r o n m e n ta n ds u p p o r tw i t ht r a n s a c t i o nm a n a g e m e n t b e t t e r k e y w o r d s :n e t , x p o ,a p p l i c a t i o nf r a m e w o r k , s e r v i e ec o m p o n e n t , m a n a g e m e n t i n f o r m a t i o ns y s t e m 中山大学硕士学位论文 第一章应用框架总体概述 1 i 应用框架研究意义 随着计算机应用系统复杂性的增大,需要处理的业务越来越繁复,构建相应软 件系统的难度亦呈指数增大软件开发者总是希望把各种各样软件应用系统中不易 改变的一些东西归纳出来封装起来,方便以后再次使用,以期望加快开发进度。这 样,经过多次浓缩集成便形成了开发应用框架另外,由于应用系统的需求变化周 期越来越短,不仅要求软件开发者在快速开发领域有相应的底层支持,而且软件系 统必须可以承受业务频繁变化的风险,应用框架的出现可以最大程度上帮助开发者 避免这些风险。因此,应用框架作为开发软件系统的骨架被广泛研究和实践 软件开发者可以通过对应用框架的灵活运用和不断扩展来搭建各种各样的应用 软件,却无需考虑应用框架之中更细致的技术实现使用应用框架进行软件开发有 五大优点:模块化、可重用性、可扩展性、简单性和可维护性“1 以下对这五个优 点进行详细解释 模块化:开发者可以采用各服务组件互不影响的方式使用应用框架,不会受 到框架其他组件潜在变化的影响这样开发活动被更好地隔离开,从而显著提高开 发效率 可重用性:应用框架中不仅类和代码被重用,且其设计也被重用。有了应用 框架,开发者能将大量重复代码和通用解决方案从应用层移到框架层,能够大幅提 高开发效率 可扩展性:应用框架应能使开发者不仅可以自由地使用框架组件,还能够改 变组件,以适应特定业务场景的需要。这样,不同的业务应用依然能够使用框架的 通用功能,开发者也可以在框架中插入自定义的业务逻辑。 简单性:应用框架通过预先把众多组件组织在一起的方式,封装了处理流程 的控制逻辑,免去了开发者编写协调逻辑之苦,也不用经历编写这些协调代码的学 习曲线,高效地开发应用。 基于x p o 的n e t 应用开发框架的研究与实现 可维护性:应用框架的不同层包含不同级别的业务知识,能够减少因改变业 务需求和业务规则所带来的连锁反应,降低维护成本。 1 2 应用框架国内外研究现状 应用框架这个概念已经不是新事物了,现在已经有很多成熟的应用系统和软件 案例是在应用框架上构建的,而更多不同的应用框架在开发实践中被开发者实现并 加以推广,使之成为成熟的应用框架供他人研究或使用。在j a v a 和n e t 领域,开发 者更能感受到应用框架为他们开发所带来的好处。j a v a 和n e t s 身就是旨在支持所 有业务类型的应用系统通用框架,然而更多的基于这些通用框架之上的业务框架, 可以为诸如供应链系统和金融应用等特定业务领域提供相关服务和专门支持。甚至 有人预测到了2 0 1 0 年,至少9 0 的新应用程序将会基于应用框架构建而成,可见应 用框架的研究和使用对于软件开发产业具有非常诱人的前景。 1 2 1 n e t 应用框架国内外研究现状 m i c r o s o f t 公司的n e t 环境下,不仅提供了新型的语言和虚拟机,还提供了n e t 框架作为通用的应用框架。而n e t 环境下的开发者则在n e t 框架的基础上开发了很 多应用框架,为企业应用、分布式应用和特定业务领域提供更高一层次的应用框架, 使得开发者能更加专注于业务逻辑,从而快速开发系统应用。随着使用n e t 环境进 行软件开发的开发者不断增多,在国内外的n e t 社区里,出现了很多不同的应用框 架。比如d o t n e t n u k e 就是一个建立在a s p n e t 平台之上的门户网站和内容管理的开源 应用框架,利用它几乎可以用来构建任何w e b 应用,商务网站、企业内外网和在线内 容发布等;而c s l a n e t 贝i j 是一个基于n e t 的开发n 层次架构的高性能和灵活性应用程 序分布式开发框架,使用一些复杂的n e t 技术,如s e r i a l i z a t i o n 和r e m o t i n g 技术, 并充分利用n e t 的先进技术如反射、自动配置、应用程序配置文件、动态加载程序 集,充分满足开发n e t 分布式应用软件的需要。 2 中山大学焉士学位论文 1 2 2 基于x p o 的n e t 应用框架的研究 本文的主要工作是设计与实现基于x p o 的n e t 应用框架( x p 0a p p l i c a t i o n f r a m e w o r kf o r n e t ) ,为了阅读简便,全文均简称其为x a f 而x p o ( e x p t e s s p e r s i s t e n to b j e c t s ) 是由d e v e l o p e re x p r e s s 公司开发的一个在n e t 平台上的对 象持久化工具x p o 使开发者能独立于数据库层,从而使他们能完全致力于建立对 象,它在应用程序框架和关系数据库之间扮演了一个中间层的角色使用x p o 最大 的好处就是可以将应用程序开发者从繁琐的关系数据库设计中解脱出来,专心建立 业务对象系统,而如何将这些对象映射到关系数据库中,则可以交给x p 0 来自动处 理啪 对比起n e t 平台的其他对象持久化工具,比如l l b l g e np r o 、n h i b e r n a t e n e t 和g e n t l e n e t 等,x p o 在特性上并没有什么突出的地方,但运行很稳定而且功能丰 富,因此不少开发者都以x p o 作为构造数据层的首选x p o 利用特性映射来自动生 成数据库及其中的表,具有很强的可用性 因为目前软件分析设计方法以面向对象分析和设计方法为主,而软件系统使用 的数据库系统则仍然以关系数据库为主流,这就产生了对象范例和关系范例之间的 “阻抗不匹配”现象”1 ,并造成类对象对数据库存储的依赖关系x p o 对象持久化工 具处于领域层和数据库层之间并解开了它们之间的耦合,因此在x p o 的基础上搭建 应用框架,能够充分利用x p o 所带来的好处,为应用开发提供一个方便的面向对象 框架平台,同时亦可以使用当前主流的关系数据库系统。面对着业务形式的动态发 展,软件功能的日益复杂,应用需求的随时随交。开发工作如果是基于x p 0 构建的 数据层来进行,则可以在工作量减少的情况下快速开发出高质量的应用程序。 x a f 作为一个基于模型驱动的理念和x p o 对象持久化工具的n e t 应用的开发框 架,能够令开发者的注意力集中在构建业务逻辑和用户界面上。而且x a f 给出完整 的应用解决方案,具有良好的架构和性能设计只需要简单的定义和描述,开发者 能迅速完成7 0 以上的主体功能开发,快速构建n e t 应用软件 3 基于x p o 的n e t 应用开发框架的研究与实现 1 3 研究方法及本文内容 本人在实验室三年的研究工作中参与了两个大型管理信息系统项目,在实践中 利用应用框架实施项目,对应用框架技术有一定的了解以及具备业务方面的实施经 验。本次研究参考了目前国内外流行的框架设计技术,定位于开发适用于中小型应 用的x a f 应用框架。本人完成了x a f 应用框架各个服务组件的设计和实现工作,并 开发了演示系统x a f d e m o 测试应用框架的功能。 本文共有四个组成部分,结构分成六章。 第一部分应用框架总体概述 这部分就是第一章的内容,重点在于总体介绍应用框架研究内涵和意义。通过 实践分析,把研究定位于基于x p o 对象持久化工具来构建的x a f 应用框架。 第二部分x a f 应用框架的设计和实现 第二部分包括第二章- - x a f 总体体系介绍、第三章) 【a f 应用框架服务组件 的设计和第四章) 【a f 应用框架服务组件的实现。围绕从总体到局部,从跨领域 到特定领域的组织设计思路展开对整套x a f 应用框架的设计和实现。 第三部分x a f 应用研究 根据应用框架的特性要求,基于应用框架技术可以快速开发多种行业的管理信 息系统并提供强大的框架服务。本人在x a f 应用框架之上搭建一个演示系统x a f d e m o 测试其功能。 第四部分总结与展望 总结与展望主要是第六章内容,以实事求是的科学态度来评价x a f 应用框架, 并且提出可以进一步完善的地方。 4 中山大学焉士学位论文 第二章x a f 总体项目体系 本文研究的基于x p o 的n e t 应用框架能够支持中小规模应用,提供一般管理信 息系统所需的多种框架服务组件,能够以l i n f o r m 和w e b 两种界面形式进行软件系 统的搭建在本文的应用框架研究设计过程中,着重考虑到其可扩展性,希望能够 为以后进一步完善应用框架提供基础平台。帮助开发者以应用框架为基础构建应用, 通过重用由应用框架提供的代码和设计,减少开发工作量且加快开发进度,开发出 高质量的应用系统。 2 1 项目总体分析 本次研究要完成的工作实际上包含两个主要任务。首先是研究一套基于x p o 的n e t 应用框架的设计方案,包括跨领域应用服务组件和特定领域服务组件的设 计;其次是根据设计方案实现x a f 应用框架,并用它构建一个x a f d e m o 演示系统对 框架功能进行评估 与一般的应用框架的研究不同,本文是基于x p o 的n e t 应用领域的框架研究, 如何得到x p o 对象持久化工具的支持是本次研究的基点,在x p o 上搭建一个适合中 小型管理信息系统的x a f 应用框架是本次研究的重点对于x a f 应用框架的研究和 设计主要分成如下两个阶段 第一阶段是基础性设计阶段如图2 - l 所示为整套研究计划的基于x p o 的n e t 应用框架x a f 总体结构图。图中深色部分为基础性研究阶段重点实施部分,本文将 详细讨论而浅色部分为框架的展望内容,由于x p o 对象持久化工具已经包含对象 缓存机制、对象事务和消息的支持,所以本阶段的x a f 就不把浅色部分单独作为服 务组件进行搭建,留待日后有需要再进行深入研究和细化 基于x p o 的n e t 应甩开发框架的研究与实现 i x a f 特定领域组件 园国 x a f 跨领域组件 匪闽匿囵鼷鬟斓i 事务i | 日志跟踪i 圈国l 加密l l 消息事件i 躲1 n e t 基础框架i 图2 - i 、x a f 应用框架总体结构图 第二阶段是实践完善阶段。按照第一阶段的设计方案实现x a f 应用框架的跨领 域服务组件和特定领域组件,并在x a f 应用框架的基础上构建一个x a f d e m o 应用系 统来测试x a f 应用框架的功能并总结不足的地方。 2 2 项目设计特色 x a f 应用框架的体系设计遵循把应用程序功能分布在不同层次之中的设计原 则。如图2 - 2 所示,x a f 应用框架采用三层体系结构,主要分为数据访问层、业务 逻辑中间层和界面表示层。x p o 数据服务层以及业务逻辑中间层之中的应用框架层 是本次研究开发的重点。 6 中山大学硕士学位论文 界面表示层业务逻辑中间层数据访问层 业应用框架中同层 x p 0 务 数据 w h 逻 特跨 服务 一一 f o r m辑 定领 层 应 领 域 界面 域框 用 控件 服 框架 务 槊 层 库 层 i 层 + :数据存储 lj n e tf r a m c w o f i 【基础框架 w i n d o w s 操作系统及其他共享服务 2 2 1 数据访问层 图2 - 2 、x f 应用框架层次架构图 数据访问层包括数据存储和与它交互的组件或者服务。由于使用了x p 0 对象持 久化工具形成了x p o 数据服务层,因此简化了数据访问层的结构,x p 0 数据服务层 在功能上和业务逻辑中间层相互独立图2 门是关于数据访目层的体系结构。在x a f 应用框架中,数据访问层的设计特色描述如下; 开发者只需要按照面向对象分析方法分析需要持久化的对象,把对象之间的 各种关系理顺再归纳成类,那么x p 0 就可以在应用系统运行的时候,按照对象关系 映射的原理在关系数据库中自动建表以及外键维护。 x a f 应用框架中数据访问服务基于x p 0 对象持久化工具,因此设计数据服务 层的时候,封装了x p o 提供的功能,而应用框架中间层只需要对数据层服务进行调 用,便能完成一系列的对象操作 7 2 2 2 业务逻辑中闻层 基于x p o 的n e t 应用开发框架的研究与实现 图2 - 3 、x a f 数据访问层结构图 业务逻辑中间层包括多个服务组件,通过这些组件实现应用程序逻辑并完成使 应用程序运行所需要的数据处理。在x a f 应用框架中,该层的设计特色描述如下: 应用框架中间层组件通过x p o 数据服务层进行对象的读取和保存等操作。 在业务逻辑中间层中包含业逻辑务应用服务层和应用框架中间层。业逻辑务 应用服务层根据分析实际的应用需求来构建,而应用框架中间层具体可以分为特定 领域框架层和跨领域框架层。下面图2 - 4 所示是关于应用框架中间层的结构图。 图2 _ 4 、应用框架中间层结构图 对象封装 ix p o 数据服务封装层 应 t 用 对象持久化l 对象封装 框 lx p o 对象持久化工具 架 审 i 问 层 匡 跨领域服务组件特定领域服务组件 配置服务1类 工 依赖 数据绑定服务 验证服务l - 厂 服 授权服务l- 务 报表输出服务 中山大学硕士学位论文 x f 应用框架应用框架中间层有如下特点,后面章节将分别对这些内容进行详 细讨论。 提供类工厂服务,解耦构造对象和使用对象,减少开发者使用业务类开发应 用时,对具体业务类频繁构造和分配资源,达到框架的模块化和可扩展性目的 x a f 应用框架采用a c c e s s 文件提供配置服务,使得开发者能够使用o f f i c e a c c e s s 数据库文件对应用系统进行配置。 用户验证授权服务作为系统信息安全的重要组成部分,利用多用户多角色权 限分配管理机制为个性化信息访问的应用实现提供底层支持 数据绑定服务为界面层与数据层的交互提供了很好的支持,而报表输出服务 则采用了数据填充r d 模板文件的方法实现报表的输出 2 2 3 表示层 表示层从中间层获得信息并以w e b 浏览器方式或者w i n d o w s 窗体界面方式显示 给用户。该层同时也负责和用户进行交互,比较返回的信息并将信息回送给中间层 进行处理。其主要考虑的是如何提供符合用户需求的界面。x a f 应用框架里面涉及 到表示层的技术不多,故暂不与其他层次分开作详细探讨,希望通过x a f d e m o 演示 系统的实践过程完善x a f 应用框架中的界面控件库 2 3 项目部署方案 本研究建立在n e tf r a m e w o r kl1 、m i c r o s o f ts q ls e r v e r2 0 0 0 和m i c r o s o f t o f f i c e2 0 0 3 平台上,服务器操作系统选择m i c r o s o f t - i n d o w ss e r v e r2 0 0 3 开发 环境为v i s u a ls t u d i o n e t2 0 0 3 和x p of o r n e tv e r s i o n1 5 x a f 应用框架实现目标的项目部署方案如下面图2 5 所示 9 基于x p o 的n e t 应用开发框架的研究与实现 图2 5 、x a f 应用框架实现目标的项目部署方案 上图中x a f 应用框架解决方案中的s e c u r i t y c l i e n t 、s e c u r i t y c o m m o n 、 s e c u r i t y f a c t o r y 、s e c u r i t y s e r v e r 这几个项目组成验证授权服务。b i z o b j b a s e 项目 包含类工厂服务,c o n f i g u r a t i o n 是配置服务的项目。u t i l i t y 、g u i u t i l i t y 、 o f f i c e u t i l i t y 和r e p o r t 这几个项目则组成特定领域中数据绑定服务和报表输出服 务。 1 0 中山大学硕士学位论文 第三章x a f 应用框架服务组件的设计 整套x a f 应用框架的研究遵循从整体到局部的方式进行,每个部分又按照软件工 程从分析到设计,直至编码步骤来完成上一章主要从研究范围和目标角度,总体 上规范x a f 应用框架的开发目标和服务组件,设计整套技术体系架构,并对其进行了 项目部署的简单介绍。而本章将详细研究x a f 应用框架服务组件的设计方案。x a f 应 用框架组件服务由跨领域层和特定领域层组成。跨领域框架层能够被多个不同业务 领域的应用共享,提供软件系统开发的基础公共服务:特定领域层则由包含开发管 理信息系统特点的业务领域知识框架组件组成,提供支持特定领域的服务。 3 1x a f 跨领域服务组件设计 x f 跨领域组件旨在为特定领域组件和应用程序的开发提供基础性的支持,并能 够进一步扩展以完善框架的功能下面详细讨论x a f 跨领域服务的四个组件服务:x p o 数据层服务,类工厂服务、配置服务和身份验证授权服务 3 1 1x p o 数据层服务 使用x p o 最大的好处就是可以将应用程序开发者从繁琐的数据库设计中解脱出 来,专心建立业务对象系统,如何将这些对象映射到数据库中,这一切都可以交给 x p o 来自动处理了。x p o 的使用十分简单,一般的应用开发人员无须了解x p o 的实现 技术,只需要在建立对象类过程中,遵循x p o 的规则即可。在使用过程中也根本可 以不去关心数据库后台发生的事情,例如后台是什么数据库,表到底有多少等。然 而x p o 本身提供的功能比较底层,对于真正的应用系统而言,多数会存在复杂的关 联关系,而且必定有克隆对象和对象事务处理等需求( 克隆对象和对象事务将在后 l l 基于x p o 的n e t 应用开发框架的研究与实现 面章节进行详细讨论) 。x a f 应用框架根据这些潜在的需求把x p o 数据层服务进行了 封装,供其他服务组件调用,开发者也可以根据项目的实际需求灵活使用。在本次 研究的x p o 数据层服务中,研究的用例如下面图3 - 1 所示。 图3 - 1 、x p o 数据层服务用例图 表3 - 1 、x p o 数据层服务用例说明简表 l 、克隆列象用例 用户耳标:提供克隆对象属性,克隆聚合对象,删除克隆对象的服务 前置条件:无 执行过程:l 、根据对象内标识克隆特性的克隆属性找到需要克隆的属性 2 、克隆对象,并在克隆对象上记录克隆标识 2 、对象事务用例 用户目标:对象创建或修改时,记录操作人和操作时间、回滚对象 前置条件:无 执行过程:1 、传递需改变的对象信息 2 记录创建人和创建时间或修改人和修改时间、回滚对象 3 、对象查询用例 用户目标:提供对象查询的服务 中山大学硕士学位论文 前置条件:无 执行过程:l 、执行x p o 对象复合查询方法 2 、返回查询结果数据集 3 1 1 1 ,o 数据层服务设计探讨 x p o 数据层服务是x a f 应用框架的核心组件之一由于以x p o 对象持久化工具 为基础,预见将来需要持久化的类必将继承于x p o 持久化对象,因此考虑使用继承 法来封装x p o 数据层服务继承法依赖于c , o f 提出的模板方法模式模板方法模式 描述了特定操作序列的骨架或处理流程,它支持开发者在还没定义算法如何实现的 情况下,定义处理流程和协调逻辑“模板方法强调的是不同对象以及方法之间如 何协作,在框架开发中,模板方法包含了业务领域知识,这些业务领域知识规定了 不同方法应当如何协作;而抽象方法为模板方法调用的方法提供了客户化实现的手 段。下面图3 - 2 所示为模板方法设计模式的示意图。 图3 _ 2 、模板方法设计模式示意图 基于x p o 的n e t 应用开发框架的研究与实现 如上面图3 2 所示,框架组件中有一个已经实现的模板方法,模板方法中包含 了特定业务领域的专门知识并调用了多个抽象方法以实现特定应用的行为。而应用 组件则需要继承框架组件的功能并覆盖抽象方法,将业务领域知识和应用级业务逻 辑结合在一起。 考虑到对象克隆和对象事务两个用例都具有相对固定的操作顺序,但是在开发 过程中才实现具体的业务操作,非常适合使用模板方法模式来设计。框架中的模板 方法调用了在应用中实现的抽象方法并控制其处理流程,因此x p o 数据层服务以抽 象方法为主。另外由于持久化的业务类一定要继承x p o 提供的x p o b j e c t 类,而应用 组件需要继承框架组件的模板方法,所以考虑在x p o 数据层服务组件中设计一个 b i z o b j b a s e 类作为所有业务类的基类。下面图3 2 为b i z o b j b a s e 类的属性设计。 图3 - 3 、b i z o b j b a s e 类属性设计 b i z o b j b a s e 类继承于x p o b j e c t 类,它包含了其他业务类所必须带有的属性。 其他业务类继承于b i z o b j b a s e 类,就可以把一些业务类的类似操作以抽象方法的形 式,放在b i z o b j b a s e 类中。如果业务类需要有其他特定操作,可以以o v e r r i d e 形 式重写继承下来的方法。通过这样设计,既可以保持业务类子类的一致性,又可以 提供扩展性,为应用开发提供灵活的手段。由于x p o 作为数据层服务的依赖工具, 因此开发者使用x a f 应用框架进行其他业务应用开发时,必然需要实现抽象方法, 必须知道b i z o b j b a s e 类中有哪些可用的数据和方法,以及它们的相互关系,因此开 1 4 中山大学硕士学位论文 发者需要详细了解框架才能使用它 3 1 。1 2x p o 数据层服务技术探讨 x f 应用框架中的x p o 数据层服务建立在x p o 对象持久化工具之上并对其进行 了封装。由x p o 提供的s e s s i o n 对象透明地完成与关系数据库之间的会话,而框架 中其他组件的基础设施则与x p o 数据服务层进行通信。s e s s i o n 对象将会在后面章 节进行详细介绍如下面图3 - 4 所示,x a f 应用框架设计过程中x p o 数据层服务是 整个数据访问层的基础 其他服务x p o 数据层服务 调用 爷 广1is e s s i o n 对象卜 图3 - 4 、x p o 数据层服务在x a f 应用框架中的位置 由于使用了x p o 对象持久化工具,因此集合对象传递大多是通过船c o l l e c t i o n 这种砷o 特有的用于枚举持久化对象的集合对象来实现的当然,也可以用持久化 对象本身的对象类型来进行传递,不过这种方法不便于修改和扩展因此】【a f 应用 框架其他服务组件绝大多数会使用x p c o l l e c t i o n 对象来进行传递和通信。 3 1 1 2 1x p o 对象持久化工具介绍 由于本次研究并不是深入研究x p o 对象持久化工具,而是站在工具应用者的角 度来应用x p o ,故此学会x p o 中各种预定义类和成员方法以及怎么使用x p o 来搭建 数据层服务才是重点,其他的诸如x p o 的实现原理,对象关系映射和元数据映射等 等技术理论和细节,均不详细探讨。下面对x p o 对象持久化工具进行简要的介绍。 i 类持久化用法:需持久化的类必须继承于x p o b j e c t 基类,这个是x p o 对象持 久化工具的要求;持久化类必须带有o i d 属性,这个属性相当于在关系数据表中的 基于x p o 的n e t 应用开发框架的研究与实现 主键。下面例子中举出了一个最简单的持久化类的代码。 p u b li cc l a s ss t u d e n t :x p o t l j e c t p u b l i ci n to i d ; p u b l i cs t r i n gn a m e ;持久化属性n a m e ,类型s t r i n g p u b l i cd a t e t i m eb i r t h d a y :持久化属性b i r t h d a y ,类型d a t e t i m e 这个持久化类在代码编译和运行之后,x p o 会自动在关系数据库建立一个名为 s t u d e n t 的数据表,里面包含主键字段o i d ,另外两个字段n a m e 和b i r t h d a y ,数据 类型均与类声明的属性一致。 x p o 提供很多特性标记来描述持久化类属性,比较常用的如p e r s i s t e n t , i n d e x e d ,如下面代码所示。开发者还可以使用自定义的特性标记对属性加以描述。 p e r s i s t e n t 标注n a m e 属性需要持久化,一般为默认特性,不需要标出 i n d e x e d 标注n a m e 属性为索引字段 p e r s i s t e n t ,i n d e x e d p u b l i cs t r i n gn a m e : s o n p e r s i s t e n t 标注b i r t h d a y 属性不需要持久化 n o n p e r s i s t e n t p u b l i cd a t e t i m eb i r t h d a y ; 使用上面代码的s t u d e n t 类在代码编译和运行之后,在关系数据库的s t u d e n t 表中,就会包含一个加上索引值的n a m e 字段,而b i r t h d a y 字段则不会存在。 2 x p o 聚合关系用法:类和类的聚合关系分为一对一,一对多或多对多关系。 使用x p o 定义聚合关系比较简单,对持久化类中的集合属性使用a s s o c i a t i o n 特性 标记,表示关联,第一个参数为关系名,聚合关系两端的关系名必须一致并唯一; 第二个参数为关联另一端对象的类型。另一个很重要的a g g r e g a t e d 特性表明该对象 为另一个对象的一部分,不能单独存在,只要另一个对象被删除了,则使用 a g g r e g a t e d 特性标注的关联对象也会一起自动被删除,多用于一对一或者一对多的 聚合关系。如下面代码所示,教师t e a c h e r 类与学生s t u d e n t 类为一对多的关系。 中山大学硕士学位论文 p u b li cc l a s st e a c h e r :x p o b j e c t 教师类 标识与s t u d e n t 类关联,关联名称c l a s s s t u d e n t a s s o c i a t i o n ( c l a s s s t u d e n t ,t y p e o f ( s t u d e n t ) ) ,a g g r e g a t e d a g g r e g a t e d 特性表明处于关联关系中的s t u d e n t 为t e a c h e r 的一部分 p u b l i cx p c o l l e c t i o nc l a s s s t u d e n t s ( g e t ( r e t u r n6 e t c o ll e c t i o n ( c l a s s s t u d e n t ) : j p u b li cc l a s ss t u d e n t :x p o b j e c t 学生类i 标识与t e a c h e r 类关联,关联名称一样为c l a s s s t u d e n t a s s o c i a t i o n ( c 1 a s s s t u d e n t ) 】 p u b l i ct e a c h e rc 1 a s s t e a c h e r : 1 按照上述代码编译和运行之后,x p o 则会自动在数据库建立s t u d e n t 表和 t e a c h e r 表。为它们建立外键关联并根据a g g r e g a t e d 特性维护两个表之间的关系。 3 x p o 继承关系用法:持久化类的继承用法就简单很多,跟一般类的继承一样, 唯一需要注意的是,如果父类继承x p o b j e c t ,然后子类继承父类,那么子类也是持 久化类,子类不需要显式定义o l d 具体表现在关系表中就是子类的表中存在指向 父类的字段。 4 s e s s i o n 对象用法:s e s s i o n 对象是x p o 连接数据库的对象,一般单数据库只 使用x p 0 提供的d e f a u l t s e s s i o n 对象即可。应用开发过程中可以自定义多个不同的 s e s s i o n 对象来进行多数据库的连接,这个将会在配置服务中将会使用到如下面 图3 - 5 所示,s t u d e n t 和t e a c h e r 对象可以通过不同s e s s i o n 对象与不同的数据库 进行会话 1 7 基于x p o 的n e t 应用开发框架的研究与宴现 图3 - 5 、s e s s i o n 对象用法示意图 5 x p o 查询操作用法:x p o 的条件对象用来生成数据筛选条件,实际就是s q l 语句条件语法树( 条件表达式的组合) 的对象表示方法。主要的条件查询类继承予 抽象类c r i t e r i a o p e r a t o r ,比较常用的查询类有如下几个:b e t w e e n o p e r a t o r 取范 围的条件表达式类,如:2 0 = 2 5 。 x p o 的对象查询操作类非常强大,涉及多种条件对象的操作,因此适当地组合 使用可以灵活地查询到需要的结果集合。 6 x p o 对象持久化工具除了拥有以上所说各种功能,x p o 还提供了类似于 m i c r o s o f ta d o n e t 中的事务处理,可以在s e s s i o n 中使用b e g i n ,c o m m i t 或者 r o l l b a c k 的方法来处理对象事务。此外,x p o 也提供对象延迟加载和对结构体支持 等技术。x p o 对象持久化工具为x a f 应用框架中的数据层服务提供强大的技术支持。 中山大学硕士学位论文 3 1 1 2 2x p o 数据层服务解决方案 在x a f 应用框架地设计方案中,x p 0 数据层服务包含对象克隆,对象事务和对象 查询这三个主要服务。由于x a f 应用框架其他服务组件均建立在x p o 数据层服务之 上,因此在享受x p o 对象持久化工具提供的各种高级技术支持的同时,x p o 也成为 x a f 应用框架必须依赖的一部分,故此必须把x p 0 封装起来供其他服务组件调用。 下面详细介绍x p o 数据层服务的各个部分 1 对象克隆服务 该服务主要是用于解决对象与对象之间的包含关系比如:对于一般管理信息 系统应用都会存在基本信息和业务信息,一个业务对象一般会包含一个或多个基本 信息对象,而且业务对象很多情况下需要保持历史数据的稳定供日后查询统计之用。 如下面图3 _ 6 的例子所示 图3 _ 6 、对象包含关系和引用关系例子示意图 s t u d e n t 对象与联系方式对象和家庭成员对象为引用关系,因为学生的联系方 式和家庭成员对象信息可能随时间而改变,而s t u d e n t 对象一般希望得到这些实时 的对象信息,因此使用引用关系。但是学历对象则是包含了曾经就读学校的信息, 基于x p o 的n e t 应用开发框架的研究与实现 该信息是历史数据,因此就存在对象间的包含关系,即把学校对象信息完全包含到 学历对象里面。因此如果业务对象和基本信息对象仅仅是引用关系的话,在基本信 息对象有修改或者删除的情况下,业务对象就必然关联到新的基本信息对象或者造 成对象空引用。 因此,一个业务对象如果包含另一个对象,则需要把被包含的对象克隆到业务 对象中,作为业务对象的一部分持久化下来。在) 【p 0 数据层服务中利用n e t 反射技 术调用对象克隆方法来实现对象克隆。方法执行过程中,首先遍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宿州宿城第一初级中学教育集团教师招聘考试真题2024
- 保定市唐县招聘社区工作者考试真题2024
- 电势考试题及答案
- 乞丐考试题及答案
- 中式面点制作技艺智慧树答案
- 护理管理基础模拟考试题(附答案)
- 中外教育史(长青联盟)知到智慧树答案
- 小儿上呼吸道感染的健康教育与心理护理培训考试题(含答案)
- 幼儿园食品安全知识测试题(附答案)
- 十二导心电图机应用培训考核试题(附答案)
- 2025年秋季学期“1530”安全教育记录表
- 2025版新能源项目保证担保借款合同
- 危大工程安全监理管理制度
- 2025年行政管理学专业试题及答案
- 校园绅士淑女教育实施纲要
- 企业安全管理机构的主要职责
- 2025至2030国内外海洋工程防腐应用趋势行业产业运行态势及投资规划深度研究报告
- 2023年生态环境综合行政执法考试参考题库(400题)
- 巡检员质量培训
- 胸腹瘘个案护理
- 护理课程思政讲课
评论
0/150
提交评论