一种基于云服务总线的应用QoS管理系统及其操作方法

文档序号:7867462阅读:323来源:国知局
专利名称:一种基于云服务总线的应用QoS管理系统及其操作方法
一种基于云服务总线的应用QoS管理系统及其操作方法技术领域
本发明属于云计算平台的应用QoS管理领域,更具体地,涉及一种基于云服务总线的应用QoS管理系统及其操作方法。
背景技术
随着云计算时代的到来,出现了各种云平台。根据层次不同,通常分为IaaS、 PaaS、SaaS。IaaS指基础设施即服务,业界主要有Amazon EC2。SaaS指软件即服务,主要由Salesforce、800APP等一些提供客户关系管理的平台。而PaaS则是指平台及服务,它提供了一套应用开发和托管环境,使得开发应用变得相当简单,一些中小企业可以节约硬件成本,仅需支付较少的费用就可以将所开发应用托管与PaaS中,同时也省去了系统维护的麻烦。PaaS受到广泛关注,随着PaaS的发展,应用数量急剧增加,平台需要对应用进行良好的管理。在典型 PaaS 如 Google App Engine, Sina AppEngine, AppScale, Facebook 等都有专门的应用控制面板,用来查看应用的运行状态。然而对于应用的QoS关注,一些简单的参数并不能确定应用运行状况的好坏。特别是很多平台都是使用系统的CPU和内存利用率来判断应用负载情况,显然不够精确。因为应用服务器的关系,某些系统的系统负载并不高的时候,应用服务器中部署的应用QoS已经大幅降低,甚至应用已经不能访问。
除了在业界受到广泛关注,应用QoS管理也一直是学术界的研究热点。有文章提出应用软件即服务的概念,即应用软件以Web服务的形式发布与云平台中,通过服务组合等手段组合成新的应用,达到软件可重用的目的。但是,该文章并未考虑到应用的QoS管理和云平台的资源优化配置。有文章提出根据系统CPU和内存负载来增减应用实例,这跟业界的方法类似,存在QoS度量不精确的缺陷。还有文章提出使用分布式的 服务总线来对服务进行集成与管理。但是其采用的是主-从式架构,存在着单点故障和性能瓶颈。同时该文章中也并未提出切实可行的应用管理方案,更没有指出应用QoS的度量和监测方案。此外, 还有诸多文献和著作中提到过相关的应用管理方案,但是它们都是从系统级度量应用QoS, 度量并不精准,而且并没有提出一套完善的应用QoS管理机制。
总而言之,业界当前主流云平台有些对应用QoS缺少关注,有些则对应用QoS度量不够准确。学术界对于应用QoS管理越来越关注,但是目前云平台下应用QoS管理的研究并不是很成熟,缺乏一个整体的架构和真正可测试的环境。发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于云服务总线的应用QoS管理系统,其为应用QoS管理提供了一套良好的分布式架构和服务管理环境,本发明从应用级别对应用QoS进行度量,改善了由系统级度量导致结果不准确的问题,为云平台环境应用QoS管理的研究构建了一个完整的平台和可测试的环境,此外,本发明从应用级管理应用QoS,根据用户需求和应用访问情况动态增减应用所对应的服务实例数目,保证应用QoS 的同时提高资源利用率。
为实现上述目的,本发明提供了一种基于云服务总线的应用QoS管理系统,包括用户访问模块、用户管理模块、应用管理模块、云服务总线模块、服务池模块、以及数据中心模块,用户访问模块用于给用户提供一个统一的访问接口,用户管理模块用于提供用户认证功能,如果用户的身份认证成功,则将用户信息传送到应用管理模块,否则,用户管理模块提醒用户进行注册,应用管理模块用于根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用调用或应用QoS可视化功能,并在用户选择相应功能后将用户请求传送到云服务总线模块,云服务总线模块用于在用户选择应用发布、应用调用或应用QoS可视化功能后,从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能,服务池模块用于存储云服务总线模块动态调整后的服务实例,数据中心模块用于存储服务实例所操作的数据集合。用户访问模块包括用户注册子模块、用户登录子模块和用户数据库子模块,用户注册子模块用于为用户提供注册功能,用户认证子模块用于为用户提供登录认证功能,若 认证通过则将用户信息传送到应用管理模块,若认证失败则转入用户注册子模块处理,用户数据库子模块用于在用户注册成功后存储用户信息,并在用户登录时读取该用户信息用于认证。应用管理模块包括应用发布子模块、应用QoS可视化子模块和应用调用子模块,应用发布子模块用于为用户提供应用的发布功能,应用QoS可视化子模块用于接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块获取应用QoS数据,实时展示应用QoS的状况,完成应用QoS可视化功能,应用调用子模块用于接收其它用户对该应用的调用请求并将应用调用请求发送至云服务总线模块。云服务总线模块包括消息路由子模块、请求处理子模块、服务管理子模块、服务发布子模块、服务卸载子模块、QoS信息读取子模块、服务调用子模块、QoS信息收集子模块、QoS信息数据库子模块、服务实例管理子模块、JMX子模块,消息路由子模块用于实现云服务总线模块中各个节点间的消息通信,接收其他节点的消息路由模块的消息,将消息发送至请求处理子模块,接收服务管理子模块和服务实例管理子模块的消息,并将消息路由到目标节点集,请求处理子模块用于接收应用管理模块发送过来的用户请求或其他节点的消息路由模块发送过来的消息,并对用户请求或消息进行解析后提交到服务管理子模块进行处理,服务管理子模块用于接收请求处理子模块的用户请求或消息,如果是用户请求,则判断该用户请求是应用发布请求、应用调用请求还是QoS可视化请求,如果是应用发布请求,则根据用户在服务级协议中的需求,根据排队论相关理论计算出应用发布后的服务实例数目,并将服务发布消息经消息路由子模块发送至目标节点集。如果是应用调用请求,则调用QoS信息读取子模块读取应用所对应所有服务实例的QoS信息,根据QoS确定应用调用的服务实例所在的目标节点,将服务调用消息经消息路由子模块发送至目标节点,如果是应用QoS可视化请求,则确定目标节点集,并将QoS信息读取消息经消息路由子模块发送至目标节点集的某一个节点,因为对应同一个应用的不同服务实例都会保存有该应用所对应的全部服务实例的QoS信息,所以只需要读取其中一个节点即可得到该应用的QoS信息;如果是消息,则判断消息是服务发布消息、服务卸载消息、服务调用消息还是服务QoS读取消息。如果是服务发布消息,则将服务发布消息发送到服务发布子模块,如果是服务卸载消息,则将服务卸载消息发送到服务卸载子模块,如果是服务调用消息,则将服务调用请求发送到服务调用子模块,如果是服务QoS读取消息,则发送到QoS信息读取子模块,服务发布子模块用于接收服务管理子模块的服务发布消息,根据服务发布消息完成服务发布功能并返回响应消息给请求节点,服务卸载子模块用于接收服务管理子模块的服务卸载消息,根据服务卸载消息完成服务卸载功能并返回响应消息给请求节点,QoS信息读取子模块用于接收服务管理子模块的服务QoS信息读取消息,根据服务QoS信息读取消息读取QoS信息数据库子模块中的信息并返回给请求节点,服务调用子模块用于接收服务管理子模块的服务调用消息,根据服务调用消息完成调用后返回服务调用结果给请求节点,QoS信息收集子模块用于对服务调用子模块的过程进行监控,以收集服务调用的QoS信息,并将QoS信息写入到 QoS信息数据库子模块中,QoS信息数据库子模块用于存储来自QoS信息收集子模块的QoS 信息,服务实例管理子模块用于根据服务级协议和QoS信息数据库子模块中的QoS信息决定是否调整服务实例的数目,JMX子模块用于使用JMX管理框架管理云服务总线模块的节点集群以及服务部署相关信息。
云服务总线模块采用P2P分布式架构。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
I)服务的可用性高
由于采用了基于P2P架构的云服务总线模块对服务实例进行管理,解决了单一服务总线和主一从架构的分布式服务总线的单点故障问题,保证了 Web服务的高可用性。
2)应用的可配置性好
由于采用了应用管理模块,其提供服务等级协议功能,提高了应用的可配置性。开发应 用的用户可以在该平台中声明所开发的应用所需要达到的QoS水平,如每秒能接受多少个请求,响应时间应保持在几秒之内等。云服务总线模块基于用户需求,根据排队论理论,预先生成所需要的服务实例数目,以保证应用的QoS需求,减少资源浪费,提高系统资源利用率。
3)应用QoS度量的精确性高
由于采用了云服务总线模块从应用级对应用QoS进行度量,根据应用QoS情况对应用所对应的服务实例数目进行动态调整,相对于传统的系统级进行度量,大幅提高了对应用QoS度量的精确性。
本发明的另一目的在于提供一种基于云服务总线的应用QoS管理系统的操作方法,其使得用户对系统的操作非常简捷,用户可以通过系统界面直观的进行应用QoS管理, 省去了繁冗的命令行操作,提高了操作效率和用户体验。
为实现上述目的,本发明提供了一种基于云服务总线的应用QoS管理系统的操作方法,包括以下步骤
(I)用户通过浏览器访问统一访问模块;
(2)用户管理模块对用户身份进行认证,如果认证通过,则转入步骤⑶,否则,提醒用户注册;
(3)用户管理模块将用户信息传送到应用管理模块;
(4)应用管理模块根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用QoS可视化或应用调用功能;
(5)应用管理模块在用户选择相应功能后将用户请求传送到云服务总线模块;(6)云服务总线模块从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能;(7)服务池模块存储云服务总线模块动态调整后的服务实例。步骤(5)包括以下子步骤(5-1)用户在应用管理界面选择应用发布、应用QoS可视化或者应用调用功能;(5-2)应用管理模块根据用户选择的功能,将请求发送给不同子模块处理。如果用户选择应用发布功能,则转向步骤(5-3);如果用户选择应用QoS可视化功能,则转向步骤(5-4);如果用户选择应用调用功能,则转向步骤(5-5);(5-3)应用发布子模块接收请求,提示用户将自己开发好的应用上传,并填写应用 的描述信息和QoS信息。应用发布子模块存储应用描述信息和QoS需求信息并将应用发布请求发送至云服务总线模块;(5-4)应用QoS管理子模块接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块获取应用QoS数据,实时展示应用QoS的状况;(5-5)应用调用子模块将应用调用请求发送至云服务总线模块。步骤(6)包括以下子步骤(6-1)请求处理子模块接收应用管理模块发送过来的用户请求并解析请求;(6-2)请求处理子模块根据不同的用户请求执行不同的步骤。如果是应用发布请求,则转向步骤¢-3);如果是应用QoS可视化请求,则转向步骤¢-9);如果是应用调用请求,则转向步骤(6-15)(6-3)服务管理子模块根据用户填写的应用QoS信息,由排队论算法生成应用发布成Web服务的实例数目;(6-4)目标节点的消息路由子模块接收服务发布消息,并将消息传送至请求处理子模块;(6-5)目标节点的请求处理子模块对消息进行解析,将解析后的消息发送给服务管理子模块;(6-6)目标节点的服务管理子模块处理服务发布消息,将服务发布消息传送至服务发布子模块;(6-7)服务发布子模块完成服务发布功能并返回响应消息给请求节点;(6-8)如果请求节点收到所有目标节点集的成功响应消息,则应用发布成功;否贝U,则返回失败信息,提示用户重新发布。至此,应用发布功能结束,转向步骤(6-24);(6-9)服务管理子模块根据服务部署策略确定目标节点集;(6-10)目标节点的消息路由子模块接收查看应用QoS消息,将应用QoS可视化消息发送至请求处理子模块;(6-11)请求处理子模块处理消息后将其发送至服务管理子模块;(6-12)目标节点的服务管理子模块接收消息,将其转发至QoS信息读取子模块;(6-13) QoS信息读取子模块读取QoS信息并返回给请求节点;(6-14)请求节点的QoS可视化子模块接收应用QoS信息,经过客户端处理提供应用QoS的图表展示功能。至此,应用QoS可视化功能结束,转向步骤(6-24);
(6-15)请求节点服务管理子模块经步骤(6-9)至(6_13)读取应用QoS消息;
(6-16)服务管理子模块根据各个服务实例的QoS信息和相应的调度算法,确定需要路由的服务实例所在节点,然后将应用调用消息发送至目标节点;
(6-17)目标节点的消息子模块接收应用调用消息,将消息发送至请求处理子模块处理;
(6-18)目标节点的请求处理子模块解析消息后将处理后的消息发送至服务管理子模块;
(6-19)目标节点服务管理子模块将服务调用消息发送至服务调用子模块;
(6-20)服务调用子模块完成服务的功能并返回服务执行结果给请求节点;
(6-21)Qos信息收集子模块收集应用调用过程的响应时间,通过QoS信息写入到 QoS信息据库子模块中;
(6-22)服务实例管理子模块根据QoS信息数据库和用户服务级协议,对服务实例数目进行动态调整。并向服务发布子模块或服务卸载子模块发送调整消息;
(6-23)服务发布子模块或服务卸载子模块接收服务实例管理子模块的调整消息, 完成服务发布或者服务卸载,至此,应用调用功能完成,转向步骤¢-24);
(6-24)用户操作完成,退出系统。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果
(I)效率高
由于采用了步骤(5)对用户操作提供统一的操作界面,省去了繁冗的命令行操作,用户只需要在界面上进行简单操作即可完成应用QoS管理功能,大幅提高了用户的操作效率和用户体验。
(2)透明性强
由于采用了步骤(6)对应用QoS管理进行分阶段处理,用户对应用QoS管理过程更加透明。用户发布应用后不用管理应用QoS状况,也不用知晓应用所对应的服务实例数目,这些都是由系统自动调整,应用QoS由系统保证,增强了用户操作的透明性。


图1是本发明基于云服务总线的应用QoS管理系统的示意框图。
图2是本发明基于云服务总线的应用QoS管理系统的细化框图。
图3是本发明系统中云服务总线模块的细化框图。
图4是本发明基于云服务总线的应用QoS管理系统的操作方法的流程图。
图5是本发明方法中步骤(5)的细化流程图。
图6是本发明方法中步骤(6)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明基于云服务总线的应用QoS管理系统包括用户访问模块1、用户管理模块2、应用管理模块3、云服务总线模块4、服务池模块5、以及数据中心模块6。用户访问模块I用于给用户提供一个统一的访问接口。统一的访问接口提供系统功能说明和操作指南,以方便用户的使用。用户管理模块2用于提供用户认证功能,如果用户的身份认证成功,则将用户信息传送到应用管理模块3,否则,用户管理模块2提醒用户进行注册。 应用管理模块3用于根据用户管理模块2传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用调用或应用QoS可视化功能,并在用户选择相应功能后将用户请求传送到云服务总线模块4。云服务总线模块4用于在用户选择应用发布、应用调用或应用QoS可视化功能后,从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能,云服务总线模块4采用P2P分布式架构,相对于现在流行的单一服务总线和主-从式分布式服务总线,云服务总线采用P2P分布式架构解决了单点故障问题和性能瓶颈。服务池模块5用于存储云服务总线模块4动态调整后的服务实例。这些服务实例可以运行在物理机上,也可以运行在虚拟机上。每个节点都有自己的服务集合,所有的节点服务集合共同构成服务池。服务发布时,服务实例会添加到目标节点的服务集合中。服务卸载时,服务实例会从目标节点的服务集合中移除。服务调用会从目标节点的服务集合中选取相应服务实例完成调用。数据中心模块6用于存储服务实例所操作的数据集合。在本实施方式中,数据集合包括关系型数据库和非关系数据库。如图2所示,用户访问模块2包括用户注册子模块21、用户登录子模块22和用户数据库子模块23。用户注册子模块21用于为用户提供注册功能。用户认证子模块22用于为用户提供登录认证功能,若认证通过则将用户信息传送到应用管理模块3,若认证失败则转入用户注册子模块21处理。用户数据库子模块23用于在用户注册成功后存储用户信息,并在用户登录时读取该用户信息用于认证。应用管理模块3包括应用发布子模块31、应用QoS可视化子模块32和应用调用子模块33。应用发布子模块31用于为用户提供应用的发布功能。具体而言,用户将自己开发好的应用上传,并填写应用的描述信息和QoS需求,应用发布子模块31将应用发布请求发送至云服务总线模块4。应用QoS可视化子模块32用于接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块4获取应用QoS数据,实时展示应用QoS的状况,完成应用QoS可视化功能。其中应用QoS指标包括应用的平均响应时间和访问量信息。应用调用子模块33用于接收其它用户对该应用的调用请求并将应用调用请求发送至云服务总线模块4。如图3所示,云服务总线模块4包括消息路由子模块41、请求处理子模块42、服务管理子模块43、服务发布子模块44、服务卸载子模块45、QoS信息读取子模块46、服务调用子模块47、QoS信息收集子模块48、QoS信息数据库子模块49、服务实例管理子模块50、 Java 管理扩展(JavaManagement Extensions,简称 JMX)子模块 51。
消息路由子模块41用于实现云服务总线模块4中各个节点间的消息通信,接收其他节点的消息路由模块41的消息,将消息发送至请求处理子模块42,接收服务管理子模块 43和服务实例管理子模块50的消息,并将消息路由到目标节点集。具体而言,消息通信过程包括状态的监测与同步,请求消息路由等,且采用Gossip协议。
请求处理子模块42用于接收应用管理模块3发送过来的用户请求或其他节点的消息路由模块41发送过来的消息。并对用户请求或消息进行解析后提交到服务管理子模块43进行处理;
服务管理子模块43用于接收请求处理子模块42的用户请求或消息,如果是用户请求,则判断该用户请求是应用发布请求、应用调用请求还是QoS可视化请求,如果是应用发布请求,则根据用户在服务级协议中的需求,根据排队论相关理论计算出应用发布后的服务实例数目,并将服务发布消息经消息路由子模块41发送至目标节点集。如果是应用调用请求,则调用QoS信息读取子模块46读取应用所对应所有服务实例的QoS信息,根据 QoS确定应用调用的服务实例所在的目标节点,将服务调用消息经消息路由子模块41发送至目标节点,如果是应用QoS可视化请求,则确定目标节点集,并将QoS信息读取消息经消息路由子模块41发送至目标节点集的某一个节点,因为对应同一个应用的不同服务实例都会保存有该应用所对应的全部服务实例的QoS信息,所以只需要读取其中一个节点即可得到该应用的QoS信息;如果是消息,则判断消息是服务发布消息、服务卸载消息、服务调用消息还是服务QoS读取消息。如果是服务发布消息,则将服务发布消息发送到服务发布子模块44,如果是服务卸载消息,则将服务卸载消息发送到服务卸载子模块45,如果是服 务调用消息,则将服务调用请求发送到服务调用子模块47,如果是服务QoS读取消息,则发送到QoS信息读取子模块46。
服务发布子模块44用于接收服务管理子模块43的服务发布消息,根据服务发布消息完成服务发布功能并返回响应消息给请求节点。
服务卸载子模块45用于接收服务管理子模块43的服务卸载消息,根据服务卸载消息完成服务卸载功能并返回响应消息给请求节点。
QoS信息读取子模块46用于接收服务管理子模块43的服务QoS信息读取消息,根据服务QoS信息读取消息读取QoS信息数据库子模块49中的信息并返回给请求节点。
服务调用子模块47用于接收服务管理子模块43的服务调用消息,根据服务调用消息完成调用后返回服务调用结果给请求节点。
QoS信息收集子模块48用于对服务调用子模块47的过程进行监控,以收集服务调用的QoS信息(如响应时间等),并将QoS信息写入到QoS信息数据库子模块49中。
QoS信息数据库子模块49用于存储来自QoS信息收集子模块48的QoS信息。同一个应用的所有服务实例的QoS信息构成应用的QoS信息。同一个应用的所有服务实例的 QoS信息在每个节点上都会保存一份副本,这样可以加速服务调用过程。服务管理子模块 43接收到应用调用请求时,会根据应用QoS信息来确定目标节点并将应用调用请求经消息路由子模块41路由至目标节点。
服务实例管理子模块50用于根据服务级协议和QoS信息数据库子模块49中的QoS信息决定是否调整服务实例的数目。如果需要调整服务实例的数目,即应用QoS不能满足服务级协议中的需求,则增加服务实例,并通过消息路由子模块41发送服务发布命令至目标节点集,否则,如果应用QoS超过了服务级协议的需求,则减少服务实例,并通过消息路由子模块41发送服务卸载命令至目标节点集。JMX子模块51用于使用JMX管理框架管理云服务总线模块4的节点集群以及服务部署相关信息。JMX子模块51提供各种接口,用户可以通过远程调用获取集群状态,节点资源占用信息以及服务部署的相关信息。如图4所示,本发明基于云服务总线的应用QoS管理系统的操作方法包括以下步骤(I)用户通过浏览器访问统一访问模块; (2)用户管理模块对用户身份进行认证,如果认证通过,则转入步骤(3),否则,提醒用户注册;(3)用户管理模块将用户信息传送到应用管理模块;(4)应用管理模块根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用QoS可视化或应用调用功能;(5)应用管理模块在用户选择相应功能后将用户请求传送到云服务总线模块;(6)云服务总线模块从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能;(7)服务池模块存储云服务总线模块动态调整后的服务实例。如图5所示,本发明操作方法中步骤(5)包括以下子步骤(5-1)用户在应用管理界面选择应用发布、应用QoS可视化或者应用调用功能;(5-2)应用管理模块根据用户选择的功能,将请求发送给不同子模块处理;如果用户选择应用发布功能,则转向步骤(5-3);如果用户选择应用QoS可视化功能,则转向步骤(5-4);如果用户选择应用调用功能,则转向步骤(5-5);(5-3)应用发布子模块接收请求,提示用户将自己开发好的应用上传,并填写应用的描述信息和QoS信息;应用发布子模块存储应用描述信息和QoS需求信息并将应用发布请求发送至云服务总线模块;(5-4)应用QoS管理子模块接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块获取应用QoS数据,实时展示应用QoS的状况;(5-5)应用调用子模块将应用调用请求发送至云服务总线模块。如图6所示,本发明操作方法(6)包括以下子步骤(6-1)请求处理子模块接收应用管理模块发送过来的用户请求并解析请求;(6-2)请求处理子模块根据不同的用户请求执行不同的步骤;如果是应用发布请求,则转向步骤¢-3);如果是应用QoS可视化请求,则转向步骤¢-9);如果是应用调用请求,则转向步骤(6-15);(6-3)服务管理子模块根据用户填写的应用QoS信息,由排队论算法生成应用发布成Web服务的实例数目;根据云服务总线的服务部署策略(可以是机架相关或者机架无关策略),将服务发布消息经由消息路由子模块发送至目标节点集;(6-4)目标节点的消息路由子模块接收服务发布消息,并将消息传送至请求处理子模块;
(6-5)目标节点的请求处理子模块对消息进行解析,将解析后的消息发送给服务管理子模块;
(6-6)目标节点的服务管理子模块处理服务发布消息,将服务发布消息传送至服务发布子模块;
(6-7)服务发布子模块完成服务发布功能并返回响应消息给请求节点;
(6-8)如果请求节点收到所有目标节点集的成功响应消息,则应用发布成功;否贝U,则返回失败信息,提示用户重新发布;至此,应用发布功能结束,转向步骤(6-24);
(6-9)服务管理子模块根据服务部署策略确定目标节点集;因为每一个目标节点都有该应用所有服务实例的QoS信息,所以服务管理模块只需要将应用QoS可视化消息发送至目标节点集的某一个目标节点;
(6-10)目标节点的消息路由子模块接收查看应用QoS消息,将应用QoS可视化消息发送至请求处理子模块;
(6-11)请求处理子模块处理消息后将其发送至服务管理子模块;
(6-12)目标节点的服务管理子模块接收消息,将其转发至QoS信息读取子模块;
(6-13) QoS信息读取子模块读取QoS信息并返回给请求节点;
(6-14)请求节点的QoS可视化子模块接收应用QoS信息,经过客户端处理提供应用QoS的图表展示功能;至此,应用QoS可视化功能结束,转向步骤(6-24);
(6-15)请求节点服务管理子模块经步骤(6-9)至(6_13)读取应用QoS消息;
(6-16)服务管理子模块根据各个服务实例的QoS信息和相应的调度算法,确定需要路由的服务实例所在节点,然后将应用调用消息发送至目标节点;
(6-17)目标节点的消息子模块接收应用调用消息,将消息发送至请求处理子模块处理;
(6-18)目标节点的请求处理子模块解析消息后将处理后的消息发送至服务管理子模块;
(6-19)目标节点服务管理子模块将服务调用消息发送至服务调用子模块;
(6-20)服务调用子模块完成服务的功能并返回服务执行结果给请求节点;
(6-21)Qos信息收集子模块收集应用调用过程的响应时间,通过QoS信息写入到 QoS信息据库子模块中;
(6-22)服务实例管理子模块根据QoS信息数据库和用户服务级协议,对服务实例数目进行动态调整;并向服务发布子模块或服务卸载子模块发送调整消息;
(6-23)服务发布子模块或服务卸载子模块接收服务实例管理子模块的调整消息, 完成服务发布或者服务卸载;至此,应用调用功能完成,转向步骤¢-24);
(6-24)用户操作完成,退出系统。
实例
本发明基于云服务总线应用QoS管理系统是采用P2P架构的分布式系统,所以需要服务器节点较多,一般至少配置3-5台服务器节点。系统各个模块在每个服务器节点上都要安装,一起构成一个分布式系统。系统为多线程程序,主要开发语言为JAVA,所以可以运行在windows或者Iinux系统上。每台服务器节点的硬件配置如下表I所示
权利要求
1.一种基于云服务总线的应用QoS管理系统,包括用户访问模块、用户管理模块、应用管理模块、云服务总线模块、服务池模块、以及数据中心模块,其特征在于, 用户访问模块用于给用户提供一个统一的访问接口; 用户管理模块用于提供用户认证功能,如果用户的身份认证成功,则将用户信息传送到应用管理模块,否则,用户管理模块提醒用户进行注册; 应用管理模块用于根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用调用或应用QoS可视化功能,并在用户选择相应功能后将用户请求传送到云服务总线模块; 云服务总线模块用于在用户选择应用发布、应用调用或应用QoS可视化功能后,从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能; 服务池模块用于存储云服务总线模块动态调整后的服务实例,数据中心模块用于存储服务实例所操作的数据集合。
2.根据权利要求1所述的应用QoS管理系统,其特征在于, 用户访问模块包括用户注册子模块、用户登录子模块和用户数据库子模块; 用户注册子模块用于为用户提供注册功能; 用户认证子模块用于为用户提供登录认证功能,若认证通过则将用户信息传送到应用管理模块,若认证失败则转入用户注册子模块处理; 用户数据库子模块用于在用户注册成功后存储用户信息,并在用户登录时读取该用户信息用于认证。
3.根据权利要求1所述的应用QoS管理系统,其特征在于, 应用管理模块包括应用发布子模块、应用QoS可视化子模块和应用调用子模块; 应用发布子模块用于为用户提供应用的发布功能; 应用QoS可视化子模块用于接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块获取应用QoS数据,实时展示应用QoS的状况,完成应用QoS可视化功倉泛; 应用调用子模块用于接收其它用户对该应用的调用请求并将应用调用请求发送至云服务总线模块。
4.根据权利要求1所述的应用QoS管理系统,其特征在于, 云服务总线模块包括消息路由子模块、请求处理子模块、服务管理子模块、服务发布子模块、服务卸载子模块、QoS信息读取子模块、服务调用子模块、QoS信息收集子模块、QoS信息数据库子模块、服务实例管理子模块、JMX子模块; 消息路由子模块用于实现云服务总线模块中各个节点间的消息通信,接收其他节点的消息路由模块的消息,将消息发送至请求处理子模块,接收服务管理子模块和服务实例管理子模块的消息,并将消息路由到目标节点集;请求处理子模块用于接收应用管理模块发送过来的用户请求或其他节点的消息路由模块发送过来的消息,并对用户请求或消息进行解析后提交到服务管理子模块进行处理;服务管理子模块用于接收请求处理子模块的用户请求或消息,如果是用户请求,则判断该用户请求是应用发布请求、应用调用请求还是QoS可视化请求,如果是应用发布请求,则根据用户在服务级协议中的需求,根据排队论相关理论计算出应用发布后的服务实例数目,并将服务发布消息经消息路由子模块发送至目标节点集,如果是应用调用请求,则调用QoS信息读取子模块读取应用所对应所有服务实例的QoS信息,根据QoS确定应用调用的服务实例所在的目标节点,将服务调用消息经消息路由子模块发送至目标节点,如果是应用QoS可视化请求,则确定目标节点集,并将QoS信息读取消息经消息路由子模块发送至目标节点集的某一个节点;如果是消息,则判断消息是服务发布消息、服务卸载消息、服务调用消息还是服务QoS读取消息。如果是服务发布消息,则将服务发布消息发送到服务发布子模块,如果是服务卸载消息,则将服务卸载消息发送到服务卸载子模块,如果是服务调用消息,则将服务调用请求发送到服务调用子模块,如果是服务QoS读取消息,则发送到QoS信息读取子模块; 服务发布子模块用于接收服务管理子模块的服务发布消息,根据服务发布消息完成服务发布功能并返回响应消息给请求节点; 服务卸载子模块用于接收服务管理子模块的服务卸载消息,根据服务卸载消息完成服务卸载功能并返回响应消息给请求节点; QoS信息读取子模块用于接收服务管理子模块的服务QoS信息读取消息,根据服务QoS信息读取消息读取QoS信息数据库子模块中的信息并返回给请求节点; 服务调用子模块用于接收服务管理子模块的服务调用消息,根据服务调用消息完成调用后返回服务调用结果给请求节点; QoS信息收集子模块用于对服务调用子模块的过程进行监控,以收集服务调用的QoS信息,并将QoS信息写入到QoS信息数据库子模块中; QoS信息数据库子模块用于存储来自QoS信息收集子模块的QoS信息; 服务实例管理子模块用于根据服务级协议和QoS信息数据库子模块中的QoS信息决定是否调整服务实例的数目; JMX子模块用于使用JMX管理框架管理云服务总线模块的节点集群以及服务部署相关信息。
5.根据权利要求1所述的应用QoS管理系统,其特征在于,云服务总线模块采用P2P分布式架构。
6.一种基于云服务总线的应用QoS管理系统的操作方法,其特征在于,包括以下步骤 (1)用户通过浏览器访问统一访问模块; (2)用户管理模块对用户身份进行认证,如果认证通过,则转入步骤(3),否则,提醒用户注册; (3)用户管理模块将用户信息传送到应用管理模块; (4)应用管理模块根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用QoS可视化或应用调用功能; (5)应用管理模块在用户选择相应功能后将用户请求传送到云服务总线模块; (6)云服务总线模块从应用级对该应用所对应的服务实例数目进行动态调整,从而完成应用QoS管理功能; (7)服务池模块存储云服务总线模块动态调整后的服务实例。
7.根据权利要求6所述的操作方法,其特征在于,步骤(5)包括以下子步骤 (5-1)用户在应用管理界面选择应用发布、应用QoS可视化或者应用调用功能;(5-2)应用管理模块根据用户选择的功能,将请求发送给不同子模块处理。如果用户选择应用发布功能,则转向步骤(5-3 );如果用户选择应用QoS可视化功能,则转向步骤(5-4 );如果用户选择应用调用功能,则转向步骤(5-5); (5-3)应用发布子模块接收请求,提示用户将自己开发好的应用上传,并填写应用的描述信息和QoS信息。应用发布子模块存储应用描述信息和QoS需求信息并将应用发布请求发送至云服务总线模块; (5-4)应用QoS管理子模块接收用户查看应用QoS的请求,将应用QoS可视化请求发送至云服务总线模块获取应用QoS数据,实时展示应用QoS的状况; (5-5)应用调用子模块将应用调用请求发送至云服务总线模块。
8.根据权利要求6所述的操作方法,其特征在于,步骤(6)包括以下子步骤 (6-1)请求处理子模块接收应用管理模块发送过来的用户请求并解析请求; (6-2)请求处理子模块根据不同的用户请求执行不同的步骤。如果是应用发布请求,则转向步骤(6-3);如果是应用QoS可视化请求,则转向步骤(6-9);如果是应用调用请求,则转向步骤(6-15); (6-3)服务管理子模块根据用户填写的应用QoS信息,由排队论算法生成应用发布成Web服务的实例数目; (6-4)目标节点的消息路由子模块接收服务发布消息,并将消息传送至请求处理子模块; (6-5)目标节点的请求处理子模块对消息进行解析,将解析后的消息发送给服务管理子模块; (6-6)目标节点的服务管理子模块处理服务发布消息,将服务发布消息传送至服务发布子模块; (6-7)服务发布子模块完成服务发布功能并返回响应消息给请求节点; (6-8)如果请求节点收到所有目标节点集的成功响应消息,则应用发布成功;否则,则返回失败信息,提示用户重新发布。至此,应用发布功能结束,转向步骤(6-24); (6-9)服务管理子模块根据服务部署策略确定目标节点集; (6-10)目标节点的消息路由子模块接收查看应用QoS消息,将应用QoS可视化消息发送至请求处理子模块; (6-11)请求处理子模块处理消息后将其发送至服务管理子模块; (6-12)目标节点的服务管理子模块接收消息,将其转发至QoS信息读取子模块; (6-13) QoS信息读取子模块读取QoS信息并返回给请求节点; (6-14)请求节点的QoS可视化子模块接收应用QoS信息,经过客户端处理提供应用QoS的图表展示功能。至此,应用QoS可视化功能结束,转向步骤(6-24); (6-15)请求节点服务管理子模块经步骤(6-9)至(6-13)读取应用QoS消息; (6-16)服务管理子模块根据各个服务实例的QoS信息和相应的调度算法,确定需要路由的服务实例所在节点,然后将应用调用消息发送至目标节点; (6-17)目标节点的消息子模块接收应用调用消息,将消息发送至请求处理子模块处理; (6-18)目标节点的请求处理子模块解析消息后将处理后的消息发送至服务管理子模块; (6-19)目标节点服务管理子模块将服务调用消息发送至服务调用子模块; (6-20)服务调用子模块完成服务的功能并返回服务执行结果给请求节点; (6-21) Qos信息收集子模块收集应用调用过程的响应时间,通过QoS信息写入到QoS信息据库子模块中; (6-22)服务实例管理子模块根据QoS信息数据库和用户服务级协议,对服务实例数目进行动态调整。并向服务发布子模块或服务卸载子模块发送调整消息; (6-23)服务发布子模块或服务卸载子模块接收服务实例管理子模块的调整消息,完成服务发布或者服务卸载,至此,应用调用功能完成,转向步骤(6-24); (6-24)用户操作完成,退出系统。
全文摘要
本发明公开了一种基于云服务总线的应用QoS管理系统,包括用户访问模块、用户管理模块、应用管理模块、云服务总线模块、服务池模块、以及数据中心模块,用户访问模块用于给用户提供一个统一的访问接口,用户管理模块用于提供用户认证功能,如果用户的身份认证成功,则将用户信息传送到应用管理模块,否则,用户管理模块提醒用户进行注册,应用管理模块用于根据用户管理模块传送的用户信息为用户提供统一的应用管理界面,以供用户选择应用发布、应用调用或应用QoS可视化功能,并在用户选择相应功能后将用户请求传送到云服务总线模块。本发明根据用户需求和应用访问情况动态增减应用所对应的服务实例数目,保证应用QoS的同时提高资源利用率。
文档编号H04L29/06GK103002034SQ20121051337
公开日2013年3月27日 申请日期2012年12月3日 优先权日2012年12月3日
发明者石宣化, 金海 , 吴松, 石书鹃 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1