JEE架构分析精选_第1页
JEE架构分析精选_第2页
JEE架构分析精选_第3页
JEE架构分析精选_第4页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、当前流行的J2EEWEB应用架构分析1. 架构概述J2EE 体系包括 javaserverpages(JSP),javaSERVLET,enterprisebean,WEBservice 等技术。 这些技术的出现给电子商务时代的 WEB应用程序的开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。完成这个步骤可以形成一个主要里程碑基线。形成这个基线有很多好处:1. 各种因数初步确定2. 为了形成架构基线,架构设计师要对平台(体系)中的技术进行筛选,各种利弊的权衡。往往架构设计师在这个过程中要阅读大量的技术资料,听取项目组成员

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

3、构设计并发进行。5. 角色分工6. 有了一个好的架构蓝图, 我们就能准确划分工作。 如网页设计, JSP 标签处理类设计, SERVLET设计,sessionbean设计,还有各种实现。 这些任务在架构蓝图上都可以清晰地标出位置, 使得项目组成员能很好地定位自己的任务。一个好的架构蓝图同时也能规范化任务,能很好地把任务划分为几类,在同一类中的任务的工作量和性质相同或相似。这样工作量估计起来有一个非常好的基础。7. 运行维护8. 前面说过各个任务在架构图上都有比较好的定位。任何人能借助它很快地熟悉整个项目的运行情况,错误出现时能比较快速地定位错误点。另外,有了清晰的架构图,项目版本管理也有很好的

4、版本树躯干。9. 扩展性10. 架构犹如一颗参天大树的躯干,只要躯干根系牢,树干粗,长一些旁支,加一些树叶轻而易举无疑。同样,有一个稳定的经得起考验的架构,增加一两个业务组件是非常快速和容易的。大家都知道这些好处,一心想形成一个这样的两个大的阶段:.模型 1J2EE 应用程序架构(就像在windows 平台中的MFC)。在这个路程中经历了模型 1 其实不是一个什么稳定架构,甚至谈不上形成了架构。模型1 的基础是 JSP 文件。它从HTTP的请求中提取参数,调用相应的业务逻辑,处理HTTP会话,最后生成HTTP文档。一系列这样的JSP文件形成一个完整的模型1 应用,当然可能会有其他辅助类或文件。

5、早期的ASP和 PHP技术就属于这个情况。总的看来,这个模型的好处是简单,但是它把业务逻辑和表现混在一块,对大应用来说,这个缺点是令人容忍不了的。.模型 2在经过一番实践,并广泛借鉴和总结经验教训之后,J2EE 应用程序终于迎来了MVC(模型 - 视图 - 控制)模式。 MVC模式并不是 J2EE 行业人士标新立异的,所以前面我谈到广发借鉴。MVC的核心就是做到三层甚至多层的松散耦合。这对基于组件的,所覆盖的技术不断膨胀的J2EE 体系来说真是福音和救星。它在浏览器(本文对客户代理都称浏览器)和JSP 或 SERVLET之间插入一个控制组件。这个控制组件集中了处理浏览器发过来的 HTTP请求的

6、分发逻辑,也就是说,它会根据HTTP请求的 URL,输入参数,和目前应用的内部状态,把请求分发给相应的 WEB层的 JSP 或 SERVLET。另外它也负责选择下一个视图(在J2EE 中, JSP,SERVLET会生成回给浏览器的html 从而形成视图)。集中的控制组件也有利于安全验证,日志纪录,有时也封装请求数据给下面的WEBtier 层。这一套逻辑的实现形成了一个像MFC的应用框架,位置如图:. 多层应用下图为 J2EE 体系中典型的多层应用模型。Clienttier客户层一般为浏览器或其他应用。客户层普遍地支持HTTP协议,也称客户代理。WEBtierWEB应用层在 J2EE 中,这一层

7、由 WEB容器运行,它包括 JSP,SERVLET等 WEB部件。EJBtier企业组件层企业组件层由EJB容器运行,支持EJB,JMS,JTA 等服务和技术。EIStier企业信息系统层企业信息系统包含企业内传统信息系统如财务,CRM等,特点是有数据库系统的支持。应用框架目前主要集中在 WEB层,旨在规范这一层软件的开发。其实企业组件层也可以实现这个模型,但目前主要以设计模式的形式存在。而且有些框架可以扩充,有了企业组件层组件的参与,框架会显得更紧凑,更自然,效率会更高。2. 候选方案目前,实现模型 2的框架也在不断的涌现,下面列出比较有名的框架。是一个免费的开源的WEB层的应用框架, ap

8、ache 软件基金致力于 struts的开发。 Struts具是高可配置的性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端javabean 的自动填充,支持验证的WEB表单,国际化支持,生成HTML,实现表现逻辑和模版组成了struts的灵魂。2.1.1.Struts和 MVC模型 2 的目的和 MVC的目的是一样的,所以模型2 基本可以和 MVC等同起来。下图体现了Struts 的运作机理:. 控制如图所示,它的主要部件是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts 的 HTTP请求的入口点。它截取和

9、分发这些请求到相应的动作类(这些动作类都是Action 类的子类)。另外控制组件也负责用相应的请求参数填充Frombean, 并传给动作类。动作类实现核心商业逻辑,它可以通过访问javabean或调用 EJB。最后动作类把控制权传给后续的 JSP 文件,后者生成视图。所有这些控制逻辑利用一个叫文件来配置。模型模型以一个或几个javabean 的形式存在。这些bean 分为三种:Formbeans( 表单Beans)它保存了HTTPpost 请求传来的数据,在业务逻辑beans专门用来处理业务逻辑。系统状态beansStruts里,所有的Formbeans 都是ActionFrom类的子类。它保

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

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

12、个错误保存到request对象的属性中。接着动作对象调用actionmapping对象的getInput方法从动作映射中获取input参数,也就是产生输入的视图,并以这个input为参数生成一个actionforward对象返回。这个input参数的 JSP中一般有HTTP:errors定制标签读取这些错误信息并显示在页面上。下面是一个的代码实例:<%pagelanguage="java"%><%tagliburi="/WEB-INF/"prefix="bean"%><%tagliburi="/

13、WEB-INF/"prefix="html"%><html:htmllocale="true"><head><title><bean:messagekey=""/></title><html:base/></head><bodybgcolor="white"><html:errors/><!- 如果出现错误会显示在这里 -> <html:formaction="/l

14、ogon"focus="username"> <tableborder="0"width="100%"><tr><thalign="right"><bean:messagekey=""/></th><tdalign="left"><html:textproperty="username"size="16"maxlength="16&q

15、uot;/></td></tr><tr><thalign="right"><bean:messagekey=""/></th><tdalign="left"><html:passwordproperty="password"size="16"maxlength="16"redisplay="false"/></td></tr><

16、;tr><tdalign="right"><html:submitproperty="submit"value="Submit"/></td><tdalign="left"><html:reset/></td></tr></table>模型到视图模型到视图指视图在显示之前装载系统数据到视图的过程。系统数据一般为模型内javabean的信息。示意图表现了由控制组件forward过来的有html:form定制标签的JS

17、P的处理逻辑。html:form定制标签处理对象从applicationscope(通过查询SERVLETCONTEXT对象的属性来实现)获取先前由控制组件actionSERVLET 放在那里的动作映射等对象,由html:form的 action属性查得actionform名字、类型和范围等信息,在相应的范围内查找actionform,如果有则利用它的信息填充htmlform表单 实际填充动作在嵌套的html:text等定制标签的处理对象中 。否则在相应范围内创建一个actionform对象。优缺点优点:一些开发商开始采用并推广这个框架作为开源项目,有很多先进的实现思想对大型的应用支持的较好有

18、集中的网页导航定义缺点:不是业届标准对开发工具的支持不够复杂的 taglib,需要比较长的时间来掌握htmlform和 actionform的搭配比较封闭,但这也是它的精华所在。修改建议把 actionform属性的设置器和访问器修改成读取或生成xml 文档的方法,然后htmlform和 actionform之间用 xml 文档进行数据交换,使之松散耦合,适应数据结构易变化的应用。应用程序框架是iPlanet应用程序框架的旧名。它是一个成熟的、强大的,基于J2EE 标准的面向于开发WEB应用程序的应用框架。结合了显示字段、应用程序事件、组件层次和以页面为中心的开发方法、以及MVC和服务到工作者

19、service-to-workers的设计模式等概念。JATO可适用于中、大、超大规模的WEB应用。但是它也不是一个企业层的应用框架,也就是说它不会直接提供创建EJB,WEBservices等企业层组件的方法,但用它可以构造出访问企业层组件的客户应用。iPlanet应用框架核心;iPlanet应用框架组件;iPlanet应用框架扩展。应用框架核心定义了基本接口、对象协议、简单组件,以及iPlanet应用框架程序的最小核心。包括视图简单组件、模型简单组件、请求分发组件和可重用命令对象。iPlanet应用框架组件利用框架核心定义的基本接口、协议和组件向开发者提供高层的重用组件,这些组件既有与特定视

20、觉效果无关的水平组件,同时也有适应特定实用环境、提高可用性而特意提供的垂直型组件。框架扩展实现了用框架相容的方法访问非J2EE 环境的方法。通常情况下,扩展被框架应用程序用来无缝访问 J2EE 容器特定功能。JATO平台栈图很清楚地表达了这个情况。JATO最大的威力在:对于快速开发用户,你能利用框架组件和扩展提高生产率,对于要求更大灵活性的用户,你能实现框架核心提供的接口来保持应用的框架兼容性。此图表示实现一个JATO应用程序,可以简单地实现控制组件module1Servlet,视图组件ListCustomersViewBean和模型组件CustomersModuleImpl,以及一个给客户代

21、理显示界面的文件。并清楚地表明这些组件与JATO框架组件的继承关系。JATO标签库提供了VIEW对象与JSP 文件的接口。 库中标签处理程序负责实现VIEW对象和JSP 产生地客户端文档的信息同步和交换。这个图清楚地表达了这种对应关系分析前端控制组件接收用户发来的任何请求,这个可在中指定请求分发组件负责视图管理和导航,和前端控制组件封装在ApplicationSERVLETBase一起实现。应用程序开发者需要为每一个子系统(人力资源,财务,CRM等)实现一个此类的继承。请求分发组件分发请求给工作者,工作者实现了command接口。应用开发者可以实现这个接口。JATO提供了一个缺省实现:Defa

22、ultRequestHandingCommand ,这个实现会把请求传给视图组件的特定事件。组合视图是指视图组件在显示给用户时的层次关系: 根视图是一个 ViewBean 类的对象字段是一个 DisplayField 类的对象,容器视图是一个 ContainerView 类的对象。视图组件类的层次关系如下图:优缺点分析优点:这种框架的适应范围大,即提供了底层接口,也有立即可用的组件具有与客户端RAD开发工具相似的开发概念如页为中心(等同于VB 的 FORM),事件处理等.对大型的应用支持较好缺点:不是业届标准目前还没有开发工具的支持(然JATO已经为工具支持做好了准备)没有定义网页导航,开发者

23、在视图中自己指定具体的导航URL修改建议把众多的VIEW/MODEL对应修改成xml 文档传递数据,加上集中的网页导航定义是一个包括SUN在内的专家组正在定义的开发WEB应用用户界面的框架,JSF 技术包括:一组 API,它实现 UI 了组件,管理组件的状态,处理事件,输入校验,定义页面导航,支持国际化和访问;一个 JSP 定制标签库实现与 JSP的接口。JSF 非常简单,是一个定义良好的编程模型。利用这个技术,开发者通过在页面内组合可重用的 UI 组件,在把这些组件和应用的数据源相连,路由客户产生的事件到服务器端的事件处理器进行编程。 JSP处理了所有幕后的复杂工作,使得开发者把关注重点放在

24、应用代码上。、 JATO和 JSF 比较它们之间有部分重叠,但重点不一样。STRUTS和 JATO都提供了一个 MVC式的应用模型,而 JSF 只在用户界面上提供编程接口。这意味着前两者涉及的范围比后者广。 JSF 可以成为前两者在 UI 开发的部分。JSF 的规范的发布版将在2002 年底发布,实现可能要比这个时间晚些。另外将会有工具支持这个框架的应用开发。是 WEBAPPLICATIONFRAMWORK的简称,是SUN蓝皮书例子程序中提出的应用框架。它实现了MVC和其他良好的设计模式。细节分析点击这里看大图2.4.2. 视图 - 控制 - 模型如图所示,开发人员编写的两个xml 配置文件定义了WAF的运作参数。定义了一系列的屏幕(screen)。则定义了某个动作之后应该显示的屏幕,但没有指定屏幕到哪里拿数据。用户发出一个 HTTP请求( *.screen ),由 TemplateSERVLET屏幕前端控制组件接收,它提取请求信息,设置request 对象 CurrentScreen属性,再把请求发到模版 JSP。模版 JSP 收到请求后, JSP 中的 Template 标签察看这个当前屏幕,并从屏幕定义文件()中获取这个屏幕的具体参数,再生成html 返回给客户。假设返回给客户的html 中包括了 html 表单,用户在输入一定数据之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论