本文的目的是安装opendds后,初步探索,结合了解源码目录,运行测试demo对opendds进行初步了解。
1:梳理当前情况
有关项目核心模块,当前只是基于opendds的最简单的方案实现。
1:需要了解opendds的发布订阅机制(运行测试demo)。
2:需要了解opendds的参数加载和配置文件相关参数细节(ini配置文件参数)。
扩展:首先基于opendds实现一个最简单的发布订阅的demo,基于集中模式和非集中模式的差异是什么。
2:考虑网络架构。
思考
我们对opendds的使用只是作为基本的组件来进行使用,核心需要考虑网络的复杂性。
===》基于传统的tcp/ip交互能力进行上层封装,实现发布订阅,提供网络支撑。
===》考虑复杂网络场景,比如多个局域网内部进行交互的方案设计。
思考复杂网络,如多局域网交互
1.非集中模式:(公网:静态配置路由/端口映射+tcp),(rtps 中继),(VPN),(是否考虑在opendds中静态配置+公网映射实现)
2.集中模式:repo+vpn/repo+stun和tun/repo+手动映射+配置文件+RTPS/TCP
repo是基于corba,CORBA 是一种基于对象的 RPC 架构。
3:基于网络+当前进行思考。
我们的目标:提供so接口的方式,供上层组件使用(可扩展考虑一下插件的方式),提供基于特定业务的网络交互能力。
===》这里的业务交互能力主要依赖于opendds的发布订阅。
===》考虑系统所能支持的QPS需要进行测试。
===》基于组件的发布和订阅,考虑节点监控的支持。
===》基于组件的发布和订阅之后,考虑qos的支持。
===》基于组件的发布和订阅之后,考虑按需要进行订阅和过滤的支持。
===》基于组件的发布和订阅之后,考虑航位推算的设计。
4:技术探索
4.1 首先对源码目录和架构进行简单了解。
DCPS(Data-Centric Publish-Subscribe)是OpenDDS的核心实现目录,包含DDS规范的主要功能:
DCPS/transport 子目录,传输层框架和各种传输实现:
framework/ - 传输框架的基础设施
tcp/ - TCP传输实现
rtps_udp/ - RTPS/UDP传输实现
udp/ - UDP传输实现
multicast/ - 多播传输实现
shmem/ - 共享内存传输实现
DCPS/RTPS子目录
RTPS(Real-time Publish-Subscribe)协议的实现。
DCPS/XTypes子目录:DDS XTypes规范的实现,支持动态类型,是opendds中的“类型解释器 + 类型兼容器”。
DCPS/security子目录:DDS安全规范的实现。
其他重要目录
idl目录:IDL编译器相关代码。
InfoRepo目录:信息仓库发现机制的实现。
monitor目录:监控功能的实现。
首先用https://deepwiki.com/看看代码的核心架构:


3649

被折叠的 条评论
为什么被折叠?



