Web应用中间件性能测试系统设计与验证

2023-03-30 08:52何冬辉杨攀飞
现代计算机 2023年2期
关键词:保险经纪中间件驱动程序

刘 维,何冬辉,杨攀飞

(1.工业和信息化部电子第五研究所,广州 511300;2.基础软硬件性能与可靠性测评工业和信息化部重点实验室,广州 511300)

0 引言

中间件是连接软件组件或企业应用程序的软件[1],其主要作用是屏蔽底层系统和通信的异构性,进而支撑应用实现稳定、可靠和高并发运行,并简化应用的开发流程[2]。它开始于操作系统之上的一些附加功能,以促进复杂应用程序的开发,然后发展了数据集成功能,后来成为网络应用程序的促进者,最终成为每个分布式环境、应用程序、系统和平台的重要组成部分。到目前为止,任何类型的分布式系统或应用程序都能找到中间件或一些涉及的中间件功能。通常,它支持复杂的分布式业务软件应用程序[1]。

作为三大基础软件之一,中间件是信息系统建设项目不可缺少的核心组件,与操作系统、数据库具备同样的战略高度。中间件实现的范围是多种多样的,从面向通信的中间件到面向组件的应用服务器[3]。目前国际通用的中间件技术标准主要有由SUN 公司提出的Java EE、微软的COM+/.NET 框架以及公共对象请求代理体系结构(common object request broker architec‑ture,CORBA)/CORBA 组件模型(CCM)[4]。在政策的指引下,国内涌现出了一批国产化中间件产品,并广泛应用在各个行业与领域,现阶段的国产中间件的核心诉求主要集中在应用中间件。

目前在中国市场,主要的中间件厂商(组织)有8 家,其中3 家来自美国,5 家为国内厂商,国内厂商因受到政策驱动,市场保持稳定发展态势[5]。在8 家中间件厂商的主打中间件产品中,7 家为商业产品,1 家为开源产品,8 家厂商均通过了Jakarta EE 8规范兼容测试认证。

获得系统性能特征的常用方法是通过基准测试[3],为保证国产Web 应用中间件满足其服务质量(QoS)要求,须使用基准测试来测量和验证它们的性能。面对国产中间件无测评体系、无配套测评工具的现状,通过对中间件测评技术的研究,本文设计了一种Web 应用中间件性能测试系统,使用汽车保险经纪基准模型对Web 应用中间件进行性能评估,对通过了Java EE 8、Java EE 7、Java EE 6 国际标准兼容认证的某国产品牌Web应用服务器软件进行评测。

1 系统设计

1.1 汽车保险经纪基准模型

汽车保险经纪基准模型旨在测量与Java EE 7.0 Web Profile 或更高版本规范兼容的应用服务器的性能。它为Web 应用程序的用户提供了一个标准,用于比较从Java EE Web Profile 应用服务器、Java 运行时环境、网络和操作系统到数据库服务器和存储的所有级别的应用程序栈(application stack)的软件和硬件性能[6]。它由一个保险应用程序组成,包含三种不同的服务:车辆服务、保险供应商服务和保险服务,该应用程序使用JSF 和REST 函数来驱动应用服务器上的负载。

1.2 Web应用中间件测试系统的实现

整个测试系统可大致分为Driver,Applica‑tion Server,Database Server三个部分[7],结构如图1所示。

图1 Web应用中间件性能测试系统结构图

Driver 的压力部分:首先Driver 引用Faban测试工具进行部署和测试,其工作原理是由主节点创立多个从节点,之后用大量从节点来进行压力负载的测试。基准测试系统使用Faban来安排和自动化基准测试运行。Faban 还提供了一个嵌入式图形工具,可以绘制和比较运行结果。该工具作为托管在Tomcat 服务器上的Web 应用程序运行,它提供Web 用户界面,并充当汽车保险经纪基准测试的驱动程序组件的容器。线束提供的Web 用户界面用于调度运行,管理运行,查看运行日志以及运行完成后查看结果(包括详细图表)[7]。

Application Server 部分:其主要运行着车辆保险模型,该模型由三部分服务组成,分别是:车辆服务、保险供应商服务和保险服务。该模型支持集群化部署。

Database Server 部分:提供数据服务,并且能够及时响应,支持集群化部署。

通过gradle 脚本程序获取到预先写好的Ap‑plication 的接口测试模型数据,之后通过创建主从线程来预热测试程序,预热之后按照接口测试模型数据针对性地对承载应用服务器Applica‑tion Server的中间件进行测试。

Web 应用中间件性能测试系统的功能特点见表1。

表1 Web应用中间件性能测试系统的功能特点

2 应用验证

2.1 运行环境

测试系统软、硬件环境如表2所示。汽车保险经纪基准模型测试的吞吐量由保险驱动程序的活动驱动。注入率(injection rate,IR)衡量在基准运行期间将加载多少数据,驱动器的吞吐量与所选的注入率直接相关。为了提高吞吐量,需要增加注入率。较高的注入率等同于更多的客户端负载,因此相应地创建了更多的数据,本文分别在注入率为500、1000、1500 和2000的条件下进行了测试,设置预热时长为600 s,测试时长为3600 s,结束时长为300 s。

表2 测试系统运行环境

2.2 测试结果分析

本系统对Web 应用中间件测试项分为四个部分,分别为组合操作(Operation Mix)、响应时长(Response Times(seconds))、逻辑执行时长(Cycle/Think Times(seconds))及其他项(Miscella‑neous Statistics),业务交易类型如表3 所示。由保险驱动程序运行的业务交易是保险服务的一系列操作,业务交易序列由驱动程序根据表4中所示的组合选择。驱动程序将85%的负载发送到JAX‑RS API,并将15%的负载发送到JSF生成的HTML 页面。表4 中的每个序列都具有REST 和JSF变体。驱动负载的客户端模拟Web用户与保险服务的应用程序进行交互,负载按照15%的JSF请求和85%的REST请求的比例进行分配。

表4 业务交易组合要求

2.2.1 组合操作

组合操作测试结果包括业务成功总数、失败总数、实际组合、目标组合四项,对于每种类型的业务交易操作,基准中实现的实际组合须在目标组合的4%范围内(±2%),驱动程序检查并报告是否满足组合混合要求。图2 显示了500、1000、1500 和2000 四种不同注入率(txrate)下业务操作的成功总数,图3 显示了实际组合和目标组合之间的偏差在规定的范围内,所有业务测试项通过。

图2 不同注入率下业务的成功总数

图3 不同注入率下业务实际组合和目标组合的偏差

2.2.2 响应时长

驱动程序测量并记录业务交易序列中每个不同操作的响应时间,仅包括在测量间隔中成功完成业务交易序列的操作。业务交易的每个操作中至少有90%的响应时间(90%th)须小于2 s(即90%目标响应时间为2 s)。每个业务交易操作的平均响应时间不得超过记录的90%响应时间的0.1 s,此要求可确保所有用户都能看到合理的响应时间。例如,如果注册事务的90%响应时间是1 s,那么平均值不能大于1.1 s。驱动程序检查并报告是否满足响应时间要求。

该项测试,测试结果包括平均响应时长、最大响应时长、标准差、90%实际响应时间、90%目标响应时间五项,若每项业务平均响应时间和90%实际响应时间符合以上要求,则该测试项通过,反之则未通过。

图4表明不同注入率,业务交易的每个操作中90%实际响应时间(90%th)均小于90%目标响应时间(2 s),平均响应时间(avg)符合规定,所有测试项通过,通过计算验证也可证明以上结论。

图4 业务交易操作的响应时间

2.2.3 逻辑执行时长

该部分测试结果分为目标平均(targeted avg)、实际平均(actual avg)、逻辑执行时长最小值(min)和逻辑执行时长最大值(max)四项,每一个业务交易操作的测试均生成上述四项结果,当实际平均不超过目标平均时,该业务交易操作项测试通过。测试结果表明在各注入率下实际平均执行时长(actual avg)皆不高于目标执行时长(targeted avg),该项测试通过,测试结果如图5及图6所示。

图5 逻辑执行时长的目标平均和实际平均

图6 逻辑执行时长的目标平均及实际平均之差

2.2.4 其他项

该部分测试项设测量基准设置,包括使用安全连接、有效的运行属性设置;初步审计项,该项是注入数据的初步数据量审计,包括车辆描述、车辆、车辆保险、投保人、保险政策;原子性测试,测试内容包括原子性测试一及原子性测试二;持久性和正确性测试,包括JPA缓存透写测试、幻读删除测试;最终审计项测试,它对程序测试之后的数据审计;业务审计项测试。具体描述见表5。

表5 其他项测试

续表5

在基准测试期间,业务交易序列的每个操作有99%或以上须在稳定状态下取得成功,这允许最多1%的操作类型失败。此外,数据库表中的行数须不超过预期大小±1%的偏差。驱动程序检查并报告是否满足这些要求。测试结果表明,实际结果(results)符合目标结果(targeted results),被测Web 应用中间件使用https 安全连接方式,与目标结果一致,有效的运行属性设置符合目标结果,原子性测试通过。在误差允许范围内,初步审计、最终审计及业务审计成功率被测结果符合目标结果要求。图7在横轴上三组不连续线段分别表示初步审计项、最终审计项和业务审计的成功数。

图7 初步审计、最终审计及业务审计成功数

3 结语

当前,我国信创产业快速发展,但在中间件测评体系和测评工具方面还没有成熟的、标准的技术和产品成果,本文设计了一个基于汽车保险经纪基准模型的Web 应用中间件性能测试系统,并在某国产品牌Web 应用中间件上进行了应用验证,探索了在四组不同注入率下应用服务器的系统性能。实验结果表明,该测试系统能够实现对国产Web 应用中间件性能的评估,在一定程度上有效牵引了国产Web 应用中间件产品质量提升。

猜你喜欢
保险经纪中间件驱动程序
和德保险经纪有限公司
博维保险经纪有限公司
上海市主要保险经纪公司业务统计表(2018)
计算机硬件设备驱动程序分析
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
上海市主要保险经纪公司业务统计表(2015)
中间件在高速公路领域的应用
基于MPC8280的CPU单元与内部总线驱动程序设计
一种支持智能环境构建的中间件