赞
踩
最近在忙项目,几天没更博,心里还是痒痒的。。。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
分布式DDS网络架构
数据分发服务DDS(DataDistributionService)是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。
DDS(DataDistributionService)数据分发服务技术最早应用于美国海军,用于解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经成为美国国防部的强制标准。2003年,DDS被OMG组织接受,并发布了专门为实时系统设计的数据分发/订阅标准。DDS目前已经广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。DDS技术是基于以数据为核心的设计思想提出的,定义了描述网络环境下数据内容、交互行为和服务质量要求的标准。DDS以数据为核心的设计思想非常贴合如传感器网络、指挥信息网等应用场景,其提供的数据传输模型能够很好地适应应用系统的开发需要。
Dital Distribute Server数据分发服务
数据分发模型
获取实例
ddslib* mydds =(ddslib*)ddslib::GetInstancePtr();//dds单例模式获取实例
订阅/发布
Real-Time Networking
以上只是实现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感兴趣的同学欢迎留言 交流 学习!
祝编码愉快 >>+<<!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。