目前流行的j2ee web应用架构介绍和分析

上传人:kms****20 文档编号:37549411 上传时间:2018-04-18 格式:DOC 页数:13 大小:38.50KB
返回 下载 相关 举报
目前流行的j2ee web应用架构介绍和分析_第1页
第1页 / 共13页
目前流行的j2ee web应用架构介绍和分析_第2页
第2页 / 共13页
目前流行的j2ee web应用架构介绍和分析_第3页
第3页 / 共13页
目前流行的j2ee web应用架构介绍和分析_第4页
第4页 / 共13页
目前流行的j2ee web应用架构介绍和分析_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《目前流行的j2ee web应用架构介绍和分析》由会员分享,可在线阅读,更多相关《目前流行的j2ee web应用架构介绍和分析(13页珍藏版)》请在金锄头文库上搜索。

1、目前流行的目前流行的 J2EEJ2EE WEBWEB 应用架构介绍和分析应用架构介绍和分析1. 架构概述J2EE 体系包括 java server pages(JSP) ,java SERVLET, enterprise bean,WEB service 等技术。这些技术的出现给电子商务时代的 WEB 应用程序的开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。完成这个步骤可以形成一个主要里程碑基线。形成这个基线有很多好处:各种因数初步确定为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。往往架

2、构设计师在这个过程中要阅读大量的技术资料,听取项目组成员的建议,考虑领域专家的需求,考虑赞助商成本(包括开发成本和运行维护成本)限额。一旦架构设计经过评审,这些因数初步地就有了在整个项目过程中的对项目起多大作用的定位。 53vi.Com - 资讯前沿 技术先锋定向技术培训一旦架构师设计的架构得到了批准形成了基线,项目开发和运行所采用的技术基本确定下来了。众多的项目经理都会对预备项目组成员的技术功底感到担心;他们需要培训部门提供培训,但就架构师面对的技术海洋,项目经理根本就提不出明确的技术培训需求。怎不能够对体系中所有技术都进行培训吧!有了架构里程碑基线,项目经理能确定这个项目开发会采用什么技术

3、,这是提出培训需求应该是最精确的。不过在实际项目开发中,技术培训可以在基线确定之前与架构设计并发进行。 53vi.Com角色分工有了一个好的架构蓝图,我们就能准确划分工作。如网页设计,JSP 标签处理类设计,SERVLET 设计,session bean 设计,还有各种实现。这些任务在架构蓝图上都可以清晰地标出位置,使得项目组成员能很好地定位自己的任务。一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。这样工作量估计起来有一个非常好的基础。 53vi.Com - 资讯前沿 技术先锋运行维护前面说过各个任务在架构图上都有比较好的定位。任何人能

4、借助它很快地熟悉整个项目的运行情况,错误出现时能比较快速地定位错误点。另外,有了清晰的架构图,项目版本管理也有很好的版本树躯干。 53vi.Com扩展性架构犹如一颗参天大树的躯干,只要躯干根系牢,树干粗,长一些旁支,加一些树叶轻而易举无疑。同样,有一个稳定的经得起考验的架构,增加一两个业务组件是非常快速和容易的。大家都知道这些好处,一心想形成一个这样的 J2EE 应用程序架构(就像在 windows 平台中的 MFC) 。在这个路程中经历了两个大的阶段:1.1. 模型 1模型 1 其实不是一个什么稳定架构,甚至谈不上形成了架构。模型1 的基础是 JSP 文件。它从 HTTP 的请求中提取参数,

5、调用相应的业务逻辑,处理 HTTP 会话,最后生成 HTTP 文档。一系列这样的 JSP文件形成一个完整的模型 1 应用,当然可能会有其他辅助类或文件。早期的 ASP 和 PHP 技术就属于这个情况。 53vi.Com - 资讯前沿 技术先锋总的看来,这个模型的好处是简单,但是它把业务逻辑和表现混在一块,对大应用来说,这个缺点是令人容忍不了的。资讯先锋网1.2. 模型 2在经过一番实践,并广泛借鉴和总结经验教训之后,J2EE 应用程序终于迎来了 MVC (模型-视图-控制)模式。MVC 模式并不是 J2EE 行业人士标新立异的,所以前面我谈到广发借鉴。MVC 的核心就是做到三层甚至多层的松散耦

6、合。这对基于组件的,所覆盖的技术不断膨胀的 J2EE 体系来说真是福音和救星。 53vi.Com - 资讯前沿 技术先锋它在浏览器(本文对客户代理都称浏览器)和 JSP 或 SERVLET 之间插入一个控制组件。这个控制组件集中了处理浏览器发过来的 HTTP请求的分发逻辑,也就是说,它会根据 HTTP 请求的 URL,输入参数,和目前应用的内部状态,把请求分发给相应的 WEB 层的 JSP 或SERVLET。另外它也负责选择下一个视图(在 J2EE 中,JSP,SERVLET会生成回给浏览器的 html 从而形成视图) 。集中的控制组件也有利于安全验证,日志纪录,有时也封装请求数据给下面的 W

7、EB tier 层。这一套逻辑的实现形成了一个像 MFC 的应用框架,位置如图:1.3. 多层应用下图为 J2EE 体系中典型的多层应用模型。资讯先锋网Client tier 客户层一般为浏览器或其他应用。客户层普遍地支持 HTTP 协议,也称客户代理。WEB tier WEB 应用层在 J2EE 中,这一层由 WEB 容器运行,它包括 JSP, SERVLET 等 WEB部件。EJB tier 企业组件层企业组件层由 EJB 容器运行,支持 EJB, JMS, JTA 等服务和技术。EIS tier 企业信息系统层企业信息系统包含企业内传统信息系统如财务,CRM 等,特点是有数据库系统的支持

8、。应用框架目前主要集中在 WEB 层,旨在规范这一层软件的开发。其实企业组件层也可以实现这个模型,但目前主要以设计模式的形式存在。而且有些框架可以扩充,有了企业组件层组件的参与,框架会显得更紧凑,更自然,效率会更高。2. 候选方案目前,实现模型 2 的框架也在不断的涌现,下面列出比较有名的框架。2.1. Apache StrutsStruts 是一个免费的开源的 WEB 层的应用框架,apache 软件基金致力于 struts 的开发。Struts 具是高可配置的性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理 XML 的实用工具类,服务器端 java bean

9、的自动填充,支持验证的 WEB 表单,国际化支持,生成 HTML,实现表现逻辑和模版组成了struts 的灵魂。 资讯先锋网2.1.1. Struts 和 MVC模型 2 的目的和 MVC 的目的是一样的,所以模型 2 基本可以和 MVC等同起来。下图体现了 Struts 的运作机理:2.1.1.1. 控制如图所示,它的主要部件是一个通用的控制组件。这个控制组件提供了处理所有发送到 Struts 的 HTTP 请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是 Action 类的子类) 。另外控制组件也负责用相应的请求参数填充 From bean,并传给动作类。动作类实现核心商业

10、逻辑,它可以通过访问 java bean 或调用EJB。最后动作类把控制权传给后续的 JSP 文件,后者生成视图。所有这些控制逻辑利用一个叫 struts-config.xml 文件来配置。2.1.1.2. 模型模型以一个或几个 java bean 的形式存在。这些 bean 分为三种:Form beans(表单 Beans)它保存了 HTTP post 请求传来的数据,在 Struts 里,所有的 Form beans 都是 ActionFrom 类的子类。业务逻辑 beans专门用来处理业务逻辑。系统状态 beans它保存了跨越多个 HTTP 请求的单个客户的会话信息,还有系统状态。2.1

11、.1.3. 视图控制组件续传 HTTP 请求给实现了视图的 JSP 文件。JSP 能访问beans 并生成结果文档反馈到客户。Struts 提供 JSP 标签库: Html,Bean,Logic,Template 等来达到这个目的,并有利于分开表现逻辑和程序逻辑。2.1.2. Struts 的细节分析2.1.2.1. 视图-控制-模型用户发出一个*.do 的 HTTP 请求,控制组件接收到这个请求后,查找针对这个请求的动作映射,再检查是否曾创建过相应的动作对象(action 实例) ,如果没有则调用 actionmapping 生成一个动作对象,控制组件会保存这个动作对象供以后使用。接着调用a

12、ctionmapping 的方法得到 actionForm 对象。之后把 actionForm作为参数传给动作对象的 perform 方法,这个方法结束之后会返回给控制组件一个 actionforward 对象。控制组件接着从这个对象中获取下一个视图的路径和重定向属性。如果为重定向则调用HTTPSERVLETREPONSE 的方法来显示下一个视图,否则相继调用requestdispatcher, SERVLETcontext 的方法续传 HTTP 请求到下一个视图。 53vi.Com - 资讯前沿 技术先锋当动作对象运行 perform 方法时,可能出现错误信息。动作对象可以保存这些错误信息到

13、一个 error 对象中,接着调用自身的saveerrors 方法把这个错误保存到 request 对象的属性中。接着动作对象调用 actionmapping 对象的 getInput 方法从动作映射中获取 input 参数,也就是产生输入的视图,并以这个 input 为参数生成一个 actionforward 对象返回。这个 input 参数的 JSP 中一般有HTTP:errors 定制标签读取这些错误信息并显示在页面上。2.1.2.2. 模型到视图模型到视图指视图在显示之前装载系统数据到视图的过程。系统数据一般为模型内 java bean 的信息。示意图表现了由控制组件forward 过

14、来的有 html:form 定制标签的 JSP 的处理逻辑。html:form 定制标签处理对象从 application scope(通过查询SERVLETCONTEXT 对象的属性来实现)获取先前由控制组件actionSERVLET 放在那里的动作映射等对象,由 html:form 的action 属性查得 actionform 名字、类型和范围等信息,在相应的范围内查找 actionform,如果有则利用它的信息填充 html form 表单实际填充动作在嵌套的 html:text 等定制标签的处理对象中。否则在相应范围内创建一个 actionform 对象。 53vi.Com2.1.3

15、. 优缺点优点:一些开发商开始采用并推广这个框架,作为开源项目,有很多先进的实现思想,对大型的应用支持的较好,有集中的网页导航定义;缺点:不是业届标准,对开发工具的支持不够,复杂的 taglib,需要比较长的时间来掌握,html form 和 actionform 的搭配比较封闭,但这也是它的精华所在。修改建议:把 actionform 属性的设置器和访问器修改成读取或生成xml 文档的方法,然后 html form 和 actionform 之间用 xml 文档进行数据交换,使之松散耦合,适应数据结构易变化的应用。2.2. JATO 53vi.ComJATO 应用程序框架是 iPlanet

16、应用程序框架的旧名。它是一个成熟的、强大的,基于 J2EE 标准的面向于开发 WEB 应用程序的应用框架。结合了显示字段、应用程序事件、组件层次和以页面为中心的开发方法、以及 MVC 和服务到工作者 service-to-workers 的设计模式等概念。JATO 可适用于中、大、超大规模的 WEB 应用。但是它也不是一个企业层的应用框架,也就是说它不会直接提供创建 EJB, WEB services 等企业层组件的方法,但用它可以构造出访问企业层组件的客户应用。这个框架功能主要有三部分组成:iPlanet 应用框架核心;iPlanet 应用框架组件;iPlanet 应用框架扩展。应用框架核心定义了基本接口、对象协议、简单组件,以及iPlanet 应用框架程序的最小核心。包括视图简单组件、模型简单组件、请求分发组件和可重用命令对象。iPlanet 应用框架组件利用框架核心定义的基本接口、协议和组件向开发者提供高层的重用组件,这些组件既有与特定视觉效果无关的水平组件,同时也有适应特定实用环境、提高可用性而特意提供的垂直型组件。框架扩展实现了用框架相容的方法访问非

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号