CN105205183A - 一种基于xml的dds分布式系统自动构建方法 - Google Patents
一种基于xml的dds分布式系统自动构建方法 Download PDFInfo
- Publication number
- CN105205183A CN105205183A CN201510717187.1A CN201510717187A CN105205183A CN 105205183 A CN105205183 A CN 105205183A CN 201510717187 A CN201510717187 A CN 201510717187A CN 105205183 A CN105205183 A CN 105205183A
- Authority
- CN
- China
- Prior art keywords
- dds
- file
- data
- testing program
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种基于XML的DDS分布式系统自动构建方法,本发明涉及基于XML的DDS分布式系统自动构建方法。本发明是为了解决DDS分布式系统构建过程复杂,构建效率较低的问题。本发明利用XML系统方案文件描述系统的参与者信息、订购发布信息、对象模型结构信息等,再通过自动代码生成及编译生成DDS的运行插件,从而构建DDS分布式系统。提高了DDS分布式系统构建的效率,降低了系统构建的复杂度,减少了系统构建过程中的出错率,使DDS的应用更加简单有效。本发明应用于信息传输领域。
Description
技术领域
本发明涉及基于XML的DDS分布式系统自动构建方法。
背景技术
随着信息化建设的蓬勃发展,实时信息系统的体系结构呈现出以网络为中心的趋势,对信息交互能力的要求日益提高。在仿真、测试与虚拟试验领域,伴随着HLA、TENA等技术的广泛应用,系统内部及系统间的信息传输对于实时性的要求也越来越高。因此,建立实时性强、可靠性高、安全性好的信息传输中间件,提高系统互联能力,满足系统内各种信息交换和共享需求,并解决应用软件之间的数据共享和集成问题是该领域亟待解决的问题。此外,由于分布式系统大多以网络作为信息传输的媒介,而网络信息传输的实时性与网络当前运行状态密切相关,因此迫切需要一种网络服务质量(QualityofService,QoS)配置方法,使得实时系统应用开发者能够灵活配置网络服务质量参数,有效合理的控制系统运行过程,满足分布式系统的实时信息交换需求。
数据分发服务(DataDistributionService,DDS)是对象管理组织(ObjectManagementGroup,OMG)继推出CORBA规范后颁布的实现订阅/发布通信模式、满足实时性要求的软件设计标准和规范,该规范对分布式实时系统中数据发布、传递和接收的接口和行为进行了标准化。DDS纯粹以数据为中心来进行数据分发,并将资源状况、对资源的期待程度、网络状况等都用QoS参数来描述,大大增强了通信的实时性和灵活性,简化了分布式系统中数据的有效发布,为实时环境下以数据为中心的分布式应用提供高效、有用的通信服务。
对象管理组织于2004年发布了第一个以实时数据中心思想的发布/订阅通信模型——DDS规范。DDS描述了2个层次的接口:低层的以数据为中心的发布订购层(DataCentricPublishSubscribe,DCPS),负责在QoS约束下进行数据传输,是DDS规范的核心;高层的数据本地重构层(DataLocalReconstructionLayer,DLRL),允许将服务简单地集成到应用层,该层是可选的。DDS可以满足复杂系统的实时和高速数据交换要求,实现分布式网络环境下的动态组网和数据的按需多点分发,具有松散耦合、处理复杂数据流能力强、分发效率高、容错性好以及动态可配置等特点。
DDS定义了以数据为中心的发布/订阅机制,以数据为中心的发布/订阅模型基于全局数据空间(GlobalDataSpace)的概念,如图1所示。
DDS规范包括域参与者、发布者、订阅者、数据写入者、数据读取者、主题和QoS等,其体系结构如图2所示。
DDS使用域来划分数据通信的子空间,隶属于同一个域的各个域参与者(Participant)可以互相通信,每个域参与者里面可以有一个或多个发布者(Publisher)或订阅者(Subscriber),每个发布者里面可以有一个或多个数据写入者(DataWriter),每个订阅者里面也可以有一个或多个数据读取者(DataReader)。数据写入者通过数据通道将数据发送到相应的数据读取者处,数据读取者则从数据通道中获取自己感兴趣的数据,数据写入者和数据读取者通过主题(Topic)和QoS进行匹配和建立联系,一般每个数据写入者或数据读取者只写入或读取一种类型的数据。
发明内容
本发明是为了解决DDS分布式系统构建过程复杂,构建效率较低的问题,而提出的基于XML的DDS分布式系统自动构建方法。
一种基于XML的DDS分布式系统自动构建方法按以下步骤实现:
步骤一:XML试验方案文件结构设计,生成试验方案文件;
步骤二:DDS运行插件的生成过程;
DDS运行插件通过加载步骤一中得到的试验方案文件,经过DDS插件模板、自动代码生成模块以及自动代码编译模块生成,所述DDS运行插件即DLL格式的文件;
所述DDS插件模板由DDS试验方案解析器、DDS服务器、DDS数据接收器、DDS数据管理器和DDS服务接口组成;
所述自动代码生成模块根据集成应用开发环境生成的试验方案文件,生成DDS系统信息传输所需要的IDL文件、mpc文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,所述IDL为接口定义语言,IDL文件是定义DDS内部信息传输数据结构的依据;
所述自动代码编译模块为自动代码生成模块生成的DDS分布式系统信息传输所需要的IDL文件、MPC文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,以及DDS插件模板的DDS试验方案解析器和DDS服务接口的源文件和头文件,建立独立的工程文件、配置编译参数、配置目标参数,最终生成目标文件为DDS运行插件;
所述DDS运行插件具有六个接口函数,分别为启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据;
步骤三:DDS分布式系统构建;
DDS分布式系统的每个节点上均存在一个步骤二生成的DDS运行插件,DDS分布式系统节点间的发布订阅关系由步骤一生成的试验方案文件中的订购发布信息规定,应用分布式系统时,调用DDS运行插件的接口函数,DDS分布式系统中有订购发布关系的节点之间进行信息传输。
本发明提出了一种基于XML的DDS分布式系统的自动构建方法。利用XML系统方案文件描述系统的参与者信息、订购发布信息、对象模型结构信息等,再通过自动代码生成及编译生成DDS的运行插件,从而构建DDS分布式系统。传统DDS系统构建过程完全依靠人工代码编写,效率低且出错率高。本发明提出的方法根据XML文件进行DDS系统的自动代码生成,减少了人工代码编写可能带入的错误。此外,自动代码生成依靠计算机直接读写文件,与人工方式相比提高了DDS分布式系统构建的效率,使DDS的应用更加简单有效。
附图说明
图1为以数据为中心的发布/订阅模型图;
图2为DDS体系结构图;
图3为DDS运行插件的生成过程图;
图4为DDS插件模板类图;
图5为自动代码生成过程图;
图6为自动代码编译过程图;
图7为DDS插件调用流程图;
图8为DDS分布式系统结构图;
图9为舰船模拟系统界面图;
图10为雷达发送信息图;
图11为指控与火控信息图。
具体实施方式
具体实施方式一:一种基于XML(eXtensibleMarkupLanguage,可扩展标记语言)的DDS分布式系统自动构建方法包括以下步骤:
步骤一:XML试验方案文件结构设计,生成试验方案文件;
试验方案文件存储格式为XML文件,存储的试验系统信息,是由集成应用开发环境(HIT-TIDE)平台设计的。
步骤二:DDS运行插件的生成过程;
为使DDS使用更加简单有效,每个试验系统对应一个XML试验方案文件,生成一个DDS运行插件(DLL格式),插件的接口符合特定的标准。
由于DDS在发布/订阅、数据写入和数据读出过程中的强类型要求,即要求为每个数据结构产生对应的类型对象、数据读对象和数据写对象,因此根据每个试验方案中的数据结构(对象模型)自动生成上述对应的对象代码并自动进行后台编码编译就是必须的要求,所述发布/订阅的含义为发布和订阅;
基于上述要求,DDS运行插件的生成过程如图3所示。
DDS运行插件通过加载步骤一中得到的试验方案文件,经过DDS插件模板、自动代码生成模块以及自动代码编译模块生成,所述DDS运行插件即DLL格式的文件;
所述DDS插件模板由DDS试验方案解析器、DDS服务器、DDS数据接收器、DDS数据管理器和DDS服务接口组成;
所述自动代码生成模块根据集成应用开发环境生成的试验方案文件,生成DDS系统信息传输所需要的IDL文件、mpc文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,所述IDL为接口定义语言,IDL文件是定义DDS内部信息传输数据结构的依据;
所述自动代码编译模块为自动代码生成模块生成的DDS分布式系统信息传输所需要的IDL文件、mpc文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,以及DDS插件模板的DDS试验方案解析器和DDS服务接口的源文件和头文件,建立独立的工程文件、配置编译参数、配置目标参数,最终生成目标文件为DDS运行插件;
所述DDS运行插件具有六个接口函数,分别为启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据;
步骤三,DDS分布式系统构建,如图8所示;
DDS分布式系统的每个节点上均存在一个自动生成的DDS运行插件,DDS运行插件有统一的接口函数。DDS分布式系统节点间的发布订阅关系由试验方案文件中的订购发布信息规定。应用分布式系统时,调用DDS运行插件的接口函数,系统中有订购发布关系的节点之间就能进行信息传输。
具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤一中试验方案文件的信息包括方案基本信息、参与者信息、订购发布信息、显示信息、LROM(逻辑靶场对象模型)信息和数据采集信息等。
(1)方案基本信息包含方案编号、方案名称、方案类型、保存路径、日期、作者、单位、描述等信息。
(2)参与者信息用于存储参试的试验资源/对象模型的具体描述信息,其子节点为若干参与者的描述信息,对于每一个参与者,提供如下信息:名称(描述该参与者的唯一标识)、类型(描述该参与者的资源/实体类型)、属性信息(用于进行参与者的参数配置)和实体信息(描述该参与者所包含的实体信息)。其中实体信息节点还包含以下实体子节点信息:实体ID、实体名称、实体类型、订购/发布标识(用来声明该实体具体具备的订购/发布能力)和实体属性信息(用于对该参与者拥有的实体进行参数配置)
(3)显示信息下属两个子节点,分别为系统视图和节点视图,系统视图用于显示当前方案全部资源以及其内部数据交互关系,节点视图用于着重观察每个节点内部所属资源的分布情况。
(4)订购发布信息用于存储试验方案中各个资源之间的信息交互关系。
(5)LROM信息用于存储试验系统的逻辑靶场对象模型。试验系统的靶场对象模型由该试验系统的所有对象模型的集合构成,包含了所有参与当前试验系统的SDO对象的描述信息。每个SDO(StateDistributedObject,状态分布对象)对象由三种类型的数据组成,分别是:基本数据类型(PrimitiveType)、枚举型(Enumaration)和类(Class)。其中,基本数据类型与枚举型为元类型,而类则是由上述两种结构进行组合形成的。对象模型支持继承和组合功能。一个SDO可以单重继承自另一个SDO,也可以由其他SDO聚合而成。通过SDO的继承和聚合,可以方便地进行对象模型扩展,提高模型利用率和软件开发效率。
(6)数据采集信息用于存储该试验系统的数据采集描述信息。包括采集方式、采集周期和采集属性信息。
具体实施方式三:如图4所述,本实施方式与具体实施方式一或二不同的是:所述步骤二中DDS试验方案解析器、DDS服务器、DDS数据接收器、DDS数据管理器和DDS服务接口具体为:
DDS试验方案解析器(DDSModelXMIParser):提供HIT-TIDE生成的试验方案文件的解析功能,该类从现有中间件的试验方案解析器派生。
DDS服务器(DDSInit):提供DDS中间件的初始化和退出,试验系统的初始化和退出功能。
DDS数据管理器(DDSDataInit):提供DDS数据类型注册和数据发送功能,在该类中需要通过自动代码生成模块进行各对象模型对应的数据类型声明、注册和数据写入代码生成。
DDS数据接收器(DDSDataReader):提供DDS数据接收功能,该类从DDS有已有的DDS数据侦听器派生,在该类中需要通过自动代码生成模型进行各对象模型对应的数据读出代码生成。
DDS服务接口(DDSService):该接口用于保证每个试验方案对应的DDS运行插件具有相同的服务接口。包括六个服务接口:启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:所述步骤二中自动代码生成的具体过程如图5所示:
步骤一:IDL转换过程;
IDL转换过程是将试验方案文件中的LROM(LogicalRangeObjectModel,逻辑靶场对象模型)信息转换为DDS中定义数据类型的IDL文件,IDL文件是定义DDS内部信息传输数据结构的依据。IDL文件名称与试验方案文件名称一致。由于DDS系统不支持中文字符,IDL语言仅支持简单数据类型和结构体、枚举、数组等几种复合数据类型,且对于数据名称的命名规则有严格的要求,因此在代码生成之前需要对试验方案中设计中文字符、复杂数据类型、特殊字符进行转换。
又由于XML格式对象模型存在继承组合关系,而DDS数据类型的定义不支持,因此需要将XML格式的对象模型按照关系展开到最底层属性,具体过程如下:
所述将XML格式的对象模型按照关系展开到最底层属性的具体过程为:
步骤一一:加载XML文件,得到根节点下所有的一级子节点,(标识为"packagedElement"),保存在数组中;
步骤一二:在所有得到一级子节点中查找目标类,遍历该子节点下的所有二级子节点;
步骤一三:解析类之间的继承关系,如果在二级子节点的标识中有"generalization(继承)",则说明该类是继承自某父类,父类的名称通过解析该二级子节点的内容得到,通过第一步得到的所有一级子节点找到父类所对应的节点,并且遍历父类的二级子节点,如果父类也有继承关系,则继续解析继承关系;
步骤一四:解析类之间的聚合关系,通过第二步得到目标类所有的二级子节点,判断二级子节点的类型是否为元数据类型,如果不是元数据类型,则通过第一步得到的所有一级子节点找到该类所对应的节点,遍历该节点,同步骤三四,解析其继承聚合关系直到类型为元数据类型为止,生成IDL文件;
步骤二:按照DDS信息传输的要求,发布/订阅的对象实例必须首先向DDS进行系统的初始化,创建发布者和订阅者,首先解析试验方案的参与者信息得到每个节点的发布者数据类型,以及根据订购发布信息得到每个节点中与发布者匹配的订阅者数据类型,然后生成每个节点的发布者及订阅者的注册代码。发布者及订阅者的注册代码生成在DDS服务器类的初始化系统函数中;
步骤三:按照DDS信息传输的要求,发布/订阅的对象实例必须首先向DDS进行类型注册,类型注册代码是指为DDS进行信息传输生成必要的数据类型注册信息。将得到每个节点的发布者及订阅者的数据类型不重复的保存下来,然后生成每个节点的注册代码。类型注册代码生成在DDS数据管理器类的注册数据类型函数中;
步骤四:按照DDS信息传输的要求,发布/订阅的对象实例必须生成对应的数据写对象。解析试验方案的参与者信息得到所有节点的发布者的数据类型及ID,然后生成数据写入代码,数据写入代码生成在DDS数据管理器类中的发送数据函数中;
步骤五:按照DDS信息传输的要求,发布/订阅的对象实例必须生成对应的数据读对象。解析试验方案的订购发布信息得到所有订购发布关系中的订阅者的数据类型及与其匹配发布者的ID(无重复),然后生成数据读取代码,数据读取代码生成在DDS数据接收器类的接收数据函数中。
步骤六:mpc文件的生成;
mpc文件中包含项目的包含路径、库目录、源文件、头文件以及IDL文件,命名规则为:试验方案名称.mpc和试验方案名称.mwc。
具体实施方式五:本实施方式与具体实施方式一四之一不同的是:步骤二所述自动代码编译过程具体为:
DDS插件模板在经过自动代码生成模块处理后,生成若干分散的源文件和头文件(包括IDL文件、DDS服务器类、DDS数据管理器类、DDS数据接收器类、DDS试验方案解析器类、DDS服务接口文件等)。为能够使每个XML试验方案对应的DDS分布式系统能自动构建,采用可动态加载的DLL模式封装上述生成的文件。为将上述分散文件编译为DLL,需要在自动代码编译模块中为其建立独立的工程文件、配置编译参数、配置目标参数过程,自动代码编译过程具体如图6所示:
步骤一:MPC(MakefileProjectCreator)工程化处理;
使用平台特定的输入mwc和mpc文件一起生成不同编译工具所支持的项目文件,本系统软件采用mwc和mpc类型的文件进行项目文件和工程文件构造,生成VisualStudio解决方案和项目文件,VisualStudio是Windows平台应用程序的集成开发环境;
MPC是一个用来从mpc/mwc类型的文件中生成不同编译工具所支持的项目文件的工具,所述mpc和mwc是文件的扩展名,MPC是一种项目生成工具。
步骤二:IDL(Interfacedescriptionlanguage,接口定义语言)文件编译;
先后调用OpenDDS的IDL编译器以及TAO(TheACEORB)的IDL编译器。将IDL文件解析出十个文件:试验方案客户端数据类型的源文件,试验方案客户端类型支持的源文件,试验方案服务器数据类型的源文件,试验方案服务器类型支持的源文件,试验方案类型支持实现的源文件,试验方案客户端数据类型的头文件,试验方案客户端类型支持的头文件,试验方案服务器数据类型的头文件,试验方案服务器类型支持的头文件,试验方案类型支持实现的头文件,这些实现文件将连接到DDS应用使用的信息类型。
步骤三:目标文件生成;
在完成IDL编译后,需要调用VS2008编译器对MPC工程化处理生成的工程文件进行编译和链接并最终生成目标文件(DLL文件),目标文件即为基于XML试验方案的DDS运行插件,命名规则为:试验方案名称.DLL。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤二中启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据具体为:
(1)启动DDS服务仓库
启用一个DCPSInfoRepo(DataCentricPublish-SubscribeInformationRepository,DCPS信息仓库)服务,使发布者和订阅者能够找到彼此。
(2)初始化DDS服务
包含ACE(AdaptiveCommunicationEnvironment,自适应通信环境)初始化,域工厂初始化,域参与者初始化。
(3)初始化系统
获取节点发布对象实例集、获取节点订阅对象实例集、获取对象模型名称表、获取试验方案名称、注册数据类型、初始化发布者和订阅者;
(4)销毁系统
清除订阅信息、清除发布信息、删除DDS实体;
(5)销毁DDS服务
删除域参与者和关闭域工厂;
(6)更新对象模型数据
创建发布对象主题、创建对应的对象发布者实例、创建对应的数据写对象实例。
DDS插件的调用流程如图7所示。
实施例一:
为验证DDS分布式系统的功能,建立一套舰船模拟系统,图9为舰船模拟系统界面图(2015-8-2515:38:58(948ms))。该系统有三个节点:雷达、指控系统和火控系统。每个节点上均有一个DDS运行插件,通过调用插件的接口函数,三个节点分别实现以下的发布或订阅功能,完成信息传输。
雷达:信息的发布方,发布雷达的状态信息和航机信息;
指控系统:信息订阅方和发布方,接收雷达发布的信息,并且发布信息给火控系统,指挥火控系统行为;
火控系统:信息的订阅方,订阅指控系统的信息。
图10、11分别为雷达发送的信息图(2015-7-2209:18:38(281ms))和指控与火控间的信息图(2015-7-2209:18:38(281ms)),可以看出接收的信息与发布的信息基本吻合。
Claims (6)
1.一种基于XML的DDS分布式系统自动构建方法,其特征在于,所述构建方法包括以下步骤:
步骤一:XML试验方案文件结构设计,生成试验方案文件;
步骤二:DDS运行插件的生成过程;
DDS运行插件通过加载步骤一中得到的试验方案文件,经过DDS插件模板、自动代码生成模块以及自动代码编译模块生成,所述DDS运行插件即DLL格式的文件;
所述DDS插件模板由DDS试验方案解析器、DDS服务器、DDS数据接收器、DDS数据管理器和DDS服务接口组成;
所述自动代码生成模块根据集成应用开发环境生成的试验方案文件,生成DDS系统信息传输所需要的IDL文件、mpc文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,所述IDL为接口定义语言,IDL文件是定义DDS内部信息传输数据结构的依据;
所述自动代码编译模块为自动代码生成模块生成的DDS分布式系统信息传输所需要的IDL文件、mpc文件、DDS服务器的源文件和头文件、DDS数据管理器的源文件和头文件、DDS数据接收器的源文件和头文件,以及DDS插件模板的DDS试验方案解析器和DDS服务接口的源文件和头文件,建立独立的工程文件、配置编译参数、配置目标参数,最终生成目标文件为DDS运行插件;
所述DDS运行插件具有六个接口函数,分别为启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据;
步骤三:DDS分布式系统构建;
DDS分布式系统的每个节点上均存在一个步骤二生成的DDS运行插件,DDS分布式系统节点间的发布订阅关系由步骤一生成的试验方案文件中的订购发布信息规定,应用分布式系统时,调用DDS运行插件的接口函数,DDS分布式系统中有订购发布关系的节点之间进行信息传输。
2.根据权利要求1所述的基于XML的DDS分布式系统自动构建方法,其特征在于所述步骤一中试验方案文件的信息包括方案基本信息、参与者信息、订购发布信息、显示信息、LROM信息和数据采集信息;
所述方案基本信息包含方案编号、方案名称、方案类型、保存路径、日期、作者、单位、描述信息;
所述参与者信息的子节点为参与者的描述信息,对于每一个参与者,提供名称、类型、属性信息和实体信息,所述实体信息节点还包含以下实体子节点信息:实体ID、实体名称、实体类型、订购或发布标识、实体属性信息;
所述显示信息下属两个子节点,分别为系统视图和节点视图;
所述数据采集信息包括采集方式、采集周期和采集属性信息。
3.根据权利要求2所述的基于XML的DDS分布式系统自动构建方法,其特征在于所述步骤二中DDS试验方案解析器、DDS服务器、DDS数据接收器、DDS数据管理器和DDS服务接口具体功能分别为:
DDS试验方案解析器:用于提供集成应用开发环境生成的试验方案文件的解析功能,从现有中间件的试验方案解析器派生;
DDS服务器:用于提供DDS中间件的初始化和退出,试验系统的初始化和退出功能;
DDS数据管理器:用于提供DDS数据类型注册和数据发送功能,需要通过自动代码生成模块进行各对象模型对应的数据类型声明、注册和数据写入代码生成;
DDS数据接收器:用于提供DDS数据接收功能,从DDS有已有的DDS数据侦听器派生,需要通过自动代码生成模型进行各对象模型对应的数据读出代码生成;
DDS服务接口:用于保证每个试验方案对应的DDS运行插件具有相同的服务接口,包括六个服务接口:启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据。
4.根据权利要求3所述的基于XML的DDS分布式系统自动构建方法,其特征在于所述步骤二中自动代码生成的具体过程为:
步骤一:IDL转换过程;
在自动代码生成之前对试验方案中的中文字符、复杂数据类型、特殊字符进行转换,并将XML格式的对象模型按照关系展开到最底层属性;
所述将XML格式的对象模型按照关系展开到最底层属性的具体过程为:
步骤一一:加载试验方案文件,得到根节点下所有的一级子节点,保存在数组中;
步骤一二:在所有得到的一级子节点中查找目标类,遍历该子节点下的所有二级子节点;
步骤一三:解析类之间的继承关系,在二级子节点的标识中有"generalization",则说明该类是继承自某父类,父类的名称通过解析该二级子节点的内容得到;通过第一步得到的所有一级子节点找到父类所对应的节点,遍历父类的二级子节点,如果父类也有继承关系,则继续解析继承关系;
步骤一四:解析类之间的聚合关系,通过第二步得到目标类所有的二级子节点,判断二级子节点的类型是否为元数据类型,若不是元数据类型,则通过步骤一一得到的所有一级子节点找到该类所对应的节点,遍历该节点,同步骤一三和步骤一四,解析其继承聚合关系直到类型为元数据类型为止,生成IDL文件;
步骤二:按照DDS信息传输的要求,发布/订阅的对象实例向DDS进行系统的初始化,创建发布者和订阅者,解析试验方案的参与者信息得到每个节点的发布者数据类型,根据订购发布信息得到每个节点中与发布者匹配的订阅者数据类型,生成每个节点的发布者及订阅者的注册代码,发布者及订阅者的注册代码生成在DDS服务器类的初始化系统函数中;
步骤三:按照DDS信息传输的要求,发布/订阅的对象实例向DDS进行类型注册,类型注册代码是指为DDS进行信息传输生成必要的数据类型注册信息,将得到每个节点的发布者及订阅者的数据类型不重复的保存下来,生成每个节点的注册代码,类型注册代码生成在DDS数据管理器类的注册数据类型函数中;
步骤四:按照DDS信息传输的要求,发布/订阅的对象实例必须生成对应的数据写对象,解析试验方案的参与者信息得到所有节点的发布者的数据类型及ID,生成数据写入代码,数据写入代码生成在DDS数据管理器类中的发送数据函数中;
步骤五:按照DDS信息传输的要求,发布/订阅的对象实例必须生成对应的数据读对象,解析试验方案的订购发布信息得到所有订购发布关系中的订阅者的数据类型及与其匹配发布者的ID,生成数据读取代码,数据读取代码生成在DDS数据接收器类的接收数据函数中;
步骤六:mpc文件的生成;
mpc文件中包含项目的包含路径、库目录、源文件、头文件以及IDL文件,命名规则为:试验方案名称.mpc和试验方案名称.mwc。
5.根据权利要求4所述的基于XML的DDS分布式系统自动构建方法,其特征在于步骤二所述自动代码编译过程具体为:
步骤一:MPC工程化处理,所述MPC是一个用来从mpc和mwc类型的文件中生成不同编译工具所支持的项目文件的工具;
使用平台特定的输入mwc和mpc文件一起生成不同编译工具所支持的项目文件,本系统软件采用mwc和mpc类型的文件进行项目文件和工程文件构造,生成VisualStudio解决方案和项目文件,所述mpc和mwc是文件的扩展名;
步骤二:IDL文件编译;
先后调用OpenDDS的IDL编译器以及TAO的IDL编译器,将IDL文件解析出十个文件:试验方案客户端数据类型的源文件,试验方案客户端类型支持的源文件,试验方案服务器数据类型的源文件,试验方案服务器类型支持的源文件,试验方案类型支持实现的源文件,试验方案客户端数据类型的头文件,试验方案客户端类型支持的头文件,试验方案服务器数据类型的头文件,试验方案服务器类型支持的头文件,试验方案类型支持实现的头文件,十个文件将连接到DDS应用使用的信息类型;
步骤三:目标文件生成;
在完成IDL编译后,需要调用VS2008编译器对MPC工程化处理生成的工程文件进行编译和链接并最终生成目标文件即DDS,命名规则为:试验方案名称.DLL。
6.根据权利要求5所述的基于XML的DDS分布式系统自动构建方法,其特征在于所述步骤二中启动DDS服务仓库、初始化DDS服务、初始化系统、销毁系统、销毁DDS服务、更新对象模型数据具体为:
(1)启动DDS服务仓库
启用一个DCPSInfoRepo服务,使发布者和订阅者能够找到彼此,所述DCPSInfoRepo为信息仓库;
(2)初始化DDS服务
包含ACE初始化、域工厂初始化、域参与者初始化,所述ACE为自适应通信环境;
(3)初始化系统
获取节点发布对象实例集、获取节点订阅对象实例集、获取对象模型名称表、获取试验方案名称、注册数据类型、初始化发布者和订阅者;
(4)销毁系统
清除订阅信息、清除发布信息、删除DDS实体;
(5)销毁DDS服务
删除域参与者和关闭域工厂;
(6)更新对象模型数据
创建发布对象主题、创建对应的对象发布者实例、创建对应的数据写对象实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510717187.1A CN105205183B (zh) | 2015-10-29 | 2015-10-29 | 一种基于xml的dds分布式系统自动构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510717187.1A CN105205183B (zh) | 2015-10-29 | 2015-10-29 | 一种基于xml的dds分布式系统自动构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105205183A true CN105205183A (zh) | 2015-12-30 |
CN105205183B CN105205183B (zh) | 2018-06-22 |
Family
ID=54952866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510717187.1A Active CN105205183B (zh) | 2015-10-29 | 2015-10-29 | 一种基于xml的dds分布式系统自动构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105205183B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933598A (zh) * | 2017-03-27 | 2017-07-07 | 广州市轩辕云翰信息科技有限公司 | 实现模板文件的自动化管理的方法及系统 |
CN107301676A (zh) * | 2017-06-28 | 2017-10-27 | 北京仿真中心 | 一种基于xml的三维场景动态构建方法及系统 |
CN107871050A (zh) * | 2017-11-28 | 2018-04-03 | 北京华如科技股份有限公司 | 面向数据和面向对象的混合建模方法及存储介质 |
CN108829491A (zh) * | 2017-04-28 | 2018-11-16 | Vce知识产权控股公司有限责任公司 | 用于集成计算系统的依存性解决系统和方法 |
CN108897591A (zh) * | 2018-06-12 | 2018-11-27 | 哈尔滨工业大学 | 联合试验平台中间件插件及其试验资源信息交互的方法 |
CN109101373A (zh) * | 2017-06-20 | 2018-12-28 | 北京航空航天大学 | 基于订阅/发布模式的通用测试平台 |
CN109412890A (zh) * | 2018-10-17 | 2019-03-01 | 哈尔滨工业大学 | 基于dds的联合试验平台中间件节点状态检测方法 |
CN109582479A (zh) * | 2018-12-05 | 2019-04-05 | 上海航天计算机技术研究所 | 一种基于反射内存卡的OpenDDS分布式通信方法 |
CN109635311A (zh) * | 2018-10-24 | 2019-04-16 | 中国电子科技集团公司第二十八研究所 | 一种基于dds的仿真试验数据采集系统 |
CN109639665A (zh) * | 2018-12-06 | 2019-04-16 | 上海航天计算机技术研究所 | 基于多通信介质扩展发布订阅系统传输协议的方法 |
CN109814871A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院空间应用工程与技术中心 | 基于dds总线的节点管理方法及系统 |
CN110069259A (zh) * | 2019-03-04 | 2019-07-30 | 北京三快在线科技有限公司 | 基于idl文件的解析方法、装置、电子设备和存储介质 |
CN110321236A (zh) * | 2019-07-11 | 2019-10-11 | 哈尔滨工业大学 | 一种基于OpenDDS的远程方法调用实现方法 |
CN111200533A (zh) * | 2020-01-07 | 2020-05-26 | 上海航天计算机技术研究所 | 基于OpenDDS的分布式网络配置部署方法 |
CN113259233A (zh) * | 2021-07-02 | 2021-08-13 | 奥特酷智能科技(南京)有限公司 | 基于dds的异种通信协议的自动化网关 |
CN114416206A (zh) * | 2022-01-20 | 2022-04-29 | 四维创智(北京)科技发展有限公司 | 一种插件热加载方法、系统、终端设备及存储介质 |
CN114546341A (zh) * | 2022-02-17 | 2022-05-27 | 重庆长安汽车股份有限公司 | 基于dds的车载服务代码生成编译方法及可读存储介质 |
CN115473931A (zh) * | 2022-07-29 | 2022-12-13 | 中国人民解放军63892部队 | 一种基于dds与组播通信的lvc-de分布式合成环境服务发现方法 |
WO2024093731A1 (zh) * | 2022-11-01 | 2024-05-10 | 长城汽车股份有限公司 | 汽车开放系统架构、数据处理方法及车载设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110001535A (ko) * | 2009-06-30 | 2011-01-06 | 숭실대학교산학협력단 | 제어 기능을 갖는 디지털 컨버전스 장치를 위한 확장된 snmp 시스템 |
CN102073706A (zh) * | 2010-12-30 | 2011-05-25 | 北京锐安科技有限公司 | 分布式文件存储系统和关系数据库的结合应用方法 |
EP2608026A1 (de) * | 2011-12-16 | 2013-06-26 | Schneider Electric Automation Gmbh | Verfahren zur Generierung eines Software-Moduls für ein Feldgerät aus einer Gerätebeschreibungsdatei sowie Gerätebeschreibungsdatei |
CN103198097A (zh) * | 2013-03-11 | 2013-07-10 | 中国科学院计算机网络信息中心 | 一种基于分布式文件系统的海量地学数据并行处理方法 |
CN103440376A (zh) * | 2013-08-26 | 2013-12-11 | 中国人民解放军国防科学技术大学 | 基于组件的分布集中一体化仿真系统运行支撑平台 |
CN104408222A (zh) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 实时分布式仿真平台可重构方法 |
CN104765840A (zh) * | 2015-04-16 | 2015-07-08 | 成都睿峰科技有限公司 | 一种大数据分布式存储的方法和装置 |
-
2015
- 2015-10-29 CN CN201510717187.1A patent/CN105205183B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110001535A (ko) * | 2009-06-30 | 2011-01-06 | 숭실대학교산학협력단 | 제어 기능을 갖는 디지털 컨버전스 장치를 위한 확장된 snmp 시스템 |
CN102073706A (zh) * | 2010-12-30 | 2011-05-25 | 北京锐安科技有限公司 | 分布式文件存储系统和关系数据库的结合应用方法 |
EP2608026A1 (de) * | 2011-12-16 | 2013-06-26 | Schneider Electric Automation Gmbh | Verfahren zur Generierung eines Software-Moduls für ein Feldgerät aus einer Gerätebeschreibungsdatei sowie Gerätebeschreibungsdatei |
CN103198097A (zh) * | 2013-03-11 | 2013-07-10 | 中国科学院计算机网络信息中心 | 一种基于分布式文件系统的海量地学数据并行处理方法 |
CN103440376A (zh) * | 2013-08-26 | 2013-12-11 | 中国人民解放军国防科学技术大学 | 基于组件的分布集中一体化仿真系统运行支撑平台 |
CN104408222A (zh) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | 实时分布式仿真平台可重构方法 |
CN104765840A (zh) * | 2015-04-16 | 2015-07-08 | 成都睿峰科技有限公司 | 一种大数据分布式存储的方法和装置 |
Non-Patent Citations (3)
Title |
---|
KYOUNGHO AN等: "Medel-driven generative framework for automated OMG DDS performance testing in cloud", 《ACM》 * |
张大海等: "DDS在分布式系统仿真中的应用", 《计算机技术与发展》 * |
杨瑾: "基于DDS和XML的数据集成模型的设计和实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933598A (zh) * | 2017-03-27 | 2017-07-07 | 广州市轩辕云翰信息科技有限公司 | 实现模板文件的自动化管理的方法及系统 |
CN108829491A (zh) * | 2017-04-28 | 2018-11-16 | Vce知识产权控股公司有限责任公司 | 用于集成计算系统的依存性解决系统和方法 |
CN109101373A (zh) * | 2017-06-20 | 2018-12-28 | 北京航空航天大学 | 基于订阅/发布模式的通用测试平台 |
CN109101373B (zh) * | 2017-06-20 | 2020-09-25 | 北京航空航天大学 | 基于订阅/发布模式的通用测试平台 |
CN107301676A (zh) * | 2017-06-28 | 2017-10-27 | 北京仿真中心 | 一种基于xml的三维场景动态构建方法及系统 |
CN107871050A (zh) * | 2017-11-28 | 2018-04-03 | 北京华如科技股份有限公司 | 面向数据和面向对象的混合建模方法及存储介质 |
CN107871050B (zh) * | 2017-11-28 | 2021-01-05 | 北京华如科技股份有限公司 | 面向数据和面向对象的混合建模方法及存储介质 |
CN108897591A (zh) * | 2018-06-12 | 2018-11-27 | 哈尔滨工业大学 | 联合试验平台中间件插件及其试验资源信息交互的方法 |
CN108897591B (zh) * | 2018-06-12 | 2021-04-02 | 哈尔滨工业大学 | 联合试验平台中间件插件装置及其试验资源信息交互的方法 |
CN109412890B (zh) * | 2018-10-17 | 2020-09-08 | 哈尔滨工业大学 | 基于dds的联合试验平台中间件节点状态检测方法 |
CN109412890A (zh) * | 2018-10-17 | 2019-03-01 | 哈尔滨工业大学 | 基于dds的联合试验平台中间件节点状态检测方法 |
CN109635311A (zh) * | 2018-10-24 | 2019-04-16 | 中国电子科技集团公司第二十八研究所 | 一种基于dds的仿真试验数据采集系统 |
CN109582479A (zh) * | 2018-12-05 | 2019-04-05 | 上海航天计算机技术研究所 | 一种基于反射内存卡的OpenDDS分布式通信方法 |
CN109639665B (zh) * | 2018-12-06 | 2020-11-24 | 上海航天计算机技术研究所 | 基于多通信介质扩展发布订阅系统传输协议的方法 |
CN109639665A (zh) * | 2018-12-06 | 2019-04-16 | 上海航天计算机技术研究所 | 基于多通信介质扩展发布订阅系统传输协议的方法 |
CN109814871B (zh) * | 2018-12-29 | 2022-05-13 | 中国科学院空间应用工程与技术中心 | 基于dds总线的节点管理方法及系统 |
CN109814871A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院空间应用工程与技术中心 | 基于dds总线的节点管理方法及系统 |
CN110069259A (zh) * | 2019-03-04 | 2019-07-30 | 北京三快在线科技有限公司 | 基于idl文件的解析方法、装置、电子设备和存储介质 |
CN110321236A (zh) * | 2019-07-11 | 2019-10-11 | 哈尔滨工业大学 | 一种基于OpenDDS的远程方法调用实现方法 |
CN110321236B (zh) * | 2019-07-11 | 2022-10-25 | 哈尔滨工业大学 | 一种基于OpenDDS的远程方法调用实现方法 |
CN111200533A (zh) * | 2020-01-07 | 2020-05-26 | 上海航天计算机技术研究所 | 基于OpenDDS的分布式网络配置部署方法 |
CN113259233A (zh) * | 2021-07-02 | 2021-08-13 | 奥特酷智能科技(南京)有限公司 | 基于dds的异种通信协议的自动化网关 |
CN113259233B (zh) * | 2021-07-02 | 2021-09-28 | 奥特酷智能科技(南京)有限公司 | 基于dds的异种通信协议的自动化网关 |
CN114416206A (zh) * | 2022-01-20 | 2022-04-29 | 四维创智(北京)科技发展有限公司 | 一种插件热加载方法、系统、终端设备及存储介质 |
CN114416206B (zh) * | 2022-01-20 | 2024-07-26 | 四维创智(北京)科技发展有限公司 | 一种插件热加载方法、系统、终端设备及存储介质 |
CN114546341A (zh) * | 2022-02-17 | 2022-05-27 | 重庆长安汽车股份有限公司 | 基于dds的车载服务代码生成编译方法及可读存储介质 |
CN115473931A (zh) * | 2022-07-29 | 2022-12-13 | 中国人民解放军63892部队 | 一种基于dds与组播通信的lvc-de分布式合成环境服务发现方法 |
WO2024093731A1 (zh) * | 2022-11-01 | 2024-05-10 | 长城汽车股份有限公司 | 汽车开放系统架构、数据处理方法及车载设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105205183B (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205183A (zh) | 一种基于xml的dds分布式系统自动构建方法 | |
Sun et al. | An open IoT framework based on microservices architecture | |
Schönwälder et al. | Network configuration management using NETCONF and YANG | |
CN102945165B (zh) | 虚拟试验支撑平台 | |
CN102779321A (zh) | 一种基于iec61968消息类型定义的消息验证方法及其装置 | |
KR101056682B1 (ko) | 컴포넌트 기반의 무기체계 시뮬레이션 시스템 및 시뮬레이션 방법 | |
CN109471624B (zh) | 基于gosaa的共享数据模型控制系统及数据架构生成方法 | |
Di Martino et al. | Semantic representation of cloud services: a case study for microsoft windows azure | |
Balasubramaniam et al. | Situated software: Concepts, motivation, technology, and the future | |
Cariou et al. | An architecture and a process for implementing distributed collaborations | |
CN110321236B (zh) | 一种基于OpenDDS的远程方法调用实现方法 | |
Cavalieri et al. | Enabling OPC UA and oneM2M interworking | |
Sultanow et al. | A review of IoT technologies, standards, tools, frameworks and platforms | |
Dragoicea et al. | Integrating HLA and service-oriented architecture in a simulation framework | |
Smidt et al. | Smart application development for IoT asset management using graph database modeling and high-availability web services | |
CN116107564B (zh) | 面向数据的云原生软件装置及软件平台 | |
Fayçal et al. | Integrating legacy systems in a SOA using an agent based approach for information system agility | |
Di Crescenzo et al. | System wide information management: the SWIM-SUIT prototype | |
Yin et al. | Mode switch handling for the ProCom component model | |
Akmel et al. | A comparative analysis on software architecture styles | |
Sheng et al. | A distributed and reusable workflow-based auto test framework for distributed integrated modular avionics | |
Kaya et al. | Data interoperability between DDS and HLA through a dynamically reconfigurable gateway | |
Thomas et al. | Net-centric adapter for legacy systems | |
Hao et al. | Research on Simulation Model System Integration and Interconnection Methods | |
Zheng et al. | Auto-Modularity Enforcement Framework Using Micro-service Architecture. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |