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

 2022-12-22 06:12

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


译文:

Java Web应用程序框架的分类

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

1.介绍

在信息系统环境中,框架是定义的支持结构,其中可以组织和开发其他软件应用程序。 框架可能包括支持程序、代码库、脚本语言、通用服务、接口或其他软件包/实用程序,以帮助开发和粘贴软件应用程序的不同组件。软件框架是软件系统和/或子系统的可重用设计和构建模块。

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

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

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

在开发具有软件框架的具体软件系统时,热点根据系统的具体需求和要求而定制。软件框架依赖于好莱坞原则:“不要打电话给我们,我们会打电话给你。”[5]。这意味着用户定义的类(如新的子类)接收来自预定义框架类的消息。这些通常通过实现超类抽象方法来处理,与使用模板设计模式类似。

2.软件框架

2.1.软件框架类型

总的来说,信息系统领域有七种类型的软件框架:

  • 概念框架 - 总体架构模型,如Zachman框架;
  • 应用程序框架 - 应用程序解决方案(如WebWork)的骨架结构;
  • 领域框架 - 针对特定业务领域,如IBM Information Framework(IFW);
  • 平台框架 - 编程模型和运行时环境,如.Net和Java EE框架;
  • 组件框架 - 为Hibernate,iBatis和Cayenne等应用程序构建模块,用于对象关系映射;
  • 服务框架 - 面向服务的计算的业务和技术服务模型,如语义Web服务框架;
  • 开发框架 - 构建富客户端开发工具的基础,通常用于IDE,如Eclipse、Netbeans和OSGi。

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

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

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应用程序框架的关键设计原则如下。

  • 简单 - 应该编写更简单的代码来使用框架。避免过度使用XML配置文件。利用POJO为中心的设计。
  • 一致性 - 组件,容器和约定应该一致。
  • 效率 - 应用程序应该在通过首选粘性会话进行集群支持的情况下表现良好和可扩展。
  • 整合 - 框架不应与现有的良好解决方案竞争,而应促进无缝整合。
  • 可重用性 - 框架中的结构应该是完全可重用的,并且易于分发/部署。
  • 非侵入性 - HTML或其他标记不应该受编程语义的污染,与普通的HMTL编辑器兼容,并且易于操作图形设计者识别和避免框架标记。
  • 诊断 - 当事情出错时,框架不应妨碍;实际上,它应该提供有用的诊断和调试信息。
  • 开发工具 - 最大限度地减少对特殊工具的依赖。

3.2.Web应用程序框架类型

几乎所有Java Web应用程序框架都基于MVC模式。一般来说,目前有五个主要的Web应用框架学校:基于请求的,基于组件的,混合的,Meta和基于RIA的框架。

基于请求的框架非常接近原始CGI规范。它使用直接处理传入请求的控制器和操作。 每个请求基本上是无状态的。随着服务器端会话的引入,一定程度的状态性已经实现。各种框架基本上将它们映射到URL的逻辑和数据的结构化和提供给业务处理程序的方式区别开来。

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

混合框架通过在基于请求的模型中控制整个数据和逻辑流程来结合基于请求和基于组件的框架。开发人员仍然接近CGI应用程序的体系结构,并完全控制URL、表单、参数、cookie和pathinfos。但是,混合框架不是将动作和控制器直接映射到请求,而是提供了一个组件对象模型,在许多不同情况下的行为相同,例如单个页面,拦截请求,类似门户的页面片段和可集成小部件。组件可以连接在一起,并且可以按照自己的组件进行打包。它们可以分开分发并无缝集成到其他项目中。这将基于组件的框架中的可重用性的形式与基于请求的方法的原始控制相结合。

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

富互联网应用程序(RIA)是指在浏览器中运行的基于网页的应用程序,它具有胖客户端中常见的丰富用户界面功能,如拖放、树形控件和选项卡式面板。基于RIA的框架使用客户端容器模型,该模型最大限度地减少了服务器通信的数量 - 而不是每次用户点击时加载整个HTML页面,框架在本地处理点击(不涉及服务器)或请求数据从XML格式的服务器。这意味着确实存在一个具有状态和用户交互模型的客户端应用程序 - 客户端远不止是在服务器上生成的网页。

3.3.主要产品

3.3.1.基于请求的框架

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 [7]使用并扩展了Java Servlet API以采用“模型2”方法,这是经典的模型 - 视图 - 控制器(MVC)设计模式的变体。在模型2下,一个Servlet(或同等产品)管理业务逻辑执行,并且表示逻辑主要驻留在服务器页面中。

Struts最初由Craig McClanahan开发,并于2000年5月捐赠给Apache基金会。Struts一直是事实上的框架,拥有强大且充满活力的用户社区。Apache Struts项目现在由两个不同的框架组成。这两个框架是Struts Action Framework和Struts Shale Framework。另外,简单Web框架(Simple Web Framework,SWF)是一个基于事件的框架,面向想要构建富Web应用程序但不想迁移到JSF的Struts开发人员。

蜂窝

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

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

条纹

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

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 [12]对标准的Java Servlet API进行了补充和构建,并将Web应用程序划分为一组页面,每个页面都由组件构成。这提供了一致的结构,允许Tapestry框架承担关键问题的责任,如URL构建和分派,客户端或服务器上的持久状态存储,用户输入验证,本地化/国际

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


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

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

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