论文部分内容阅读
摘要:伴随着互联网络的发展,具有相同功能不同服务质量的Web服务随之大量涌现。服务质量成为客户选择服务的重要依据,与企业的盈利息息相关。然而当前的Web服务常面向全国范围,对于企业的运维来说如何监控全国各地区的客户访问Web服务的质量,并在出现问题时,第一时间向运维人员预警,成为亟待解决的问题。为此本文以分布于全国各地区的云基础设施服务为依托,使用RPC分布式远程调用技术,针对以上问题,实现了一种云计算环境下Web服务质量探测与预警方法。
关键词:云计算; Web服务; 服务质量
中图分类号: TP393.02
文献标志码:A
文章编号: 2095-2163(2016)06-0051-04
0引言
随着互联网络的发展,Web服务随之大量涌现。所谓Web服务是指一种通过互联网络提供自描述的自适应的模块化的软件组件,可以在互联网络中得到描述、发现和调用\[1\]。Web服务一般依托于Web服务应用程序进行发布和管理,通过聚类不同的Web服务可以构成功能复杂的组合服务,以此来满足当前企业日益繁多的事务逻辑需求。然而随着Web服务技术的成熟,互联网上开始出现大量功能相近的服务,此时服务质量就必然成为客户选择相关Web服务的重要依据。而Web服务的目标常为全国范围的对象,那么如何在不同地区探测企业Web服务的质量,并对服务质量不满足构建提供及时预警,即已成为目前亟待解决的关键问题。基于此,本文即依托于分布在全国不同区域的云计算基础设施,使用RPC分布式远程过程调用框架,研发设计了一种云环境下Web服务质量的探测与预警方法。
[BT4]1相关工作
时下,有关Web服务质量的研究多是围绕Web服务质量预测方向延伸展开。而对于Web服务质量的预测,Shao等针对未使用过的Web服务的服务质量,率先提出使用协同过滤策略,进行Web服务质量预测的方法\[2\]。[JP3]在此基础上,Zheng等致力于技术改进,继而提出了一种基于邻接矩阵分解的混合协同过滤算法的Web质量预测方法\[3\]。Luo等又通过结合模糊神经网络和自适应动态规划重点实现了更加稳定和较为精确的服务质量预测\[4\]。而Ma等则基于真实的Web服务质量数据和一系列实验,确定了服务质量相关的特征指标。通过这些指标可以增加服务质量预测的精度\[5\]。另外,还有Madi等又通过进一步使用概率的潜在模型来统计服务质量的相关预测\[6\]。综上研究发现,目前大部分的研究内容仍然是以预测为主,却尚未推出一种能够在不同地理位置对于某类Web服务的服务质量进行实时监测和预警的方法,为此本文即有针对性地设计提出了一种依托云计算基础设施的Web服务质量的实时监控和预警方法。[JP]
[BT4]2系统设计
[BT5]2.1整体框架设计
为实现分布式的Web服务质量的探测和预警,本次研发系统可由以下模块建设构成:服务质量探测模块、远程过程调用模块、电子邮件告警模块、数据库存储模块、报表生成模块。系统中模块间的关系与架构则如图1所示。[FL)]
为在不同地区能够有效支持做到对于Web服务质量的探测与预警,需要向云计算基础设施服务提供商在不同地区租用服务器,以阿里云为例,其可选的地区在华北、华东有2个,在华南、香港、新加坡、美国西部与美国东部则各有一个。其他的基础设施提供商所指定的位置也不尽相同,因此可通过在不同地区租用不同的服务器,实现多区域的Web服务质量的探测,在主控端加入预警阈值,当达到阈值时,系统即会通过电子邮件向运维人员发出预警提示。
2.2功能模块设计
该系统整体主要包含5个功能模块,各模块間的互联关系已由图1呈现给出,在此将针对每种功能模块的现实优化设计展开如下解析描述:
1)探测模块。主要功能是在不同区域租用的服务器上,完成对于目标系统的服务质量探测功能,其具体获取与服务质量相关数据包括:DNS解析时间、连接建立时间、传输准备时间、传输起始时间、传输总时间、http状态、传输数据包大小、头数据大小、请求包大小、传输内容长度、传输速度、测试时间。该模块可以由主控模块通过RPC协议控制调用,并将采集结果传回主控模块。
2)数据库模块。该模块一般使用传统的Mysql数据库,其定制功能是将探测到的数据以历史记录的形式存储起来,以供后期的服务质量分析使用。模块中主要涉及的表结构有2个,分别如表1、表2所示。
3)RRDTOOL数据库模块。该模块的主要功能就是通过跟踪目标对象相关参数的变化情况,继而将这些变化生成实时数据图,并推送给运维人员。RRDTOOL其实是一种环状的数据库,运行时是通过Round Robin的方式来处理定量数据,当前已被多家流行的平台采纳使用,例如:Ganglia、Cacti和Monitorix等等。
4)电子邮件模块。该模块的主要功能是向运维人员发送邮件,以提醒运维人员已出现的告警类型,请求运维人员介入调控。在这里,研究使用了Python的smtplib模块完成邮件功能的发送。
5)主控模块。该模块的主要功能是通过RPC远程过程调用方法,[JP2]调用已部署到租用云服务器中的探测模块,进行Web服务质量的探测。同时,还将负责接收探测模块发来的探测结果数据,调用数据库模块将数据保存到数据库中,并更新RRDTOOL数据库信息。最后依据探测任务设定的告警条件和告警类型,确定是否需要向运维人员发出告警。如果需要,则调用电子邮件模块,生成告警邮件并将其发送至告警邮箱。[JP]
[BT5]2.3通信协议设计
在通信过程中重点启用了RPC远程过程调用协议。RPC(Remote Procedure Call Protocol)是一种流行的远程过程调用协议,其主要功能可描述为就是通过网络向远程服务器上应用程序请求程序调用服务,而无需精确了解底层的网络协议或拓扑结构。在RPC协议中,请求端(又称为客户)在设定的传输协议下,发送一段带有参数的信息到服务提供端。此时服务提供端配备的服务提供应用程序,在接收到该参数后将会进行设计指定的解析操作,并依照解析结果,调用相关的功能模块执行请求操作。当完成操作后,再将函数调用结果返回给请求端的调用程序。 圖2为RPC远程过程调用的流程图。从图2中可知,远程过程调用整体上可以分为10步,对其概述如下:
1)主控模块调用客户端句柄进行参数传递,参数如:探测任务的ID和探测的目标;
2)客户端句柄调用客户端服务器操作系统内核的网络模块,生成输出参数编码和数据发送操作;
3)参数数据通过网络发送到远程服务器(即所租用的云服务器)操作系统内核的网络模块;
4)远程服务端的服务器句柄获得参数数据并解析出其中的参数;
5)远程服务器句柄依据获取到的参数,调用探测模块的相关函数,切换至探测任务;
6)探测模块将执行结果返回给作为调用方的远程服务器句柄;
[LL]
7)远程服务器句柄调用该服务器操作系统内核的网络模块进行结果数据的编码和数据发送操作;
8)探测数据通过网络发送给客户端服务器操作系统内核的网络模块;
9)客户端服务器的服务器句柄接收探测数据并送入解析处理;
10)客户端服务器句柄将解析后的数据以函数值的形式返回给主控模块,从而完成整个远程服务调用过程。
3云环境下实验验证
[BT5]3.1实验环境
实验的本地部分由超云R6240-G9刀片服务器的4个物理节点构成,其中每个节点的配置信息为:CPU为24核,内存为32GB,硬盘2T,千兆网卡。[JP2]而4个服务器上将分别部署主控模块、数据块模块、RRDTOOL数据库模块和电子邮件模块。探测服务器为租用的阿里云服务器,同时选择华北1(青岛市)、华北2(北京市)、华东1(杭州市)和华南1(深圳市)的云服务器各一台,每种服务器都选择最低配置的ecs.t1.small类型,[JP]该类型具有单核CPU和2GB内存,以及百兆带宽。测试的目标为哈尔滨工业大学网站的首页,可得该网站的URL为:www.hit.edu.cn。
[BT5]3.2实验结果
实验结果即为各质量监控点采集到的监控数据,其中以杭州地区的数据质量监控数据为例进行说明,如图3所示。
由图3可知,杭州地区访问校园网首页的传输总时间、连接建立时间和DNS解析时间都相对比较稳定。在某些时刻DNS的解析时间为0,这是由于DNS解析是可以被缓存造成的。图4则为从阿里云租用的4个不同城市的服务器中采集到的质量信息数据。由于不同地区与目标系统之间经过的网络路径不同,因此最终得到的访问质量也相差较大。
4结束语
通过在阿里云环境下租用4台不同地区的云服务器进行测试,由此提出了系统在不同地区分布式探测Web服务质量的思想,并证明了不同地区、同一Web服务的服务质量可能存在差异,这就使得租用不同云基础设施服务商不同地区的服务器,进行Web服务质量的实时监控具备了高度可行的现实必要性。
参考文献: SHAIKH A. The impact of SOA on a system design for a telemedicine [JP3]healthcare system[J]. Network Modeling Analysis in Health Informatics
关键词:云计算; Web服务; 服务质量
中图分类号: TP393.02
文献标志码:A
文章编号: 2095-2163(2016)06-0051-04
0引言
随着互联网络的发展,Web服务随之大量涌现。所谓Web服务是指一种通过互联网络提供自描述的自适应的模块化的软件组件,可以在互联网络中得到描述、发现和调用\[1\]。Web服务一般依托于Web服务应用程序进行发布和管理,通过聚类不同的Web服务可以构成功能复杂的组合服务,以此来满足当前企业日益繁多的事务逻辑需求。然而随着Web服务技术的成熟,互联网上开始出现大量功能相近的服务,此时服务质量就必然成为客户选择相关Web服务的重要依据。而Web服务的目标常为全国范围的对象,那么如何在不同地区探测企业Web服务的质量,并对服务质量不满足构建提供及时预警,即已成为目前亟待解决的关键问题。基于此,本文即依托于分布在全国不同区域的云计算基础设施,使用RPC分布式远程过程调用框架,研发设计了一种云环境下Web服务质量的探测与预警方法。
[BT4]1相关工作
时下,有关Web服务质量的研究多是围绕Web服务质量预测方向延伸展开。而对于Web服务质量的预测,Shao等针对未使用过的Web服务的服务质量,率先提出使用协同过滤策略,进行Web服务质量预测的方法\[2\]。[JP3]在此基础上,Zheng等致力于技术改进,继而提出了一种基于邻接矩阵分解的混合协同过滤算法的Web质量预测方法\[3\]。Luo等又通过结合模糊神经网络和自适应动态规划重点实现了更加稳定和较为精确的服务质量预测\[4\]。而Ma等则基于真实的Web服务质量数据和一系列实验,确定了服务质量相关的特征指标。通过这些指标可以增加服务质量预测的精度\[5\]。另外,还有Madi等又通过进一步使用概率的潜在模型来统计服务质量的相关预测\[6\]。综上研究发现,目前大部分的研究内容仍然是以预测为主,却尚未推出一种能够在不同地理位置对于某类Web服务的服务质量进行实时监测和预警的方法,为此本文即有针对性地设计提出了一种依托云计算基础设施的Web服务质量的实时监控和预警方法。[JP]
[BT4]2系统设计
[BT5]2.1整体框架设计
为实现分布式的Web服务质量的探测和预警,本次研发系统可由以下模块建设构成:服务质量探测模块、远程过程调用模块、电子邮件告警模块、数据库存储模块、报表生成模块。系统中模块间的关系与架构则如图1所示。[FL)]
为在不同地区能够有效支持做到对于Web服务质量的探测与预警,需要向云计算基础设施服务提供商在不同地区租用服务器,以阿里云为例,其可选的地区在华北、华东有2个,在华南、香港、新加坡、美国西部与美国东部则各有一个。其他的基础设施提供商所指定的位置也不尽相同,因此可通过在不同地区租用不同的服务器,实现多区域的Web服务质量的探测,在主控端加入预警阈值,当达到阈值时,系统即会通过电子邮件向运维人员发出预警提示。
2.2功能模块设计
该系统整体主要包含5个功能模块,各模块間的互联关系已由图1呈现给出,在此将针对每种功能模块的现实优化设计展开如下解析描述:
1)探测模块。主要功能是在不同区域租用的服务器上,完成对于目标系统的服务质量探测功能,其具体获取与服务质量相关数据包括:DNS解析时间、连接建立时间、传输准备时间、传输起始时间、传输总时间、http状态、传输数据包大小、头数据大小、请求包大小、传输内容长度、传输速度、测试时间。该模块可以由主控模块通过RPC协议控制调用,并将采集结果传回主控模块。
2)数据库模块。该模块一般使用传统的Mysql数据库,其定制功能是将探测到的数据以历史记录的形式存储起来,以供后期的服务质量分析使用。模块中主要涉及的表结构有2个,分别如表1、表2所示。
3)RRDTOOL数据库模块。该模块的主要功能就是通过跟踪目标对象相关参数的变化情况,继而将这些变化生成实时数据图,并推送给运维人员。RRDTOOL其实是一种环状的数据库,运行时是通过Round Robin的方式来处理定量数据,当前已被多家流行的平台采纳使用,例如:Ganglia、Cacti和Monitorix等等。
4)电子邮件模块。该模块的主要功能是向运维人员发送邮件,以提醒运维人员已出现的告警类型,请求运维人员介入调控。在这里,研究使用了Python的smtplib模块完成邮件功能的发送。
5)主控模块。该模块的主要功能是通过RPC远程过程调用方法,[JP2]调用已部署到租用云服务器中的探测模块,进行Web服务质量的探测。同时,还将负责接收探测模块发来的探测结果数据,调用数据库模块将数据保存到数据库中,并更新RRDTOOL数据库信息。最后依据探测任务设定的告警条件和告警类型,确定是否需要向运维人员发出告警。如果需要,则调用电子邮件模块,生成告警邮件并将其发送至告警邮箱。[JP]
[BT5]2.3通信协议设计
在通信过程中重点启用了RPC远程过程调用协议。RPC(Remote Procedure Call Protocol)是一种流行的远程过程调用协议,其主要功能可描述为就是通过网络向远程服务器上应用程序请求程序调用服务,而无需精确了解底层的网络协议或拓扑结构。在RPC协议中,请求端(又称为客户)在设定的传输协议下,发送一段带有参数的信息到服务提供端。此时服务提供端配备的服务提供应用程序,在接收到该参数后将会进行设计指定的解析操作,并依照解析结果,调用相关的功能模块执行请求操作。当完成操作后,再将函数调用结果返回给请求端的调用程序。 圖2为RPC远程过程调用的流程图。从图2中可知,远程过程调用整体上可以分为10步,对其概述如下:
1)主控模块调用客户端句柄进行参数传递,参数如:探测任务的ID和探测的目标;
2)客户端句柄调用客户端服务器操作系统内核的网络模块,生成输出参数编码和数据发送操作;
3)参数数据通过网络发送到远程服务器(即所租用的云服务器)操作系统内核的网络模块;
4)远程服务端的服务器句柄获得参数数据并解析出其中的参数;
5)远程服务器句柄依据获取到的参数,调用探测模块的相关函数,切换至探测任务;
6)探测模块将执行结果返回给作为调用方的远程服务器句柄;
[LL]
7)远程服务器句柄调用该服务器操作系统内核的网络模块进行结果数据的编码和数据发送操作;
8)探测数据通过网络发送给客户端服务器操作系统内核的网络模块;
9)客户端服务器的服务器句柄接收探测数据并送入解析处理;
10)客户端服务器句柄将解析后的数据以函数值的形式返回给主控模块,从而完成整个远程服务调用过程。
3云环境下实验验证
[BT5]3.1实验环境
实验的本地部分由超云R6240-G9刀片服务器的4个物理节点构成,其中每个节点的配置信息为:CPU为24核,内存为32GB,硬盘2T,千兆网卡。[JP2]而4个服务器上将分别部署主控模块、数据块模块、RRDTOOL数据库模块和电子邮件模块。探测服务器为租用的阿里云服务器,同时选择华北1(青岛市)、华北2(北京市)、华东1(杭州市)和华南1(深圳市)的云服务器各一台,每种服务器都选择最低配置的ecs.t1.small类型,[JP]该类型具有单核CPU和2GB内存,以及百兆带宽。测试的目标为哈尔滨工业大学网站的首页,可得该网站的URL为:www.hit.edu.cn。
[BT5]3.2实验结果
实验结果即为各质量监控点采集到的监控数据,其中以杭州地区的数据质量监控数据为例进行说明,如图3所示。
由图3可知,杭州地区访问校园网首页的传输总时间、连接建立时间和DNS解析时间都相对比较稳定。在某些时刻DNS的解析时间为0,这是由于DNS解析是可以被缓存造成的。图4则为从阿里云租用的4个不同城市的服务器中采集到的质量信息数据。由于不同地区与目标系统之间经过的网络路径不同,因此最终得到的访问质量也相差较大。
4结束语
通过在阿里云环境下租用4台不同地区的云服务器进行测试,由此提出了系统在不同地区分布式探测Web服务质量的思想,并证明了不同地区、同一Web服务的服务质量可能存在差异,这就使得租用不同云基础设施服务商不同地区的服务器,进行Web服务质量的实时监控具备了高度可行的现实必要性。
参考文献: SHAIKH A. The impact of SOA on a system design for a telemedicine [JP3]healthcare system[J]. Network Modeling Analysis in Health Informatics