High Level Data-Centric Interfaces Replace Message-Centric Programming【以数据为中心的高级接口取代了以消息为中心的编程】
The main goal of DDS is to share the right data at the right place at the right time, even between time-decoupled publishers and consumers. DDS implements global data space by carefully replicating relevant portions of the logically shared dataspace.
DDS的主要目标是在正确的时间、正确的位置共享正确的数据,即使在时间不相关的发布者和消费者之间也是如此。 DDS通过复制逻辑共享数据空间的相关信息来实现全局数据空间(global data space)。
The Right Data【正确的数据】
Not all data needs to be everywhere. Middleware should only deliver the data that consumers really need. Interest-based filtering can apply to both content and data rates. With proper implementation, DDS saves bandwidth and processing power, and minimizes overall application complexity.
并非所有数据都需要无处不在。中间件应该只提供消费者真正需要的数据。基于兴趣的过滤(Interest-based filtering)可以应用于内容(content)或数据(data)的过滤。 通过适当的实施,DDS可以节省带宽,提升处理能力,并最大程度地降低整体应用程序的复杂性。
As a data-centric solution, DDS can understand the schema of the shared data. This allows it to filter on content, age and/or lifecycle to provide applications with only the data they need. For example, you can send only boiler temperatures over 300 (content filter) with at most ten updates per second (rate). This efficient approach can often save 90% of the data communications overhead in many systems.
作为一种以数据为中心的解决方案,DDS可以理解共享数据的模式。这允许它根据内容、分代数(age)或生命周期进行筛选,以便仅为应用程序提供所需的数据。例如,DDS可以使应用软件只向外发送锅炉温度300的数据(内容过滤器),每秒最多更新10次(速率)。在许多系统中,这种有效的方法通常可以节省90%的数据通信开销。
The Right Place【正确的位置】
Data must be available where it is needed, to facilitate self-forming systems. DDS distributes and maintains data so it is readily available.
数据必须在需要的地方可用,以促进自动形成系统。DDS分发并维护数据,以便数据随时可用。
DDS dynamically discovers publishers and subscribers, the data types they want to share, and the related Quality-of-Service (QoS). Following a successful match, DDS enforces timely distribution according to the QoS. It implements a QoS-enforced logical channel for each data stream between each publisher-subscriber pair. A DDS subscriber can be sure that its peer publisher is actually alive and that any data produced will be delivered. This greatly simplifies application development and error handling.
DDS动态地发现发布者和订阅者、共享的数据类型以及相关的服务质量(QoS)。在成功匹配之后,DDS根据QoS进行数据分发。它为每对发布者-订阅者之间的每个数据流实现一个QoS强制逻辑通道。DDS订阅者可以确定其对应的发布者是否存活,并且可以传递所产生的任何数据。这大大简化了应用程序开发和错误处理。
The Right Time【正确的时间】
Real-time systems interact with the real world. Data must be available on time – the right data too late is a failure. Data differ in priority, reliability, timing, and other non-functional properties. DDS balances utilization of scarce resources to distribute data at the right time.
实时系统与现实世界进行交互,所以数据必须实时可用,时延过长的正确数据是将导致故障。不同数据在优先级、可靠性、时序和其他非功能属性方面有所不同。DDS平衡了稀缺资源的使用,以便在正确的时间分发数据。
DDS middleware uses logical QoS policies, as set by the applications at runtime, to balance efficiency and determinism. The QoS contracts ensure these timing relationships. For example, if a subscriber requires an update every 10ms and its matched publisher does not deliver, the system declares an error, enabling remedial action. QoS policies cover many characteristics, including urgency, importance, reliability, persistence, and liveliness.
DDS中间件使用应用程序在运行时设置的逻辑QoS策略来平衡效率和确定性。 QoS约束确保了这些时序关系。 例如,如果订阅者要求每10毫秒进行一次数据更新,而与其匹配的发布者不进行发送,则系统会报错,从而启用补救措施。QoS策略包含许多特性,包括紧急性、重要性、可靠性、持久性和活跃性。
Underlying Technical Concepts【基本技术概念】
Relational data modeling: DDS addresses data in a manner similar to relational databases. It can manage data by both structure related topics (using key-fields) and allow ad-hoc queries and filters on content and time so applications can extract specific data as needed.
关系数据建模:DDS以类似于关系数据库的方式处理数据。 它既可以通过结构相关的主题(使用键字段)来管理数据,又可以基于内容和时间进行特殊查询和过滤,以便应用程序可以根据需要获取特定数据。
Pub-sub messaging: DDS uses the publish/subscribe paradigm for dynamic discovery and primary management of data-flows between relevant DDS entities, including publishers, subscribers, durability services, recording and replay-services, and connected databases. Request-reply and other patterns are built on this powerful substrate.
发布-订阅消息传递:DDS使用发布/订阅模式、动态发现机制,管理相关DDS实体(包括发布者、订阅者、持久性服务、记录和重放服务以及连接的数据库)之间的数据流。请求-应答和其他模式都建立在这个强大的基底上。
Reliable multicast: The DDS standard wire protocol implements reliable multicast over plain UDP sockets, allowing systems to efficiently benefit from modern networking infrastructures.
可靠的多播:DDS标准有线协议在普通UDP套接字上实现了可靠的多播,使系统可以有效地从现代网络基础架构中受益。
Lifecycle awareness: Unlike message-centric products, DDS offers explicit application support for information lifecycle awareness. For instance, it detects, communicates, and informs applications about first and last appearances of data (topic instance) updates. This facilitates timely responses to new and outdated information.
生命周期意识:与以消息为中心的产品不同,DDS为应用程序提供信息生命周期可感知的支持。例如,它检测、通信并通知应用程序有关数据(主题实例)的首次和最后一次更新。这有助于及时响应新的和过时的信息。
Trigger patterns: DDS offers a variety of trigger patterns that follow updates on subscribed information. Examples include polling, callbacks (typical for GUIs), and WaitSets (similar to Unix ‘select,’ to provide full application control for prioritized handling of selective trigger events).
触发模式:DDS提供了多种触发模式,可以跟踪订阅信息的更新。触发模式包括轮询、回调(GUI典型的模式)和WaitSet(类似于Unix的“select”,为按优先级选择性处理触发事件提供完整的应用程序控制)。
For additional details and technical diagrams, please refer to the ‘What is DDS’ section.
有关其他详细信息和技术图表,请参阅“什么是DDS”。