DDS(Data Distribution Service),即数据分发服务,是OMG(Object Management Group)对象管理组织发布的分布式通信规范,采用订阅发布模型,以中间件的形式提供通信服务,并提供QoS(Quality of Service)策略,保障数据实时、高效、灵活的分发。
1.协议组成
DDS在网络栈中处于传输层的上面,以TCP/UDP为基础:
DDS的相关标准包括核心协议(DDSI-RTPS,DDS-XTypes,DDS-Security,Interface Definition Language (IDL)…),API(DDS C++ API,DDS Java API),拓展协议(DDS-RPC,DDS-XML…)等13份协议集合。在分布式系统中,DDS位于操作系统和应用程序之间,支持多种编程语言以及多种底层协议。
Fast DDS实现了一个并发多线程系统。每个DomainParticipant生成一组线程来处理后台任务,例如日志记录、消息接收和异步通信。这不会影响使用该库的方式,即Fast DDS API是线程安全的,因此可以从不同的线程安全的调用同一DomainParticipant上的任何方法。但是,当外部函数访问由库内运行线程修改的资源时,必须考虑这种多线程实现。这方面的一个示例是应用Listener侦听器回调中的修改资源。