一种适应私有云环境的通信平台和通信方法

文档序号:7910074阅读:160来源:国知局
专利名称:一种适应私有云环境的通信平台和通信方法
技术领域
本发明属于通信技术领域,尤其涉及适应于私有云环境的通信技术领域。
背景技术
云计算是一种将计算机软硬件平台作为一个资源,并将其计算能力等同于电厂提供的电力,可以按照占用资源的数量和时间来收费的一种新的计算模式。这种弹性分配计算资源,不需要为大规模计算支付额外费用的方式,是IT界从所未有的。云计算从网格计算和分布式并行计算发展演化而来,是一种利用大规模低成本运算单元通过网络互连而组成的计算系统,云计算系统具有很强的伸缩性和可定制性,平台向上层的用户提供各种计算服务。云计算系统使用大量廉价的服务器集群为系统提供硬件基础设施,采用应用程序与底层服务协作开发,最大限度地利用资源,通过多个廉价的服务器之间的冗余,使云计算具有高可用性、低成本、通用性强等特点,从而达到分布式计算的两个重要目标可扩展性和高可用性。云计算按云服务的对象不同分为公有云、私有云。公有云是面向外部用户需求,通过开放网络提供云计算服务,如IDC,GoogleApp等。私有云是指企业或者组织内部按照云计算架构搭建一个内部使用的云计算平台,并根据企业内部需求提供云计算服务。如在地震资料处理行业中,基于现有的大规模集群系统搭建一个私有云计算平台可以极大的提高地震资料处理速度。私有云平台的搭建需要着重考虑组件之间数据与信息的交换,组件之间的通信状况严重影响系统提供的云计算能力。进程通信(IPC)技术是指通过专门的通信机制实现进程间交换大量信息的通信技术。对集群计算和云计算而言,进程通信是系统的核心组件,进程通信为系统上层的各计算组件协调工作,为完成海量计算任务提供了可能。现有私有云系统的进程通信仍然采用复杂的分布式进程通信方式,如 CORBA(Common Object Request Broker Architecture) CORBA全称是公共对象请求代理体系结构,是由OMG[7] (Ojbect Management Group)定义的通信标准,其使用了独立于软硬件平台的IDL[8] (interface definition language)语言层对数据进行包裹,目标是实现不同平台不同语言的程序之间相互交互。CORBA在通信域内有一个服务器节点负责处理客户机节点的对象请求,服务器节点完成客户机节点通信信息的转发与路由工作,CORBA的体系结构如图1所示CORBA通过在对象(Object)之间建立客户/服务器(C/幻模型,应用进程通过对象引用和产生桩代码产生对象请求,然后通过对象请求代理将请求送达至服务器,服务器通过对象执行和产生框架代码实现对象处理,对象请求代理对应用进程请求进行反馈。 CORBA通过ORB (Object Request Broker)实现服务端的信息对客户端透明,并将客户提出的所有需求送达至目的地。在集群环境和私有云环境下,随着系统的组件日益复杂,CORBA通信技术存在一定的缺陷。首先,CORBA的通信方式是同步的,客户向服务器发送请求后,阻塞等待服务器处理,并在处理结果返回后才能进行下一步动作;其次,客户和服务器通信的对象是紧密耦合的,其生命周期很难把握,提高了系统编程的复杂性;最后,面对日益复杂的通信系统,点对点通信已经不能满足通信需求,如在地震资料处理行业的集群系统中,由于系统组件之间通信量大且系统计算任务相对单一,现有的点对点通信就很难满足通信需求。

发明内容
本发明的目的是为克服适应实际应用的需要,以方便将现有集群系统迁移到私有云环境中,解决私有云计算基础服务平台组件之间的通信问题,提出了一种适应私有云环境的通信平台和通信方法。本发明的技术方案是一种适应私有云环境下的通信平台,所述通信平台至少包括两个计算节点和一个服务器节点,所述计算节点和服务器节点通过网络互相连接成分布式集群系统,每个计算节点表示系统中的一台主机,主机中包含了许多的应用进程,其特征在于,每个节点上挂载一个通信代理,所述节点内所有应用进程通过通信平台提供的标准 API接口与本地通信代理连接,以实现应用进程间的点对点通信,并且通过在服务器节点挂载消息服务器应用进程,以实现应用进程间的一对多通信。本发明的另一技术方案是一种适应私有云环境下的通信方法,其特征在于,包括如下步骤步骤1.应用进程通过API接口发送数据到网络;步骤2.通信代理获取网络数据;步骤3.通信代理处理消息数据;步骤4.消息服务器获取并处理发布/订阅消息;步骤5.应用进程通过API接口从网络接收消息。本发明的有益效果是克服现有的私有云系统通信方式只有同步通信方式,通信对象只局限于单节点,且通信域内采用传统的客户/服务器模式使得服务器完成所有应用进程间通信信息的转发和路由工作,在通信量巨大的情况下服务器节点开销巨大等缺点, 提出了一种适应私有云系统的通信平台和通信方法。该通信平台和通信方法采用基于消息的通信模型,可方便实现系统应用进程之间的同步和异步通信模式,完善通信需求;与传统 C/S模式不同,本平台的消息服务器完成发布/订阅通信,节点上的通信代理不经过消息服务器完成点对点接通信,此设计模式可在通信量巨大的情况下,降低服务器节点的开销;通信平台为系统所有进程解决进程间通信问题,系统应用进程开发人员不再编写底层通信代理,降低了私有云系统其他组件的开发难度。其优点具体体现在(1)本发明的通信平台和通信方法采用基于消息的通信模型,方便地实现了同步与异步通信方式;(2)本发明的通信平台和通信方法能有效实现系统各组件之间的解耦合性,并且屏蔽底层通信细节为系统上层应用进程提供统一的透明通信服务,软件开发人员不需为每个应用进程单独编写底层通信代码,大大降低系统软件开发难度;(2)本发明的通信平台和通信方法与COBRA的客户/服务器设计模式相比,通信平台采用通信代理与消息服务器相结合的架构设计方式,应用进程之间信息的转发和路由不再只依靠服务器节点,使系统具有通信数据吞吐量高,通信效率高,消息服务器和通信代理性能消耗少等特点。


图1是现有技术中的CORBA体系结构图。图2是本发明通信平台的全局结构示意图。图3是本发明通信方法的全局流程示意图。图4是本发明通信方法步骤“应用进程通过API接口发送数据到网络”的具体流程图。图5是本发明通信方法步骤“通信代理获取网络数据”的具体流程图。图6是本发明通信方法步骤“通信代理处理消息数据”的具体流程图。图7是本发明通信方法步骤“消息服务器获取并处理发布/订阅消息”的具体流程图。
具体实施例方式下面结合附图和具体实施例对本发明的技术方案做详细的说明。本发明提出了一种适应私有云环境下的通信平台,如图2所示,通信平台至少包括两个计算节点(本实施例中为两个)和一个服务器节点(本实施例中为一个),计算节点和服务器节点(以下统称节点)通过网络互相连接成分布式集群系统。每个计算节点表示系统中的一台主机,主机中包含了许多的应用进程。通信平台特征在于每个节点上挂载一个通信代理,节点内所有应用进程通过通信平台提供的标准API (Application Process Interface)接口与本地通信代理连接,以实现应用进程间的点对点通信。通过在服务器节点挂载消息服务器应用进程,可实现应用进程间的一对多通信。API接口是通信平台向应用进程提供透明通信服务的一系列API函数。通信平台为维护应用进程信息提供了进程注册和取消注册的API函数;针对点对点和发布/订阅二种通信模型,通信平台提供了同步和异步发送接收API函数;根据通信数据类型是消息还是文件提供了消息与文件传输API函数。简单介绍通信平台提供的二种通信方式,一、点对点通信,消息转发不通过消息服务器节点,由通信代理直接转发完成。由于应用进程可能在同一计算节点上,也可能不在同一计算节点上。点对点通信分为二种类型1.节点内应用进程之间的通信,2.节点间应用进程之间的通信。对于节点内或节点间进程间的通信,通信代理不加区分一律使用socket 进行通信,这样的设计模式使得通信平台易用且具有良好的扩展性。二、发布/订阅通信, 应用进程发布消息和订阅消息首先通过通信代理将消息发送到消息服务器,消息服务器再根据发布和订阅情况,将消息广播至订阅该消息的应用进程。本领域的普通技术人员应该意识到,按照上述的连接关系,上述计算节点或服务器节点的数量可以任意添加。本发明还提出了一种适应私有云环境下的通信方法,如图3所示,该通信方法的主要包括以下步骤步骤1.应用进程通过API接口发送数据到网络。如图4所示,应用进程首先向本地节点上的通信代理发起网络连接请求,应用进程与通信代理连接成功后应用进程使用注册API函数向通信代理发送应用进程信息,通信代理完成应用进程信息的维护。根据目的进程信息和应用进程的通信需求设置通信选项, 通信需求包括发送的数据类型是消息或是文件,通信方式是点对点通信或发布订阅通信。 设置好通信选项后,使用相应的API函数,将按一定规则和协议序列化后的消息到发送到网络中。步骤2.通信代理获取网络数据如图5所示,应用进程无需知道底层通信细节只需完成步骤1中的操作,即可将需要通信的数据通过API接口发送至网络中,具体的数据转发过程由通信代理完成。在获取网络数据之前,通过代理完成与应用进程之间的交互完成接收会话连接的建立。首先通信代理启动后绑定固定端口号,然后开始监听该端口以等待网络连接请求;收到新的连接请求后,建立接收会话连接等待接收LAN数据,并将新连接添加至接收会话连接信息表中,统一管理方便查询。在步骤1结束后网络中有新的数据到达,接收会话连接开启接收线程读底层socket接口完成数据的接收。网络数据接收完成后,将数据按一定的规则和协议反序列化为自定义的消息格式,然后将消息放入消息接收队列中等待后续数据处理。步骤3.通信代理处理消息数据。如图6所示,通过步骤2,通信代理获取到应用进程的通信数据,并将消息存放到接收队列后通信代理开始处理消息数据。首先通信代理开启消息处理线程循环处理接收队列中的消息。其次,通信代理查询发送会话连接信息表,查看通信代理与目的进程之间是否存在发送会话连接。如果通信代理与目的进程已建立发送会话连接,则将消息通过发送会话连接发送至网络中;如果没有与目的进程之间建立发送会话连接,则根据步骤1中设置的通信选项判断通信类型,若通信类型是发布/订阅,则通信代理向服务器节点的通信代理发起发送会话连接请求;若通信类型是点对点通信,再通过判定目的进程IP与通信代理 IP是否相同,相同则为节点内进程通信,通信代理向目的进程发起发送会话连接请求,若不同则为节点间进程通信,通信代理向目的进程所在通信代理发起发送会话连接请求。连接请求若失败,则该消息存放至消息失败队列中;连接成功后将新连接添加至发送会话连接信息表中,再将消息通过发送会话连接发送至网络中。步骤4.消息服务器获取并处理发布/订阅消息。如图7所示,通过步骤3,若通信类型是点对点通信则转到步骤5。若通信类型是发布/订阅则消息发送至消息服务器节点的通信代理上,然后服务器节点的通信代理再将消息转发至消息服务器,此处服务器节点的通信代理获取并处理数据与步骤2和步骤3相同,消息服务器获取消息与步骤5相同。消息服务器在收到消息后判断在步骤1中设置的消息类型,若是控制消息,采取取消主题消息或者取消订阅消息的操作;若是主题消息则将消息添加至发布主题映射表;若是订阅消息则将消息添加至订阅主题映射表。新的消息添加到映射表后,进行主题消息的匹配。主题匹配有以下四种情况1)新主题消息有订阅者; 2)新主题消息没有订阅者;幻新订阅消息有主题发布者;4)新订阅消息没有主题发布者; 1)和3) 二种情况属于主题匹配成功,主题匹配成功后消息服务器将主题消息发送至服务器挂载的通信代理上,然后消息服务器上通信代理对消息分析处理后将消息发送至订阅应用进程。步骤5.应用进程通过API接口从网络接收消息。应用进程在启动后绑定固定端口号,然后开始监听该端口以等待网络连接请求,收到新的连接请求后,建立应用进程的接收会话连接等待接收LAN数据。当通信代理向应用进程发送数据时,应用进程的接收会话连接调用通信平台提供的同步或异步接收API函数获取网络中数据,然后再将数据按一定的规则和协议反序列化为消息。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
权利要求
1.一种适应私有云环境下的通信平台,所述通信平台至少包括两个计算节点和一个服务器节点,所述计算节点和服务器节点通过网络互相连接成分布式集群系统,每个计算节点表示系统中的一台主机,主机中包含了许多的应用进程,其特征在于,每个节点上挂载一个通信代理,所述节点内所有应用进程通过通信平台提供的标准API接口与本地通信代理连接,以实现应用进程间的点对点通信,并且通过在服务器节点挂载消息服务器应用进程, 以实现应用进程间的一对多通信。
2.—种适应私有云环境下的通信方法,其特征在于,包括如下步骤步骤1.应用进程通过API接口发送数据到网络;步骤2.通信代理获取网络数据;步骤3.通信代理处理消息数据;步骤4.消息服务器获取并处理发布/订阅消息;步骤5.应用进程通过API接口从网络接收消息。
3.根据权利要求2所述的一种适应私有云环境下的通信方法,其特征在于,所述步骤1 的具体过程为应用进程首先向本地节点上的通信代理发起网络连接请求,应用进程与通信代理连接成功后应用进程使用注册API函数向通信代理发送应用进程信息,通信代理完成应用进程信息的维护;根据目的进程信息和应用进程的通信需求设置通信选项,通信需求包括发送的数据类型是消息或是文件,通信方式是点对点通信或发布订阅通信;设置好通信选项后,使用相应的API函数,将按一定规则和协议序列化后的消息到发送到网络中。
4.根据权利要求2所述的一种适应私有云环境下的通信方法,其特征在于,所述步骤 2的具体过程为应用进程可将需要通信的数据通过API接口发送至网络中,具体的数据转发过程由通信代理完成;在获取网络数据之前,通过代理完成与应用进程之间的交互完成接收会话连接的建立;首先通信代理启动后绑定固定端口号,然后开始监听该端口以等待网络连接请求;收到新的连接请求后,建立接收会话连接等待接收LAN数据,并将新连接添加至接收会话连接信息表中,统一管理方便查询。
5.根据权利要求2所述的一种适应私有云环境下的通信方法,其特征在于,所述步骤3 的具体过程为信代理获取到应用进程的通信数据,并将消息存放到接收队列后通信代理开始处理消息数据;首先通信代理开启消息处理线程循环处理接收队列中的消息;其次, 通信代理查询发送会话连接信息表,查看通信代理与目的进程之间是否存在发送会话连接。如果通信代理与目的进程已建立发送会话连接,则将消息通过发送会话连接发送至网络中;如果没有与目的进程之间建立发送会话连接,则根据步骤1中设置的通信选项判断通信类型,若通信类型是发布/订阅,则通信代理向服务器节点的通信代理发起发送会话连接请求;若通信类型是点对点通信,再通过判定目的进程IP与通信代理IP是否相同,相同则为节点内进程通信,通信代理向目的进程发起发送会话连接请求,若不同则为节点间进程通信,通信代理向目的进程所在通信代理发起发送会话连接请求。连接请求若失败,则该消息存放至消息失败队列中;连接成功后将新连接添加至发送会话连接信息表中,再将消息通过发送会话连接发送至网络中。
6.根据权利要求2所述的一种适应私有云环境下的通信方法,其特征在于,所述步骤 4的具体过程为通过步骤3,若通信类型是点对点通信则转到步骤5 ;若通信类型是发布/ 订阅则消息发送至消息服务器节点的通信代理上,然后服务器节点的通信代理再将消息转发至消息服务器,此处服务器节点的通信代理获取并处理数据与步骤2和步骤3相同,消息服务器获取消息与步骤5相同;消息服务器在收到消息后判断在步骤1中设置的消息类型, 若是控制消息,采取取消主题消息或者取消订阅消息的操作;若是主题消息则将消息添加至发布主题映射表;若是订阅消息则将消息添加至订阅主题映射表。
7.根据权利要求2所述的一种适应私有云环境下的通信方法,其特征在于,所述步骤5 的具体过程为应用进程在启动后绑定固定端口号,然后开始监听该端口以等待网络连接请求,收到新的连接请求后,建立应用进程的接收会话连接等待接收LAN数据。当通信代理向应用进程发送数据时,应用进程的接收会话连接调用通信平台提供的同步或异步接收 API函数获取网络中数据,然后再将数据按一定的规则和协议反序列化为消息。
全文摘要
本发明涉及一种适应私有云环境下的通信平台和通信方法,所述通信平台至少包括两个计算节点和一个服务器节点,所述计算节点和服务器节点通过网络互相连接成分布式集群系统,每个计算节点表示系统中的一台主机,主机中包含了许多的应用进程,每个节点上挂载一个通信代理,所述节点内所有应用进程通过通信平台提供的标准API接口与本地通信代理连接,以实现应用进程间的点对点通信,并且通过在服务器节点挂载消息服务器应用进程,以实现应用进程间的一对多通信。本发明的有益效果是克服现有的私有云系统通信方式只有同步通信方式,通信对象只局限于单节点,且通信域内采用传统的客户/服务器模式的缺点。
文档编号H04L29/08GK102291467SQ20111027317
公开日2011年12月21日 申请日期2011年9月15日 优先权日2011年9月15日
发明者胡光岷, 赵太银, 陈慧楠 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1