OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )

最近在忙项目,几天没更博,心里还是痒痒的。。。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

分布式DDS网络架构

前言

数据分发服务DDS(DataDistributionService)是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。

DDS(DataDistributionService)数据分发服务技术最早应用于美国海军,用于解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经成为美国国防部的强制标准。2003年,DDS被OMG组织接受,并发布了专门为实时系统设计的数据分发/订阅标准。DDS目前已经广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。DDS技术是基于以数据为核心的设计思想提出的,定义了描述网络环境下数据内容、交互行为和服务质量要求的标准。DDS以数据为核心的设计思想非常贴合如传感器网络、指挥信息网等应用场景,其提供的数据传输模型能够很好地适应应用系统的开发需要。

关于DDS

官网&下载

Dital Distribute Server数据分发服务

OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )_第1张图片

 

数据分发模型

OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )_第2张图片

 

获取实例

ddslib* mydds =(ddslib*)ddslib::GetInstancePtr();//dds单例模式获取实例

订阅/发布

OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )_第3张图片

Real-Time Networking

OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )_第4张图片

 

 

以上只是实现DDS基本的分布式网络节点结构,基于DDS中间件,我们封装了一套接口,便于项目实施&开发

同时欢迎广大做DDS分布式网络结构伙伴 留言 共享!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

项目实施

设计思路

根据不同项目需求,使用合理的前端设计。设计中会用到C++开发环境VS,我这里用的是VS2013+Qt+Gis 做的前端规划,引擎用到vstasker。这里关于引擎这块用到了两种方法,一是采用引擎软件vstasker,另一种采用引用模型动态库的方式。

DDS中间件模块

基于DDS,便于项目开发实施,可以对DDS做了一层封装

1> DDS使用


 

publish(param* a,param* b);//发布

subscribe();               //订阅

sendData();                //发送数据

receiveData();             //接收数据
 
getLastError();            //获取错误信息
//<具体参数,这里不做过多添加和说明,感兴趣的同学欢迎留言 交流 学习!

2> DDS中间件的使用

在使用过程中,为了方便调用接口,我们基于DDS 封装了一层

Bai_Du_Init(param* a,param* b);    //初始化
Bai_Du_Read();                     //读
Bai_Du_Set_Read_Callback();        //读取 回调
Bai_Du_ReadLatest();               //读取最后一个
Bai_Du_Write();                    //写
Bai_Du_Close();                    //关闭DDS
Du_Trace_Enable();                 //跟踪
Du_Get_LastError();                //get error

//<具体参数,这里不做过多添加和说明,感兴趣的同学欢迎留言 交流 学习!

 

================================================================================================

对DDS感兴趣的同学欢迎留言 交流 学习!

祝编码愉快 >>+<<!

你可能感兴趣的:(DDS------,------架构------)