一种基于消息总线的云计算管理软件交互方法

文档序号:7823890阅读:224来源:国知局
一种基于消息总线的云计算管理软件交互方法
【专利摘要】本发明公开了一种基于消息总线的云计算管理软件交互方法,包括以下步骤:搭建云计算管理软件模型,通过定义云计算管理软件的核心功能模块与模块间的交互方式,建立无共享、基于消息传递的体系结构。文本消息处理,是该方案使用普通文本方式进行交互的环节,用于实现事件通知功能。基于消息的发布/订阅模式,实现消息发布者与订阅者的解耦。RPC消息处理,是该方案使用远程接口调用方式进行交互的环节,用于实现模块间的调用功能。该一种基于消息总线的云计算管理软件交互方法与现有技术相比,使用消息总线作为云计算管理软件各模块交互的中介,降低模块间的耦合,实现同步、异步工作机制,具有高效性、持久性、科学性、系统性。
【专利说明】一种基于消息总线的云计算管理软件交互方法

【技术领域】
[0001]本发明涉及云计算【技术领域】,具体地说是一种实用性强、基于消息总线的云计算管理软件交互方法。

【背景技术】
[0002]随着信息科技的发展,云计算逐步成为业界的发展热点,国内外各大厂商的云计算管理软件也开始纷纷投入到科学、教育、文化、卫生、政府、高性能计算、电子商务、物联网等多个领域进行使用。
[0003]为了实现对云数据中心的统一管理控制,云计算管理软件必定包含多个模块。对于多模块的软件,高效、科学的模块交互不仅是必需的,而且已成为制约管理软件优劣的瓶颈。云计算管理软件中的模块交互超时或出现异常,将对整个软件的运行造成不良影响,甚至对整个公司、企业的经营活动产生巨大冲击。
[0004]传统的模块间交互一般采用API调用方式,一方面,API调用过程非常繁琐,完成一次功能需要发出多次HTTP请求,从而导致严重的性能下降及网络超载;另一方面,API调用缺乏持久化机制,一旦某个模块的服务停止,其他模块发送的API请求即失去效用,即便重启服务,之前发送的API请求也不复存在,需要重新调用。
[0005]为了有效提高云计算管理软件各模块间的交互效率、减少交互异常、降低交互时的网络带宽占用、实现交互的持久化机制,我们提出了一种易开发、易维护的云计算管理软件交互方法。


【发明内容】

[0006]本发明的技术任务是针对以上不足之处,提供一种实用性强、基于消息总线的云计算管理软件交互方法。
[0007]一种基于消息总线的云计算管理软件交互方法,其具体实现过程为:
搭建云计算管理软件模型,该云计算管理软件模型包括定义云计算管理软件的核心功能模块与模块间的交互方式,建立无共享、基于消息传递的体系结构,其中上述核心功能模块包括云资源管理、基本管理、计量计费、业务审批、系统管理、综合监控六大模块,每个模块可同时部署一个或多个服务,每个服务独立运行在一台或多台服务器上;
进行文本消息处理,即基于消息的发布、订阅模式,实现消息发布者与订阅者的解耦,实现事件通知功能;
进行RPC消息处理,该RPC消息分为同步消息和异步消息,同步消息实现模块间的同步调用,异步消息实现模块间的异步调用,从而实现模块间的调用功能。
[0008]所述云计算管理软件模型中各个模块与消息总线之间通过AMQP协议进行通信,在通讯时,每个模块作为独立的生产者,向其他模块的消息队列发送消息;每个模块运行消费者服务,作为独立的消费者,读取自身消息队列中的消息进行处理;各个模块共用同一个数据库,并对外统一提供Rest接口。
[0009]所述文本消息处理的具体过程为:
51、为云计算管理软件模型中的每个模块定义一个交换器:云资源管理交换器、基本管理交换器、系统管理交换器、综合监控交换器、计量计费交换器、业务审批交换器;
52、当一模块发送通知时,指定该发送的消息对应的交换器,进而发送文本消息到该交换器;当有其它模块关心该接收到的文本消息时,则注册自身队列到上述接收文本信息的交换器,并接收消息,进行下述处理;
53、定义文本消息的格式;
54、消息发送方与接收方之间采用发布、订阅模式;消息的发送者只发送消息,订阅者只接收需要的消息,实现发布者和订阅者的解耦。
[0010]所述文本消息的格式包括模块ID、操作类型和消息体,其中,各个字段的具体定义如下:模块ID,用于标识云资源管理、基本管理、系统管理、综合监控、计量计费、业务审批各个模块;操作类型与消息操作的功能名称对应;消息体为HashMap〈String, String〉类型的参数数据。
[0011]所述RPC消息分为同步RPC与异步RPC两大类,其具体的处理过程为:
当一个模块调用另一模块的RPC接口时,将接口与参数进行编码组合成RPC消息,并发送到消息服务器中;其中对于同步RPC,调用模块等待被调用模块实时响应后才返回;对于异步RPC,调用模块发送后即返回,不必等待;
被调用的模块接收到RPC消息后,进行解码、分析;对于同步RPC,被调用模块执行相应的业务逻辑,并将消息处理结果实时返回给调用模块;对于异步RPC,被调用模块执行相应的业务逻辑后,再以RPC的方式调用调用模块的回调接口,实现通知反馈。
[0012]本发明的一种基于消息总线的云计算管理软件交互方法,具有以下优点:
该发明的一种基于消息总线的云计算管理软件交互方法通过模块间的解耦合,每个模块不必关心其他模块的位置,只需向消息总线发送消息即可;客户端与服务端的异步机制,客户端并不要求服务端的实时响应,因此可以通过消息机制实现异步任务处理,减轻系统压力;随机平衡的远程调用,当一个模块存在多个服务端在运行时,一般一个调用只交付给最近最可用的服务端,均衡网络负载;持久化机制,消息总线实现了持久化机制,即使断电或宕机,之前发送的消息在服务重启后会重新进行处理,实用性强,易于推广。

【专利附图】

【附图说明】
[0013]附图1为云计算管理软件模型系统架构图。
[0014]附图2为文本消息处理示意图。
[0015]附图3为文本消息格式图。
[0016]附图4为RPC消息处理示意图。

【具体实施方式】
[0017]下面结合附图和具体实施例对本发明作进一步说明。
[0018]本发明提出一种基于消息总线的云计算管理软件交互方法,如附图1所示,其具体实现过程为:
搭建云计算管理软件模型,该云计算管理软件模型包括定义云计算管理软件的核心功能模块与模块间的交互方式,建立无共享、基于消息传递的体系结构,其中上述核心功能模块包括云资源管理、基本管理、计量计费、业务审批、系统管理、综合监控六大模块,每个模块可同时部署一个或多个服务,每个服务独立运行在一台或多台服务器上;
进行文本消息处理,即基于消息的发布、订阅模式,实现消息发布者与订阅者的解耦,实现事件通知功能;
进行RPC消息处理,该RPC消息分为同步消息和异步消息,同步消息实现模块间的同步调用,异步消息实现模块间的异步调用,从而实现模块间的调用功能。
[0019]在上述步骤中,所述的云计算管理软件模型是经过广泛调研与总结,定义的云计算管理软件模型,为各云计算厂商的管理软件统一定义核心功能模块与交互架构,具有广泛性与统一性。
[0020]所述的文本消息处理,使用特定格式的文本消息实现模块间的事件通知功能,简便、灵活、易于扩展。
[0021]所述的RPC消息处理,一方面,使用基于接口与参数的RPC消息实现模块间的远程接口调用,设计巧妙,易于调用;另一方面,通过同步与异步两类RPC消息,实现同步与异步工作机制,满足云计算管理软件的各种应用需求。
[0022]结合附图,下面对本发明的交互方法进行详细描述。
[0023]其中,搭建云计算管理软件模型是整个方案的基础。如附图1,整个系统建立在无共享、基于消息传递的体系结构之上。经过广泛调研与总结,云计算管理软件可分为云资源管理(管理虚拟化软件)、基本管理(组织用户管理)、系统管理(系统设置)、综合监控(资源监控)、计量计费(资源使用情况计量计费)、业务审批(订单申请审批)等几大核心功能模块。每个模块可以同时部署一个或多个服务,每个服务都可独立运行在一台或多台服务器上。
[0024]各个模块与消息总线通过AMQP协议进行通信,在通讯时,每个模块作为独立的生产者,向其他模块的消息队列发送消息;每个模块运行消费者服务,作为独立的消费者,读取自身消息队列中的消息进行处理。各个模块共用同一个数据库,并对外统一提供Rest接
□ O
[0025]文本消息处理是该模型使用普通文本方式进行交互的环节。对于文本类型的消息,生产者只需将消息发出,不必关心消费者及队列的具体情况。文本消息用于实现事件通知功能。
[0026]S1、为每个模块定义一个交换器:云资源管理交换器,基本管理交换器,系统管理交换器,综合监控交换器,计量计费交换器,业务审批交换器。
[0027]S2、如附图2,模块A在发送通知时,仅需指定消息对应的交换器,进而发送文本消息到该交换器。模块B、C、D如果关心该文本消息,则注册自身队列到模块A的交换器,并接收消息,进行处理。
[0028]S3、定义文本消息的格式如附图3,其中,各个字段的具体定义如下:
模块ID(appId),用于标识云资源管理、基本管理、系统管理、综合监控、计量计费、业务审批等各个模块;
消息操作类型(type),与消息操作的功能名称对应,如delete、add ;
消息体,为HashMap〈String, String〉类型的参数数据,如:{delld=***,operld=***,recordT ime=***}。
[0029]S4、消息发送方与接收方之间采用发布/订阅模式。消息的发送者(发布者)只发送消息,不需要知道发送的消息被什么订阅者订阅。订阅者只接收需要的消息,也不需要知道消息来自于什么样的发布者。通过这种方式,实现发布者和订阅者的解耦。
[0030]RPC消息处理是该模型使用远程接口调用方式进行交互的环节。对于“RPC”类型的消息,生产者发送RPC消息远程调用消费者的接口,消费者接收消息后执行相应的业务逻辑。消息RPC分为同步RPC与异步RPC两大类,以实现同步和异步工作机制。
[0031]如附图4,当模块A调用模块B的RPC接口时,将接口与参数进行编码组合成RPC消息,并发送到消息服务器中。
[0032]对于同步RPC,模块A等待模块B实时响应后才返回;
对于异步RPC,模块A发送后即返回,不必等待。
[0033]模块B接收到RPC消息后,进行解码、分析。
[0034]对于同步RPC,模块B执行相应的业务逻辑,并将消息处理结果实时返回给模块A;
对于异步RPC,模块B执行相应的业务逻辑后,再以RPC的方式调用模块A的回调接口,实现通知反馈。
[0035]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种基于消息总线的云计算管理软件交互方法的权利要求书的且任何所述【技术领域】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【权利要求】
1.一种基于消息总线的云计算管理软件交互方法,其特征在于,其具体实现过程为: 搭建云计算管理软件模型,该云计算管理软件模型包括定义云计算管理软件的核心功能模块与模块间的交互方式,建立无共享、基于消息传递的体系结构,其中上述核心功能模块包括云资源管理、基本管理、计量计费、业务审批、系统管理、综合监控六大模块,每个模块可同时部署一个或多个服务,每个服务独立运行在一台或多台服务器上; 进行文本消息处理,即基于消息的发布、订阅模式,实现消息发布者与订阅者的解耦,实现事件通知功能; 进行RPC消息处理,该RPC消息分为同步消息和异步消息,同步消息实现模块间的同步调用,异步消息实现模块间的异步调用,从而实现模块间的调用功能。
2.根据权利要求1所述的一种基于消息总线的云计算管理软件交互方法,其特征在于,所述云计算管理软件模型中各个模块与消息总线之间通过AMQP协议进行通信,在通讯时,每个模块作为独立的生产者,向其他模块的消息队列发送消息;每个模块运行消费者服务,作为独立的消费者,读取自身消息队列中的消息进行处理;各个模块共用同一个数据库,并对外统一提供Rest接口。
3.根据权利要求1所述的一种基于消息总线的云计算管理软件交互方法,其特征在于,所述文本消息处理的具体过程为: 51、为云计算管理软件模型中的每个模块定义一个交换器:云资源管理交换器、基本管理交换器、系统管理交换器、综合监控交换器、计量计费交换器、业务审批交换器; 52、当一模块发送通知时,指定该发送的消息对应的交换器,进而发送文本消息到该交换器;当有其它模块关心该接收到的文本消息时,则注册自身队列到上述接收文本信息的交换器,并接收消息,进行下述处理; 53、定义文本消息的格式; 54、消息发送方与接收方之间采用发布、订阅模式;消息的发送者只发送消息,订阅者只接收需要的消息,实现发布者和订阅者的解耦。
4.根据权利要求3所述的一种基于消息总线的云计算管理软件交互方法,其特征在于,所述文本消息的格式包括模块ID、操作类型和消息体,其中,各个字段的具体定义如下:模块ID,用于标识云资源管理、基本管理、系统管理、综合监控、计量计费、业务审批各个模块;操作类型与消息操作的功能名称对应;消息体为HashMap〈String, String〉类型的参数数据。
5.根据权利要求1所述的一种基于消息总线的云计算管理软件交互方法,其特征在于,所述RPC消息分为同步RPC与异步RPC两大类,其具体的处理过程为: 当一个模块调用另一模块的RPC接口时,将接口与参数进行编码组合成RPC消息,并发送到消息服务器中;其中对于同步RPC,调用模块等待被调用模块实时响应后才返回;对于异步RPC,调用模块发送后即返回,不必等待; 被调用的模块接收到RPC消息后,进行解码、分析;对于同步RPC,被调用模块执行相应的业务逻辑,并将消息处理结果实时返回给调用模块;对于异步RPC,被调用模块执行相应的业务逻辑后,再以RPC的方式调用调用模块的回调接口,实现通知反馈。
【文档编号】H04L12/58GK104486440SQ201410819145
【公开日】2015年4月1日 申请日期:2014年12月25日 优先权日:2014年12月25日
【发明者】吕广杰, 刘正伟, 朱波 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1