首页 / 专利库 / 软件 / 软件 / 基于可重构的分布式软件总线

基于可重构的分布式软件总线

阅读:770发布:2021-04-13

专利汇可以提供基于可重构的分布式软件总线专利检索,专利查询,专利分析的服务。并且本 发明 提出一种基于可重构的分布式 软件 总线,包括总线库模 块 、总线 节点 代理模块、总线监控模块和总线配置服务模块;总线库模块是为节点提供使用总线服务的API 接口 ;总线节点代理模块是节点在软件总线的网络代理,每台主机上仅部署总线节点代理模块的一个实例,完成本地主机上的节点与其它主机上的节点的数据交换;总线监控模块用于对节点组成关系、发布订阅关系、数据交互状态的监视;总线配置服务模块用于对总线中各个节点的参数进行编辑。本发明解决重构系统中,多层次软件/组件、跨平台异构系统的软件集成及组件灵活重组与重构问题,具有无中心自组网、传输策略可控制、通信节点可迁移、软件/组件可重组等特点。,下面是基于可重构的分布式软件总线专利的具体信息内容。

1.一种基于可重构的分布式软件总线,其特征在于:包括总线库模、总线节点代理模块、总线监控模块和总线配置服务模块;
所述总线库模块是为节点提供使用总线服务的API接口,完成节点注册、主题发布和/或订阅、主题数据发送和/或接收操作;所述节点指使用软件总线进行通信的各应用软件或组件;
所述总线节点代理模块是节点在软件总线的网络代理,每台主机上仅部署总线节点代理模块的一个实例,完成本地主机上的节点与其它主机上的节点的数据交换;
所述总线监控模块用于对以下系统属性的监视:包括节点组成关系、发布订阅关系、数据交互状态;
所述总线配置服务模块用于对总线中各个节点的参数进行编辑,参数包括节点名称、节点所属域信息、节点发布的主题信息、节点订阅的主题信息。
2.根据权利要求1所述一种基于可重构的分布式软件总线,其特征在于:总线库模块包括网络交互管理、总线状态管理和数据收发管理三个功能模块:
所述网络交互管理模块完成底层网络连接管理和底层网络数据的交互,其中底层网络连接管理包括对节点地址的动态获取、网络连接建立以及网络连接状态的实时监控;底层网络数据的交互指底层数据报文的收发;
所述总线状态管理模块完成节点的总线注册和注销管理、节点加入和退出域管理、节点的主题发布和取消发布管理以及节点的主题订阅和取消订阅管理;
所述数据收发管理模块提供节点进行实际应用数据的发送和接收接口。
3.根据权利要求1所述一种基于可重构的分布式软件总线,其特征在于:总线节点代理模块包括网络管理和总线调度两个功能模块:
所述网络管理模块包括网络连接管理与数据引擎两部分:网络连接管理完成总线节点代理模块与本地主机应用软件、与其他主机的总线节点代理模块以及与总线监控模块之间的TCP连接建立与管理;数据引擎完成总线数据的收发,总线数据包括总线状态报文和数据报文;
所述总线调度模块完成注册管理、域管理和主题管理:注册管理完成节点在软件总线的注册和注销;域管理通过节点注册并加入域时提供的节点所属域信息,将不同的节点分配到不同的域进行管理,并通过域限定节点的信息交互范围,不同域内的总线节点不能交互数据;主题管理对节点注册的主题信息进行管理和维护。

说明书全文

基于可重构的分布式软件总线

技术领域

[0001] 本发明属于通信软件中间件领域,涉及服务器、桌面操作系统嵌入式系统等多个平台的互联、互通和互操作技术,具体为一种基于可重构的分布式软件总线。

背景技术

[0002] 软件总线是一种软件中间件,主要解决异构网络环境下分布式应用软件的设计阶段建模、(半)自动化编码、运行期通信、互操作和协同、不同迭代周期的无缝衔接与扩展等问题,它可屏蔽软硬件系统异构性、网络通信、多流程并发控制、事务管理、可靠性保障、数据存储、运行状态监控等各种实现细节,提高应用系统的易移植性、适应性、可扩展性和可靠性。
[0003] 已有较成熟的软件中间件产品,典型产品如基于CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)体制的软件总线,基于DDS(Data Distribution Service,数据分发服务)体制的软件总线,目前,国外已经有比较成熟的DDS产品,像美国RTI(Real-Time Innovations,Inc.)公司的NDDS(Network  Data Distribution Service)已经广泛应用到了美国海、陆、空、航天各个领域。它们的技术特点如下:
[0004] 1、基于CORBA体制的软件总线
[0005] CORBA的主要目标是解决面向对象的异构应用程序之间的互操作性问题,并提供分布式计算所需要的一些服务,其核心是一套标准的语言、接口和协议,以支持异构分布式应用程序间的互操作性及独立于平台和编程语言的对象重用。它采用客户端/服务器模式,客户方通过客户端静态调用,服务方通过服务器框架静态调用,实现客户端与服务器的请求服务。CORBA中间件适合请求-应答服务、文件传输、事务处理,互操作性强。但CORBA建立的是客户与服务端的静态连接关系,不适合多层次软件系统的动态重构。
[0006] 2、基于DDS体制的软件总线
[0007] DDS是以数据为中心的发布/订阅通信模型,它针对强实时系统进行优化,实现低延迟、高吞吐量、对实时性能的控制级别。在DDS的发布/订阅模型中,发布者和订阅者通过主题相关联,双方不必知道对方在何处,也不必同时在线,从而实现了通信双方时间、空间和数据通信的多维松耦合。它的核心思想是以数据为中心。使用DDS,应用程序使用一个主题(Topic)名称来指定它想要读或写的数据,使用以数据为中心的API(应用程序编程接口)来直接读写数据。DDS中以数据为中心的发布/订阅(DCPS)模型构建了一个共享的“全局数据空间”的概念,所有的数据对象都存在于此空间中,各软件/组件节点通过简单的读、写操作便可以访问这些数据对象。同时,数据并非存在于所有总线上的软件/组件中,它仅存在于那些对它感兴趣的软件/组件中,软件总线是依据信息发布订阅关系完成将数据从发布者传递到订阅者的。
[0008] DDS软件总线适合于动态可扩展、有高度灵活性的网络架构,可以动态增加新的主题、新的发布者或订阅者,能够将数据快速分发到多个节点,并且有大量的配置参数和QoS(Quality of Service,服务质量)策略便于发布/订阅控制。但由于DDS追求QoS的全面性,目前的DDS产品尚不能满足同时大数据、低延时的系统要求,需要针对不同需求进行简化和改进。

发明内容

[0009] 本发明针对现有软件总线技术的不足,提出了一种基于混合交换方式的可重构的分布式软件总线技术,本发明用于解决重构系统中,多层次软件/组件、跨平台异构系统的软件集成及组件灵活重组与重构问题。本发明具有无中心自组网、传输策略可控制、通信节点可迁移、软件/组件可重组等特点。
[0010] 本发明的技术方案为:
[0011] 所述一种基于可重构的分布式软件总线,其特征在于:包括总线库模、总线节点代理模块、总线监控模块和总线配置服务模块;
[0012] 所述总线库模块是为节点提供使用总线服务的API接口,完成节点注册、主题发布和/或订阅、主题数据发送和/或接收操作;所述节点指使用软件总线进行通信的各应用软件或组件;
[0013] 所述总线节点代理模块是节点在软件总线的网络代理,每台主机上仅部署总线节点代理模块的一个实例,完成本地主机上的节点与其它主机上的节点的数据交换;
[0014] 所述总线监控模块用于对以下系统属性的监视:包括节点组成关系、发布订阅关系、数据交互状态;
[0015] 所述总线配置服务模块用于对总线中各个节点的参数进行编辑,参数包括节点名称、节点所属域信息、节点发布的主题信息、节点订阅的主题信息。
[0016] 进一步的优选方案,所述一种基于可重构的分布式软件总线,其特征在于:总线库模块包括网络交互管理、总线状态管理和数据收发管理三个功能模块:
[0017] 所述网络交互管理模块完成底层网络连接管理和底层网络数据的交互,其中底层网络连接管理包括对节点地址的动态获取、网络连接建立以及网络连接状态的实时监控;底层网络数据的交互指底层数据报文的收发;
[0018] 所述总线状态管理模块完成节点的总线注册和注销管理、节点加入和退出域管理、节点的主题发布和取消发布管理以及节点的主题订阅和取消订阅管理;
[0019] 所述数据收发管理模块提供节点进行实际应用数据的发送和接收接口。
[0020] 进一步的优选方案,所述一种基于可重构的分布式软件总线,其特征在于:总线节点代理模块包括网络管理和总线调度两个功能模块:
[0021] 所述网络管理模块包括网络连接管理与数据引擎两部分:网络连接管理完成总线节点代理模块与本地主机应用软件、与其他主机的总线节点代理模块以及与总线监控模块之间的TCP连接建立与管理;数据引擎完成总线数据的收发,总线数据包括总线状态报文和数据报文;
[0022] 所述总线调度模块完成注册管理、域管理和主题管理:注册管理完成节点在软件总线的注册和注销;域管理通过节点注册并加入域时提供的节点所属域信息,将不同的节点分配到不同的域进行管理,并通过域限定节点的信息交互范围,不同域内的总线节点不能交互数据;主题管理对节点注册的主题信息进行管理和维护。
[0023] 有益效果
[0024] 与现有技术相比,本发明具有如下有益效果:
[0025] (1)采用多层次软件/组件管理方式,实现跨平台异构系统不同层级软件的软件集成及互联、互通。
[0026] (2)通过无中心自组网的分布式架构,实现通信节点的随遇接入、动态迁移,解除时间、空间耦合,利于灵活重构。附图说明
[0027] 图1是本发明的软件总线总体架构图。
[0028] 图2是本发明一种实施例的软件总线接入节点及其类型示意图。

具体实施方式

[0029] 下面结合附图和实施例对本发明的方案作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0030] 本实施例运行在Windows XP操作系统上,采用Visual Studio 2008作为开发环境,选择Visual C++作为开发语言。
[0031] 如图1所示,基于可重构的分布式软件总线包括总线库模块、总线节点代理模块、总线监控模块和总线配置服务模块;节点是指使用该软件总线进行通信的各应用软件或组件。
[0032] 所述总线库模块是为节点提供使用总线服务的API接口,完成节点注册、主题发布和/或订阅、主题数据发送和/或接收等总线操作;其包括网络交互管理、总线状态管理和数据收发管理三部分功能模块。
[0033] 所述网络交互管理模块完成底层网络连接管理和底层网络数据的交互,其中底层网络连接管理包括对节点地址的动态获取、网络连接建立以及网络连接状态的实时监控;底层网络数据的交互指底层数据报文的收发。
[0034] 所述总线状态管理模块完成节点的总线注册和注销管理、节点加入和退出域管理(域是一种对各节点的分组管理机制,仅同一域内的节点可进行通信)、节点的主题发布和取消发布管理以及节点的主题订阅和取消订阅管理;
[0035] 所述数据收发管理模块提供节点进行实际应用数据的发送和接收接口。
[0036] 本实施例中,总线库模块实现的主要接口包括:
[0037] 1)初始化总线接口InitBus
[0038] 完成软件总线的相关初始化操作,包括读取总线配置、与总线节点代理模块建立TCP连接,并初始化总线状态,等待节点注册。
[0039] 2)退出总线接口ExitBus
[0040] 完成软件总线的各模块的停止,回收系统资源,在应用软件或组件关闭并结束对软件总线接口使用前,必须调用本接口。
[0041] 3)节点注册接口RegNode
[0042] 通过指定节点名称、节点地址、节点所属域完成节点在软件总线的注册和加入域操作,节点完成注册后将给其分配节点ID号作为其唯一标识。
[0043] 4)节点注销接口UnregNode
[0044] 完成节点退出域和退出总线操作,需在对应软件或组件关闭前调用。
[0045] 5)主题订阅接口Subscribe
[0046] 根据主题名、订阅主题的节点名称、节点所属域完成主题订阅,更新本地的订阅主题列表,并向总线节点代理模块发送主题订阅的报文。
[0047] 6)主题发布接口Publish
[0048] 根据主题名、发布主题的节点名称、节点所属域完成主题发布,更新本地的发布主题列表,并向总线节点代理模块发送主题发布的报文。
[0049] 7)发送主题数据接口SendTopicData
[0050] 应用软件或组件使用该接口以指定的数据主题发送业务数据。数据发送分为同步发送和异步发送。同步发送通直接调用底层操作系统的网络发送函数进行,阻塞直到底层网络发送函数返回。异步发送将应用数据发送到异步发送缓冲区中以后立即返回,之后由底层自动完成数据的发送。
[0051] 8)接收主题数据RecvTopicData
[0052] 应用软件或组件通过该接口来获得订阅主题的数据。当订阅主题数据到来时,业务组件在该接口中对数据进行相应的业务逻辑处理。数据接收方式分为同步回调接收、异步回调接收和阻塞接收。同步回调接收到网络应用数据时,直接调用在该接口中注册的应用组件回调函数,回调函数执行完以后开始接收下一条网络数据,此时回调函数与总线网络接收在一个线程中进行。异步回调接收到网络应用数据时,将数据发送到异步接收缓冲区中以后立即开始接收下一条网络数据,由回调处理机制从异步接收缓冲区中获取应用数据,调用回调函数,此时回调函数与总线网络接收不在一个线程中进行。阻塞接收到网络应用数据时,将数据发送到阻塞接收缓冲区中以后立即开始接收下一条网络数据。当用户主动调用阻塞接收接口时,从阻塞接收缓冲区中获取数据,然后返回,此时的数据接收方式是阻塞的。
[0053] 所述总线节点代理模块是节点在软件总线的网络代理,每台主机上仅部署总线节点代理模块的一个实例(主机指部署应用软件或组件的硬件平台,如PC计算机、PowerPC等),完成本地主机上的节点与其它主机上的节点的数据交换;总线节点代理模块包括网络管理和总线调度两部分功能模块。
[0054] 所述网络管理模块包括网络连接管理与数据引擎两部分:网络连接管理完成总线节点代理模块与本地主机应用软件、与其他主机的总线节点代理模块以及与总线监控模块之间的TCP连接建立与管理,每条TCP连接在总线节点代理模块中表现为一个peer,通过对所有peer状态的监控,完成对各总线节点代理模块之间网络连接的更新、清理与控制;数据引擎完成总线数据的收发,总线数据包括总线状态报文(即节点的总线注册\注销信息、主题发布\订阅信息等)和数据报文。
[0055] 所述总线调度模块完成注册管理、域管理和主题管理:注册管理完成节点在软件总线的注册和注销,当各节点需要接入总线进行通信时,需进行节点注册,当节点退出总线时,需进行节点注销;域管理通过节点注册并加入域时提供的节点所属域信息,将不同的节点分配到不同的域进行管理,并通过域限定节点的信息交互范围,不同域内的总线节点不能交互数据;主题管理对节点注册的主题信息进行管理和维护,节点进行主题发布或订阅时,总线节点代理模块接收节点发布或订阅的主题信息,更新发布主题、发布节点、订阅主题、订阅节点之间的映射关系,数据交互时,通过主题的订阅\发布关系,确定各主题数据在节点间的收发关系。
[0056] 本实施例中,总线节点代理模块按功能实现为初始化管理、退出管理、以及网络管理和总线调度四个子模块:
[0057] 1)初始化管理子模块完成其他子模块的启动和初始化操作,实现流程如下:
[0058] a)启动总线调度子模块;
[0059] b)打开TCP连接,等待外部连接;
[0060] c)打开TCP连接,与符合条件的peer主动建立连接;
[0061] d)启动网络管理模块。
[0062] 2)退出管理子模块负责停止其他各个子模块,并回收系统资源,实现安全退出,实现流程如下:
[0063] a)关闭TCP连接;
[0064] b)向所有peer发送注销信息;
[0065] c)断开所有peer之间的连接;
[0066] d)清理所有peer,并回收资源;
[0067] e)关闭网络管理子模块;
[0068] f)安全退出。
[0069] 3)网络管理子模块主要实现网络连接管理与数据引擎的功能。
[0070] 网络连接管理主要实现与本地应用软件或组件、与其他主机的总线节点代理、与总线监控模块之间的TCP连接建立,其实现流程如下:
[0071] a)网络数据监听,并定时发送心跳报文;
[0072] b)监听到本地应用软件或组件的网络连接时,与其被动建立连接,并监控其状态,更新peer列表;
[0073] c)接收到其他主机总线节点代理模块的网络连接信息时,主动与其建立连接,并监控其状态,同时更新peer列表;
[0074] d)收到总线监控模块的网络连接信息时,主动与其建立连接,并监控其状态,同时更新peer列表;
[0075] e)接收本地应用软件或组件、其中总线节点代理模块和总线监控模块的心跳报文,重置心跳间隙。
[0076] 数据引擎主要实现数据的接收与发送。数据接收功能实现流程如下:
[0077] a)总线数据到达,判断数据类型;
[0078] b)若数据类型为总线状态信息,调用总线调度子模块功能进行处理,即进行节点注册\注销、主题订阅\发布等处理;
[0079] c)若数据类型为业务数据报文,调用订阅了该主题的应用软件或组件的数据接收回调函数。
[0080] 数据发送功能实现流程如下:
[0081] a)判断总线数据类型;
[0082] b)若数据类型为总线状态信息,则调用总线调度子模块功能进行处理,即进行节点注册\注销、主题订阅\发布等处理;
[0083] c)若数据类型为业务数据报文,则调用总线调度子模块相关功能,由其根据主题订阅\发布关系查找数据目的对象,将数据发送到目的地址。
[0084] 4)总线调度子模块主要实现节点注册管理、域管理和主题管理的功能。
[0085] 节点注册管理功能实现流程如下:
[0086] a)与本地应用软件或组件建立连接后,接收节点注册报文;
[0087] b)根据节点名称,判断该节点是否已经注册;
[0088] c)若该节点已经注册,则清除之前的节点对象;
[0089] d)根据节点的注册信息,创建该节点的peer对象,插入peer列表;
[0090] e)启动该节点peer对应的接收线程。
[0091] 域管理的主要的功能实现流程如下:
[0092] a)接收本地节点或其他节点代理模块发送的加入或退出域信息;
[0093] b)在本地更新域管理信息(即各节点与所属域的映射关系);
[0094] c)将本地节点的加入或退出域信息转发到其他总线节点代理模块;
[0095] d)当接收到数据报文时,进行发布方与订阅方是否属于同一域的判断;
[0096] e)如果判断成功,则发送到主题管理功能进行下一步处理;
[0097] f)判断失败,则丢弃该数据。
[0098] 主题管理的主要功能实现流程如下:
[0099] a)接收本地节点或其他节点代理模块发送的主题发布或订阅信息;
[0100] b)在本地更新主题管理信息(即主题、发布节点、订阅节点之间的映射关系);
[0101] c)将本地节点的主题发布或订阅信息转发到其他总线节点代理模块;
[0102] d)当本地进行数据发送时,进行主题发布判断,查找对应的主题订阅节点后转发数据;
[0103] e)当接收到数据报文时,进行主题订阅判断,确定本节点订阅了该主题后向应用软件或组件转发数据。
[0104] 所述总线监控模块用于对以下系统属性的监视:包括节点组成关系:当前各主机内所包含的总线节点以及该节点所指的应用软件和组件间的所属关系;发布订阅关系:各主题的发布方和订阅方映射关系;数据交互状态:包括数据交互时间、主题信息、主题发布节点、主题订阅节点等信息;总线监控模块是一种在应用软件运行阶段对其基于软件总线的运行、通信等系统属性进行实时监控的图形化软件工具,针对不同的监视需求,总线监控模块提供给使用者可定制化的监视界面。使用者可以根据需要,将自身所关心的系统属性要素包含进定制化的监视界面。
[0105] 本实施例中的总线监控模块按功能实现为初始化管理、退出管理和总线监控界面三个子模块。
[0106] 1)初始化管理子模块在总线监控启动后,等待接收各个总线节点代理模块的TCP连接。建立连接并握手后,接收各个总线节点代理模块发来的总线状态报文,并予以显示。
[0107] 2)退出管理子模块在总线监控退出时停止接收总线节点代理模块发来的数据,断开与各个节点代理模块的TCP连接,回收资源,成功退出。
[0108] 3)总线监控界面工具栏中包含三种图标,分别代表注册、发布、订阅视图。用户可以通过图标,方便地在三种不同的视图之间进行切换。监控界面以一台主机为单位,监控本地和外部所有注册的节点信息以及所有发布/订阅主题信息。
[0109] a)注册视图以列表形式显示所有本地和外部注册的节点的名称、IP地址、端口号信息、节点所指的应用软件名称、组件名称;
[0110] b)发布视图以列表形式显示发布主题名、发布了该主题的节点信息以及节点所属域信息;
[0111] c)订阅视图以列表形式显示订阅主题名、订阅了该主题的节点信息以及节点所属域信息;
[0112] d)通过在注册视图选择某节点或在发布及订阅视图选择某主题,可通过列表形式显示该节点发送和接收的实时数据信息或该主题数据的实时交互信息。
[0113] 所述总线配置服务模块面向系统管理者提供界面,用于对总线中各个节点上的运行参数进行编辑,并以节点为区分保存为多个配置文件。参数包括节点名称、节点所属域信息、节点发布的主题信息、节点订阅的主题信息。
[0114] 本实施例中总线配置服务模块完成对节点信息的编辑,最终输出该节点的配置信息文件。操作人员可在显示界面选择节点,执行编辑配置命令,该模块提供文本编辑界面,供操作人员编辑对应节点的配置,编辑完毕选择保存,则配置以“节点名称-节点ID.ini”为文件名进行存储,其中“节点名称”为“主机名称-应用软件名称-组件名称”组合,节点ID为整数值,与节点名称一一映射。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈