首页> 中国专利> 一种用于实现进程间通信的系统和方法

一种用于实现进程间通信的系统和方法

摘要

本发明提供了一种用于实现进程间通信的系统和方法。该系统包括同步配置客户端和位于每个节点中的数据交换总线;所述数据交换总线,与该数据交换总线所在节点上的各个进程相连,存储该节点上所有进程的配置信息,通过同步配置客户端获取其他节点上所有进程的配置信息并存储,每个进程通过与其相连的数据交换总线与其他进程进行通信;所述同步配置客户端,与各个数据交换总线相连,获取各个数据交换总线存储的配置信息,将每一节点中数据交换总线存储的该节点上的各个进程的配置信息发给其他节点上的数据交换总线。应用本发明能够简化计算机系统的接口复杂度,降低计算机系统升级维护所需的人力物力。

著录项

  • 公开/公告号CN102375763A

    专利类型发明专利

  • 公开/公告日2012-03-14

    原文格式PDF

  • 申请/专利权人 中国移动通信集团公司;

    申请/专利号CN201010259827.6

  • 发明设计人 韩金宇;孙少陵;黄晓庆;

    申请日2010-08-20

  • 分类号G06F9/54;G06F15/16;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人张驰

  • 地址 100032 北京市西城区金融大街29号B座十二层

  • 入库时间 2023-12-18 04:34:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-06-19

    授权

    授权

  • 2012-04-25

    实质审查的生效 IPC(主分类):G06F9/54 申请日:20100820

    实质审查的生效

  • 2012-03-14

    公开

    公开

说明书

技术领域

本发明涉及数据通信技术领域,尤其涉及一种用于实现进程间通信的系 统和方法。

背景技术

为了实现某种方案或者解决某类问题,目前的计算机系统常常需要多个 应用进程协同工作。在现有的计算机系统中,各个应用进程是直接彼此连接 的,他们一对一通信或者一对多通信,常常会出现类似蜘蛛网状的链接及通 信关系,图1示例性地给出了现有的计算机系统中各进程间的通信连接示意 图。

图1是现有计算机系统中各进程间的通信连接示意图。

如图1所示,其中的节点1、节点2和节点3分别表示三台实际的物理 机器,进程A到进程E表示部署在这3个节点上的进程,这些进程属于一个 计算机系统。

在图1所示系统中,各个需要通信的进程彼此直接相连,例如,如果进 程A要获取进程C和进程D的数据,则进程A需要开放两个端口,分别连 接到进程C和进程D,即通过不同的线程来处理与进程C和进程D的通信。 而且,图1中每个进程与其他进程之间的连接关系等配置信息都由该进程记 录在该进程本身的配置文件中,不同进程的配置信息存储在不同的配置文件 中。

由图1可见,现有的计算机系统中进程间通信的方法存在如下的问题:

每个进程在开发时都需要预留多个接口用于与其他进程相连,且当一个 进程需要升级时,与该进程相连的其他进程也需要升级,例如图1中进程A 升级则会影响进程C和进程D,因此现有计算机系统的接口繁复,升级维护 需要耗费大量的人力物力。

发明内容

有鉴于此,本发明提供了一种用于实现进程间通信的系统和方法,以便 简化计算机系统的接口复杂度,降低计算机系统升级维护所需的人力物力。

本发明采用的技术方案具体是这样实现的:

一种用于实现进程间通信的系统,该系统包括同步配置客户端和位于每个节 点中的数据交换总线;

所述数据交换总线,与该数据交换总线所在节点上的各个进程相连,存储该 节点上所有进程的配置信息,通过同步配置客户端获取其他节点上所有进程的 配置信息并存储,每个进程通过与其相连的数据交换总线与其他进程进行通信;

所述同步配置客户端,获取各个数据交换总线存储的配置信息,将每一 节点中数据交换总线存储的该节点上的各个进程的配置信息发给其他节点上 的数据交换总线。

一种用于实现进程间通信的方法,该方法包括:

每个节点上的每个进程通过在该节点中预先设置的该数据交换总线与该节 点上的其他进程或者其他节点上的任意进程通信;

其中,在每个节点中预先设置数据交换总线,该节点中的所有进程与该数据 交换总线相连,预先在该数据交换总线中存储该节点上所有进程的配置信息, 预先设置与所有数据交换总线相连的同步配置客户端,通过该同步配置客户 端获取各个数据交换总线存储的配置信息,将每一节点中数据交换总线存储 的该节点上的各个进程的配置信息发给其他节点上的数据交换总线。

由上述技术方案可见,本发明通过在每个节点(即实际的物理机器)中 设置数据交换总线,将每个节点中的所有进程与该节点中的数据交换总线相 连,同时设置与各个数据交换总线相连的同步配置客户端,通过该同步配置 客户端,每个数据交换总线中存储所有节点中所有进程的配置信息,每个进 程都通过与该进程相连的数据交换总线与其他进程通信,由于不需要与其他 进程直接相连,因此简化了进程接口,而且,由于数据交换总线中存储了所 有进程的配置信息,每个进程通过与该数据交换总线可以与其他任意进程通 信,因此当需要升级时,只需要修改相应数据交换总线中的配置信息、以及 升级的进程与数据交换总线之间的接口,能够降低系统升级所需的人力物力。

附图说明

图1是现有计算机系统中各进程间的通信连接示意图。

图2是本发明提供的用于实现进程间通信的系统组成示意图。

图3是本发明提供的数据交换总线的详细结构示意图。

图4是本发明提供的进程间通信的示意性方法流程图。

具体实施方式

图2是本发明提供的用于实现进程间通信的系统组成示意图。

如图2所示,该系统包括同步配置客户端202和位于每个节点中的数据交换 总线201。

数据交换总线201,与该数据交换总线所在节点上的各个进程相连,存储该 节点上所有进程的配置信息,通过同步配置客户端202获取其他节点上所有进 程的配置信息并存储,每个进程通过与其相连的数据交换总线与其他进程进行 通信。

其中,进程与数据交换总线201之间通常采用socket连接,可以采用长连 接模式,也可以采用短连接模式,其中,采用短连接模式可以避免节点过多时 的连接资源耗尽问题。

同步配置客户端202,与各个数据交换总线201相连,获取各个数据交换总 线201存储的配置信息,将每一节点中数据交换总线201存储的该节点上的各 个进程的配置信息发给其他节点上的数据交换总线201。

其中,同步配置客户端202,在任意节点中的数据交换总线存储的配置信息 更新时,将该数据交换总线的更新的配置信息发给在线的任意其他数据交换总 线,并标识该配置信息来自同步配置客户端202;数据交换总线201,接收更新 的配置信息,在该更新的配置信息来自同步配置客户端202时,将该更新的配 置信息发给其他数据总线,并标识该配置信息来自数据交换总线。

可见,本发明通过由同步配置客户端202将更新的配置信息发给任意在线的 数据交换总线201,再由该数据交换总线将该更新的配置信息发给其他的数据交 换总线,可以实现配置信息的及时更新。其中,通过标识更新的配置信息的来 源,即是来源于同步配置客户端202,还是来源于数据交换总线201,还可以避 免由于数据交换总线在接收到更新的配置消息后即进行转发所引起的通信风 暴。

通过同步配置客户端201,还可以将新增节点中的数据交换总线存储的配置 信息发给在线的任意其他数据交换总线,并标识该配置信息来自同步配置客户 端;或者,指示当前存在的各节点清除已删除节点中各进程的配置信息。可见, 通过该同步配置客户端201,可以为系统添加新增节点、及时通信新增节点的配 置信息、以及及时清除已删除节点的配置信息。

本发明中,进程与数据交换总线之间采用键和键值形式(key value)的数据 包交换接口进行数据交互。当数据交换总线与进程之间采用key value的数据包 格式时,可以实现数据交换总线将一个数据处理请求拆分为多个任务,由多个 进程分别处理不同的任务以实现对该数据处理请求进行并行处理,其中,每个 进程根据自身的数据处理任务从数据包中抽取自身需要的数据,将数据处理结 果添加到数据包中返回给相应的数据交换总线。另外,还可以在数据包中预留 一定的键,以便后续扩展。

每个数据交换总线通过控制接口与同步配置客户端相连,通过该控制接口实 现与同步配置客户端以及其他数据交换总线的通信。另外,为了降低数据交换 总线的实现复杂度,每个数据交换总线与进程相连的接口可以划分为更新接口 和查询接口。其中,数据交换总线的更新接口,与该数据交换总线上的各个进 程相连,与各个进程交互需要处理的数据;数据交换总线的查询接口,与该数 据交换总线上的各个进程相连,用于根据进程的查询请求返回相应的查询结果。 可见,其中的更新接口专门用于进行数据处理所需的数据通信,查询接口专门 用于进行信息查询所需的数据通信。

本发明的数据交换总线中除了存储有所有进程的配置信息外,还可以进一步 存储所有进程的资源占用信息,例如已占用的资源量或者已占用的资源率等, 数据交换总线可以根据各个进程的配置信息以及资源占用信息协调各个进程的 工作,以便提高数据处理效率。具体协调方法请参见图3。

图3是本发明提供的数据交换总线的详细结构示意图。

如图3所示,该数据交换总线除了包括控制接口、更新接口和查询接口外, 还包括配置管理模块301、流程控制模块302、转发规则配置模块303和缓存队 列模块304。

配置管理模块301,与同步配置客户端相连,用于存储该数据交换总线所在 节点中各个进程的配置信息及资源占用信息,通过同步配置客户端获取其他节 点上各个进程的配置信息及资源占用信息并存储。

流程控制模块302,与该数据交换总线所在节点上的各个进程相连,接收该 节点上任意进程发起的数据处理请求,根据该数据处理请求确定需要进行数据 处理的进程及其处理顺序,按照该顺序将需要处理的数据依次发给相应的进程。

转发规则配置模块303,根据配置管理模块301中存储的各个进程的资源占 用信息,当有多个进程能够进行当前的数据处理时,确定由占用的资源最少或 者资源占用率最低的进程进行所述数据处理。

缓存队列模块304,用于缓存数据信息。

其中的缓存队列模块304是可选模块,用于在各个进程的数据处理速度不一 致时,对数据信息进行缓存,以使得数据处理过程能够顺利进行。

图2和图3中的数据交换总线的状态一共包括三种,分别为在线状态、离线 状态和断线状态。其中的在线状态和离线状态都是预先设置的状态,将数据交 换总线设置为在线状态时,相当于开启数据交换总线,即可以通过处于在线状 态的数据交换总线进行进程间的通信,将数据交换总线设置为离线状态时,相 当于关闭该数据交换总线,即不能通过处于离线状态的数据交换总线进行进程 间的通信。断线状态通常是不可预测的状态,一般由于系统故障等原因会引起 数据交换总线处于断线状态,为了避免短期断线状态导致数据交换总线一直不 可访问,本发明中,可以根据断线状态的持续时间控制对处于断线状态的数据 交换总线的访问频率。一般地,当访问某一数据交换总线状态连续失败预定次 数时,可以断定该数据交换总线处于断线状态,该数据交换总线处于断线状态 的时间越长,访问该数据交换总线的频率越低。

本发明还提供了用于实现进程间通信的方法,该方法包括:

每个节点上的每个进程通过在该节点中预先设置的数据交换总线与该节点 上的其他进程或者其他节点上的任意进程通信;其中,在每个节点中预先设置 数据交换总线,该节点中的所有进程与该数据交换总线相连,预先在该数据交 换总线中存储该节点上所有进程的配置信息,预先设置与所有数据交换总线相 连的同步配置客户端,通过该同步配置客户端获取各个数据交换总线存储的配 置信息,将每一节点中数据交换总线存储的该节点上的各个进程的配置信息发 给其他节点上的数据交换总线。

该方法还可以进一步包括:

同步配置客户端在任意节点中的数据交换总线存储的配置信息更新时,将该 数据交换总线的更新的配置信息发给在线的任意其他数据交换总线,并标识该 配置信息来自同步配置客户端;数据交换总线接收更新的配置信息,在该更新 的配置信息来自同步配置客户端时,将该更新的配置信息发给其他数据总线, 并标识该配置信息来自数据交换总线。

该方法还可以进一步包括:进程与数据交换总线之间采用以键和键值形式组 织的数据包进行数据交互。其中,以键和键值形式组织的数据包就是key value 格式的数据包。

所述通过在该节点中预先设置的数据交换总线与该节点上的其他进程或者 其他节点上的任意进程通信包括:每个数据交换总线接收该节点上任意进程发 起的数据处理请求,根据该数据处理请求确定需要进行数据处理的进程及其处 理顺序,按照该顺序将需要处理的数据依次发给相应的进程。

其中,每个数据交换总线可以存储该数据交换总线所在节点中各个进程的配 置信息及资源占用信息,获取其他节点上各个进程的配置信息及资源占用信息 并存储;相应地,所述按照该顺序将需要处理的数据依次发给相应的进程包括: 当有多个进程能够进行当前的数据处理时,根据各个进程的资源占用信息确定 由占用的资源最少或者资源占用率最低的进程进行所述数据处理。

在数据交换总线处于断线状态时,随着断线状态持续时间的增长,降低对该 数据交换总线的访问频率。

下面以图4为例,对本发明提供的进程间通信的方法进行示例性说明。

图4是本发明提供的进程间通信的示意性方法流程图。

图4所基于的系统中,进程A与总线A相连,总线A与总线B相连,请求 客户端通过总线B获取进程A的数据处理服务。具体地,图4所示流程包括:

步骤401,进程A向总线A发送上线请求。

步骤402,总线A向进程A返回该总线A中存储的该进程A的配置信息。

步骤403,总线A确认总线A返回的配置信息是否是该进程A最新的配置 信息,如果是,则向总线A返回确认请求,如果否,向总线A返回最新的配置 信息。

步骤404,总线A根据进程A返回的确认请求或者最新的配置信息,将进 程A的上线信息通过同步配置客户端同步给总线B。

步骤405,总线B向总线A返回同步确认信息。

其中的步骤401-405是进程配置信息的同步过程。

步骤406,请求客户端向总线B发送服务请求信息。

步骤407,总线B通过总线A向进程A转发服务请求信息。

步骤408,进程A将处理结果通过总线A返回给总线B。

步骤409,总线B将处理结果返回给请求客户端。

其中的步骤406-409是服务请求处理过程。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明 的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明 保护的范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号