一种模块间通信的方法、装置及计算设备制造方法及图纸

技术编号:16152673 阅读:69 留言:0更新日期:2017-09-06 18:11
本发明专利技术实施例提供一种模块间通信的方法、装置及计算设备,应用于第一计算设备,用以解决现有技术中基于IP和端口的模块间通信方法无法区分模块间通信类型的问题。该方法包括:在模块间通信的软件模块发送方获得通信消息包后,解析获得通信消息包中的目的地址;其中,目的地址采用进程名、模块名、逻辑机器名及进程主备状态进行标识;基于目的地址确定与进程相关的模块间通信类型;采用与模块间通信类型对应的模块间通信方式,将通信消息包发送给模块间通信的软件模块接收方;通过采用进程名、模块名、逻辑机器名及进程主备状态对模块通信双方的软件模块及它们所发送的通信消息包中的目的地址进行标识,实现对模块间通信类型进行区分。

【技术实现步骤摘要】
一种模块间通信的方法、装置及计算设备
本专利技术实施例涉及数字通信
,尤其涉及一种模块间通信的方法、装置及计算设备。
技术介绍
操作系统中及基于操作系统开发的应用软件中的软件模块之间,需要进行交互式通信收发通信消息包,以实现数据交换。软件模块与软件模块之间的数据交互通信,即模块间通信包括:进程内通信和进程间通信;其中,进程间通信包括:同一计算设备内的进程间通信,不同计算设备间的进程间通信。统一的通信接口才会使通信透明简单,从而在软件开发阶段全力于业务逻辑的实现,因此,在大多数情况下,模块间通信的双方都是通过绑定的IP和端口进行身份识别,并收发通信消息包。然而,专利技术人在实现本专利技术实施例中的技术方案的过程中发现,现有模块间通信的方法至少存在如下技术问题:在实际应用中,现有基于IP和端口的模块间通信方法无法区分模块间通信类型,进而不能针对不同的模块间通信类型采用能提高通信效率和带宽利用率的模块间通信方式进行模块间通信。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种模块间通信的方法、装置及计算设备,用以解决现有技术中基于IP和端口的模块间通信方法无法区分模块间通信类型的缺陷,通过采用进程名、模块名、逻辑机器名及进程主备状态对模块通信双方的软件模块及它们所发送的通信消息包中的目的地址进行标识,实现对模块间通信类型进行区分,进而针对不同的模块间通信类型采用对应的模块间通信方式发送通信消息包,提高模块间通信的通信效率和带宽利用率。为了实现上述目的,本专利技术实施例中采用的技术方案如下:第一方面,本专利技术实施例中提供一种模块间通信的方法,应用于第一计算设备,所述第一计算设备及与所述第一计算设备通信的至少一个第二计算设备的软件模块采用进程名、模块名、逻辑机器名及进程主备状态进行标识;其中,所述进程名为基于所处理的业务预定义的进程名称,所述模块名为预定义的软件模块名称,所述逻辑机器名为预定义的计算设备的逻辑硬件名称,所述进程主备状态为由进程主备管理节点确定的主进程状态和备进程状态;所述方法包括:在模块间通信的软件模块发送方获得通信消息包后,解析获得所述通信消息包中的目的地址;其中,所述目的地址中具有进程名、模块名、逻辑机器名及进程主备状态标记;基于所述目的地址确定与进程相关的模块间通信类型;采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方。可能的实施方式中,如果基于所述目的地址确定与进程相关的模块间通信类型为进程内通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方的步骤,具体为:采用与进程内通信对应的内部消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,内部消息队列通信方式包括普通消息队列通信方式和内存消息队列通信方式。可能的实施方式中,如果内部消息队列通信方式为所述内存消息队列通信方式,所述采用与进程内通信对应的内部消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:将所述通信消息包内存指针写入内存消息队列,以使所述模块间通信的所述软件模块接收方从所述内存消息队列中获取所述通信消息包的内存指针,基于所述通信消息包的内存指针获取所述通信消息包的内容。可能的实施方式中,如果基于所述目的地址确定与进程相关的模块间通信类型为同一计算设备内的进程间通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:采用与同一计算设备内的进程间通信对应的系统消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,所述系统消息队列为进程对外消息接口中包括的系统消息队列。可能的实施方式中,如果基于所述目的地址确定的模块间通信类型为不同计算设备间的进程间通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:采用与不同计算设备间的进程间通信对应的IP和端口号通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,所述IP和端口号为基于所述进程名及所述进程名对应的进程所拥有的端口资源而得到的进程对外消息接口中包括的IP和端口号。可能的实施方式中,所述方法还包括:在所述模块间通信的所述软件模块接收方收到所述通信消息包后,解析收到的所述通信消息包中的所述目的地址;如果能解析到所述目的地址,基于所述目的地址派发所述通信消息包;如果不能解析到所述目的地址,将所述通信消息包作为异常消息处理。可能的实施方式中,在模块间通信的软件模块发送方获得通信消息包之前,所述方法还包括:在每一个进程内确定一通信收发模块;基于每一个进程的所述通信收发模块的模块注册接口,将每一个进程内的所述软件模块基于模块名注册到所述通信收发模块中并创建所述软件模块对应的消息队列;在所有进程完成进程内的软件模块注册后,获得一用于软件模块间进行通信地址转换的地址映射表;其中,所述地址映射表为进程名、模块名、逻辑机器名及进程主备状态,消息队列,IP和端口的映射表;所述消息队列包括内部消息队列和系统消息队列。第二方面,本专利技术实施例中提供一种模块间通信的装置,应用于第一计算设备,所述第一计算设备及与所述第一计算设备通信的至少一个第二计算设备的软件模块采用进程名、模块名、逻辑机器名及进程主备状态进行标识;其中,所述进程名为基于所处理的业务预定义的进程名称,所述模块名为预定义的软件模块名称,所述逻辑机器名为预定义的计算设备的逻辑硬件名称,所述进程主备状态为由进程主备管理节点确定的主进程状态和备进程状态;所述装置包括:通信消息包解析单元,用于在模块间通信的软件模块发送方获得通信消息包后,解析获得所述通信消息包中的目的地址;其中,所述目的地址中具有进程名、模块名、逻辑机器名及进程主备状态标记;通信类型确定单元,用于基于所述目的地址确定与进程相关的模块间通信类型;通信消息包发送单元,用于采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方。可能的实施方式中,如果基于所述目的地址确定与进程相关的模块间通信类型为进程内通信,所述通信消息包发送单元,具体用于:采用与进程内通信对应的内部消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,内部消息队列通信方式包括普通消息队列通信方式和内存消息队列通信方式。可能的实施方式中,如果内部消息队列通信方式为所述内存消息队列通信方式,所述通信消息包发送单元,具体用于:将所述通信消息包内存指针写入内存消息队列,以使所述模块间通信的所述软件模块接收方从所述内存消息队列中获取所述通信消息包的内存指针,基于所述通信消息包的内存指针获取所述通信消息包的内容。可能的实施方式中,如果基于所述目的地址确定与进程相关的模块间通信类型为同一计算设备内的进程间通信,所述通信消息包发送单元,具体用于:采用与同一计算设备内的进程间通信对应的系统消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,所述系统消息队列为进程对外消息接口本文档来自技高网...
一种模块间通信的方法、装置及计算设备

【技术保护点】
一种模块间通信的方法,应用于第一计算设备,其特征在于,所述第一计算设备及与所述第一计算设备通信的至少一个第二计算设备的软件模块采用进程名、模块名、逻辑机器名及进程主备状态进行标识;其中,所述进程名为基于所处理的业务预定义的进程名称,所述模块名为预定义的软件模块名称,所述逻辑机器名为预定义的计算设备的逻辑硬件名称,所述进程主备状态为由进程主备管理节点确定的主进程状态和备进程状态;所述方法包括:在模块间通信的软件模块发送方获得通信消息包后,解析获得所述通信消息包中的目的地址;其中,所述目的地址中具有进程名、模块名、逻辑机器名及进程主备状态标记;基于所述目的地址确定与进程相关的模块间通信类型;采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方。

【技术特征摘要】
1.一种模块间通信的方法,应用于第一计算设备,其特征在于,所述第一计算设备及与所述第一计算设备通信的至少一个第二计算设备的软件模块采用进程名、模块名、逻辑机器名及进程主备状态进行标识;其中,所述进程名为基于所处理的业务预定义的进程名称,所述模块名为预定义的软件模块名称,所述逻辑机器名为预定义的计算设备的逻辑硬件名称,所述进程主备状态为由进程主备管理节点确定的主进程状态和备进程状态;所述方法包括:在模块间通信的软件模块发送方获得通信消息包后,解析获得所述通信消息包中的目的地址;其中,所述目的地址中具有进程名、模块名、逻辑机器名及进程主备状态标记;基于所述目的地址确定与进程相关的模块间通信类型;采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方。2.根据权利要求1所述的方法,其特征在于,如果基于所述目的地址确定与进程相关的模块间通信类型为进程内通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的软件模块接收方的步骤,具体为:采用与进程内通信对应的内部消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,内部消息队列通信方式包括普通消息队列通信方式和内存消息队列通信方式。3.根据权利要求2所述的方法,其特征在于,如果内部消息队列通信方式为所述内存消息队列通信方式,所述采用与进程内通信对应的内部消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:将所述通信消息包内存指针写入内存消息队列,以使所述模块间通信的所述软件模块接收方从所述内存消息队列中获取所述通信消息包的内存指针,基于所述通信消息包的内存指针获取所述通信消息包的内容。4.根据权利要求1所述的方法,其特征在于,如果基于所述目的地址确定与进程相关的模块间通信类型为同一计算设备内的进程间通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:采用与同一计算设备内的进程间通信对应的系统消息队列通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,所述系统消息队列为进程对外消息接口中包括的系统消息队列。5.根据权利要求1所述的方法,其特征在于,如果基于所述目的地址确定的模块间通信类型为不同计算设备间的进程间通信,所述采用与所述模块间通信类型对应的模块间通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方的步骤,具体为:采用与不同计算设备间的进程间通信对应的IP和端口号通信方式,将所述通信消息包发送给所述模块间通信的所述软件模块接收方;其中,所述IP和端口号为基于所述进程名及所述进程名对应的进程所拥有的端口资源而得到的进程对外消息接口中包括的IP和端口号。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:在所述模块间通信的所述软件模块接收方收到所述通信消息包后,解析收到的所述通信消息包中的所述目的地址;如果能解析到所述目的地址,基于所述目的地址派发所述通信消息包;如果不能解析到所述目的地址,将所述通信消息包作为异常消息处理。7.根据权利要求1-5中任一项所述的方法,其特征在于,在模块间通信的软件模块发送方获得通信消息包前,所述方法还包括:在每一个进程内确定一通信收发模块;基于每一个进程的所述通信收发模块的模块注册接口,将每一个进程内的所述软件模块基于模块名注册到所述通信收发模块中并创建所述软件模块对应的消息队列;在所有进程完成进程内的软件模块注册后,获得一用于软件模块间进行通信地址转换的地址映射表;其中,所述地址映射表为进程名、模块名、逻辑机器名及进程主备状态,消息队列,IP和端口的映射表;所述消息队列包括内部消息队列和系统消息队列。8.一种模块间通信的装置,应用于...

【专利技术属性】
技术研发人员:覃炳达李高明黄剑鸿
申请(专利权)人:京信通信系统广州有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1