




已阅读5页,还剩65页未读, 继续免费阅读
(计算机应用技术专业论文)ejb应用研究与性能优化.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 i 论文题目论文题目 ejb 应用研究与性能优化 专专 业业 计算机应用技术 研研 究究 生生 苏林凤 指导教师指导教师 郭跟成 刘勇 摘 要摘 要 j2ee 平台为企业应用的设计开发集成以及部署提供了一条基于组件的 实现途径j2ee 的核心是 ejbejb 定义了如何编写服务器端组件提供了组 件与管理组件的应用服务器之间的标准约定基于这种标准的所有 ejb 组件或 服务器可以轻易的做到互操作和移植ejb 是一种组件架构使得开发人员能够 快速开发出具有伸缩性的企业级应用 ejb 最大的好处是ejb 组件封装了业务对象及其概念让开发人员可以把 关注点集中于业务逻辑本身而把安全和事务回滚等任务交付给 ejb 容器而 正是因为容器提供的系统级服务占用了太多的系统资源从而影响了系统性能能 否改善和提高 ejb 性能是基于 ejb 的企业应用系统成败的关键 本文介绍了 j2ee 平台及其体系结构比较了传统持久化方法轻量级持久 化框架以及实体 bean 组件的特点和适用范围通过熟悉 ejb 规范论证 ejb 的 优缺点分析 ejb 的体系结构和 ejb 调用原理提出了一个基于 session facadedtodao 等 ejb 设计模式的用于提高 ejb 远程调用效率的优化设计 方案主要研究内容包括 1研究了 j2ee 规范及体系结构分析了 j2ee 核心模式在优化 ejb 性能 上的优化思想分析比较了目前 j2ee 持久化方式并指出它们的优缺点 2研究了 ejb 组件体系分析了 rmi 的工作机制以及基于 rmi 机制的 ejb 远程调用原理从而找出了影响 ejb 性能的关键因素并总结了优化 ejb 性能的设计原则 3在分析 ejb 设计模式理论的基础上提出了在远程调用和应用架构两 个方面提高 ejb 远程调用效率的优化设计方案并通过应用实例验证了优化 方案的正确性和可行性 最后做出总结和展望 关关 键键 词词j2eeejb远程调用设计模式组件 论文类型论文类型应用研究 河南科技大学硕士学位论文 ii subject: ejb application research and performance optimization specialty: computer application technology name: su linfeng supervisor: guo gencheng liu yong abstract j2ee platform provide a component-based method for designing, development, integration and deployment of enterprise application .ejb is the core technology of j2ee. it defines how to compile the component and provides a standard between component and application server managing component, all ejb components or ejb server based on this standard can operate each other easily. ejb is a component framework, so developer can develop an extendable enterprise application quickly by ejb. the best advantage of ejb is that ejb component encapsulates the business objects and concept. in this way the developer can focus on business logic, and the ejb container deals with the security and transaction roll-back. the container and component cost too much system resource and affect the system efficiency, so it is the most important part of enterprise application to improve the performance of ejb. this dissertation introduces the basic theory and system framework of j2ee, comparing traditional persistence method, light level persistence framework, the characteristics and application range of entity bean. by knowing about ejb criterion and arguing the advantages and disadvantages of ejb and analyzing the ejb system structure and calling principle, we proposing a ejb optimized design framework based on the design model of session facadedtodao and so on to reduce response time. the emphases of my research as follows: (1) studying j2ee criterion and j2ee system framework. analyzing j2ee kernel model s optimized design thought in framework, data transferring and persistence. analyzing and comparing present j2ee persistence style, pointing out these merits and defects. (2) researching component system of ejb, analyzing the theory of rmi and rmi-iiop, finding out the important factors affecting ejb performance, summarizing the design principles optimized ejb performance. (3) based on ejb design patterns, a whole of ejb remote method invocation 摘 要 iii optimized design framework is proposed. by project, it proves the correctness and feasibility of the optimized design project. finally, i make a summing-up and vista for the dissertation. key wordsj2ee,ejb,remote method invocation,design patterns, component dissertation type: application research 第 1 章 绪论 1 第1章 绪论第1章 绪论 1.1 课题背景课题背景 企业业务国际化和全球化的发展对软件系统要求越来越高一个单机版的 应用程序已经不能满足用户的基本需要而 client/server 或 browser/server 的双 层结构也难以以最佳的方式解决现实的业务问题为了解决这种弊端sun 公 司推出早期的 j2ee(java 2 platform enterprise edition)不仅巩固了 java 语言的 许多优点例如“编写一次随处运行”的特性同时还提供了对 ejb(enterprise javabeans)java servletsjsp(java server pages)以及 xml(extensible markup language)等技术的全面支持其最终目的就是成为一个能够使企业开发者大幅 缩短投放市场时间的体系结构目前j2ee 成为当前最重要的开放的组件化构 件规范和开发平台是业界软件巨头推崇的分布式大型应用开发的首选平台 基于 j2ee 构架的 13 种核心技术包括 java 数据库连接 jdbc(java database connectivity)jndi(java naming and directory interface)ejb(enterprise javabean)rmi(remote method invocation)jspjava servletsxml jms(java message service)java idl/corbajta(java transaction api)/ jts(java transaction service)javamail 和 jaf(javabeans activation framework) 等1-2,4其中ejb 是 j2ee 的核心 ejb 是 j2ee 中服务器端分布式组件规范它包括了组件组件容器组件 打包组件配置等标准规范内容使得用 java 基于组件方法开发服务器端分布 式应用成为可能从分布式计算角度来看 ejb 像 corba(common object request broker architecture)一样提供了分布式技术的基础提供了对象之间的 通讯手段使用 ejb 最大的好处是ejb 对象封装了业务对象及其概念让开 发人员可以把关注点集中于业务逻辑本身而把安全和事务回滚等任务交付给 ejb 容器4可靠的对象实例管理和方便的配置更是 ejb 的突出优点 虽然 ejb 的技术和思想给业界带来了新的空气但毕竟还是一个新技术 正在成长中的技术很多设计考虑的还不完善有待进一步研究和总结其中 ejb 性能问题是基于 j2ee 开发企业应用系统所要考虑的关键问题ejb 性能的 好坏关系到企业应用系统的成败而 ejb 性能不高成为业界争论已久的话题 因此针对基于 ejb 组件技术的企业应用与性能优化研究有着很重要的现实意 河南科技大学硕士学位论文 2 义 1.2 技术现状技术现状 ejb 作为企业级的数据访问/持久化标准在 1999 年作为 j2ee 规范的核心 规范出现极大的转变了 java 企业级开发的模式为 java 软件开发提供了一个 良好的架构ejb 从 1.0 到 2.1 在 j2ee 架构中都是作为一个服务器端的数据访 问中间件开发人员通过 ejb 标准的 api 接口来访问操作数据避免直接用 jdbc 和 sql 操作底层的数据库 采用 ejb 架构的目标在于 1减轻直接操作底层数据库的工作量 2为企业级开发引入了面向对象/面向服务的开发架构 3数据对象生命周期的自动管理 4分布式能力 5集成/声明式的安全/事务管理 在旧的 ejb 模型中ejb2.1 以前ejb 实现了大部分的目标但一个巨 大的缺陷是原有的模型在试图减轻数据访问工作量的同时也引入了更多的复杂开 发需求而 ejb2.x 的复杂度和性能问题使之在 j2ee 架构中的表现一直不是很 好ejb 大概是 j2ee 架构中唯一一个没有兑现其能够简单开发并提高生产力的 组件与此同时一些相关的轻量级框架技术也相继出现hibernatejdo spring 等ejb 面临前所未有的挑战 2006 年 5 月sun 发布 ejb3.0 规范最终版3ejb3.0 规范的变化可以大致 分成 2 大部分 1使用了 jdk1.5 中提供的 annotation 机制的编程模型 ejb 的 annotation 在 ejb3.0 中所有的企业 bean 都是 pojoplain-old java object普 通 java 对象和一些相关的描述符这些描述符可以用来定义企业 bean 需要实 现的接口o/r 映射object/relation mapping对象/关系映射时需要的信 息需要引用的资源等等 2提供了一个基于 hibernate 的 o/r mapping 工具 ejb ql 发生了重 大的变化当一个实体 pojo 类和 entitymanager 建立关系后这个类就是可以 实例化的类了同时就时实例化上下文的一个部分 出于兼容性的考虑实现 ejb 3.0 规范的应用服务器将完全支持 ejb 2.x 新的规范也没有替换或废弃任何旧有的 api 第 1 章 绪论 3 ejb 3.0 最大的目标是从应用开发者的角度最大限度地降低 ejb 体系结构的 复杂性为了达到这个目标ejb 3.0 采取了下列措施3 1用 java 元数据标注metadata annotation记录 ejb 元数据例如 ejb 的类型配置信息等使用元数据标注可以减少开发者所需提供的工件 artifact数量例如配置描述符deployment descriptor就将完全由应用服务 器自动生成ejb 接口也可以从一个 pojo 类自动生成 2采用只配置特殊情况的策略在大多数情况下使用默认配置只 有在特殊情况下才由开发者编写元数据配置从而避免了开发者针对大量常见 预料之中的行为编写配置 3借助元数据标注依赖注入机制和简单的查找定位机制将对应用服 务器环境的依赖和 jndi 访问封装起来降低开发和使用的难度并且提升 ejb 组件的可移植性和可复用性 4简化 ejb 的类型新的 ejb 组件更类似于 pojo运行时所需的接口 类型将由应用服务器根据元数据标注自动生成ejb 的业务接口无须再继承 session bean 或者 entity bean 的特定接口而是一个普通 java 接口实际上 entity bean 无须实现任何接口并且 ejbcreate()ejbremove()之类的回调方法 不再是必须实现的从而大大提升了 ejb 组件的可测试性可以在 ejb 容器之 外测试它们 5简化了容器管理持久化container-managed persistence,cmp的使 用提供了一组用于指定 o/r mapping 属性的元数据标注同时提供了更强大 的 o/r mapping 能力支持轻量级的领域建模支持 entity bean 的继承和多态操 作极大地增强了 ejb ql 的功能并且减少了对 checked exception 的使用 新的 ejb3.0 规范尝试在简单开发并提高生产力方面作出努力以减轻其开发 的复杂性ejb3.0 减轻了开发人员进行底层开发的工作量它取消或最小化了 很多回调方法的实现并且降低了实体 bean 及 o/r 映射模型的复杂性借助于 ejb 3.0java ee 5 可以得到更广泛的应用 1.3 研究现状研究现状 当前ejb 方面的研究的重点和热点主要集中在 ejb 应用ejb 体系结构 ejb 性能等方面 其中针对 ejb 性能问题而提出的优化思想主要有以下几点 1使用 local 接口优化查询语句使用粗粒度的远程调用等优化策略 5-9 这些策略确实能在性能优化上起到良好的指导作用美中不足的是这些技 河南科技大学硕士学位论文 4 术应用时有很大的局限性并不能反应真实的企业系统环境全面提高系统性能 比如使用 local 接口它避免了 ejb 调用过程沉重的网络开销对性能提高有良 好的效果但是在分布式环境下 ejb 部署在远端服务器还是本地服务器的可能 都会出现本地调用的情况很少这大大限制了 local 接口的使用 2调整 ejb 服务器的各种参数如线程数实例池大小连接池参数等 5,7 这是维护方面的工作还需要从开发设计的角度解决根本的问题 3使用设计模式5-7,9确实是优化性能的可行方案但孤立的设计模式会 带来难以察觉的隐患比如ejbhome 工厂模式可能带来缓存对象与数据库不 一致问题 因此针对 ejb 的性能优化还存在可挖掘的研究空间 1.4 研究内容研究内容 j2ee 平台提供一整套基于企业开发的技术和规范技术面特别广部分技 术还比较复杂甚至不成熟难以快速应用开发单就 ejb 组件技术而言就存 在编写 ejb 复杂开发效率低难以配置等问题基于 ejb 的研究主要在 ejb 持久化存储机制ejb 分步式对象技术性能和 ejb 安全等领域我的研究内 容主要集中在以下几点 1深入分析和研究了 j2ee 和 ejb 规范和体系结构明确了研究工作的 研究范围和主要目标 2分析了 j2ee 核心模式在架构数据传递和持久化方面的优化设计思 想以及它们的优缺点对目前的 j2ee 持久化方式进行了分析和比较并指出它 们的优缺点 3研究了 ejb 组件的理论体系分析了 rmi 的工作机制以及基于 rmi 机制的 ejb 远程调用原理从而找出了影响 ejb 性能的关键因素并总结了优 化 ejb 性能的设计原则 4在分析 ejb 设计模式理论的基础上提出一个完整的针对 ejb 远程调 用效率的优化设计方案并通过项目实例验证了优化方案的可行性 另外软件复用在软件领域研究中一直是一个重点内容尤其在当今复杂的 web 应用系统开发中找到一种合理的设计方案能够有效地实现软件复用方 便后期维护节省开发成本缩短开发时间更具有现实意义这也是本课题所研 究的重点内容 第 1 章 绪论 5 1.5 论文组织结构论文组织结构 第一章介绍了课题的背景技术现状及本课题的主要研究内容和论文的总体 组织结构 第二章从整体上讲述本课题的研究框架 j2eej2ee 核心模式以及基于 javaee 的数据持久化技术并做了简单的对比 第三章讲述了 ejb 组件技术体系介绍了 ejb 的概念和分类方法以及各 类 bean 的应用模式并分析了 ejb 的调用原理和依然存在的问题 第四章讲述了 ejb 设计模式的概念和设计思想并针对目前 ejb 的性能的 欠缺分析了 ejb 设计模式优化 ejb 上的构思并提出了一个优化设计方案 第五章介绍了基于 ejb 设计模式优化设计方案在某项目中的应用从需求 分析系统设计到系统实施的方法和过程 第六章总结全文介绍了本课题仍存在的问题及下一步工作和展望 第 2 章 j2ee 与持久化技术 6 第2章 第2章 j2ee 与持久化技术与持久化技术 2.1 j2ee 平台简介平台简介10 今天越来越多的程序设计人员希望借助服务器端技术的快捷安全以及可 靠性为他们的企业开发分布式的交易应用系统为降低成本快速实现企业应 用的设计和开发j2ee目前版本 java ee 5平台技术为企业应用的设计开 发集成以及部署提供了一条基于组件的实现途径j2ee 平台为您提供了一个 多层次分布式应用设计模式重用组件的能力统一的安全模式灵活的交易控 制你不仅可以把全新的客户解决方案用比以往都快的速度推向市场而且平 台独立基于 j2ee 组件的解决方案将使你的产品不绑定在任何一个厂商的产品 和 api 上 j2ee 平台采用一个多层次分布式的应用模式这意味着应用逻辑根据功能 被划分成组件组成 j2ee 应用的不同应用组件安装在不同的服务器上这种划 分是根据应用组件属于多层次 j2ee 环境中的哪一个层次来决定的这些组件包 括运行在客户机器上的客户层组件运行在 j2ee 服务器上的 web 层组件运 行在 j2ee 服务器上的业务层组件和运行在 eis 服务器上的企业信息系统层软 件 j2ee 应用是由组件组成的j2ee 组件是一个自我封装的功能软件单元它 将通过相关的类文件和与其它组件的通讯被集成进 j2ee 应用j2ee 规范定 义了如下 j2ee 组件 1应用application客户端和小程序applet是客户端组件 2java servlet 和 java server pages 技术组件是 web 组件 3enterprise javabeans(ejb)组件是业务组件 组件在部署时被安装在容器之中是组件和特定平台底层功能之间的接口支 持着组件在 web企业 bean 或者应用客户端组件能够被执行以前它必须被 组装到 j2ee 应用里并且被部署到它的容器里这些容器有1企业 javabeans(ejb)容器为 j2ee 应用管理着所有的企业 beans企业 bean 和它们 的容器运行在 j2ee 服务器上2web 容器为 j2ee 应用管理着所有的 jsp 页面和 servlet 组件web 组件和它们的容器运行在 j2ee 服务器上3应用 客户端容器为 j2ee 应用管理着所有的应用客户端组件应用客户端组件和它 们的容器运行在客户端机器上4applet 容器是 web 浏览器和 java 插件的 河南科技大学硕士学位论文 7 组合运行在客户端机器上 容器的设置个性化了 j2ee 服务器对每个组件的后台支持包括象安全性 交易管理java 命名和目录接口查询以及远程连接等等容器还管理着不可 配置服务如企业 bean 和 servlet 的生命周期数据库连接资源池数据持续性 persistence以及 j2ee api 中描述的访问 j2ee 平台的 api j2ee 组件是单独包装的为部署而捆绑到 j2ee 应用中每个组件其相关 的文件如 gif 和 html 文件或者服务器端应用类以及部署描述被集成成 一个模块并添加到 j2ee 应用中j2ee 应用是由一个或多个企业 beanweb 或应用客户端组件模块组成的最终企业解决方案可以使用一个 j2ee 应用或根 据设计需要由两个或更多的 j2ee 应用组成 j2ee 为搭建具有可伸缩性灵活性易维护性的商务系统提供了良好的机 制11 1保留现存的 it 资产由于必须适应新的业务需求利用已有的信息系 统方面的投资而不是重新制定全盘方案就变得很重要这样一个以渐进的方 式建立在已有系统之上的服务器端平台机制是我们所需求的j2ee 架构可以充 分利用用户原有的投资如一些公司使用的 bea tuxedoibm cicsibm encina,inprise visibroker 以及 netscape application server这之所以成为可能 是因为 j2ee 拥有广泛的业界支持和一些重要的企业计算领域供应商的参与每 一个供应商都对现有的客户提供了不用废弃已有投资进入可移植的 j2ee 领域 的升级途径由于基于 j2ee 平台的产品几乎能够在任何操作系统和硬件配置上 运行现有的操作系统和硬件也能被保留使用 2高效的开发j2ee 允许把一些通用的很繁琐的服务端任务交给中间 件供应商去完成这样开发人员可以集中精力在如何创建逻辑上相应地缩短了 开发时间高级中间件供应商提供以下这些复杂的中间件服务 状态管理服务让开发人员写更少的代码不用关心如何管理状态这 样能够更快地完成程序开发 持续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程 序能生成更轻巧与数据库无关的应用程序这种应用程序更易于开发与维 护 分布式共享数据对象 cache 服务让开发人员编制高性能的系统极 大提高整体部署的伸缩性 3支持异构环境 j2ee 能够开发部署在异构环境中的可移植程序基 于 j2ee 的应用程序不依赖任何特定操作系统中间件硬件因此设计合理的 第 2 章 j2ee 与持久化技术 8 基于 j2ee 的程序只需开发一次就可部署到各种平台这在典型的异构企业计算 环境中是十分关键的j2ee 标准也允许客户订购与 j2ee 兼容的第三方的现成的 组件把他们部署到异构环境中节省了由自己制订整个方案所需的费用 4可伸缩性 要选择一种服务器端平台这种平台应能提供极佳的可伸 缩性去满足那些在他们系统上进行商业运作的大批新客户基于 j2ee 平台的应 用程序可被部署到各种操作系统上例如可被部署到 linux 或 unix 与大型机系 统这种系统单机可支持 64 至 256 个处理器这是 nt 服务器所望尘莫及 的j2ee 领域的供应商提供了更为广泛的负载平衡策略能消除系统中的瓶 颈允许多台服务器集成部署这种部署可达数千个处理器实现可高度伸缩的 系统满足未来应用的需要 5稳定的可用性一个服务器端平台必须能全天候运转以满足需求因 为 internet 是全球化的无处不在的即使在夜间按计划停机也可能造成严 重损失若是意外停机那会有灾难性后果j2ee 部署到可靠的操作环境中 他们支持长期的可用性一些 j2ee 部署在 windowslinux 环境中也可选 择健壮性能更好的操作系统如 sun solarisibm os/390最健壮的操作系统可 达到 99.999%的可用性或每年只需 5 分钟停机时间这是实时性很强商业系统理 想的选择 图 2-1 j2ee 体系结构 fig.2-1 j2ee system framework 河南科技大学硕士学位论文 9 6基于构件它特点是编译码独立部署的单位由第三方进行组合的 单位无持久状态等它具有可插入更好的设计更好的复用方便的更新 实现与接口分离的优点 j2ee 的体系结构12-13如图 2-1 所示j2ee 平台提供了你设计建造测 试部署分布式多层次应用所需要的全部内容同时j2ee /ejb 技术还比较复 杂如何构建高效安全和可靠的基于 j2ee /ejb 的企业应用是软件开发者面临 的一个挑战 2.2 j2ee 持久化方法持久化方法 在基于 j2ee 的项目设计过程中选择何种持久化方法对系统方案设计及性 能要求影响都很大目前j2ee 开发人员处理持久化主要通过以下几种方法 序列化jdbc轻量级的持久化中间件以及实体 bean 组件 2.2.1 序列化序列化 序列化15-17是 java 建立的一种传输机制它能够把对象的信息转换成一系 列的字节码这些字节码可以被传输到网络或者存储到一个文件中序列化的使 用非常简单但它还是有限制的它必须立即存取对象的特征而且它不适合存 取大批量的数据在更改一个对象的属性时如果有错误发生它无法实现回 滚因此不适于应用程序对数据完整性的要求而且不能实现多个线程或程序 异步读写数据 序列化采用 java 类作为其处理的数据模型,类之间的关系可以通过集合的引 用体现同样通过序列化也将保存类之间的关系但是序列化缺乏一种可靠的 数据环境,不支持事务处理查询以及为不同的用户提供共享数据服务 所有这些不足都使得序列化无法满足大多数数据存储要求 2.2.2 jdbc jdbc 可算是最老的企业 java 规范之一与 microsoft 开发的开放数据库连 接 odbc 标准具有同样的功能提供一组通用的 api,通过数据库特定的驱动 程序访问数据库jdbc 驱动程序用于把数据库调用映射成适当的数据库特定的 调用从而能够容易地把企业级的 java 应用从一个数据库移植到另一个数据库 上jdbc 驱动程序可以分为四类jdbc-odbc 桥驱动(jdbc odbc bridge driver)本地 api 部分的 java 驱动(native apipartly java driver)网络协议完全 第 2 章 j2ee 与持久化技术 10 的 java 驱动(net protocolall java driver)和本地协议完全的 java 驱动(native protocolall java driver)用纯 java 实现可以直接访问数据库16,25 jdbc 提供了一种非常好的机制它可以使应用程序代码与具体的数据库厂 商和数据库位置无关在关系型数据库的数据存储方面有很好的表现但是当使 用 jdbc 驱动处理面向对象的数据库或其他非关系数据库时就不是很好了 2.2.3 轻量级框架轻量级框架 最常用的轻量级持久化框架有 jdo 和 hibernate 1jdo26,31jdo 和 jdbc 都是 java 调用数据库的 apis区别在于他 们访问数据存储的具体方法不同jdo 规范的两个主要目的是提供数据处理和 访问机制的 api 以及允许规范的实现作为应用服务器的一部分java 数据对象 是最新的持久性规范它提供了面向对象的持久数据存储开发人员使用 pojo 来装入和存储持久数据 jdo 架构主要的几部分内容如图 2-6 jdohelperjavax.jdo.jdohelper 类拥有一个静态的助手helper方 法这个方法可以获得一个持久对象的生命周期还可以用来创建一个与具体实现 厂商无关的 persistencemanagerfactory 的实例persistencemanagerfactory javax.jdo.persistencemanagerfactory 类可以通过 jdohelper 类的助手方法获得 这是一个标准的工厂类他可以创建 persistencemanager 类 persistencemanagerjavax.jdo.persistencemanager 接口是应用程序经常要 使用的一个主要的 jdo 接口每一个 persistencemanager 负责控制一组持久化对 象而且它还可以创建新的持久化对象或删除现有的持久化对象transaction 和 persistencemanager 之间存在这一对一的关系同时 persistencemanager 又是 extent 和 query 的工厂类也就是说这两个对象都可以通过 persistencemanager 创建 persistencecapable用 户 定 义 的 持 久 化 类 都 必 须 扩 展 实 现 persistencecapable 接口大多数 jdo 实现的供应商都提供一种“增强器” enhancer的功能它可以向你要实现的持久化类中增加 persistencecapable 接 口的实现也就是说其实你根本不会自己去实现这个接口 河南科技大学硕士学位论文 11 图 2-6 jdo 框架 fig.2-6 jdo framework transaction每一个 persistemcemanager 和 javax.jdo.transaction 都是一 一对应的transactions 用来处理事务它使得持久化数据可以成批的一次性添 加到数据表中如果出现异常就将数据回滚 extentjava.jdo.extent 是映射数据库中具体表的类的一个逻辑视图 extent 可以拥有自己的子类它通过 persistencemanager 获得 queryjava.jdo.query 接口用具体的厂商 jdo 来实现它负责处理 jdo 查询语言(jdoql),这些 jdoql 最终被解释为实际的数据库 sql 语言同样这 个接口也是通过 persistencemanager 获得的 jdo 允许开发人员直接采用永久性存储技术,支持事务查询,高速缓存技术,支 持关系数据库对象数据库文件系统等,其基于二进制的解析方式可以处理任 何类型的 java 对象 jdo 并不意味着要取代 jdbc它们是两种以各自独一无二的能力互相补充 的技术具有不同技术背景和开发目的开发者可以使用二者中的一个例如 jdbc 通过直接的数据库访问控制和缓存管理提供给开发者更大的弹性 jdbc 是一种在工业界被广泛认可的成熟技术另一方面jdo 通过隐藏 sql 提供给开发者更大的简便性它将 java 平台开发者从必须熟悉或学习 sql 中解 脱出来而将精力集中在 dom 上同时 jdo 管理在持久存储中对象存储的字 段到字段的细节并整合了 jdbc 中关于数据库的性能和 serialization 中处理 java 对象的优势 第 2 章 j2ee 与持久化技术 12 2hibernatehibernate 19,26,30是一个开源的对象关系映射框架 它对 jdbc 进行了轻量级的对象封装使 java 程序员可以随心所欲的使用对象编程 思维来操纵数据库它不仅提供了从 java 类到数据表之间的映射也提供了数 据查询和恢复机制相对于使用 jdbc 和 sql 来手工操作数据库hibernate 可以大大减少操作数据库的工作量 另外 hibernate 可以利用代理模式来简化 载入类的过程这将大大减少利用 hibernate ql 从数据库提取数据的代码的编 写量从而节约开发时间和开发成本hibernate 可以和多种 web 服务器或者 应用服务器良好集成如今已经支持几乎所有的流行的数据库服务器 hibernate 技术本质上是一个提供数据库服务的中间件它的架构如图 2-7 图2-7 hibernate 架构 fig.2-7 hibernate framework 简 单 来 说hibernate 是 利 用 数 据 库 以 及 其 他 一 些 配 置 文 件 , 如 hibernate .propertiesxml mapping 等来为应用程序提供数据持久化服务 hibernate 的特点是 hibernate 是 jdbc 的轻量级的对象封装它是一个独立的对象持久层框 架和 app serverejb 没有什么必然的联系hibernate 可以用在任何 jdbc 可 以使用的场合例如 java 应用程序的数据库访问代码dao 接口的实现类甚 至可以是 bmp 里面的访问数据库的代码从这个意义上来说hibernate 和 ejb 不是一个范畴的东西也不存在非此即彼的关系 hibernate 是一个和 jdbc 密切关联的框架所以 hibernate 的兼容性和 河南科技大学硕士学位论文 13 jdbc 驱动和数据库都有一定的关系但是和使用它的 java 程序和 app server 没有任何关系也不存在兼容性问题 hibernate 不能用来直接和 entity bean 做对比只有放在整个 j2ee 项目 的框架中才能比较并且即使是放在软件整体框架中来看hibernate 也是做为 jdbc 的替代者出现的而不是 entity bean 的替代者出现的 由于是对 jdbc 的轻量级封闭内存消耗少运行效率高 开发效率高eclipsejbuilder 等主流 java 集成开发环境对 hibernate 有很好的支持在大的项目特别是持久层关系映射很复杂的情况下hibernate 效率高的惊人 支持分布式安全检查集群负载均衡 目前 hibernate 非常受欢迎它目的是把开发人员从繁琐的数据持久化编程 中解脱出来hibernate 在处理如数据查询更新连接池事务处理实体关 系处理等方面非常简单 2.2.4 ejb 组件组件 ejb 组件18,20-23,39是企业信息系统中的处理业务逻辑的中间件其中实体 bean 描述了数据库中的持久性数据信息ejb 使用类似于 o/r 映射的办法它 提供了一个持久性数据的面向对象的表示不同于对象关系软件ejb 对于关系 数据库没有限制它描述的持久性信息可以来自一个企业信息系统eis或者 其他的存储设备而且ejb 要求遵循一个严格标准实现它的厂商必须遵循这 个标准基于相同标准的 ejb 组件可以象工业零部件一样打包组合更换或 移植为组件复用软件的工业化道路提供了锲机而 ejb2.x 标准在面向对象 方面稍微有些欠缺比如一些高级的特性继承多态和复合关系等另外 ejb2.x 的代码编写很复杂而且它是一个重量级组件需要消耗应用服务器很多 的资源来运行由此促生了 hibernatespring 等轻量级组件技术为了重新建 立 ejb 的优势地位新的 ejb3.0 规范出台 最新的 ejb3.0 是基于 hibernate 的 o/r 映射模型的而且新的实体 bean 也是一个加了注释的简单 java 对象(pojo)一旦它被 entitymanager 访问它就成 为了一个持久化对象并且成为了持久化上下文context的一部分新的实体 关系也是通过注释来定义的并提供几种不同的数据库规范操作这在 ejb2.x 中是要通过开发人员自己的设计模式或者其它技术来完成的比如主键生成策 略等ejb3.0 中的 o/r 映射模型发生重要的改变它从原来的 abstract- 第 2 章 j2ee 与持久化技术 14 persistence-schema-based 模式变成了现在的 hibernate- inspired 模式所有这些优 势和变化将重塑 ejb 在 j2ee 中的核心地位 2.3 本章小结本章小结 本章首先介绍了 j2ee 平台的基本概念及多层开发的设计理念讨论了基于 j2ee 平台开发的诸多优点结合 j2ee 体系结构分析了持久层常用的数据存储 技术并做了简单对比最后引出 ejb 持久化组件 第 3 章 ejb 组件体系 15 第3章 第3章 ejb 组件体系组件体系 3.1 ejb 简介简介 sun 公司对 ejb 的定义是ejb 是用于开发和部署基于组件的分布式应用 系统体系结构采用 ejb 编写的应用系统具有伸缩性交互性和多用户安全等 特性这些应用程序只需写一次即可部署在任何支持 ejb 规范的服务器平台 上从本质上说ejb 的结构是一个客户/web 服务器/数据库服务器的三层结 构在 ejb 体系结构里ejb 服务器是管理 ejb 容器的高端进程或应用程序 负责与操作系统有关的底层细节如通讯协议多线程负载平衡等ejb 容器 是一个或多个 ejb 类的实例抽象是 ejb 组件的执行环境并提供服务器端的 系统级功能如线程管理状态管理等ejb 规范描述了构建应用组件要解决 的可扩展 (scalable)分布式 (distributed)事务处理 (transactional)数据存储 (persistent)安全性 (secure)等各方面10-12 ejb 是封装在业务层的业务组件ejb 的业务代码用于解决或满足特定领域 的业务逻辑问题例如银行业零售业或者金融业的业务问题这些业务处于 业务层由企业 beans 来处理的一个企业 beans 用来接收客户端程序的数据 处理它如果需要的话并把它发送到企业信息系统层进行存储企业 bean 同样接收存储的数据处理它如果需要的话再发送回客户端程序10 企业 beans 有三类会话 beans(session beans)实体 beans(entity beans)和 消息驱动 beans (message-driven beans) 3.1.1 会话会话 bean 一个会话 beansession bean 2-4,20-22代表一个与客户的临时会话 当客户 结束操作时这个 session bean 和它的数据就消失了会话 bean 是一种作为单 用户执行的对象作为对远程的任务请示的响应容器产生一个会话 bean 的实 例一个会话 bean 有一个用户从某种程序来说,一个会话 bean 对于服务器来 说就代表了它的那个用户会话 bean 也能用于事务,它能够更新共享的数据,但它 不直接描绘这些共享的数据会话的生命周期是短暂的只有当用户保持会话的 时候它是活着的5,15-17 会话 bean 又被分为两种有状态(stateful)会话 bean 和无状态(stateless)会话 河南科技大学硕士学位论文 16 bean有状态(stateful)会话 bean 的类定义实例变量以用于保存会话过程中的 会话数据从而使得客户与服务器之间是相互关联的这种特性使得有状态 (stateful)会话 bean 作为客户的扩展在 ejb 服务器上维护会话数据并为客户完 成需要的任务无状态会话 bean 不保留与客户端会话时的对话内容尽管存在 着内部状态这些状态不是某一客户端所特有的因此客户端必须把无状态会话 bean 所需的所有数据以参数的形式传递给业务逻辑方法bean 才能发挥作用 在 ejb3.0 规范中使用stateless 标识一个无状态会话 bean 一个简单的只存在 local 接口的无状态 session bean 及接口如下 接口 localhelloworld.java public interface localhelloworld public string sayhello(string name); 实现接口的 localhelloworldbean.java 如下 import javax.ejb.local; import javax.ejb.stateless; import com.slf.ejb.localhelloworld; stateless local (localhelloworld.class) public class localhelloworldbean implements localhelloworld public string sayhello(string name) return name +你好!; 其中stateless 注释定义这是一个无状态会话 beanlocal 注释指明这 个无状态 bean 的 local 接口如果使用remote 注释指明实现的接口是远程接 口当local 和remote 注释都不存在时会话 bean 实现的接口默认为 local 接口 3.1.2 实体实体 bean 实体 beanentity bean 11,20,41表示一个永久存储在数据库的表中的数据 如果客户结束操作或服务器关机后台操作保证实体 beans 的数据存储下来换 句话说实体 bean 对数据库中表提供了一种对象的视图例如一个实体 bean 第 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年动漫作品改编权及衍生品开发授权合同终稿
- 二零二五年度智能仓储运营维护及增值服务合同
- 2025年绿色金融产品推广顾问服务合同
- 2025年度员工食堂环境优化装修与智能化升级合同
- 2025年二手车交易合同书编制与质量检测协议
- 2025年民营医院医用耗材一体化配送及库存优化管理协议
- 2025年供应链合作协议:跨境电商平台物流配送服务合同
- 2025年公共文化设施建设项目招投标合同监督及资金拨付监管协议
- 代理加盟合同协议书
- 2025年输血相关考试试题及答案
- 2025秋外研新版三起点小学英语四年级上册教学计划
- 2025北师大版(2024)三年级上册数学教学计划
- 2025云南省腾冲市边防办招聘边境专职联防员(10人)笔试参考题库附答案解析
- 中职乐理课教学课件
- 2025-2026学年人教版(2024)初中数学八年级上册教学计划及进度表
- 中小会计师所发展困境及对策
- 2025至2030中国微波器件行业市场调研分析及竞争形势与投资发展报告
- 2025-2026学年人教鄂教版(2017)小学科学六年级上册教学计划及进度表
- 心理委员基本知识培训课件
- 2025年12123学法减分考试题库及答案
- 外伤出血急救课件
评论
0/150
提交评论