英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
Spring Framework Reliability Investigation Against Database Bridging Layer Using Java Platform
Arief Ginanjar*, Mokhamad Hendayun
文献翻译
摘要:
无论是在web应用程序中还是在windows应用程序中,都存在一些可使Java编程环境中创建应用程序更容易的框架(即提高应用程序性能的框架)。如果我们把更多的精力放在Java web的开发框架上,就会发现自2004年以来流行的各种开发框架,特别是Spring框架,它可以与其他各种框架相结合,比如与Hibernate框架、Ibatis或MyBatis框架以及其他一些框架相结合。该项研究的目的是比较使用Java编程语言构建的web服务应用程序与Spring框架开发出的应用程序,它们的数据加载能力,特别是与数据库连接层(如Java数据库连接(JDBC)、Hibernate框架、MyBatis框架以及Hibernate和MyBatis等框架相结合后,具有缓存能力,载入数据等性能的提升或是下降。另外引入在性能测试场景中,在Spring框架中创建一个web服务,然后由使用第三方代码构建的自定义测试脚本访问,并在一定的时间段内重复调用它们,以测试这些不同组合的性能。
基本介绍
1.1 研究背景
Spring框架是21世纪初期被开发出来的,并且是用于使用java开发平台制作web应用程序的首批框架之一。随着时间的推移,出现了其他的具有多种优势的框架,但是Spring框架的使用一直到2018年都还在被人们所热衷。这可以从下面的信息图中看出,以下这些信息图说明了java程序员在2004年到2018年间对于世界上最流行的一些框架的喜爱程度。
从图1中的信息图可以看出,有些框架是程序员在工作中特别常用的,包括Spring框架、Hibernate框架、JSF框架、Struts框架和MyBatis框架,这5个框架是java程序员最常用或者说最喜爱的框架。
图1.2004年至2018年(a)和2008年至2018年(b)对世界上几种流行框架的热门程度(来源:谷歌)
图2.2008年至2018年(a)和2013年至2018年(b)印度尼西亚几个流行框架的热门程度(来源:谷歌)
在图2-a中,2008年至2010年间,印度尼西亚的Java程序员对于这些框架的使用出现了波动。这表明应用程序开发的工作中,开发人员所使用的框架仍然处于试用阶段。但2011年之后,数据图表开始显示出程序员从每一个流行的框架中获得舒适感和利益的显著趋势。然后在图2-b中可以看到印度尼西亚的java程序员倾向于使用上文所列举的5个框架,时间段为2013年到2018年。
在实现Spring框架基于java的web应用程序开发中的使用时,它(Spring框架)通常与其他框架相结合,包括:java数据库连接(JDBC)、使用Hibernate框架的对象关系映射、使用Ibatis框架或MyBatis框架的java查询公开连接,以及除了存储在数据库中的数据外,使用缓存引擎还要存储临时数据,以提高应用程序数据的载入调用访问速度等。
1.2 研究目标
该研究的目标是了解表1中列出的每个样本的可靠性,这些样本将通过一系列试验进行测试。这些试验使用印度尼西亚全国各省、市、区、分区和村庄的数据名称,实验样本中一共有98457行数据记录,我们将通过使用spring框架与其他不同的框架组合来加载这些数据,通过加载数据的速度来进行测试,并循环在具有一定强度的URL的data集合JSON数据中。
表1. 将要测试的框架样本
通过以上一系列的测试,当每个框架与spring框架组合,并且接受了相同负载循环的性能测试以后,我们将能够从测试中知道每个框架与spring框架组合以后的可靠性(综合性能)。因此,在选择应用于基于java的应用程序开发的Spring框架的协作框架时,该数据有望成为我们做出决策的重要参考源。
1.3 研究范围
该项研究只关注url数据加载,不测试插入、更新和删除json url数据的操作,技术规格,配置要求如以下几点所示:
- 使用MariaDB 10.1.19版本的数据库系统,该数据库系统单独放置在Microsoft Windows 7操作系统的Oracle虚拟机中,Oracle虚拟机的版本为5.2.6。
- 使用本地主机-来宾虚拟机之间建立的网络连接。
- 在主机环境中使用Microsoft Windows 7正版64位操作系统。
- 使用Netbean 8.2作为集成开发编辑器。
- 使用Spring 4.0.1版本的框架作为MVC框架。
- 使用Spring json taglib作为json输出的目标库。
- 使用应用程序容器ApacheTomcat 9.0.12版本作为应用程序部署。
- 使用Java虚拟机版本1.8.0.162 64位,JVM核心为默认设置,不做任何平台环境调整。
文献综述
2.1 研究方法
编写该项研究报告所采用的方法和原型是使用定量研究方法,以及通过重复强调要素和组件的过程和系统方法来测试spring框架与其他框架组合使用以后,应用程序综合性能能力是否有变化(是提高了性能还是降低了性能)的过程[1,2,3],研究过程顺序如下:
- 查阅资料阶段,从可以作为参考的图书馆资源中查找。查阅的资料可以是讨论Spring框架、Hibernate框架、Ibatis框架和缓存引擎的书籍、论文或网页。
- 资料分析,描述如何对每个框架的架构和编程技术进行分析,以及使用这些技术,如何将这些框架组合起来。
- 软件设计,在基于上述分析结果构建的框架之上进行软件设计。软件设计必须满足将要执行的测试场景。
- 软件实现(编码),实施基于设计结果开发的软件。软件实现将产生包含待测样本中指定的spring框架分别与其他几个框架组合的软件产品。
- 测试和评估,对已经构建的软件产品进行测试,然后对所执行的每个测试场景进行性能评估分析。
- 迭代软件设计阶段,实现阶段以及测试和评估阶段,对于业务流程未满足研究人员意愿的情况,将要修改的软件样本进行测试,然后重新设计和重新实现样本软件,重复该过程。
- 应用程序性能测试,对应用程序通过url循环加载施加压力的性能进行测试过程,该过程针对已使用url循环脚本方法构建到应用程序中的样本框架(spring框架分别与其他几个框架的组合)重复执行,并由研究人员构建java编程脚本。
2.2 进化原型模型
在该项研究的实施部分中,描述的过程阶段是指原型模型的进化阶段,可以从图3所示中说明这个过程。原型设计的演化过程包括四个主要过程:输入、原型设计、过程和输出,但在过程中也必须受到场景条件的限制(即满足场景要求);所建立的每一项功能必须满足系统需求中所规定的适当要求,参与原型制作过程的人员的能力也需要达到开发该系统的最低要求[4]。
图3. 进化原型模型[4]
2.3 构筑样本
通过使用面向对象编程原理以及模型、视图和控制器的MVC方法,抽象定义允许程序员在开发过程中拥有复杂的思维,但是又不必关注那些详细的组件。而封装则允许程序员在开发过程中专注于软件功能,而不必去详细考虑开发过程中系统的复杂性。[5,6]。
通过将Spring框架、Hibernate框架和MyBatis框架这些不同的框架组合成一个重叠每个框架缺点的系统,可以期望在组合这些框架时能够发现这些缺点,并且进行以优化这些缺点为目的的测试。[7,8,9]。
图4. Hibernate框架架构(a)[9];和MyBatis框架架构(b)[8]
研究方法
-
- 研究背景
当使用进化原型技术来开发软件时,所要执行的步骤为,从分析、设计和实现、测试和评估开始,在有限制条件的情况下反复进行,以产生研究所需的输出结果。该项研究的目的是寻找在java开发平台上生成web服务项目的最佳框架组合(即研究spring框架与其他几个框架相组合以后,哪种组合下,生成的项目性能最佳)。
3.2 实验配置
在已经进行的测试实验中,有一些已经应用的技术层面,所进行的测试涉及以下几个:系统层、数据库层、应用程序容器层、逻辑编程层和测试脚本层。并且在每一层中都调用了上述环境配置,以便每一层中的每个模块都可以与其他层进行交互。
表2. 每一层的配置实现
将在客户操作系统中的虚拟服务器上的每个样本的测试流进行存储,然后在主机操作系统中安装程序Apache Tomcat,然后使用程序netbeanideversion8.2运行测试脚本,如图5所示。表1中所示的每个框架样本(spring框架与分别与其他不同框架的组合)以外,还需要其他几个库为研究样本,作为主要框架的支撑用,库的详细信息见表3。
图5. Spring框架数据流体系结构测试多个数据库连接层的性能
如示例中第1列所示,它是4.0.1版Spring框架与Java数据库连接框架(JDBC)组合使用的测试示例,但还需要另一个JSP库标准标记库(JSTL),该库具有将数据从Java类环境转换到Java web环境的功能,那么MySQL JDBC就是一个Java数据库Connection(JDBC)专门用于带有MySQL的数据库服务器。除此之外,还需要辅助使用JSON Taglib,这是一个转换工具,可以将JSTL环境中的数据转换为Javascript对象表示的方法。
表3. 每个样本的附加库
Persistence JPA 2.1是支持Spring框架和Hibernate框架之间组合的主要工具,两个框架之间的数据交换因为有了Persistence JPA 2.1的存在,而变得有效。并且,AOP Alliance成为Persistence JPA2.1的一个补充功能,当测试当中有几个功能无法通过Persistence JPA 2.1实现时,AOP Alliance将帮助上述两个框架满足互相可操作的需求。而Ehcache是一种基于硬件和软件的技术,用于临时数据存储,从而帮助提高应用程序或系统的性能水平。
cache技术的应用已经相当广泛,主要是被应用程序开发人员用来提高应用程序数据视图的访问速度,每个框架都有自己的体系结构,用来实现对其管理的数据的处理。cache技术也将会成为下一步研究的热点。
-
- 数据收集
研发人员以运行应用程序样本的形式,进行数据收集。这些样本是根据表1所示的spring框架与其他框架之间的组合而构建的,安装在名为Apache Tomcat version 9.0.12的应用程序容器环境中,研发人员使用Netbean 8.2环境中的测试脚本来将其运行,如图6所示。
图6. 命令行使用java编程测试几个数据库连接层的spring框架性能
结果
4.1 研究结果
在对Spring框架与数据库连接框架(JDBC)结合的性能测试中发现,MyBatis框架与L2-Cache的结合出现了积极的趋势(对系统性能有促进作用),而Hibernate框架与L2-Cache的结合则是出现了消极的趋势(降低了系统性能)。
图7. 场景1中 100次命中(a)和500次命中(b)的测试结果。
从基于预定测试场景进行的测试中发现,场景1和场景2的命中次数超过1000时,包含Spring框架、Hibernate框架和2nd Level Ehcache框架的三个样本无法执行,并且同一个样本不可以运行到命中500以上的场景有场景3,场景4,场景5和场景6。
在上述条件下,我们可以将注意力集中在命中100和命中500的数据之上,用以平衡所有样本和场景的观测数据结果。在下一讨论中,所显示的数据的表示已被转换为如图7至图12所示的折线图。
图8. 场景2中 100次命中(a)和500次命中(b)的测试结果
图9. 场景3中100次命中(a)和500次命中(b)的测试结果
图10. 场景4中100次命中(a)和500次命中(b)的测试结果
图11. 场景5中100次命中(a)和500次命中(b)的测试结果
图12. 场景6中100次命中(a)和500次命中(b)的测试结果
从图中列出的数据(如上图所示,由上述所有折线图表示)中,研究人员将获取主要数据,即:每个场景对每个样本的平均加载速度、每个场景对每个样本的最低加载速度(加载速度下限)、每个场景对每个样本的最高加载速度(加载速度上限),加载速度等于每个场景中出现次数最高的加载速度与每个样本之间的比值,以及每个场景中的加载速度中间值与每个样本之间的比值。所有数据见表4、表5和表6。
表4
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[234857],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- 为非政府组织OG慈善基金会设计的基于社区的救灾管理系统外文翻译资料
- 基于UML建模的医疗系统电子健康服务软件外文翻译资料
- 开发一种具有增强现实功能的智能手机应用程序, 以支持护理学生对心衰的虚拟学习外文翻译资料
- 在开发 Web 应用程序中应用 Vue.JS 框架外文翻译资料
- 基于MES系统的生产车间信息管理研究外文翻译资料
- 基于Vue.js和MySQL的电子商务平台的设计与实现外文翻译资料
- 详细的Spring配置和SpringBoot外文翻译资料
- 基于NS2的DSR和AODV协议的性能比较研究外文翻译资料
- 不同仿真参数下NS2的TCP吞吐量性能外文翻译资料
- 基于Spring Boot和VUE的车辆管理系统实现外文翻译资料