Java Web应用程序框架的分类外文翻译资料

 2022-12-23 14:32:56

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


Java Web应用程序框架的分类

Tony C Shan,Winnie W Hua

Wachovia Bank,CTS Inc

摘要:本文从技术的角度描述了与Java EE模型相关的各种web应用框架和相关的新兴技术。“web应用程序框架”的定义是指定的,因为这个术语已经被广泛使用,并且在不同的上下文中暗示了完全不同的含义。介绍了web应用程序框架的价值主张,以说明框架如何提高应用程序开发的生产力和质量。阐述了web应用框架的设计理念。定义了一个全面的分类方案,将各种软件框架和web应用程序框架划分为适当的类别。在数十个可用作商业和开源解决方案的web应用程序框架中,主要产品被调查,其次是选择指南和建议。构建了一个参考卡来总结web应用程序框架的关键方面。并对相关技术和未来趋势进行了讨论。

  1. 介绍

在信息系统环境中,框架是一个定义的支持结构,其他软件应用程序可以组织和开发。

一个框架可能包括支持程序、代码库、脚本语言、公共服务、接口或其他软件包/实用程序,以帮助开发和粘合软件应用程序的不同组件。软件框架是软件系统和/或子系统的可重用设计和构建块。

软件框架可以用于构建不同领域的应用程序,比如金融建模应用程序[1]或决策支持系统[2]。

一个软件框架由冻结点和热点组成[3]。这些冻结点定义了软件系统的总体结构——它的基本组件和它们之间的关系。这些在应用程序框架的任何实例化中保持不变(冻结)。另一方面,热点代表了软件框架中特定于单个软件系统的部分。热点被设计为通用的。换句话说,它们可以适应开发中应用程序的不同需要。

软件框架定义了体系结构中适应特定功能的地方——热点。在面向对象的环境中,框架由抽象和具体类组成。这种框架的实例化包括组合和子类化现有的类[4]。

在开发一个具有软件框架的具体软件系统时,根据系统的具体需要和要求,开发出相应的热点。

软件框架依赖于好莱坞原则:“Donrsquo;t call us, wersquo;ll call you.”[5]。这意味着用户定义的类,比如新的子类,从预定义的框架类接收消息。这些通常是通过实现超类抽象方法来处理的,类似于模板设计模式的使用。

2、软件框架

2.1、软件框架类型

一般来说,在信息系统空间中有七种类型的软件框架:

bull;概念框架-包罗万象的架构模型,如Zachman框架;

bull;应用框架-应用解决方案的骨架结构,如WebWork;

bull;领域框架-针对特定的业务部门,如IBM Information Framework (IFW);

bull;平台框架-编程模型和运行时环境,如。net和Java EE框架;

bull;组件框架——为应用程序(如Hibernate、iBatis和Cayenne)构建对象关系映射的构建块;

bull;服务框架——面向服务的计算的业务和技术服务模型,如语义Web服务框架;

bull;开发框架——构建富客户端开发工具的构建基础,通常用于ide,如Eclipse、Netbeans和OSGi。

2.2 、Web应用程序框架的定义

Web应用程序框架(WAF)是一个可重用的、骨架的、半完整的模块化平台,可以专门用于生成定制的Web应用程序,这些Web应用程序通常通过Http(s)协议为Web浏览器服务。它包括构建服务组件和组件,这些服务和组件对于构建复杂的功能丰富的业务服务和协作系统非常重要。WAF通常实现模型-视图-控制器(MVC)设计模式,典型地是在Model 2架构中,在Java EE和。net模型上开发基于请求-响应的基于web的应用程序。它还将搜索、版本控制和权限等服务集成到基本业务对象中,使应用程序能够利用很少或没有额外工作的框架服务。在此上下文中,WAF是前一节中定义的一种应用程序框架,专门用于基于Http(s)的基于HTML/XML的通信。

Web应用程序框架域通常分层为建模基本概念,如用户、组和权限。WAF还可以包括其他相关的部分,比如用户界面(UI)框架(为快速开发和重用web用户界面而设计的UI组件库,以及强大的对象关系持久性引擎/实用程序)。

2.3、为什么要使用Web应用程序框架?

2.3.1、开放标准体系结构

软件框架大大减少了开发和维护web应用程序所需的时间、精力和资源。

此外,框架是基于公认的标准的开放架构(例如,Java、. net、XML、XSLT、JAAS、Servlet、JSP、JDBC、ADO.Net)和技术(例如,JUnit、XUnit、Ant、Log4j、JDom、Xalan、Xerces、Lucene),使任何有经验的开发人员能够快速开发和支持系统,而不需要有一个很好的学习过程。

这种采用和集成技术的最佳方式使应用程序设计人员能够专注于解决他们的业务问题。

因此,采用Web应用程序框架作为标准。web应用程序的开发基础结构是确保开发不被锁定到任何私有的、终端的体系结构的最佳方法。这种方法大大减少了技术的流失和风险,因为业界标准的开放源码框架被世界上的高技能专业人员积极维护和增强。这些开发人员负责识别适当的技术、集成软件、测试这些技术,并为现有用户提供迁移路径,以适应最新的技术。

Web应用程序框架通常部署在n层架构中,并使用经过验证的标准技术。通过使用标准技术,可以很容易地在现有的企业基础设施中部署一个框架,利用现有的硬件、软件、流程和人员。

2.3.2相关领域服务

实际上,所有web应用程序都有一组通用的基本需求,比如用户管理(例如,安全用户登录、密码恢复)、组管理和访问授权。Web应用程序框架通常包括所有这些功能,通过数百个生产部署进行细化,使开发人员能够将重点放在特定应用程序的需求上。

除了基本的服务集之外,web应用程序通常还有两个重要的相似点:它们在关系数据库中存储重要数据,并且通过基于web的用户界面与用户交互。一个复杂的对象-关系持久层自动管理模型对象如何存储在数据库中。通过从元数据生成优化的SQL,持久化层大大减少了模型和重构数据库模式所需的工作量,或者支持额外的数据库架构。

Web应用程序框架还可能包括基于组件的表示呈现框架,它使开发人员能够扩展现有的UI组件或构建可以在整个应用程序中重用的新组件,例如XSL和标记库。可以提供广泛的领域服务,如数据验证、版本控制、分类、打印、页面导航和全文搜索。任何在Web应用程序框架之上编写的应用程序都可以透明地立即利用这些基本服务。

3、Web应用程序框架的解决方案

3.1、设计理念

应用于开发web应用程序框架的关键设计原则如下。

bull;简洁性——应该编写更简单、更简单的代码来使用框架。避免过度使用XML配置文件。利用以pojo为中心的设计。

bull;一致性——组件、容器和约定应该是一致的。

bull;效率-应用程序应该表现得很好,并且通过使用粘性会话来支持集群。

bull;集成——一个框架不应该与好的现有解决方案竞争,而是应该促进无缝集成。

bull;可重用性——框架中的结构应该是完全可重用的,并且易于分发/部署。

bull;非侵入性- HTML或其他标记不应该被编程语义所污染,与普通的HMTL编辑器兼容,并且容易操作图形设计器来识别和避免框架标记。

bull;诊断——当事情出错时,框架不应妨碍;事实上,它应该提供有用的诊断和调试信息。

bull;开发工具-最大的工具支持,最小依赖于特殊工具。

3.2、Web应用程序框架类型

几乎所有的Java Web应用程序框架都基于MVC模式。

一般来说,目前有五种主要的web应用程序框架: Request-based, Component-based, Hybrid, Meta, 和RIA-based Framework.。

基于请求的框架与最初的CGI规范非常接近。它使用控制器和操作来直接处理传入的请求。每个请求基本上都是无状态的。随着服务器端会话的引入,实现了一定程度的状态。各种框架基本上通过将逻辑映射到url以及数据如何结构化和提供给业务处理程序来区分自己。

基于组件的框架抽象了请求处理的内部,并将逻辑封装到可重用组件中,通常独立于web媒体。根据每个组件实例中存在的数据,框架自动处理状态。与一些事件处理形式一起,这个开发模型非常类似于桌面GUI工具包提供的功能。各种框架基本上通过提供的组件API和组件如何集成在一起来区分自己。

混合框架通过在基于请求的模型中控制整个数据和逻辑流,将基于请求的和基于组件的框架结合起来。开发人员仍然很接近CGI应用程序的架构,并且完全控制了url、表单、参数、cookie和pathinfos。但是,混合框架并没有直接将操作和控制器映射到请求,而是提供了一个组件对象模型,该模型在许多不同的情况下表现相同,比如单独的页面、拦截的请求、portlet式的页面片段和可集成的小部件。组件可以连接在一起,并被打包成组件,它们本身就是组件。它们可以单独分发,并无缝地集成到其他项目中。这将基于组件的框架的可重用性与基于请求的方法的原始控制相结合。

元框架有一组用于公共服务的核心接口,以及集成组件和服务的高度可扩展的主干。该结构通常实现控制模式的反转,以将关注点分离到灵活地合并其他框架和组件。元框架有时被认为是框架的框架。

Rich Internet Application (RIA)是指在浏览器中运行的基于web页面的应用程序,它具有丰富的用户界面特性,这些特性在“fat”客户机中很常见,比如拖放、树控件和选项卡面板。基于ria的框架使用客户端容器模型,它最小化了服务器通信的数量,而不是每次用户单击时加载整个HTML页面,框架要么处理本地的点击(不涉及服务器),要么以XML格式请求服务器的数据。这意味着有一个具有状态和用户交互模型的客户端应用程序——客户机远远超过了在服务器上生成的web页面。

3.3、主要产品

3.3.1 、Request-based框架网络系统

Webwork

WebWork[6]为构建可重用的UI模板提供了强大的支持,例如表单控件、UI主题、国际化、动态表单参数映射到javabean,以及健壮的客户端和服务器端验证。

WebWork最初是由Rickard Oberg在2001年开发的,并于2002年3月作为开源项目在SourceForge上发布。WebWork在2002年夏天加入了OpenSymphony项目。到2005年11月,WebWork被合并到Struts中,成为Struts Action 2.0框架的一部分。

Struts

Struts[7]使用并扩展了Java Servlet API以采用“Model 2”方法,这是典型的模型-视图-控制器(MVC)设计模式的变体。在模型2中,Servlet(或等效)管理业务逻辑执行,而表示逻辑主要驻留在服务器页面中。

Struts最初由Craig McClanahan开发,并于2000年5月捐赠给Apache基金会。Struts实际上是一个强大而活跃的用户社区的实际框架。Apache Struts项目现在由两个不同的框架组成。这两个框架是Struts动作框架和Struts Shale框架。此外,简单的Web框架(SWF)是一个基于事件的框架,目标是Struts开发人员,他们希望构建丰富的Web应用程序,但不希望迁移到JSF。

Beehive(蜂巢)

Beehive [8] (Apache 2006)是一个可扩展的Java应用程序框架,它提供了web服务、web应用程序和资源访问的集成元数据驱动编程模型。框架利用了Java 5中的最新创新,特别是JSR 175元数据注释。关键组件是NetUI页流、控件和Web服务元数据。

Beehive于2004年5月从BEA Weblogic Workshop产品的一部分演变为Apache项目。

Stripes

Stripes [9]是一个健壮而轻量级的表示框架,每个页面/动作都有0个外部配置,绑定引擎可以从请求参数中构建复杂的对象网络,内置支持多个事件的形式,透明的文件上传功能,以及向导表单。

Stripes最初是在2005年9月发行的。

3.3.2、基于组件的框架

JSF

JavaServer Faces (JSF)[10, 11]是基于java的Web应用程序的服务器端用户界面组件框架。JSF包含一个用于表示UI组件和管理其状态的API;处理事件、服务器端验证和数据转换;定义页面导航;支持国际化和可访问性;并为所有这些特性提供可扩展性。它还包含两个JSP (JavaServer Pages)自定义标记库,用于在JSP页面中表示UI组件,以及将组件连接到服务器端对象。

JSF 1.0规范(JSR-127)最初于2004年3月发布。JSF 1.2规范(JSR-252)是下一代JSF,它在2005年8月发布了最终草案。

Tapestry

Tapestry[12]对标准Java Servlet API进行补充和构建,并将web应用程序划分为一组页面,每个页面由组件构成。这提供了一个一致的结构,允许Tapestry框架为关键关注点(如URL构建和分派、客户机上的持久状态存储或服务器、用户输入验证、本地化/国际化和异常报告)承担责任。开发Tapestry应用程序涉及使用纯HTML创建HTML模板,并使用(可选)XML描述

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[24906],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。