CN113835909B - 一种基于消息框架的应用集成方法 - Google Patents

一种基于消息框架的应用集成方法 Download PDF

Info

Publication number
CN113835909B
CN113835909B CN202111160630.1A CN202111160630A CN113835909B CN 113835909 B CN113835909 B CN 113835909B CN 202111160630 A CN202111160630 A CN 202111160630A CN 113835909 B CN113835909 B CN 113835909B
Authority
CN
China
Prior art keywords
message
channel
endpoint
receiving
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111160630.1A
Other languages
English (en)
Other versions
CN113835909A (zh
Inventor
杨旸
褚孔统
牟苏斌
孟德鑫
耿嘉
杨柳静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 28 Research Institute
Original Assignee
CETC 28 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 28 Research Institute filed Critical CETC 28 Research Institute
Priority to CN202111160630.1A priority Critical patent/CN113835909B/zh
Publication of CN113835909A publication Critical patent/CN113835909A/zh
Application granted granted Critical
Publication of CN113835909B publication Critical patent/CN113835909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于消息框架的应用集成方法,包括步骤1:构建分布式消息框架;步骤2:对消息通道进行描述;步骤3:使用消息框架的消息端点代码生成工具生成消息端点代码;步骤4:开发应用程序;步骤5:通过消息框架的通道管理中心注册应用运行所需的消息通道;步骤6:应用程序通过通道管理中心获取通道信息实现消息发送端与接收端的匹配,基于消息端点直接在消息发送应用和接收应用间交换消息,并向监控中心上报交互统计信息,通过消息网关与外部系统交换消息。本发明基于分布式消息框架实现基于消息的应用集成控制部分与交互部分的分离,实现服务化的消息集成,通过通道构建应用间的集成关系,实现对集成关系中交互信息的管理。

Description

一种基于消息框架的应用集成方法
技术领域
本发明属于软件技术领域,特别是一种基于消息框架的应用集成方法。
背景技术
在分布式架构的计算机系统中,实现基于消息的应用集成可以分为2个部分,一个是控制部分,一个是交互部分。其中控制部分实现消息的提供者与消息的消费者的匹配逻辑,交互平面则基于控制平面的匹配结果将消息提供者发出的消息发送到适当的消息消费者。目前的广泛应用的消息中间件主要有消息队列和DDS(Data Distribution Service,数据分发服务)两种,采用这种架构的两种消息中间件在使用中存在的主要问题为:
消息队列中间件普遍采用中心转发的架构,在这种架构下,所有生成的消息均由消息处理服务器转发,因此,消息处理服务器成为了整个消息集成系统的瓶颈,为了支持高吞吐量和高可用性,需要构建消息处理服务器集群并支持水平扩展,但控制和交互混合的架构使集群内的各节点间需要进行控制信息的同步以及消息的转发,增大系统复杂性和消息的转发时延,并使系统的水平扩展困难。
DDS采用无中心体系结构,其控制部分和交互部分集成在一起分布在每个节点上,这样一方面由于需要在分布的节点间交换应用集成条件,增加了复杂性和节点额外的信息交换,另一方面每个节点都需要承担消息的匹配逻辑,增大了节点的负载。DDS的主题间没有关联,在DDS中缺少能够对应用间交互进行整体描述的方法,因此很难在应用消息集成的层面上对应用集成进行监视和管理;DDS的分发逻辑由消息消费者应用的订阅条件决定,但在需要由消息生产者决定分发逻辑的场景中需要专门定义区分目的端的KEY并进行过滤,进而造成在消息的定义中嵌入额外的数据项,或者将同一数据结构定义成不同名字的主题,进而导致数据结构维护困难。
基于以上原因,迫切需要一种一方面对消息集成的控制部分与交互部分的分离,对控制部分采用中心模式,实现对集成逻辑的高效管理,对交互部分采用分布式的点到点模式,提高消息交互的性能和可用性;另一方面采用消息定义和消息通道相结合的方式实现服务化的消息集成的应用集成方法。但是现有技术中尚无相关报道。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于消息框架的应用集成方法。
为了解决上述技术问题,本发明公开了一种基于消息框架的应用集成方法,包括以下步骤:
步骤1:构建分布式消息框架,消息框架由消息端点代码生成工具、消息端点、通道管理中心、监控中心和消息网关通过分布式远程连接构成;
步骤2:基于应用系统内应用间消息交互的需要设计消息通道,对消息通道进行描述;
步骤3:基于消息通道描述,使用消息框架的消息端点代码生成工具生成消息端点代码;
步骤4:基于生成的消息端点代码,开发应用程序;
步骤5:通过消息框架的通道管理中心注册应用运行所需的消息通道;
步骤6:应用程序通过消息框架的通道管理中心获取通道信息实现消息发送端与接收端的匹配,基于消息端点直接在消息发送应用和接收应用间交换消息,并向监控中心上报交互统计信息,通过消息网关与外部系统交换消息。
在一种实现方式中,步骤1中构建分布式消息框架,消息框架由消息端点代码生成工具、消息端点、通道管理中心、监控中心和消息网关通过分布式远程连接构成,包括:
步骤11:构造消息端点代码生成工具,所述消息端点代码生成工具能够基于消息通道描述自动生成对应的消息端点代码,支持开发人员基于这些代码开发相应的应用程序;消息端点代码生成工具支持基于同一通道定义生成基于不同开发语言的消息端点代码,实现不同语言应用的消息集成;
步骤12:构造消息端点,所述消息端点通过消息端点代码生成工具生成并嵌入在应用程序中,为应用程序提供发送和接收消息的编程接口,实现应用程序与分布式消息框架的连接;若消息端点为应用程序提供发送消息的编程接口,则所述消息端点为消息发送端点,若消息端点为应用程序提供接收消息的编程接口,则所述消息端点为消息接收端点;
步骤13:构造通道管理中心,所述通道管理中心对应用使用的通道信息进行注册和管理,基于通道信息实现消息发送端点和消息接收端点间的匹配,并将匹配的结果提供给相关的消息端点;
步骤14:构造监控中心,所述监控中心从各消息端点搜集消息发送和接收的状态信息以及统计数据,实现对应用间消息过程的监视和分析;
步骤15:构造消息网关,所述消息网关部署在应用系统的边界,实现应用系统对外部交互消息的统一发送和接收、负载均衡和协议转换功能,实现跨系统的应用集成。
步骤16:通过分布式远程连接消息端点、通道管理中心、监控中心和消息网关形成消息框架,消息端点远程连接到通道管理中心和监控中心获取通道信息并上报交互状态;基于从通道管理中心获取的通道信息,消息端点间直接发送和接收消息;消息端点通过消息网关发送和接收外部系统的消息。
在一种实现方式中,步骤2中基于应用系统内应用间消息交互的需要设计消息通道,对消息通道进行描述,包括:
步骤21:描述通道名称,通道名称用于唯一的标识该通道,通道名称在通道所在的域中应该是唯一的,在设置通道时可以使用名字空间进行限定。
步骤22:描述通道属性,通道属性包括消息发送模式、消息接收模式和QoS(Quality of Service,服务质量)要求,在运行时消息框架根据QoS要求选择合适的传输方式进行消息传输;
步骤23:描述通道类型:通道类型包括静态类型和动态类型,其中:
静态类型的通道在应用程序开发时确定;
动态类型的通道由应用程序在运行时基于通道的定义创建,通道的定义相当于一个模板,而动态生成通道的过程则是基于该模板创建一个通道的实例;由于动态通道的动态特性,因此动态类型的通道不能进行通道编排。
步骤24:描述消息定义,使用C语言的结构体定义方式对交互的消息及消息中的字段进行描述;消息定义可以定义在独立的文件中,并在多个通道描述中进行引用。
在一种实现方式中,步骤22中所述消息发送模式包括单点发送和多点发送,在单点发送中,只有一个消息发送端点能够向通道发送消息,直到该消息发送端点失效;在多点发送中,每个消息发送端点均能够向通道发送消息;
所述消息接收模式包括单点接式和多点接收,在单点接收中,一个消息只能被一个消息接收端点所接收;在多点接收中,一个消息可以被所有的消息接收端点所接收;
所述QoS要求包括消息可靠、传输可靠和实时,其中消息可靠指在消息发送端点和消息接收端点不同时在线的情况下能够保证消息按序的到达消息接收端点;传输可靠指在传输过程中使用可靠传输方式;实时指能够尽快的投递消息。
在一种实现方式中,步骤22中所述消息接收模式为单点接收时,提供备份模式和负载均衡模式,当备份模式时,发送到通道的所有的消息均由消息接收端点集合中的首个消息接收端点接收,直到该端点失效后选择下一个消息接收端点;当采用负载均衡模式时,则基于负载均衡策略在消息接收端点集合中选择合适的消息接收端点处理消息。
在一种实现方式中,步骤2对消息通道进行描述还包括:
步骤25:描述通道内消息类型,通道消息描述了能够在该通道中进行传输的消息类型,该项可选项,在未将通道与消息进行关联时,通道缺省使用预定义的Raw类型消息,在将通道与消息进行关联后,通道只提供对关联的消息类型的发送和接收,当发现从通道中收到的消息与通道关联的消息类型不符时,消息框架抛出异常进行提示。
在一种实现方式中,步骤3中所述消息端点代码包括消息和通道2个部分,消息部分基于消息定义实现消息的序列化/反序列化;通道部分基于通道描述实现通道的消息发送端点和消息接收端点,其中消息发送端点向通道管理中心注册本消息发送端点,从通道管理中心获取通道的配置信息和消息接收端点地址信息,并按照通道的配置信息将消息发送到合适的消息接收端点;通道的消息接收端点向通道管理中心注册本消息接收端点,以实现与指定通道的连接,并接收发送到该通道的消息,按照消息的类型调用相应的消息处理器。
在一种实现方式中,步骤6中所述应用程序通过消息框架的通道管理中心获取通道信息实现消息发送端与接收端的匹配,包括:
步骤61:消息发送端点启动后向通道管理中心查询对应通道的消息发送信息,所述消息发送信息包括消息接收端点地址和传输方式,并基于查询到的消息发送信息进行消息的发送,同时将消息发送信息缓存至本消息发送端点,在运行过程中接收通道管理中心推送的更新信息,并相应调整消息接收端点地址;
步骤62:消息接收端点启动后向通道管理中心查询对应通道的消息接收信息,所述消息接收信息包括消息发送端点地址和传输方式,按照消息接收信息进行相应的接收端设置,所述消息接收设置包括向通道管理中心注册本消息接收端点和建立监听器,同时将消息接收信息缓存至本消息接收端点;
步骤63:通道管理中心接收到消息发送端点的查询信息后,检查消息发送端点对应的通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则根据通道的模式从接收端地址表中选择匹配的消息接收端点地址发送至消息发送端点;
通道管理中心接收到消息接收端点的注册信息后,检测消息接收端点对应的消息通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则将消息接收端点上报的消息接收端点地址信息记录到通道的接收端地址表中;如果此时已经有消息发送端点连接到通道管理中心,则向该消息发送端点推送新加入地址表的消息接收端点地址。
在消息发送端点和消息接收端点上缓存消息发送端与接收端的匹配结果,使控制部分的短时失效不会导致整个进行集成的应用间无法交互,进而提高可用性。
在一种实现方式中,步骤6中所述向监控中心上报交互统计信息,包括消息发送端点定时向监控中心发送本息发送端点发送消息的统计信息;消息接收端点定时向监控中心发送本消息接收端点接收消息的统计信息。
在一种实现方式中,步骤6中所述通过消息网关与外部系统交换消息,包括消息网关基于与外部系统交互信息的需求进行配置,并基于该配置向消息管理中心注册消息接收端点和消息发送端点,并在接收到消息后,基于自身的消息转发表向外部系统或应用系统内转发消息。
本发明与现有技术相比,其有益效果为:1)实现消息集成的控制部分与交互部分的分离。对控制部分采用中心模式实现对集成逻辑的高效管理,构建通道管理中心和监控中心实现对消息集成过程的管理和监视;对交互部分采用分布式的点到点模式,一方面通过源端与目的端直接进行消息传输提高交互的性能,另一方面通过在消息发送和接收节点上缓存匹配结果,使控制部分的短时失效不会导致整个进行集成的应用间无法交互,进而提高可用性。2)消息框架采用消息定义和消息通道相结合的方式实现服务化的消息集成,通过通道构建应用间的集成关系,每个通道都是应用间的一种集成关系的抽象表示,通道与消息类型进行绑定,实现对集成关系中交互的信息的管理。同一个消息类型可以在不同通道中使用,提高消息类型定义的复用性,降低了开发的复杂度。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本申请实施例基于消息框架的应用集成方法中通道描述示例图。
图2是本申请实施例基于消息框架的应用集成方法中消息端点C++实现类图。
图3是本申请实施例基于消息框架的应用集成方法中消息发送应用示例图。
图4是本申请实施例基于消息框架的应用集成方法中消息接收应用示例图。
图5是本申请实施例基于消息框架的应用集成方法中消息交互流程图。
图6是本申请实施例提供的基于消息框架的应用集成方法的实现原理示意图。
具体实施方式
下面将结合附图,对本发明的实施例进行描述。
一种基于消息框架的应用集成方法,如图6所示,是基于分布式消息框架通过消息通道实现了集成应用间的解耦,通过服务化的消息类型和通道描述以及消息端点代码生成工具实现了消息的服务化定义和自动代码生成,通过通道管理中心和消息监控中心实现对消息交互的管理与监视。具体包括以下步骤:
步骤1:构建分布式消息框架,消息框架由消息端点代码生成工具、消息端点、通道管理中心、消息监控中心和消息网关基于分布式架构构成,其中构建分布式消息框架的具体步骤包括:
步骤11:构造消息端点代码生成工具,所述消息端点代码生成工具能够基于消息通道描述自动生成对应的消息端点代码,支持开发人员基于这些代码开发相应的应用程序;消息端点代码生成工具支持基于同一通道定义生成基于不同开发语言的消息端点代码;
步骤12:构造消息端点,所述消息端点通过消息端点代码生成工具生成并嵌入在应用程序中,为应用程序提供发送和接收消息的编程接口,实现应用程序与分布式消息框架的连接;若消息端点为应用程序提供发送消息的编程接口,则所述消息端点为消息发送端点,若消息端点为应用程序提供接收消息的编程接口,则所述消息端点为消息接收端点;
步骤13:构造通道管理中心,所述通道管理中心对应用使用的通道信息进行注册和管理,基于通道信息实现消息发送端点和消息接收端点间的匹配,并将匹配的结果提供给相关的消息端点;
步骤14:构造监控中心,所述监控中心从各消息端点搜集消息发送和接收的状态信息以及统计数据,实现对应用间消息过程的监视和分析;
步骤15:构造消息网关,所述消息网关部署在应用系统的边界,实现应用系统对外部交互消息的统一发送和接收、负载均衡和协议转换功能,实现跨系统的应用集成。
步骤16:通过分布式远程连接消息端点、通道管理中心、监控中心和消息网关形成消息框架,消息端点远程连接到通道管理中心和监控中心获取通道信息并上报交互状态;基于从通道管理中心获取的通道信息,消息端点间直接发送和接收消息;消息端点通过消息网关发送和接收外部系统的消息。
步骤2:基于应用系统内应用间消息交互的需要设计消息通道,并使用类C语言的形式化方式对消息通道进行描述,结合图1,具体步骤包括:
步骤21:描述通道名称,通道名称用于唯一的标识该通道,通道名称在通道所在的域中应该是唯一的,在设置通道时可以使用名字空间进行限定。
步骤22:描述通道属性:通道属性包括消息发送模式、消息接收模式和QoS要求等,在运行时消息框架根据QoS要求选择合适的传输方式进行消息传输。其中:
所述消息发送模式包括单点发送和多点发送,在单点发送中,只有一个消息发送端点能够向通道发送消息,直到该消息发送端点失效;在多点发送中,每个消息发送端点均能够向通道发送消息;
所述消息接收模式包括单点接式和多点接收,在单点接收中,一个消息只能被一个消息接收端点所接收;在多点接收中,一个消息可以被所有的消息接收端点所接收;在单点接收中,提供备份模式和负载均衡模式,当备份模式时,发送到通道的所有的消息均由消息接收端点集合中的首个消息接收端点接收,直到该端点失效后选择下一个消息接收端点;当采用负载均衡模式时,则基于负载均衡策略在消息接收端点集合中选择合适的消息接收端点处理消息;
所述QoS要求包括消息可靠、传输可靠和实时,其中消息可靠指在消息发送端点和消息接收端点不同时在线的情况下能够保证消息按序的到达消息接收端点,从而保证了消息的完整性;传输可靠指在传输过程中使用可靠传输方式;实时指能够尽快的投递消息。
所述在运行时消息框架根据QoS要求选择合适的传输方式进行消息传输,包括:消息可靠采用基于存储转发的消息传输方式,传输可靠采用基于TCP(Transmission ControlProtocol,传输控制协议)或HTTP(HyperText Transfer Protocol,超文本传输协议)等面向连接的传输方式,实时采用UDP(User Datagram Protocol,用户数据报协议)等无连接的传输方式。
步骤23:描述通道类型:通道类型包括静态类型和动态类型,其中:
静态类型的通道在应用程序开发时确定;
动态类型的通道由应用程序在运行时基于通道的定义创建,通道的定义相当于一个模板,而动态生成通道的过程则是基于该模板创建一个通道的实例。由于动态通道的动态特性,因此动态类型的通道不能进行通道编排。
步骤24:描述消息定义,使用C语言的结构体定义方式对交互的消息及消息中的字段进行描述;消息定义可以定义在独立的文件中,并在多个通道描述中进行引用。
步骤25:描述通道内消息类型:通道消息描述了可以在该通道中进行传输的消息类型,该项可选项,在未将通道与消息进行关联时,通道缺省使用预定义的Raw类型消息,在将通道与消息进行关联后,通道只提供对关联的消息类型的发送和接收,当发现从通道中收到的消息与通道关联的消息类型不符时,抛出异常进行提示。
步骤3:基于消息通道描述,使用消息框架的消息端点代码生成工具生成指定开发语言对应的消息端点代码;消息端点由消息端点代码生成工具按照通道定义自动生成。消息端点代码包括消息和通道2个部分,消息部分基于消息的定义实现消息的序列化/反序列化;通道部分基于通道描述实现通道的消息发送端点和消息接收端点,其中消息发送端点向通道管理中心注册本消息发送端点,从通道管理中心获取通道的配置信息和消息接收端点地址信息,并按照通道的配置信息将消息发送到合适的消息接收端点;通道的消息接收端点向通道管理中心注册本消息接收端点,以实现与指定通道的连接,并接收发送到该通道的消息,按照消息的类型调用相应的消息处理器。在自动生成代码的过程中,根据通道定义中所采用的不同的传输方式生成适配不同传输方式的框架代码,并在提供开发人员的接口上实现接口风格的统一。以C++语言为例,消息端点的UML静态结构如图2所示。
步骤4:基于生成的消息端点代码,使用指定的开发语言完成应用程序开发,以C++语言为例,消息发送应用代码如图3所示,消息接收应用代码如图4所示。
步骤5:通过消息框架的通道管理中心注册应用运行所需的消息通道;
步骤6:应用程序通过消息框架的通道管理中心获取通道信息实现消息发送端与接收端的匹配,基于消息端点直接在消息发送应用和接收应用间交换消息,并向监控中心上报交互统计信息,通过消息网关与外部系统交换消息。结合图5,具体步骤包括:
步骤61:消息发送端点启动后向通道管理中心查询对应通道的消息发送信息,所述消息发送信息包括消息接收端点地址和传输方式,并基于查询到的消息发送信息进行消息的发送,同时将消息发送信息缓存至本消息发送端点,在运行过程中接收通道管理中心推送的更新信息,并相应调整消息接收端点地址;
步骤62:消息接收端点启动后向通道管理中心查询对应通道的消息接收信息,所述消息接收信息包括消息发送端点地址和传输方式,按照消息接收信息进行相应的接收端设置,所述消息接收设置包括向通道管理中心注册本消息接收端点和建立监听器,同时将消息接收信息缓存至本消息接收端点;
步骤63:通道管理中心接收到消息发送端点的查询信息后,检查消息发送端点对应的通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则根据通道的模式从接收端地址表中选择匹配的消息接收端点地址发送至消息发送端点;
通道管理中心接收到消息接收端点的注册信息后,检测消息接收端点对应的消息通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则将消息接收端点上报的消息接收端点地址信息记录到通道的接收端地址表中;如果此时已经有消息发送端点连接到通道管理中心,则向该消息发送端点推送新加入地址表的消息接收端点地址。
步骤64:消息发送端点定时向监控中心发送本息发送端点发送消息的统计信息;消息接收端点定时向监控中心发送本消息接收端点接收消息的统计信息。
步骤65:消息网关基于与外部系统交互信息的需求进行配置,并基于该配置向消息管理中心注册消息接收端点和消息发送端点,并在接收到消息后,基于自身的消息转发表向外部系统或应用系统内转发消息。
本发明提供了一种基于消息框架的应用集成方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (7)

1.一种基于消息框架的应用集成方法,其特征在于,包括以下步骤:
步骤1:构建分布式消息框架,消息框架由消息端点代码生成工具、消息端点、通道管理中心、监控中心和消息网关通过分布式远程连接构成;
步骤2:基于应用系统内应用间消息交互的需要设计消息通道,对消息通道进行描述;
步骤3:基于消息通道描述,使用消息框架的消息端点代码生成工具生成消息端点代码;
步骤4:基于生成的消息端点代码,开发应用程序;
步骤5:通过消息框架的通道管理中心注册应用运行所需的消息通道;
步骤6:应用程序通过消息框架的通道管理中心获取通道信息实现消息发送端与接收端的匹配,基于消息端点直接在消息发送应用和接收应用间交换消息,并向监控中心上报交互统计信息,通过消息网关与外部系统交换消息;
步骤1中构建分布式消息框架,消息框架由消息端点代码生成工具、消息端点、通道管理中心、监控中心和消息网关通过分布式远程连接构成,包括:
步骤11:构造消息端点代码生成工具,所述消息端点代码生成工具能够基于消息通道描述自动生成对应的消息端点代码,支持开发人员基于这些代码开发相应的应用程序;消息端点代码生成工具支持基于同一通道定义生成基于不同开发语言的消息端点代码;
步骤12:构造消息端点,所述消息端点通过消息端点代码生成工具生成并嵌入在应用程序中,为应用程序提供发送和接收消息的编程接口,实现应用程序与分布式消息框架的连接;若消息端点为应用程序提供发送消息的编程接口,则所述消息端点为消息发送端点,若消息端点为应用程序提供接收消息的编程接口,则所述消息端点为消息接收端点;
步骤13:构造通道管理中心,所述通道管理中心对应用使用的通道信息进行注册和管理,基于通道信息实现消息发送端点和消息接收端点间的匹配,并将匹配的结果提供给相关的消息端点;
步骤14:构造监控中心,所述监控中心从各消息端点搜集消息发送和接收的状态信息以及统计数据,实现对应用间消息过程的监视和分析;
步骤15:构造消息网关,所述消息网关部署在应用系统的边界,实现应用系统对外部交互消息的统一发送和接收、负载均衡和协议转换功能,实现跨系统的应用集成;
步骤16:通过分布式远程连接消息端点、通道管理中心、监控中心和消息网关形成消息框架,消息端点远程连接到通道管理中心和监控中心获取通道信息并上报交互状态;基于从通道管理中心获取的通道信息,消息端点间直接发送和接收消息;消息端点通过消息网关发送和接收外部系统的消息;
步骤2中基于应用系统内应用间消息交互的需要设计消息通道,对消息通道进行描述,包括:
步骤21:描述通道名称,通道名称用于唯一的标识该通道,通道名称在通道所在的域中应该是唯一的,在设置通道时使用名字空间进行限定;
步骤22:描述通道属性,通道属性包括消息发送模式、消息接收模式和QoS要求,在运行时消息框架根据QoS要求选择合适的传输方式进行消息传输;
步骤23:描述通道类型:通道类型包括静态类型和动态类型,其中:
静态类型的通道在应用程序开发时确定;
动态类型的通道由应用程序在运行时基于通道的定义创建,通道的定义相当于一个模板,而动态生成通道的过程则是基于该模板创建一个通道的实例;
步骤24:描述消息定义,使用C语言的结构体定义方式对交互的消息及消息中的字段进行描述;消息定义可以定义在独立的文件中,并在两个以上的通道描述中进行引用;
步骤6中所述应用程序通过消息框架的通道管理中心获取通道信息实现消息发送端与接收端的匹配,包括:
步骤61:消息发送端点启动后向通道管理中心查询对应通道的消息发送信息,所述消息发送信息包括消息接收端点地址和传输方式,并基于查询到的消息发送信息进行消息的发送,同时将消息发送信息缓存至本消息发送端点,在运行过程中接收通道管理中心推送的更新信息,并相应调整消息接收端点地址;
步骤62:消息接收端点启动后向通道管理中心查询对应通道的消息接收信息,所述消息接收信息包括消息发送端点地址和传输方式,按照消息接收信息进行相应的接收端设置,所述接收端设置包括向通道管理中心注册本消息接收端点和建立监听器,同时将消息接收信息缓存至本消息接收端点;
步骤63:通道管理中心接收到消息发送端点的查询信息后,检查消息发送端点对应的通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则根据通道的模式从接收端地址表中选择匹配的消息接收端点地址发送至消息发送端点;
通道管理中心接收到消息接收端点的注册信息后,检测消息接收端点对应的消息通道是否已经注册,如果未注册则返回端点异常信息,如果已经注册,则将消息接收端点上报的消息接收端点地址信息记录到通道的接收端地址表中;如果此时已经有消息发送端点连接到通道管理中心,则向该消息发送端点推送新加入地址表的消息接收端点地址。
2.根据权利要求1所述的一种基于消息框架的应用集成方法,其特征在于,步骤22中所述消息发送模式包括单点发送和多点发送,在单点发送中,只有一个消息发送端点能够向通道发送消息,直到该消息发送端点失效;在多点发送中,每个消息发送端点均能够向通道发送消息;
所述消息接收模式包括单点接式和多点接收,在单点接收中,一个消息只能被一个消息接收端点所接收;在多点接收中,一个消息能够被所有的消息接收端点所接收;
所述QoS要求包括消息可靠、传输可靠和实时,其中消息可靠指在消息发送端点和消息接收端点不同时在线的情况下能够保证消息按序的到达消息接收端点;传输可靠指在传输过程中使用可靠传输方式;实时指能够尽快的投递消息。
3.根据权利要求2所述的一种基于消息框架的应用集成方法,其特征在于,步骤22中所述消息接收模式为单点接收时,提供备份模式和负载均衡模式,当备份模式时,发送到通道的所有的消息均由消息接收端点集合中的首个消息接收端点接收,直到该端点失效后选择下一个消息接收端点;当采用负载均衡模式时,则基于负载均衡策略在消息接收端点集合中选择合适的消息接收端点处理消息。
4.根据权利要求1所述的一种基于消息框架的应用集成方法,其特征在于,步骤2对消息通道进行描述还包括:
步骤25:描述通道内消息类型,在未将通道与消息进行关联时,通道缺省使用预定义的Raw类型消息,在将通道与消息进行关联后,通道只提供对关联的消息类型的发送和接收,当发现从通道中收到的消息与通道关联的消息类型不符时,消息框架抛出异常进行提示。
5.根据权利要求3所述的一种基于消息框架的应用集成方法,其特征在于,步骤3中所述消息端点代码包括消息和通道2个部分,消息部分基于消息的定义实现消息的序列化/反序列化;通道部分基于通道描述实现通道的消息发送端点和消息接收端点,其中消息发送端点向通道管理中心注册本消息发送端点,从通道管理中心获取通道的配置信息和消息接收端点地址信息,并按照通道的配置信息将消息发送到合适的消息接收端点;通道的消息接收端点向通道管理中心注册本消息接收端点,以实现与指定通道的连接,并接收发送到该通道的消息,按照消息的类型调用相应的消息处理器。
6.根据权利要求1所述的一种基于消息框架的应用集成方法,其特征在于,步骤6中所述向监控中心上报交互统计信息,包括消息发送端点定时向监控中心发送本息发送端点发送消息的统计信息;消息接收端点定时向监控中心发送本消息接收端点接收消息的统计信息。
7.根据权利要求1所述的一种基于消息框架的应用集成方法,其特征在于,步骤6中所述通过消息网关与外部系统交换消息,包括消息网关基于与外部系统交互信息的需求进行配置,并基于该配置向消息管理中心注册消息接收端点和消息发送端点,并在接收到消息后,基于自身的消息转发表向外部系统或应用系统内转发消息。
CN202111160630.1A 2021-09-30 2021-09-30 一种基于消息框架的应用集成方法 Active CN113835909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111160630.1A CN113835909B (zh) 2021-09-30 2021-09-30 一种基于消息框架的应用集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111160630.1A CN113835909B (zh) 2021-09-30 2021-09-30 一种基于消息框架的应用集成方法

Publications (2)

Publication Number Publication Date
CN113835909A CN113835909A (zh) 2021-12-24
CN113835909B true CN113835909B (zh) 2023-10-24

Family

ID=78967975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111160630.1A Active CN113835909B (zh) 2021-09-30 2021-09-30 一种基于消息框架的应用集成方法

Country Status (1)

Country Link
CN (1) CN113835909B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152094B1 (en) * 2001-07-31 2006-12-19 Sprint Communications Company L.P. Middleware brokering system adapter
CN101141742A (zh) * 2007-10-12 2008-03-12 中兴通讯股份有限公司 一种终端的应用通信方法
CN101534263A (zh) * 2009-04-28 2009-09-16 杭州华三通信技术有限公司 一种消息交互的方法、系统和设备
CN102420862A (zh) * 2011-11-29 2012-04-18 上海计算机软件技术开发中心 一种物联网中间件消息描述结构以及形态转换方法
CN104618221A (zh) * 2015-01-06 2015-05-13 厦门雅迅网络股份有限公司 一种去中心化的消息服务系统
CN105554089A (zh) * 2015-12-10 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种基于dds标准的“请求-响应”式数据通信方法
CN109871348A (zh) * 2013-09-28 2019-06-11 迈克菲股份有限公司 安全连接的框架
CN110601980A (zh) * 2019-08-26 2019-12-20 中国第一汽车股份有限公司 一种车载终端的通信方法、系统及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810064B2 (en) * 2018-04-27 2020-10-20 Nasdaq Technology Ab Publish-subscribe framework for application execution

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152094B1 (en) * 2001-07-31 2006-12-19 Sprint Communications Company L.P. Middleware brokering system adapter
CN101141742A (zh) * 2007-10-12 2008-03-12 中兴通讯股份有限公司 一种终端的应用通信方法
CN101534263A (zh) * 2009-04-28 2009-09-16 杭州华三通信技术有限公司 一种消息交互的方法、系统和设备
CN102420862A (zh) * 2011-11-29 2012-04-18 上海计算机软件技术开发中心 一种物联网中间件消息描述结构以及形态转换方法
CN109871348A (zh) * 2013-09-28 2019-06-11 迈克菲股份有限公司 安全连接的框架
CN104618221A (zh) * 2015-01-06 2015-05-13 厦门雅迅网络股份有限公司 一种去中心化的消息服务系统
CN105554089A (zh) * 2015-12-10 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种基于dds标准的“请求-响应”式数据通信方法
CN110601980A (zh) * 2019-08-26 2019-12-20 中国第一汽车股份有限公司 一种车载终端的通信方法、系统及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"A Generic Application Sharing Architecture Based on Message-Oriented Middleware Platform";Hui-chieh Lu;《2006 10th International Conference on Computer Supported Cooperative Work in Design》;全文 *
"基于JMS的统一消息推送平台的设计与实现";谢坤君;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 *
严红." 数据中心的数据体系架构及关键技术".《指挥信息系统与技术》.2017,全文. *
发布订阅系统软件框架的设计与实现;胡艺;王希敏;;舰船电子工程(第05期);全文 *

Also Published As

Publication number Publication date
CN113835909A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US8301687B2 (en) Systems and/or methods for standards-based messaging
US7827275B2 (en) Method and system for remotely accessing devices in a network
EP3734913A1 (en) Communication method and communication apparatus
CN102497451B (zh) 服务处理系统和服务处理方法
US20070162567A1 (en) Managing network-enabled devices
CN113411215B (zh) 基于opc ua的时间敏感网络集中用户配置方法及系统
WO2004071014A1 (ja) Snmpプロキシエージェント、及び管理情報中継方法
CN112838940B (zh) 一种网络控制器框架和数据处理方法
US8005915B2 (en) Method for providing download and upload service in network control system
US7020717B1 (en) System and method for resynchronizing interprocess communications connection between consumer and publisher applications by using a shared state memory among message topic server and message routers
CN106899605B (zh) 基于stomp协议的通信方法和装置
CN112527523A (zh) 面向高性能计算多云的分布式消息传递方法及系统
CN116319732A (zh) 一种基于RabbitMQ的消息队列集中配置管理系统及方法
CN113347195B (zh) 一种物联网设备通信协议包动态挂载系统及方法
CN110557321B (zh) 一种信息传输方法、网络设备及终端
CN113835909B (zh) 一种基于消息框架的应用集成方法
CN101499031A (zh) 软件错误反馈系统及方法
JP2002196931A (ja) サービス・ゲートウェイのための提供機構
US20200162410A1 (en) Management of messaging in heterogeneous iot / iiot messaging environments
CN116389552A (zh) 一种基于发布订阅模型的异构数据传输系统
US20100185714A1 (en) Distributed communications between database instances
US20100250684A1 (en) High availability method and apparatus for shared resources
CN114025005B (zh) 一种数据通讯方法、系统、电子设备及存储介质
Al-Shaer A dynamic group management framework for large-scale distributed event monitoring
CN106487694B (zh) 一种数据流处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant