外文翻译-javaee平台下高质量的web应用程序开发.doc
《外文翻译-javaee平台下高质量的web应用程序开发.doc》由会员分享,可在线阅读,更多相关《外文翻译-javaee平台下高质量的web应用程序开发.doc(27页珍藏版)》请在冰点文库上搜索。
1.外文资料翻译译文
JavaEE平台下高质量的Web应用程序开发
摘要
Web应用程序的质量在它的成功上扮演着重要的角色。
高质量的Web工程流程往往伴随着高质量的Web应用程序。
具有强大的开发平台的Web应用程序的体系结构的使用,不仅使Web应用程序变得强壮并高质量,而且也使Web应用程序拥有了高效的方式满足不断变化的和苛求的客户需求的能力。
即使用户的交互式应用程序的架构发生根本性的重大改变,模型-视图-控制器(MVC)设计模式一直保持设计模式的基本架构设计模式。
在本文中,我们讨论对Web应用程序获得质量性能的支持,Web应用程序开发过程的支持和JavaEE平台上满足要求苛刻的Web应用程序的特性的支持。
这对小规模Web应用程序的开发以及大规模应用程序的开发和从初始阶段本身将Web应用程序构建成未来的高质量成品将有很大的帮助。
【关键词】MVC;Web应用程序;JavaEE;质量属性;高质量的Web开发
一、引言
随着Web应用的普及和普适计算时代的巨大需求,很多和质量有关的Web的应用程序问题[1]在Web应用开发过程中也获得了高度重视。
Web的应用程序业务的大比赛迫使Web应用开发人员具有开发更加优质的应用程序的意识。
如果一个Web应用程序想在满足和挑战客户需求、业务需求中生存下来,这将具有很高的价值。
构建高质量的Web应用程序确实是一个困难且具有挑战性的任务。
但正确的发展过程,方法,工具,和人民的支持确实可以实现高质量的Web应用程序。
由于开发平台影响着相关的开发过程,方法,工具,和人,在使开发过程更简单,高效和强大以及实现高质量的Web应用中,它确实发挥了重要作用。
JavaEE平台是开放的,基于标准的硬件和操作系统独立的平台,可以开发和运行分布式企业应用程序。
由于JavaEE平台上的应用程序是厂商中立的,该组织没有面临厂商锁定的问题。
基于JavaEE平台的Web的应用程序使用模式/视图/控制器(MVC)[2]设计模式,它由[3]三个部分组成:
表现逻辑,控制逻辑和实体/业务逻辑。
我们讨论了MVC设计模式在传统的基于GUI的应用的使用,还讨论了它在以JavaEE平台的体系结构为基础的Web应用程序中,它是如何适应的。
我们分析了JavaEE平台下对Web应用程序的每个质量属性的要求[1],以及相关的在发展过程中的支持和相关的在开发过程中所涉及的人的支持,并以能够快速吸收的形式展示出我们的研究结果。
我们的研究结果表明,在提供高质量的Web应用程序中,JavaEE平台上的Web应用程序开发具有很大的价值,它能满足不断变化的客户需求和不断变化的业务需求。
在本文中所展现的研究工作,集中在整个开发过程中从不同的角度实现JavaEE平台上开发Web应用程序的高质量。
相关的研究分类如下。
使用MVC设计模式的Web应用程序开发[4]。
ASP.NET和JSP框架中的MVC设计模式[5]。
网站的质量特性和属性[1]中。
第二部分讨论了传统的GUI应用程序架构和Web应用程序架构MVC设计模式。
第三部分介绍了Web应用程序的开发过程和JavaEE平台上对它的提供支持。
第四部分介绍了为JavaEE平台上的Web应用提供有价值的功能。
第五部分介绍了JavaEE平台实现高品质的Web应用程序及其组件的分析结果。
最后,第六部分给出未来研究工作的结论和方向。
二、在JavaEE平台采用MVC设计模式的Web应用程序架构
一个MVC[2]设计模式[3]一直保持基本的结构化的设计模式,甚至在用户的交互式应用程序结构的巨大改变后。
所以,我们在讨论JavaEE平台上Web应用程序架构的使用之前,先向读者提供简短的介绍。
A.MVC设计模式
MVC设计模式被程序员,软件设计师和构建正在开发的界面工具集的GUI组件开发商广泛的应用。
MVC设计模式,如图1所示,由三种对象:
模型,视图和控制器组成,它处理任何工具集的三个基本职责:
实体(数据),边界(表现),分别控制(行为)。
该模型封装应用程序数据和业务逻辑;视图处理针对用户的应用程序数据的渲染和可视化界面;控制器处理用户与应用程序的交互。
图1.MVC设计模式
MVC设计模式通过建立描述/通知协议来分离视图和模型。
一个视图对象必须确保其外观反映了模型状态。
模型对象是独立于视图和控制器对象的,因此有可能具有相同的模型(数据)的多个视图(演示)。
所有相关视图可以描述模型,同时模型通知他们有关其状态的变化。
当用户与基于MVC设计模式的GUI表单或页面交互时,所有触发事件被控制器对象捕获。
然后,控制器将决定是否将触发事件关联到改变模型状态或视图状态。
举一个例子,当用户在文本域中改变值触发事件时,控制器调用模型的方法,以改变它的内容。
但是,如果用户进行水平滚动或垂直向上、向下滚动,模型内容不改变,仅仅通知视图在外观中反应变化。
B.JavaEE平台下的Web应用程序架构
在一个独立的应用程序中,模型,视图和控制器一般放在同一台机器上。
但在分布式的Web应用程序中,应用程序体系架构是不同的;然而,MVC设计模式是如此普遍,它仍然可以被应用于其架构。
图2展示了基于JavaEE平台的Web应用程序利用基本的MVC架构。
在基于JavaEE平台的Web应用程序架构中,Servlet组件作为控制器使用;JavaBean组件作为一种模型;Java服务器端页面(JSP)页面作为一个视图模板。
企业JavaBean(EJB)可以用来作为一个可以被放在不同于JavaBean的分布式环境中的模型。
JSP技术用于创建视图和JSP页面被视为一个视图模板。
执行JSP页面可以生成视图-HTML的内容。
图2.基于JavaEE平台的Web应用架构中使用MVC设计模式
JavaEE平台为Web应用程序组件提供很多系统服务。
JavaEE平台为安全,认证,授权,交易提供支持。
数据库连接的管理是由JavaEE平台解决的,并且它是可配置的外部部署描述符,所以模型组件并不需要担心这些细节。
因此,模型组件的任务仅仅只来处理业务数据和业务逻辑。
JavaEE平台的身份验证和授权服务,也由Servlet提供,这项服务也可配置在外部部署描述器中。
容器服务响应在Servlet组件和Web浏览器之间的每个HTTP请求,并应用于配置在部署描述器中。
三、基于JavaEE平台的Web应用程序的开发过程
在本节中,我们讨论了在Java平台的Web应用程序开发过程,以及JavaEE平台对Web应用程序开发可用的支持。
A.Web应用程序开发过程
Java平台的典型的开发过程中包括以下任务:
设计,编码,创建部署描述器,包装,组装和部署。
这些任务也适用于Web应用程序的开发。
JavaEE平台规范指定Web应用程序开发过程的各个阶段中的角色和他们的责任。
表一显示了主要参与人在开发过程中所扮演的角色,基本职责,以及在特定开发阶段它们的参与工作。
表一JavaEE平台上基本的开发角色:
角色、责任、人在发展过程中的参与:
角色
职责
参与发展阶段
应用程序组件提供者
创建EJB组件,Web组件
开发,集成
应用汇编
不同的组件组装成一个的部署application.Configuring部署描述器
开发
部署者
在特定操作环境下集成程序的部署
开发
系统管理员
应用程序的维护和监控。
制定负载均衡,冗余,故障转移等。
维护
B.开发过程中的支持
如果在编码,测试,集成,部署和维护阶段中,工具/技术支持都是可用的,那么开发就会很有效率。
在这里,我们讨论了所有使开发过程有效率的阶段中,JavaEE平台如何提供支持。
1)编码支持:
开发环境应提供避免错别字的便利,需要最小的努力来增加新的功能,并提供基于标准的技术和工具的支持。
非常高级的开发工具在JavaEE平台的软件开发中是可以找到的。
在NetBeansIDE和EclipseIDE中在这其中。
这些IDE都配备了高级的编辑工具。
很少有这样的功能是自动的代码完成,重新分解,代码插入,语法高亮显示,以避免错字错误,固定包导入,getter/setter方法处理,并调用EJB的代码插入。
在开发Servlet,JSP,JavaBean和EJB组件的过程中,这些功能有很大的帮助。
2)测试支持:
良好的调试和单元测试支持,是测试过程中的基本要求。
Java平台自带了调试器jdb和IDEs,如NetBeans和Eclipse的集成开发环境提供了很好的调试支持。
JUnit的提供了回归测试框架进行单元测试。
它可以加快编程速度和提高代码的质量。
它提供的API,可以轻松创建Java测试用例,全面的断言实施,测试运行的测试器,聚合设施和报告。
所有这些功能可以帮助开发商免于在实际代码中嵌入几个println()调用和手工编制结构化的方式测试结果。
为了达到测试目的,添加或删除单个测试的println()是非常令人沮丧的工作,它不能很容易的被复制到类似的类中。
3)集成和部署支持:
Web应用程序的集成和部署,应尽可能的简单以减少部署时间和停机时间。
部署过程应该独立于不同的托管应用服务器提供商。
由于Java技术是基于标准的,所以使用它开发的Web应用程序可以运行在任何符合JavaEE规范的、没有任何代码修改的应用服务器上。
来自于固定供应商的Web应用程序是免费的。
JavaEE平台了指定供应商中立的配置标准部署描述器和供应商特定厂商特定的部署描述器文件中的配置。
该供应商特定的配置包括映射了抽象目标安全系统,数据源引用,和其他资源配置的安全角色。
4)维护支持:
正如上面所讨论的,JavaEE平台规范明确指定不同参与人的角色和责任。
所有这些角色适用于Web以及企业级模块/应用程序开发。
有三个主要的角色:
开发者,组装者和简化整个开发任务的部署者。
共有三个基本组成部分:
Servlet,JSP和的JavaBean/EJB组件,它们可以由Servlet开发人员,JSP开发人员,和Java/EJB开发人员分别实现和独立维护。
四、JavaEE平台的Web应用程序的有价值的特性
由于Java技术是面向对象的,平台独立的,它的许多功能,如可扩展性,可移植性,可重用性,安全性,高性能,灵活性都是固有的Java类或组件。
Servlet和JavaBean组件都是Java类,所以上述特性也是他们具有的。
这也适用于EJB组件部分,这是Java类和部署描述器的集合。
JSP脚本语言用来创建JSP页面。
尽管JSP页面看起来像一个HTML类型的网页,但是在执行时,它被翻译为可以被执行的Java类。
总之,在JavaEE平台下实现MVC设计模式的这个三个组成部分:
Servlet、JavaBean/EJB、JSP是可扩展的,可移植的,可重复使用的,安全的,高性能,灵活的。
以下可用功能使JavaEE平台下的Web应用程序增加了价值。
而在某些业务/客户的要求中,他们都是不可或缺的。
A.安全性
SSL支持提供了通信的安全性(保密性和完整性)。
针对SSL支持,SSL连接器应配置在JavaEE容器与证书认证机构(CA)签名的服务器[18]应安装在JavaEE容器。
一个基于JavaEE平台的Web应用程序为保密性和完整性声明配置。
图3显示了与Web应用程序的安全方面相关的三种配置。
<!
SECURECOMMUNICATION->下面的部分与设置JavaEE容器和Web浏览器之间传输的数据的机密性和完整性相关。
--SECURITYROLE->
manager
—SECURITYCONSTRAINT->
--ACCESSCONTROLLEDRESOURCEANDOPERATION-
->
lnbox
/user/inbox/*
GET
POST
-AUTHORIZEDUSER->
user
-SECURECOMMUNICATION->
CONFIDENTIAL
--LOGINCONFIGURATION->
FORM
图3中
--LOGINCONFIGURATION-->下面的部分声明在授予对资源的访问前,用户身份验证之必须执行。
它也声明了表单形式的授权方法。
授权部分包括授予某个用户拥有对某个资源的某种操作权。
内部的表示,资源访问通过控制,以及哪些操作允许由表示。
哪些用户允许对某些选定的资源执行选定操作是由<!
AUTHORIZEDUSER->部分下面的部分配置。
B.事务处理
JavaEE平台对会话bean和消息驱动Bean(MDB)支持容器管理事务和Bean管理事务。
在容器管理事务中,企业bean代码不会使用开始TRANSACTION和提交TRANSACTION明确标记事务的边界。
相反,该事务被配置在部署描述器中。
在开启企业级业务方法之前,容器立即开始一个事务。
在企业Bean的业务方法退出之前提交事务。
业务方法的执行过程中,如果产生了异常时,容器会自动回滚事务。
对只有一个单一的事务或根本没有事务在的支持对容器管理事务是可用的。
事务的细粒度控制,可以使用Bean管理的事务。
这里会话或消息驱动Bean的代码明确标志着使用Java事务API(JTA)的事务的界限。
C.支持会话管理
大部分在互联网上的Web应用程序使用Cookie机制来处理会话。
因此,从浏览器访问任何这样的不支持Cookie机制Web应用程序的用户,不能参与会议,也将无法访问任何个人资源。
JavaEE平台的URL编码机制会自动判断客户端的浏览器是否支持Cookie,然后再决定会话标识信息应该如何存储在客户端计算机上。
如果客户端的浏览器不支持的Cookie,或者用户的Cookie功能已被禁用,会话ID编码值在客户端将使用的页面上的每个超链接的URL部分。
D.自定义错误页面
如果用户试图访问的不可用的资源,服务器显示错误消息404(SC_NOT_FOUND),即资源未发现异常。
相反,会显示包含用非技术性的英语语言描写的美丽错误页面,用户将真正了解问题的原因,有时会觉得你真正在乎用户。
一个好的Web应用程序不应该直接向用户显示应用程序服务器或Web服务器的错误消息。
例如,一个Web应用程序可以被配置为404未发现异常,如在图4中示出的资源。
使用此配置,用户定义的错误消息的错误页面也可以被指定。
代替错误码,该异常型也可以被指定。
这个resourceNotFound.html文件会包含一个使用用户可以理解的语言的错误信息。
404
/resourceNotFound.html
图4使用错误代码和地址定义错误页面配置信息
E.国际化/多语言支持
如果将信息以一种用户可以理解且使用的语言提供给他们,这将使用户更容易理解和使用该应用程序。
在Java语言中默认支持Unicode字符串。
Java语言还支持区域特定的格式,数字,货币,日期,时间等。
所有这些支持都使基于JavaEE平台的Web应用程序更加国际化,同时也增加了Web应用程序在世界范围内的可用性[7]。
五、实现JavaEE平台下的Web应用程序和组件的质量
单个组件的质量也会影响实现整个应用程序的整体质量。
首先,我们在这里提出的非常重要的组件的质量属性,以及这些质量属性如何满足这三个组成部分:
模型,视图和控制器。
相关的分析的结果见表二。
其次,任何Web应用程序的设计包括各种设计任务。
这些设计任务和JavaEE平台为他们提供的支持见表三。
第三,作为一个整体的Web应用程序的整体的支持决定了整体的质量。
这些质量属性,JavaEE平台上达到这些质量属性的标准和对它们可用的支持,在表四中列出。
表二部件的质量属性和JavaEE平台上对它们的支持
属性
支持MVC组件的质量属性
模型
视图
控制器
高性能
JIT编译器快速编译为字节码,每个用户请求单独的线程,本地EJB组件来提高性能。
可扩展性
所有组件都是面向对象的。
安全
声明式和编程式安全EJB组件。
JavaBean的组件都可以通过视图/控制器。
使用URL掩码。
Servlet组件的声明和程序安全性。
健壮性
NVM,动态类加载器和字节码校验器的控制下运行的组件。
灵活性
使用基于JNDI声明数据库访问的配置。
模型对象,使用范围属性的变化是很容易。
使用母版页,文件/页面包含,要求调度,请求转发
使用请求调度和远期的方法,过滤器链。
模块化
EJBJAR模块
标签库,war模块
war模块,过滤器
可重用性
支持远程EJB对象
自定义标签库,页面/文件包含链接
使用请求调度和跳转方法。
过滤器链。
表三WEB应用程序的设计任务和在JavaEE平台上对它们的支持
属性[6]
JavaEE平台支持设计任务
接口设计
HTML控件,Java的服务器Faces(JSF)框架控制。
美观设计
层叠样式表(CSS)的支持。
内容设计
实体的容器管理的关系,和实体Bean以及支持EJB-QL。
导航设计
在JSF框架中,我们可以以图形和手动的方式在faces-config.xml中配置导航
体系结构设计
MVC设计模式
组件设计
所有组件的生命周期是由JavaEE容器控制的,并为所有组件提供基本骨架。
表四WEB应用程序的质量属性和在JavaEE平台上对它们的支持
属性[1]
标准
在JavaEE平台的支持
可用性
-全球网站可理解
-在线反馈和帮助功能
-接口和审美特性
-特殊功能
-国际化的支持,特定于语言环境的资源包
-自定义错误页
-JSF.CSS支持组件以及内置的自定义用户界面组件
-事务处理,安全
功能性
-搜索和检索能力
-导航和浏览功能
-应用领域相关的功能
-EJB实体bean和持久性实体中对创建,读取,更新,删除,查找,业务功能支持
-视图:
JSF框架中声明导航
模型:
在EJB实体bean和持久性实体容器管理的持久关系
-EJB会话bean:
业务逻辑,业务规则。
EJB实体bean和持久化实体:
业务数据
EJB消息驱动Bean:
异步业务事件处理。
可靠性
-正确的链接处理
-错误恢复
-用户输入验证和恢复
-声明导航是准确的。
-例外处理支持。
-JSF框架支持数据转换和验证。
效率
-响应时间性能
-页面生成速度
-图形生成速度
-每个用户请求的单独的线程。
-JSP编译一次。
它是快速的。
-没有明确的可用的支持。
可维护性
-易于校正
-适应性
-可扩展性
-基于角色与并发维护任务。
-JavaEE是基础标准的,没有供应商锁定。
-组件是面向对象的。
六、结论
我们按Web应用程序对JavaEE平台的每个质量属性的要求做了分析,发现质量属性:
实用性,功能性,可靠性,效率和可维护性等所有都很满意。
从讨论中显而易见的是,JavaEE平台简化了设计,开发,部署,集成和Web应用程序的测试过程中没有折中高质量,这是显而易见的。
它还有助于开发出具有可扩展性,可移植性,互操作性,可重用性,灵活性和安全性的Web应用程序。
许多Web应用程序开发框架在JavaEE平台上是可用的,但是没有发现提供支持高质量的分布式Web应用程序。
今后,我们打算研究开发JavaEE平台上的分布式的高质量的Web应用程序框架。
2.外文原文
HighQualityWeb-ApplicationDevelopmentonJavaEEPlatform
HarshadB.PrajapatiandVipulK.Dabhi
Abstract
Qualityofweb-applicationsplaysmajorroleinitssuccess.Andthehighqualityweb-applicationisreallypossiblebyfollowinghighqualitywebengineeringprocess.Theuseofstrongweb-applicationarchitecturewithstrongdevelopmentplatformnotonlymakeweb-applicationsrobustandofhighqualitybutalsogiveweb-applicationanabilitytomeetchanginganddemandingcustomerrequirementsinefficientmanner.AModelViewController(MVC)designpatternhasremaineddesignpatternfundamentalarchitecturaldesignpatternevenaftergreatfundamentalevolutioninarchitecturesofuserinteractiveapplications.Inthispaper,wediscussthesupportforachievingqualityattributesfortheweb-application,thesupportforweb-applicationdevelopmentprocessandthesupportformeetingdemandingfeaturesofweb