首页> 中国专利> 集群环境下实现异步交互模式通信的系统及方法

集群环境下实现异步交互模式通信的系统及方法

摘要

本发明公开了一种集群环境下实现异步交互模式通信的系统及方法,涉及异步交互模式的通信实现方法领域。系统初始化时,两通信端点的应用模块进行AIM模块注册;请求端AIM模块感知到应答端上线,将添加该应答端地址。当请求端应用模块发起请求时,请求端AIM模块向应答端发送请求消息;收到请求消息的应答端应用模块进行请求消息的处理,并向对应请求端回复AIM应答消息;请求端收到AIM应答消息后,将触发本端应用模块进行应答消息处理。当请求端AIM模块感知到某个应答端下线时,将自动删除该应答端地址。本发明能在满足通信需求的前提下,实现集群环境下的异步交互模式的通信,不但实现方式简单化,而且代码开发难度低,冗余少。

著录项

  • 公开/公告号CN105791420A

    专利类型发明专利

  • 公开/公告日2016-07-20

    原文格式PDF

  • 申请/专利权人 烽火通信科技股份有限公司;

    申请/专利号CN201610235289.4

  • 发明设计人 韩立忠;兰光华;胡银华;

    申请日2016-04-15

  • 分类号

  • 代理机构武汉智权专利代理事务所(特殊普通合伙);

  • 代理人沈林华

  • 地址 430074 湖北省武汉市东湖开发区光谷创业街67号

  • 入库时间 2023-06-19 00:09:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-30

    授权

    授权

  • 2016-08-17

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20160415

    实质审查的生效

  • 2016-07-20

    公开

    公开

说明书

技术领域

本发明涉及异步交互模式的通信实现方法领域,具体来讲是一种 集群环境下实现异步交互模式通信的系统及方法。

背景技术

在数通产品的平台软件中,存在着一种基于请求-应答模型的通 信需求。在请求-应答模型通信场景下,存在请求端和应答端这两种 通信端点。对于每一对请求端与应答端,请求端的一次请求必须接收 到应答端的有且仅有一次的应答响应。同时,还必须需要保证整个通 信过程的可靠性、有序性。此外,两个通信端点的通信过程可能是在 同一进程内的,也可能是在不同进程间的,甚至可能是跨单板的,不 设约束。

在FOS(FiberhomeOperatingSystem,烽火操作系统)平台软件 中,把这种基于请求-应答模型的通信需求抽象为异步交互模式(AIM, AsynchronousInteractiveMode),异步交互模式通常需满足以下通信 需求:

(1)请求端必须想方设法地获取到应答端的通信地址,并保存 下来;同样地,应答端应用也需要缓存请求端的通信地址;

(2)应答端必须能够准确、有序地回复请求端的请求;

(3)考虑到在某些场景下(如资源请求类)的特殊使用需求, 请求端的请求取消操作需要应答端做出相应的回退处理;

(4)考虑到请求端应用的一次请求可能因长时间得不到应答而 发生超时,需要开发人员为应用单独实现一套超时处理流程;

(5)请求端应用的一次请求消息可能是单播的,也可能是需要 多播的,因此,必须考虑一个请求端对应多个应答端的场景。同时, 请求端需要关注所有应答端的UP/DOWN状态,防止发生不必要的 请求消息发送与请求超时的情况;

(6)当有多个请求端向同一应答端发送请求(取消)消息时, 应答端必须能够区分出不同的源端。

异步交互模式中的两种典型的应用模型如图1和图2所示。图1 为同步应答模型,[1]A端发送请求消息给B端;[2]B端收到该请求 后发现本地存在A端所需信息,直接同步应答给A端。图2为异步 应答模型,[1]A端发送请求消息给B端;[2]B端收到该请求后发现 本地不存在A端所需信息,先缓存一个对应于该A端请求的应答控 制块,然后向下游C端发送请求消息;[3]C端接收到B端的请求后, 打包所需信息,回复应答消息给B端;[4]B端收到C端的应答消息, 根据消息携带的关键字查找A端的应答控制块,并异步应答给A端。

目前,为了实现异步交互模式的通信,业界的通常做法是,把请 求与应答流程相互独立开来。这种方式虽然设计实现相对简单一些, 但由于每个流程都需要满足异步交互模式通信需求,因此,开发者必 须考虑每个相互独立流程的实现逻辑。这无疑增加了相关应用代码的 开发难度,同时,还存在一些不可避免的问题,如不同应用之间的代 码冗余,以及可能的应用代码效率低下问题。特别是在集群环境下, 上述问题更加突出。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种集群环 境下实现异步交互模式通信的系统及方法,能在满足异步交互模式通 信需求的前提下,在集群环境下实现异步交互模式的通信,不但实现 方式简单化,而且代码开发难度低,冗余少。

为达到以上目的,本发明采取的技术方案是:提供一种集群环境 下实现异步交互模式通信的系统,该系统包括两种通信端点:请求端 和应答端,若干请求端、应答端之间构成集群间通信,每个请求端包 括请求端应用模块和请求端AIM模块,每个应答端包括应答端应用 模块和应答端AIM模块;所述请求端应用模块用于:向上线的应答 端发起请求;并在收到AIM应答消息后,进行应答消息处理;所述 请求端AIM模块用于:在感知到某个应答端上线时,自动添加该应 答端的通信地址;当请求端应用模块发起请求时,根据添加的通信地 址向对应的应答端发送请求消息,收到AIM应答消息后,触发本端 应用模块进行应答消息处理;当感知到某个应答端下线时,自动删除 该应答端的通信地址;所述应答端AIM模块用于:收到请求消息后 触发应答端应用模块进行请求消息处理;并将应答端应用模块回复的 AIM应答消息发送至请求端;所述应答端应用模块用于:进行请求 消息的处理,并在处理完成后回复一个AIM应答消息。

本发明还提供一种应用上述系统的集群环境下实现异步交互模 式通信的方法,包括以下步骤:

A、初始化及上线应答端的添加:系统初始化时,各请求端、各 应答端的应用模块进行相应的AIM模块注册;一旦请求端AIM模块 感知到某个应答端上线,自动添加该应答端的通信地址;

B、请求的发起和处理:当请求端应用模块发起请求时,请求端 AIM模块向对应的应答端发送请求消息;收到请求消息的应答端AI M模块触发应答端应用模块进行请求消息的处理,并向对应请求端回 复一个AIM应答消息;请求端收到AIM应答消息后,触发本端应用 模块进行应答消息处理;

C、下线应答端的删除:当请求端AIM模块感知到某个应答端下 线时,将自动删除该应答端的通信地址,后续请求端应用模块发起请 求时,将不再向该应答端发送请求消息。

在上述技术方案的基础上,步骤B具体包括以下操作:

B1、当请求端的请求端应用模块发起请求时,该请求端的请求 端AIM模块根据添加的应答端的通信地址,向对应的应答端发送请 求消息;

B2、应答端AIM模块接收到请求消息后,解包请求消息;并通 过打包回调的方式触发应答端应用模块处理请求消息;

B3、待应答端应用模块完成请求消息的处理后,应答端应用模 块通过应答端AIM模块向对应请求端回复一个AIM应答消息;

B4、请求端AIM模块判断是否收到应答端回复的AIM应答消息, 若收到AIM应答消息,则请求端AIM模块回调应用解包,通过打包 回调的方式触发本端应用模块进行应答消息处理。

在上述技术方案的基础上,步骤B2中,应答端AIM模块接收到 请求消息后,还将判断是否是首次接收该请求端发来的请求消息,若 是,则记录该请求端的通信地址。

在上述技术方案的基础上,步骤B3中,应答端应用模块通过应 答端AIM模块向对应请求端回复一个AIM应答消息时,根据实际情 况采用同步应答方式进行回复或采用异步应答方式进行回复。

在上述技术方案的基础上,应答端应用模块采用同步应答方式进 行回复时,直接利用应答端AIM模块通过可靠通信的ACK确认消息 实现即时应答。

在上述技术方案的基础上,应答端应用模块采用异步应答方式进 行回复时,则应答端应用模块调用应答端AIM模块提供的接口申请 一个应答控制块缓存,该应答控制块由应答端AIM模块管理,用于 记录本次的请求消息;待应答端应用模块完成应答数据的收集后,触 发应答端AIM模块向对应请求端回复AIM应答消息。

在上述技术方案的基础上,步骤B4中所述请求端AIM模块判断 是否收到应答端回复的AIM应答消息的具体操作为:若请求端AIM 模块等待接收AIM应答消息的时间未达到用户设置的超时时间,则 判定收到了应答端回复的AIM应答消息;若请求端AIM模块等待接 收AIM应答消息的时间达到了用户设置的超时时间,则判定没有收 到应答端回复的AIM应答消息。

在上述技术方案的基础上,步骤B4中,若没有收到AIM应答消 息,发生请求超时事件,回调请求端应用模块进行超时处理。

在上述技术方案的基础上,在步骤B与C之间,还包括以下操 作:请求端应用模块通过请求端AIM模块向对应应答端发送取消操 作请求消息;应答端AIM模块接收到取消操作请求消息后,回调应 答端应用模块进行取消处理,保证应答端能够与请求端同步地清理掉 相关数据。

本发明的有益效果在于:

(1)本发明中,若干请求端和若干应答端之间构成集群间通信, 每个请求端包括请求端应用模块和请求端AIM模块,每个应答端包 括应答端应用模块和应答端AIM模块。系统初始化时,两通信端点 的应用模块进行AIM模块注册,请求端AIM模块感知到应答端上线, 将自动添加该应答端的通信地址;当请求端应用模块发起请求时,请 求端AIM模块会向对应的应答端发送请求消息,收到请求消息的应 答端AIM模块触发应答端应用模块进行请求消息的处理,并向对应 请求端回复一个AIM应答消息,请求端收到AIM应答消息后,将触 发本端应用模块进行应答消息处理;当请求端AIM模块感知到某个 应答端下线时,将自动删除该应答端的通信地址,后续请求端应用模 块发起请求时,将不再向该应答端发送请求消息。

与现有技术相比,本发明能在满足异步交互模式通信需求的前提 下,实现集群环境下的异步交互模式的通信,不但实现方式简单化, 而且应用模块、AIM模块的代码开发难度低,冗余少;除此之外, 应用模块、AIM模块能提供相应接口供开发者或用户直接使用,在 满足上层应用的同时,提高了调用效率。

(2)本发明中,请求端AIM模块能够感知到通信对端的 UP/DOWN状态,因此可以及时地添加/删除通信对端的地址信息。 基于此功能,实现了对一个请求端对应多个应答端场景的支持,以及 多个请求端对应一个应答端场景的支持。

(3)在消息交互过程中,本发明的AIM模块避免了应用模块为 构造消息体而额外申请内存的操作,直接通过两级打包回调方法,从 应用模块中提取数据,打包到消息管道中,从而减少了不必要的内存 操作,包括内存拷贝和内存释放等。

(4)应答端应用模块通过应答端AIM模块向对应请求端回复一 个AIM应答消息时,可根据实际情况选择采用同步应答方式进行回 复或是采用异步应答方式进行回复,应答通信方式选择灵活。

附图说明

图1为典型的同步应答模型的示意图;

图2为典型的异步应答模型的示意图;

图3为本发明实施例中集群环境下实现异步交互模式通信的系 统的结构框图;

图4为本发明实施例中集群环境下实现异步交互模式通信的方 法的流程图;

图5为一对请求端、应答端进行交互的时序图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图3所示,本发明实施例提供一种集群环境下实现异步交互 模式通信的系统,该系统包括两种通信端点:请求端和应答端,若干 请求端、应答端之间构成集群间通信,每个请求端包括请求端应用模 块和请求端AIM模块,每个应答端包括应答端应用模块和应答端 AIM模块。

其中,请求端应用模块用于:向上线的应答端发起请求;并在收 到AIM应答消息后,进行应答消息处理。

请求端AIM模块用于:在感知到某个应答端上线时,自动添加 该应答端的通信地址;当请求端应用模块发起请求时,根据添加的通 信地址向对应的应答端发送请求消息,收到AIM应答消息后,触发 本端应用模块进行应答消息处理;当感知到某个应答端下线时,自动 删除该应答端的通信地址。

应答端AIM模块用于:收到请求消息后触发应答端应用模块进 行请求消息处理;并将应答端应用模块回复的AIM应答消息发送至 请求端。

应答端应用模块用于:进行请求消息的处理,并在处理完成后回 复一个AIM应答消息。

参见图4、图5所示,本发明实施例还提供一种应用上述系统的 集群环境下实现异步交互模式通信的方法,包括以下步骤:

步骤S1:系统初始化时,各请求端的请求端应用模块进行请求 端AIM模块注册;各应答端的应答端应用模块进行应答端AIM模块 注册。

步骤S2:一旦请求端AIM模块感知到某个应答端UP(上线), 自动添加该应答端的通信地址。此后,该请求端的请求端应用模块就 可以通过请求端AIM模块向该应答端发起请求了。

步骤S3:当请求端的请求端应用模块发起请求时,该请求端的 请求端AIM模块根据添加的应答端的通信地址,向对应的应答端发 送请求消息。

步骤S4:应答端AIM模块接收到请求消息后,解包请求消息; 如果是首次接收该请求端发来的请求消息,则记录该请求端的通信地 址;并通过打包回调的方式触发应答端应用模块处理请求消息。

步骤S5:待应答端应用模块完成请求消息的处理后,应答端应 用模块通过应答端AIM模块向对应请求端回复一个AIM应答消息。

实际操作时,步骤S5中,应答端应用模块通过应答端AIM模块 向对应请求端回复一个AIM应答消息时,可根据实际情况采用同步 应答方式回复或是异步应答方式回复。具体来说,如果应答端应用模 块采用同步应答方式回复,则直接利用应答端AIM模块通过可靠通 信的ACK(Acknowledgement)确认消息实现即时应答;如果应答端 应用模块采用异步应答方式回复,则应答端应用模块调用应答端AIM 模块提供的接口申请一个应答控制块缓存,该应答控制块由应答端 AIM模块管理,用于记录本次的请求消息;待应答端应用模块完成 应答数据的收集后,触发应答端AIM模块向对应请求端回复AIM应 答消息。

步骤S6:请求端AIM模块判断是否收到应答端回复的AIM应 答消息,若是,转入步骤S7;否则,发生请求超时事件,回调请求 端应用模块进行超时处理。

实际操作时,步骤S6中所述请求端AIM模块判断是否收到应答 端回复的AIM应答消息的具体操作为:若请求端AIM模块等待接收 AIM应答消息的时间未达到用户设置的超时时间,则判定收到了应 答端回复的AIM应答消息;若请求端AIM模块等待接收AIM应答 消息的时间达到了用户设置的超时时间,则判定没有收到应答端回复 的AIM应答消息。

步骤S7:请求端AIM模块接收到AIM应答消息后,回调应用 解包,通过打包回调的方式触发本端应用模块进行应答消息处理。

可以理解的是,在某些特殊使用需求场景下(如资源请求类), 请求端会发出取消操作请求,并需要应答端做出相应的回退处理。具 体来说,在步骤S7与S8之间,还包括以下操作:请求端应用模块通 过请求端AIM模块向对应应答端发送取消操作请求消息;应答端 AIM模块接收到取消操作请求消息后,回调应答端应用模块进行取 消处理,保证应答端能够与请求端同步地清理掉相关数据。

步骤S8:当请求端AIM模块感知到某个应答端DOWN(下线) 时,将自动删除该应答端的通信地址,后续请求端应用模块发起请求 时,将不再向该应答端发送请求消息。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细 描述的内容属于本领域专业技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号