




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、J2EE组件和层次J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个 应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式 中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议 通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,如图1所示,以下是 J2EE 规范的四个层次及相应的组件: 图1 J2EE组件和层次 这四层分别是 运行在客户端机器上的客户端层(Client Tier)、 运行在Web服务器上的Web层(Web Tier)、 运行在EJB服务器上的业务层(Business Tier)和 运行在EIS服务器上企业信息系统层(Enterprise Information System Tier)其中Web层和业务层共同组成了三层J2EE应用的中间层,其他两层是客户端层和存储层或企业信息系统层。一般情况下,许多开放商把Web服务 器和EJB服务器产品结合在一起发布,称为应用服务器或J2EE服务器。J2EE平台规范也定义了相应层的组件:I.客户端层组件应用客户端程序和浏览器是客户端层组件。客户端层组件可以是基于Web方式的即作为Web服务器的浏览器,也可以是基于传统方式的(非基于Web方式)即 独立的应用程序,可以完成瘦客户机无法完成的任务。II.Web层组件Java Servlet和JavaServer Pages(JSP)是Web层组件。如图2所示的客户层那样,Web层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的Enterprise Bean 来进行处理。按照J2EE规范,静态的HTML页面和Applets不算是Web层组件。这里的JavaBean和EJB(Enterprise JavaBean)除了共用“JavaBean”这个名字外,这两种组件模式完全没有关系。许多文章把EJB作为原始的“JavaBean”的扩展,这是 错误的。EJB并没有扩展或使用JavaBean组件模式。最初的JavaBean(java.beans包)在进程内部(intraprocess)使 用,而EJB(javax.ejb包)是在进程间(interprocess)使用的组件。即最初的JavaBean不是为分布式组件而设的。它是最好的 组件模式,可能是至今发现的最好的过程内部开发的组件模式,但它不是一个服务器端的组件模式。EJB则能解决在三层结构中由管理分布式商务对象多带来的问题。图2 客户端层、Web层及业务层III.业务层组件Enterprise JavaBeans(EJB)是业务层组件。业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的EJB 进行处理。 图3表明了一个EJB是如何从客户端程序接收数据,进行处理(如果必要的话), 并发送到企业信息系统层(EIS) 层储存的,这个过程也可以逆向进行。有三种企业级的Bean: 会话(Session)Beans, 实体(Entity) Beans, 和 消息驱动(Message-driven) Beans。 会话Bean 表示与客户端程序的临时交互。 当客户端程序执行完后, 会话Bean 和相关数据就会消失。相反, 实体Bean 表示数据库的表中一行永久的记录。 当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体Bean 的数据得以保存。消息驱动Bean 结合了会话Bean 和 JMS的消息监听器的特性, 允许一个业务层组件异步接收JMS 消息。 图3 客户端层、Web层、业务层及EIS层IV.企业信息系统层组件 处理企业信息系统软件包括企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统组成了企业信息系统层。 例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。二、J2EE应用程序组件J2EE应用程序是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应 用程序,并与其他组件交互。J2EE说明书中定义了以下的J2EE组件: 应用客户端程序和applets是客户层组件. Java Servlet和JavaServer Pages(JSP)是web层组件. Enterprise JavaBeans(EJB)是业务层组件. 1、客户层组件 J2EE应用程序可以是基于web方式的,也可以是基于传统方式的. web 层组件J2EE web层组件可以是JSP 页面或Servlets.按照J2EE规范,静态的HTML页面和Applets不算是web层组件。 web层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean 来进行处理。 2、业务层组件: 业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理. 下图表明了一个enterprise bean 是如何从客户端程序接收数据,进行处理(如果必要的话), 并发送到EIS 层储存的,这个过程也可以逆向进行。 有三种企业级的bean: 会话(session) beans, 实体(entity) beans, 和 消息驱动(message-driven) beans. 会话bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 会话bean 和相关数据就会消失. 相反, 实体bean 表示数据库的表中一行永久的记录. 当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体bean 的数据得以保存.消息驱动 bean 结合了会话bean 和 JMS的消息监听器的特性, 允许一个业务层组件异步接收JMS 消息. 3、企业信息系统层: 企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可能为了数据库连接需要访问企业信息系统 三、基于MVC设计模式的WEB应用框架研究MVC设计模式基于J2EE的WEB应 用系统,多数都利用MVC模式来实现其体系结构。MVC(Model-View-Controller)是八十年代为编程语言Smalltalk-80发 明的一种软件设计模式。MVC模式将交互式应用分成模型(Model)、视图(View)和控制器(Controller)三部分1。模型是指从现实 世界中挖掘出来的对象模型,是应用逻辑的反映。模型封装了数据和对数据的操作,是实际进行数据处理的计算的地方。视图是应用和用户之间的接口,它负责将应 用显现给用户和显示模型的状态。控制器负责视图和模型之间的交互,控制对用户输入的响应响应方式和流程,它主要负责两方面的动作:把用户的请求分发到相应 的模型;将模型的改变及时反应到视图上。MVC将这些对象分离以提高灵活性和复用性。MVC模式的结构如图1所示:图1MVC设计模式的结构设计目标遵循J2EE规范,基于多层分布式应用软件开发框架,分布 式的层次构架方式可以提高软件系统性能上的可扩展性,从长期的角度上保障了客户对当前的软件投资;实现软件系统在异常情况下也可以正常地提供服务,提高软 件系统的稳定性;各个构架层次逻辑分离,有利于软件开发过程中团队成员的协同工作,提高生产效率。2、框架结构 在设计策略中,将软件系统从构架上分为数据层、业务逻辑层和表示层,主要集中在业务表示与业务逻辑层。将普通三层架构的表示层细分成视图格式层和表示控 制逻辑层。表示层涉及基于“瘦客户”技术的用户视图格式服务器端表示和相应的交互式控制逻辑。视图格式层,只保留了构建客户端用户视图必要的显示格式和事 件触发;而在表示控制逻辑层则如名称所描述的那样,实现了人机交互所需控制逻辑和部分业务会话逻辑,再加上贯穿所有系统逻辑层的业务实体,则构成了以 MVC模式为核心的表示层架构,将显示格式、显示控制逻辑、模型数据三部分有效地分隔开来,大大加强了系统架构的可扩展性和应用子系统的可插拔性。 业务层细分成业务会话层和业务持久化层。业务层集中在业务流程中处理逻辑的组件化封装,且与数据层平台和外部系统无关。业务会话层,侧重于业务活动,将 一项业务的所有活动事务性地封装起来,也确保业务流程处理的一致性和高效率;而业务持久化层则是为业务会话层提供支持,提供业务数据的持久化操作,在业务 与数据库之间建立分离作用的中间层,构成松耦合的架构。本分层模型中实现了MVC设计模式。其中,Servlet组件对应于MVC中 的控制器(Controller)部分,JSP及Browser对应于视图(View)部分,而会话外观、逻辑Bean及值对象则对应于模型 (Model)部分。其结构图3所示:2.1、数据层(1)层定义数据层对数据进行管理, 并向业务逻辑层提供标准化的开放访问接口。数据层目前主要提供两种形式的服务方式:数据库方式和文件方式。数据库主要提供业务操作数 据等具有明显结构化特性的数据的存储和访问服务;文件主要提供包括扫描文档图像、传真、照片、计算机生成的报告、字处理文档、电子表格、演示文稿、语音和 视频片段等非结构化数据的存储和访问服务。主要功能:数据创建、数据存储、数据查询、数据更新、数据删除、数据安全、事务支持、数据 备份/恢复。(2)与其他层接口1)数据库方式的数据层面向业务逻辑层提供数据库访问服务接口,业务逻辑层通过 JDBC协议访问数据库服务。2)文件方式的数据层面向业务逻辑层提供文件级的访问服务接口,业务逻辑层通过操作系统本身提供的文件 访问API访问文件数据。2.2业务逻辑层 (1)层定义业务逻辑层接受从表示层输入的用户请求,将其转化为业务逻辑过程能够理解的方式,根据特定的业务逻辑有序地向数据层发 送数据请求,并将数据层返回的数据解释及组合成用户所需信息,返回给表示层,是整个应用软件系统中业务逻辑的实现和处理核心。业务逻辑层运行在基于 J2EE应用服务器的EJB及WEB容器中。(2)组件定义业务逻辑层包含会话外观 (SessionFa?ade)、逻辑Bean(LogicBean)和和数据存取Bean(DataAccessBean)等三个逻辑组件。 1)会话外观提供了面向表示层的统一的业务逻辑调用接口;是数据存取事务的边界,所有数据存取事务都由会话外观进行管理,即会话外 观负责数据存取事务的开始和关闭。业务逻辑完成方式:通过调用逻辑Bean实现业务逻辑。2)逻辑Bean 提供了业务逻辑具体实现;具有可复用性:可以直接被会话外观调用,实现会话外观所需的业务逻辑;可以被其他逻辑Bean调用,此时此逻辑Bean作为一 个更复杂的业务逻辑的一个组成部分。业务逻辑完成方式:可以通过调用其他的逻辑Bean实现相对复杂的业务逻辑;可以直接调用数据存 取Bean完成相对简单的业务逻辑。3)数据存取Bean提供了数据层的访问接口;不负责管理事务,它只是被动 的使用调用者传入的事务环境;与数据库表的映射方式,通常采取单个数据表对应单个数据存取Bean的映射方式,由单个数据存取Bean包含对应单个数据表 的所有相关数据访问操作。4)值对象包含业务逻辑实体的属性,不包括业务逻辑实体的操作;是表示层和业务逻辑层 数据交换的主体单元,和会话外观一同组成了完整的业务逻辑实体,提供了业务逻辑层面向表示层的统一接口;与数据库表的映射方式,通常采取单个数据表对应单 个值对象的映射方式;可以与不同类型值对象以聚合方式组成新的值对象。(3)与其他层接口1)由会话外观提供面 向表示层的业务逻辑调用接口,表示层通过Java本地调用访问业务逻辑层。2)数据存取Bean通过JDBC访问数据库服务。 3)数据存取Bean通过操作系统提供的系统服务访问文件数据。2.3表示层(1)层定义 表示层接受用户提交的输入请求,通过对业务逻辑层的访问,获得并向用户输出可视化响应。(2)组件定义采用 MVC设计模式,由Servlet提供页面请求和请求响应的总体控制,JSP和浏览器提供请求结果响应的可视化显示。 1)Servlet接收所有用户由通过浏览器提交的业务请求,并合成相应的值对象,访问业务逻辑层完成业务逻辑实体的业务处理;将业 务逻辑实体的变化以值对象的方式通知并转向相应的JSP。2)JSP根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 证券投资顾问述职报告
- 2026届广东省梅州市梅江实验中学化学九上期中预测试题含解析
- 2026届山东省牡丹区胡集中学化学九上期中综合测试试题含解析
- 2026届云南省文山县九年级化学第一学期期中学业质量监测模拟试题含解析
- 物业工程维修培训
- 小米配件产品培训
- 房产中介个人年终总结
- 幼儿教育政策法规解读
- 广东省广州市黄埔区2026届九年级化学第一学期期中联考试题含解析
- 挂号收费年度工作总结
- 模具部的组建和管理
- 高中生纪律教育主题班会
- 《中国近现代史纲要》课程教学大纲
- 康复专转本试题及答案
- 2025基于人工智能的智慧公路应用技术研究报告
- 【艾青诗选】22《雪落在中国的土地上》思维导图+批注
- 精神科护理学见习
- 版高空作业培训内容
- 《销售技巧实战培训》课件
- 2024年秋季学期新苏科版七年级上册数学课件 2.4 有理数的加法与减法-2.4.1 有理数的加法
- 《坚持的主题班会》课件
评论
0/150
提交评论