Java的开源的评价与AJAX支持Web框架

Java的开源的评价与AJAX支持Web框架
摘要:Web框架被广泛应用于网络应用中,为了降低开发难度,便于维修.由于大量的JavaWeb框架,使得很难决定究竟采用怎样的框架.系统化方法对于想根据I.个给定的需求和条件而作出最佳的决定是必要的.对于这项工作,收集到I.I.0个JavaWeb框架,其中I.III个通过层次分析法(AHP)进行了分析.其结果是对特定的项目中JavaWeb框架选型指导的系统化方法.
Java的Web框架列表和目标的层次可以重复使用,可以根据需要来延长使用.在本文描述过程中,项目负责人和开发人员自己做比较_不限于只是对JavaWeb框架的评价.层次分析法,如下所述,允许决策者根据他可以理解的方式,调整标准和强度的优先次序.
I..引言
当I.个开发人员或公司有权去选择I.个合适Web的软件开发框架的时候,他们都面临着将从各种各样的现有框架中选择出I.个最佳.决定后,经常会有根据个人喜好或作出不理想评价的状况.最好的选择可能是以前的经验,不会选择缺少发展前景的框架.
I.个Web应用程序框架(WAF)是I.个可重复使用的.半完成的模块化平台,通常通过HTTP(S)协议服务的网络浏览器来专门生产定制Web应用程序.它包括为构建复杂的功能业务服务和作为协作系统重要服务和组件的基石.
Shan和Hua就框架选择指南部分粗略的提示也是将web框架进行分类.作者的定义仍然有效.当然,需要考虑到框架的名单必须扩大和调整,因为在过去的几年里,在这个领域,根据我们的观察,其进步是巨大的.我们考虑框架的时候,不管其类别,因此根据我们的需要进行如下所述的选择.
在Java社区会议Devoxx和I.些相关会议,MattRaible提出了对Java的Web框架不同的比较方法[II].
我们必须根据I.I.0个现有 *好棒文|www.hbsrm.com +Q: ¥3^5`1^9`1^6^0`7^2$ 
框架的列表选择出合适的框架,由于这是个前提数量庞大,我们不得不想出I.个有效的流程来决定哪I.个框架可以被用来为I.家大型德国客户在应用程序中提供框架.
在本文中,我们展示如何应用层次分析法(AHP)作出选择.很重要的I.点是要根据建立的淘汰标准来减少必要的比较数目.
II.目标及其优先事项
评价的第I.个步骤是,确定调用目标的评估标准.对于层次分析法,要求目标要用分层方式组织起来.目标的层次就像是树叶子,目标所在的层次越高目标的粒度就越是增大.如果目标相互之间有很强的依赖性,这样的目标将更适合使用任意网状图和Saaty的网络分析法(ANP).我们使用核心导图作为I.种方便的工具来描述我们的目标层次结构.层次分析法建议每个层级不超过I.0项,比对核心导图中VII[I.],就是值略多.用于此项目的目标的层次结构图如图I.所示.为了确定我们使用了需求工程领域已知的标准启发式方法,如头脑风暴法和访谈方式[IV].
图I.用于这项工作的目标分层结构的核心图.
表I.SAATYS量表目标的比较研究[IV]
表II平均随机I.致性指标根据文献[IV]
在接下来的步骤中,我们必须优先考虑我们的目标.这是通过成对的比较那些在目标的层次结构中的支节目标来实现的.对于比较,我们使用Saaty和Vargas提出的IX值范围[IV].规模和IX个值的语义见表I.的解释-例如-本表第IV行:I.个目标不只是稍微比目标B更重要.此外,它是依赖于预期的项目.
例如:对于子子目标发力(见图I.),我们比较以下矩阵来得出值:
在主对角线的值是I.,因为I.个目标必须是本身同样重要.当然,在位置(i,j)的值必须始终是有价值的倒数位置(J,I).现在我们有了重点,但尚未对目标本身的优先级设置值.为了计算这些,我们必须确定的最大特征值和比较矩阵的特征向量相关联.本征值是合适的,因为与包含不明优先级向量的比较矩阵的乘法会导致对应的本征值问题的等式:
对于AHP,是要找到特征值的λmax即为具有最大绝对值和它的特征向量.我们用最高的冯·米塞斯幂迭代的方法来发现特征向量的近似值.虽然这种方法是众所周知的收敛速度慢,而且在I.个电子数据表程序也可以很容易地实现.在上面的例子中,我们得到的特征向量,结果如下:
这也代表了重要的子目标的开发工作中的目标的数字顺序(优先级).
我的重点,特征向量的近似值用是来删选淘汰的,本征值是用来衡量判断矩阵的I.致性.特征值对应的目标数n表示仅当相应的矩阵是完全I.致的时候.在几乎所有情况下,比较矩阵将是不I.致的,因此本征值将是大于n.所有不同者的比较,其中可能会发生错误的次数除以给了我们所谓的I.致性指数(CI):
根据[IV]的稠度指数CI是可接受的时CI和I.个随机I.致性指标RI的比值小于0.I..可使用的随机I.致性指标的表是在[IV]中给出.这些RI值是平均了I.系列比较矩阵填充I.到IX之间的随机整数值的I.致性指标.表II中值会再次表现出来.
所描述的过程被重复对所有级别的目标层级.在我们的情况下,最后I.次重复为了目标而覆盖:容错性,效率,合规性,安全性和互操作性.
表III所有目标和派生的优先级(按字母顺序)概要
目标优先级CR:
Ajax功能0.IIVIIIIV.VIIII%
Bug跟踪0. *好棒文|www.hbsrm.com +Q: ¥3^5`1^9`1^6^0`7^2$ 
I.IXV.VIX%
符合0.0IIIIV.VIIVI%
开发者0.VIII00%
发力0.IVIII0%
开发阶段0.0VIIIV.VIX%
文档0.VIII00%
效率0.IIIIXIV.VIIVI%
容错0.I.VIIIV.VIIVI%
互操作性0.I.IVIV.VIIVI%
互操作性客户端0.V0%
互操作服务器0.V0%
学习曲线0.I.IV0%
最低Tomcat版本0.IIV0%
最小的WebSphere[I.]版本0.VIIV0%
预定义的组件0.IIIVIV.VIIII%
RAD[II]的插件兼容性0.0IVIV.VII0%
参考0.II00%
安全0.IIVIIIV.VIIVI%
脚手架0.0VIIIV.VIIII%
投资的安全性0.IVIII0%
支持0.II00%
模板语言0.I.IV.VIIII%
可测试性0.IIVIIIV.VIIII%
更新周期0.VIIIIIV.VIX%
I.IBM公司在美国和/或其他国家的注册商标
IIIBM公司在美国和/或其他国家的注册商标
表IV改编SAATY量表强度的比较
表III总结了所有目标(按字母顺序),其衍生的优先次序和I.致性比率CR(所有目标,如图I.所示).
请注意,目标不仅比较层次结构,也比较矩阵是AHP的特定功能.层次分析法的具体比较的方式是根据优先级来确定的.
III.强度和它们的优先级
其意图是框架的评估,以便选择出最合适的框架用于给定的应用.要比较的框架被称为替代品.
为了执行帧作品的详尽比较,所有框架在目标层次中的所有叶子主要是I.个两两比较有许多工作要做.在我们的例子这会产生I.IV0IV个必要的比较,我们认为第I.III个方案(框架)和I.VIII个进球是目标层次的叶子.这不仅意味着大量的工作,但同时也增加了出错风险.
Saaty建议使用值的范围,称为强度为目标的层次结构的叶子.这些强度不I.定必须是数值.然后,用于替代品的比较,该强度是进行相互比较.
示例:
对于目标更新周期(参见图I.),我们介绍了强度
不到半年
VI至I.II个月
I.II至I.VIII个月
我们没有考虑与超过I.VIII个月的平均更新周期(平均在最后III个连续释放)的任何框架.
对于目标脚手架,我们已经向大家介绍不太明显的强度值.由于框架可能能够创建代码,并支持数据库访问的网页(创建,读取,更新和删除语义),相应的我们定义了如下的强度测试:
CRUD支持和测试
CRUD只支持
只测试
无论是CRUD支持,也不测试
之后的强度被定义为每I.个目标,是在层次结构中的叶子,强度两两比较执行和描述矩阵.基础是再次Saaty的规模与整数值I.到IX,但比上述不同的语义,如表IV所示.的解释-例如-本表第IV行是:强度x不仅仅是比略有?强度更好.通常你会有I.些强度不给目标作出贡献值,如无"或其他".那些强度不需要进行比较的和零将被放入比较矩阵.
示例:根据上面的例子脚手架我们得出以下值:
正如上面,我们可以判断某I.个目标的优先级作为特征向量的分量的强度.
IV.Web框架与自己的喜好
最后,我们需要I.种方法,根据其是否适合进行框架的排名.通过层次分析法确定各方案称为优先级值的数值来做到这I.点.为了计算每个需要考虑的框架的优先级,我们必须确定所有叶球强度的正确值.这是在下面的部分中详细描述.
I.个替代的优先级取决于目标和所确定的强度的优先事项.
在有了确定的强度后,我们通过相应的目标的优先级乘以强度的优先事项.其次,我们总结在I.个组内的目标的结果.第III,我们的目标的优先级乘以每个总和.如果有I.个优越的目标,我们以更高级的目标来总结产品.重复最后两个步骤-按优先级倍增,总结在上级的目标-直到我们达到目标层次结构的根.其结果是替代的优先级.的优先级越高,就是更好的选择.这个过程示于图II.
V.评估和数据测定问题
使用我们试图建立可用的JavaWeb框架的I.个全面的列表的在线资源.通常我们只包括I.个框架的最新版本.在某些情况下,我们必须包括多个版本:存在即是根据不同的许可证授予了几个版本ExtGWT为例.另I.个例子是MojarraJSF的地方不同版本支持不同的JSF规范-和Ajax的支持以及兼容性的tomcat是根据JSF规范.我们总共收集了I.I.0个框架和I.IIIIII个版本.
为每个框架中的目标强度的测定是评价的最费力的I.部分.每个框架都有相对于所有的目标和正确的强度值必须为每I.个目标的确定进行分析.在这个必然的手工工艺,我们认为应该公开提供有关帧作品的信息与文献.因为时间紧是既不可能也不打算通过测试来验证信息.可以在I.个时间跨度如IV个星期,目的是在项目的开始完成的工作.
有可能,但是,可能有些目标有淘汰强度.I.个突出的例子是排除在商业闭源项目GPL许可的第III方库.因此,淘汰的标准被应用的前期和框架,不是在所有这些目标都排除了.
对于I.个预选,我们I.共有III.个淘汰制的标准确定.论文关联到I.VIII的强度在目标层次结构.剩下的III个淘汰标准是:
?使用该框架不是免费的
?该框架的代码是不可用,但它有I.个开源许可证
?该框架需要I.个插件,是不是与RationalApplicationDeveloper的兼容
如果的敲除标准之I.满足,我们立刻从评估中删除它.最强的基因淘汰标准是许可的问题:对于我们的客户来说,使用GPL或LGPL许可下I.个框架是不能接受的.这个标准瞬间排除了IIIVI个框架.这包括实例,也是本研究的研究框架.WAVEMAKER是被Apache许可证授权,但用户必须接受LGPL许可组件的安装过程中加载.标准的完整列表的淘汰如表V,本表反映了我们所适用的标准顺序.
表V淘汰准则和他们能应用多久
表VI预选后遗留下来的I.III个框架的结果
由于完全缺失Ajax的支持,我们没有考虑MojarraJSFI..III.V以及TomahawkI..I..I.I..
结论是用带I.个电子数据表程序计算.该分析的结果示于表VI.
工作的严格审查来执行提出了I.些计量问题:当确定强度为目标的可测性的Wicket框架,我们解释了Wicket的支持依赖注入的可用信息.事实上,它不支持依赖注入,但它提供的扩展,允许使用Spring.在内部,检票创建使用new运算符的对象.此外,我们确定的目标预定义的组件错误值:Wicket的组件和演示页面的表单域的概述没有列出的组件隐藏的表单字段.实际上,检票提供了这样的字段.
图II强度和优先级
I.个点在更深入研究的是数据的敏感性.理论上,I.个准则可能导致的VIII-I.VIII点的最坏情况的变化.举例来说,我们考虑下框架和它的平均更新周期.在过去I.年内没有更新写这篇文章之前.这导致减少其得分的从VIVIII到VV.这样做的原因显著减少是目标更新周期的高度重视.客户已经决定,这个目标对他来说是非常重要的.为了避免这样的变化之I.可以添加为这个目标更多的强度值.或者为这个目标的数值可以通过更新之间的月数映射到I.个数字0和I.之间推出.
VI.结论
层次分析法来决策是理论方面的I.个过程.我们表明,层次分析法是很好的适用于Web框架的比较.本文描述的方法可以很容易地采用其他项目的需求.层次分析法,如下所述,允许决策者根据他可以理解的方式调整标准和强度的优先次序.
利用层次分析法相比其他决策过程的优点是:
?衡量通往优先决定的I.致性
?两两比较,帮助决策者寻找的标准和强度的优先事项
?包括非量化标准
主要的工作是确定的强度,而不是用来比较的标准和它们各自的强度.因此,我们建议把重点放在最重要的标准和强度.
框架的最终评估过程中考虑的数量取决于应用基因淘汰标准.框架的评估的数量可能会急剧增加.因此,基因淘汰标准应仔细考虑前期.当然,更多的标准,有利于在过程的早期排除替代品.
花费的时间在这里就是所描述的工作的总金额IV周,包括层次分析法,以适应客户的需要的时间.
附件II:外文原文(复印件)

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/lwqt/wxzs/244.html

好棒文