英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
Java web应用程序框架的分类学方法
摘要:
本文从技术观点介绍了与Java EE模型相关的各种各样的Web应用程序框架和相关的新兴的技术。“Web应用程序框架”这个词的定义已经被详细说明,由于这个术语已被广泛使用,并且在不同的地方表达着不同的含义。提出了Web应用程序框架的价值主张,来说明一个框架是如何提高应用程序开发生产力和质量的。阐述了Web应用程序框架清晰的设计原理。定义了一个综合分类方案,将各种软件框架和Web应用程序框架分类进适当的类别。在数十种作为商业和开源解决方案的Web应用程序框架中,主导产品被研究出,其次是选择指南和建议。参考文献来简单的总结Web应用程序框架的关键部分。还讨论了相关技术和未来趋势。
- 介绍
在信息系统的大环境下,框架是一种定义的支持结构,其中其他软件应用程序可以进行组织和开发。框架可以包括支持程序,代码库,脚本语言,通用服务,接口或其他软件包/实用程序,以帮助开发和把软件应用程序的不同组件粘合在一起。软件框架是为了软件系统/或子系统而设计的可重用构建块。
软件框架可以面向在不同领域构建应用程序,如金融建模应用程序[1]或决策支持系统[2]。
软件框架由冻结点和热点组成[3]。冻结点定义了整个软件系统的总体架构-其基本组件以及它们之间的关系。在应用框架的任何实例化中,这些都保持不变(冻结)。另一方面,热点代表软件框架中个别软件系统的部分。它是通用的。换句话说,它们也可以适用于正在开发中的应用程序。
软件框架主要定义架构中应该对特定功能进行调整的地方也就是所说的热点。 在面向对象的环境中,一个框架分抽象类和具体类。这种框架的实例化需要包括组合和子类别化现有的类[4]。
当你在开发一个具有软件框架的具体软件系统时,根据系统的具体需求和要求,热点就需要被专门设计。软件框架依靠好莱坞原则:“不要呼叫我们,我们会打给你。” [5]。 这就意味着用户定义的类,如新的子类是从预定义的框架类接收消息。 这些通常通过实现超类抽象方法来处理,类似于模板设计模式的使用。
-
软件框架
- 软件框架种类
总体来说,在信息系统的空间中一共有7中不同类型的软件框架种类
- 概念框架 – 总体架构模型例如 Zachman框架;
- 应用程序框架 – 如WebWork等为应用程序提供解决方案的骨架结构;
- 域框架 – 针对特定的业务部门比如IBM信息框架(IFM);
- 平台框架 – 编程模型和运行环境 如:.NET和Java EE框架;
- 组件框架 – 用于如Hibernate, IBatis和Cayenne等应用程序做对象关系映射的构件块
- 服务框架 – 面向服务的计算的业务和技术服务模型,如语义Web服务框架
- 开发框架 – 构建丰富客户端挨罚工具,通常用于IDE,如Eclipse,Netbeans和OSGI
2.2 Web应用程序框架的定义
Web应用程序框架(WAF)是一个可重用的骨架,半完整的模块化平台,可以专门生成定制的Web应用程序,通常通过Http(s)协议为Web浏览器提供服务。它包括构建复杂功能丰富的业务服务和协作系统所必需的服务和组件的模块。WAF通常实现模型 - 视图 - 控制器(MVC)设计模式,通常在模型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应用程序框架上的应用程序都可以立即运用这些基本服务。
-
Web应用程序框架解决方案
- 设计理念
应用于开发Web应用程序框架的关键设计原则如下。
- 简单 - 更简单的代码应该写成使用框架。避免过度使用XML配置文件。利用以POJO为中心的设计。
- 一致性 - 组件,容器和惯例应该是一致的
- 效率 - 应用程序应该能够很好地进行扩展,并且通过粘性会话来支持聚类。
- 整合 - 框架不应与现有的解决方案相竞争,而应能促进无缝整合。
- 可重用性 - 框架中的构造应该是完全可重用的,易于分发/部署。
- 非侵入性 - HTML或其他标记不应该被编程语义所污染,与普通的HMTL编辑器兼容,并易于操作图形设计者识别和避免框架标记。
- 诊断 - 当出现问题时,框架不应该妨碍运行;实际上,它应该提供有用的诊断和调试信息。
-
开发工具 - 最大程度地支持工具,最小程度地依赖于专用工具。
- Web应用程序框架类型
几乎所有的Java Web应用程序框架都是基于MVC模式的。一般来说,目前有五个主要的Web应用程序框架:基于请求的,基于组件的,混合的,基于RIA的框架。
基于请求的框架非常接近于原始CGI规范。 它使用直接处理传入请求的控制器和操作系统。每个请求基本上都是无状态的。随着服务器端会话的引入,一定程度的状态已经实现。 各种框架基本上区别于将逻辑映射到URL的方式,以及数据如何构造并提供给业务处理程序。
基于组件的框架抽象化了请求处理的内部,并将逻辑封装到可重用的组件中,通常独立于Web介质。 基于每个组件实例中存在的数据,框架自动处理状态。 与某种形式的事件处理一起,这种开发模式非常类似于桌面GUI工具包提供的功能。 各种框架基本上区别于提供的组件API以及组件如何集成在一起。
混合框架通过在基于请求的模型中控制整个数据和逻辑流来把基于请求和基于组件的框架结合在一起。 开发人员仍然使用CGI应用程序的架构,并且可以完全控制URL,表单,参数,Cookie和路径。 然而,混合框架不是将操作和控制器直接映射到请求,而是提供了一个组件对象模型,它可以在许多不同的情况下运行,如单个页面,截取的请求,类门户页面片段和可集成的小部件。 组件可以连接在一起,并作为组件自己打包。 它们可以分开分发,并与其他项目无缝集成。 这将基于组件的框架中的可重用性的形式与基于请求的方法的原始控制相结合。
元框架具有一套通用服务的核心接口和用于集成组件和服务的高度可扩展的骨架。 该结构通常实现“反转控制”模式,用于分离问题以灵活地并入其他框架和组件。 元框架有时被认为是框架中的框架。
富互联网应用程序(RIA)是指在浏览器中运行的基于网页的应用程序,其具有丰富的用户界面功能,这些功能在“胖”客户端中是常见的,例如拖放,树控件和标签式面板。 基于RIA的框架使用客户端容器模型,它能最大限度地减少服务器通信量 - 而不是每次用户点击时加载整个HTML页面,框架可以本地从服务器以XML格式处理(不涉及服务器)或请求数据。 这意味着真正的客户端应用程序具有状态和用户交互模型 - 客户端远远超过在服务器上生成的网页。
3.3主要产品
3.3.1基于请求的框架
WebWork
WebWork [6]为构建可重用的UI模板提供了强大的支持,例如窗体控件,UI主题,国际化,JavaBeans的动态表单参数映射以及强大的客户端和服务器端验证。
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 Foundation。Struts一直是一个事实上的框架,具有强大而有活力的用户群体。 Apache Struts项目现在由两个不同的框架组成。这两个框架是Struts Action Framework和Struts页岩框架。此外,简单Web框架(SWF)是一个基于事件的框架,针对希望构建丰富的Web应用程序但不想迁移到JSF的Struts开发人员。
Beehive
Beehive [8](Apache 2006)是一个可扩展的Java应用程序框架,具有用于Web服务,Web应用程序和资源访问的集成元组织的编程模型。该框架利用了Java 5中的最新创新,特别是JSR 175元数据注释。关键组件是NetUI Page Flow,Controls和Web Service元数据。
Beehive从2004年5月的BEA Weblogic Workshop产品的一部分演变为Apache项目。
Stripes
Stripes [9]是一个强大而轻便的演示框架,每页/操作都具有零外部配置,绑定引擎可根据请求参数构建复杂的对象网络,内置对每个窗体的多个事件的支持,透明的文件上传和向导形式。
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规范(JSR252)是下一代JSF,其最终草案于2005年8月发布。
Tapestry
Tapestry [12]补充并建立在Java Servlet API的标准之上,并将Web应用程序划分为一组页面,每个页面由组件构成。这提供了一致的结构,使得Tapestry框架承担诸如URL构造和调度,客户端或服务器上的持久状态存储,用户输入验证,本地化/国际化和异常报告等关键问题的责任。 开发Tapestry应用程序涉及使用纯HTML创建HTML模板,并使用(可选)XML描述符文件将模板与少量Java代码组合。 在Tapestry中,应用程序是根据对象创建的,以及这些对象的方法和属性,
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[28054],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。