DDS数据分发与服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nini_boom/article/details/77948493

今天进一步了解了DDS,并且目前在多种vs版本中均已安装编译了OpenDDS,准备着手研究OpenDDS的能力,下面把今天的成果简单地描述出来。

为什么选择DDS?

1. DDS是什么?

简单地说,DDS就是数据分发服务,是一个中间件。那么中间件又是什么?在分布式系统中,中间件就是存在于系统和应用程序之间的软件层,它使得系统的各个组件更容易进行通讯和共享数据,说白了,就是DDS合理地调用了系统层的组件,很好地调用了资源,让处在非常高的速度以及非常动态,苛刻和不可预测的环境同时指定所有这些事情的情况下,应用程序依旧可以很高效的运行。
)

2. DDS做了什么?

使得系统层和应用程序层分开,使得数据的分发和管理,既不用动系统底层,也不用开发人员去为了提高性能在应用程序层绞尽脑汁,提供了java的原生接口,其他语言可以使用代码托管,跨语言调用DDS的接口

3. DDS的应用

医疗,航空(美国空军指定的分布式系统,美军战斗机处理大量设备信息的分布式用的就是DDS系统),物联网

这里写图片描述

DDS的数据结构:

module Messenger {
#pragma DCPS_DATA_TYPE "Messenger::Message"
#pragma DCPS_DATA_KEY "Messenger::Message subject_id"
 struct Message {
 string from;
 string subject;
 long subject_id;
 string text;
 long count;
 };
};

DCPS_DATA_TYPE 和DCPS_DATA_KEY分别表示了subject_id的类型和值,用于区分同一个topic不同的实例,如何使用ACE+TAO环境生成我们所需要的DDS接口,后续我会写教程发表到博客。

DDS开发流程

DDS特殊的数据类型以及结构,使得我们使用C++编写OpenDDS接口和数据以及我们所需要的通讯类型结构体,然后使用MPC工具使其变成DLL文件,最后通过c#调用c++生成的DLL,为我们所用。

猜你喜欢

转载自blog.csdn.net/nini_boom/article/details/77948493
dds