• What is DDS? 什么是DDS?(Data Distribute Service,数据分发服务) 关键字:数据分发服务 DDS The Proven Data Connectivity Standard for the Industrial Interet of Things 经验证的工业物联网数据连接标准 ...

    What is DDS? 什么是DDS?(Data Distribute Service,数据分发服务)

    关键字:数据分发服务 DDS

    The Proven Data Connectivity Standard for the Industrial Interet of Things 经验证的工业物联网数据连接标准

    The Data Distribution Service (DDS™) is a middleware protocol and API standard for data-centric connectivity from the Object Management Group® (OMG®). It integrates the components of a system together, providing low-latency data connectivity, extreme reliability, and a scalable architecture that business and mission-critical Internet of Things (IoT) applications need.


    In a distributed system, middleware is the software layer that lies between the operating system and applications. It enables the various components of a system to more easily communicate and share data. It simplifies the development of distributed systems by letting software developers focus on the specific purpose of their applications rather than the mechanics of passing information between applications and systems.


    The DDS Middleware is a software layer that abstracts the Application from the details of the operating system, network transport, and low-level data formats. The same concepts and APIs are provided in different programming languages allowing applications to exchange information across operating systems, languages, and processor architectures. Low-level details like data wire format, discovery, connections, reliability, protocols, transport selection, QoS, security, etc. are managed by the middleware.


    Data Centricity 以数据为中心

    DDS provides Qos-controlled data-sharing. Applications communicate by publishing and subscribing to Topics identified by their Topic name. Subscriptions can specify time and content filters and get only a subset of the data being published on the Topic. Different DDS Domains are completely independent from each other. There is no data-sharing across DDS domains.


    There are many communications middleware standards and products. DDS is uniquely data centric, which is ideal for the Industrial Internet of Things. Most middleware works by sending information between applications and systems. Data centricity ensures that all messages include the contextual information an application needs to understand the data it receives.


    The essence of data centricity is that DDS knows what data it stores and controls how to share that data. Programmers using traditional message-centric middleware must write code that sends messages. Programmers using data-centric middleware write code that specifies how and when to share data and then directly share data values. Rather than managing all this complexity in the application (your) code, DDS directly implements controlled, managed, secure data sharing for you.


    Global Data Space 全局数据空间

    DDS conceptually sees a local store of data called the “global data space.” To the application, the global data space looks like local memory accessed via an API. You write to what looks like your local storage. In reality, DDS sends messages to update the appropriate stores on remote nodes. You read from what looks like a local store.

    DDS在概念上创建了一个 “全局数据空间”的本地的数据存储空间。对应用程序来说,全局数据空间看起来像是通过API访问的本地内存:发送端应用程序写入数据时,就像是写到了本地的存储空间;而实际上,由DDS发送消息以更新远程节点上的存储内容;接收端应用程序方可通过读取本地存储获取到数据。

    Inside a DDS domain the unit of information sharing is data-objects within Topics. The topic is identified by its name and the data-object by some ‘Key” attributes. This is similar to how key attributes are used to identify records in a Database. This is figure is conceptual. DDS communicates peer-to-peer and does not require the data to be brokered by a server or cloud.

    在DDS域中,信息共享的单位是主题的数据对象。主题由其名称标识,数据对象由一些“键(Key)”属性标识。这类似于在数据库中用键属性来标识数据。上述是一张概念性的图示, DDS进行点对点通信,不需要服务器或云代理进行转发。

    All together, the local stores give applications the illusion of having access to the entire global data space. This is only an illusion; there is no global place where all the data lives. Each application locally stores only what it needs and only for as long as it needs it. DDS deals with data in motion; the global data space is a virtual concept that is really only a collection of local stores. Every application, in almost any language, running on any system, sees local memory in its optimal native format. The global data space shares data between embedded, mobile, and cloud applications across any transport, regardless of language or system, and with extremely low-latency.


    Quality of Service 服务质量

    The data can also be shared with flexible Quality of Service (QoS) specifications including reliability, system health (liveliness), and even security. In a real system, not every other end-point needs every item in your local store. DDS is smart about sending just what it needs. If messages don’t always reach their intended destinations, the middleware implements reliability where needed. When systems change, the middleware dynamically figures out where to send which data, and intelligently informs participants of the changes. If the total data size is huge, DDS intelligently filters and sends only the data each end-point really needs. When updates need to be fast, DDS sends multicast messages to update many remote applications at once. As data formats evolve, DDS keeps track of the versions used by various parts of the system and automatically translates. For security-critical applications, DDS controls access, enforces data flow paths, and encrypts data on-the-fly.


    The true power of DDS emerges when you specify all of these things simultaneously, at extremely high speeds, and in a very dynamic, demanding, and unpredictable environment.


    Dynamic Discovery 动态发现

    DDS provides Dynamic Discovery of publishers and subscribers. Dynamic Discovery makes your DDS applications extensible. This means the application does not have to know or configure the endpoints for communications because they are automatically discovered by DDS. This can be completed at runtime and not necessarily at design or compile time, enabling real “plug-and-play” for DDS applications.


    This dynamic discovery goes even further than discovering endpoints. DDS will discover if the endpoint is publishing data, subscribing to data, or both. It will discover the type of data being published or subscribed to. It will also discover the publisher’s offered communication characteristics and the subscriber’s requested communications characteristics. All of these attributes are taken into consideration during the dynamic discovery and matching of DDS participants.


    DDS participants can be on the same machine or across a network: the application uses the same DDS API for communications. Because there is no need to know or configure IP addresses, or take into account the differences in machine architectures, adding an additional communication participant on any operating system or hardware platform becomes an easy, almost trivial, task.

    DDS参与者可以在同一台计算机上,也可以跨网络,应用程序使用相同的DDS API进行通信。因为不需要知道或配置IP地址,也不需要考虑机器体系结构的差异,所以在任何操作系统或硬件平台上添加新的通信节点就成了一项极其简单的工作。

    Scalable Architecture 可扩展的架构

    DDS systems can span from Edge to Fog to Cloud. At the edge they can be used for high-speed real-time machine to machine communications. Within the intermediary system they can provide robust, reliable QoS and content-aware information flows. Integrating these systems DDS provides scalable access and distribution of information all the way to and within the cloud.


    The OMG DDS architecture is designed to be scalable from small devices to the cloud and for very large systems. DDS enables the Internet of Things by scaling across thousands or millions of participants, delivering data at ultra-high speed, managing many thousands of data objects, and providing extreme availability and security. DDS simplifies distributed systems development by absorbing much of the complexity in a single, standard communications layer.

    OMG DDS的适用范围覆盖了从小型设备到云计算系统等超大型系统。DDS可为成千上万参与者提供以超高速传输数据,同时管理数千个数据对象,提供极高的可用性和安全性,适用于物联网。DDS通过提供一个标准通信层,屏蔽了大量的底层复杂性,简化了分布式系统的开发。

    Security 安全性

    Protecting mission-critical Industrial IoT environments requires security that scales from edge to cloud, across systems and suppliers.

    DDS includes security mechanisms that provide authentication, access control, confidentiality, and integrity to the information distribution. DDS Security uses a decentralized peer-to-peer architecture that provides security without sacrificing real-time performance.


    For further information on the DDS standard then please visit the specifications page.

    有关DDS标准的更多信息,请查看DDS规范《DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001》

    Note: A DDS DomainParticipant represents the local membership of the application in a domain. A domain is a distributed concept that links all the applications able to communicate with each other. It represents a communication plane: only the publishers and the subscribers attached to the same domain may interact. Furthermore, it acts as a factory for DDS Publishers, Subscribers, Topics, MultiTopics and ContentFilteredTopics.

    注意:DDS 域参与者(DomainParticipant)表示域中应用程序的本地成员身份。域是一个分布式概念,它将所有能够相互通信的应用程序连接起来。它表示一个通信平面:只有同一域中的发布者和订阅者可以进行数据交互。此外,它还充当工厂类用于产生DDS的发布者、订阅者、主题、多主题(MultiTopics)和内容过滤主题(ContentFilteredTopics)等。



    DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001




    产品介绍:BLUE DCS分布式数据连接解决方案

    产品试用: 海蓝云平台-Blue DCS


  • POJ 1043 What's In A Name? 已被翻译

    千次阅读 2016-12-05 20:47:01
  • NameError: name 'question' is not defined Process finished with exit code 1 异常分析:名称question未被定义 异常处理:不能直接引用或者遍历形参, question在代码段一第9行已经定义为变量形参,引用输出...


    Author:  yeahthon
    Date   :  2019-08-09  12:28:47
    E-mail:  yeahthon@163.com
    class AnonymousSurvey():
        def  __init__(self, question):
            self.question = question
            self.responses = []
        def  show_question(self):
        def  store_response(self,new_response):
        def  show_results(self):
            print("Survey result:")
            for  response in responses:
                print('- ' + response)


    Author:  yeahthon
    Date   :  2019-08-09  12:50:20
    E-mail:  yeahthon@163.com
    from survey import  AnonymousSurvey
    question = "what language did you first learn to speak?"
    my_survey = AnonymousSurvey(question)
    print("Enter 'q' at any time to quit.\n")
    while True:
        response = input("Language: ")
        if  response == 'q':
    print("\nThink you to everyone cho participated in the survey!")


    G:\python\untitled1\venv\Scripts\python.exe G:/python/untitled1/language_survey.py
    Traceback (most recent call last):
      File "G:/python/untitled1/language_survey.py", line 13, in <module>
      File "G:\python\untitled1\survey.py", line 16, in show_question
    NameError: name 'question' is not defined
    Process finished with exit code 1

    异常处理:不能直接引用或者遍历形参, question在代码段一第9行已经定义为变量形参,引用输出时应当填入相应实参,即将代码段一第16行 question 改为 self.question,第25行 responses 改为 self.responses。

  • pyhton 总提示 name ‘XXX’ is not defined 的解决办法 language_survey.py #-*-coding:GBK -*- #11.5 from survey import AnonymousSurvey #定义一个问题,并创建一个表示调查的AnonymousSurvey对象 question =...

    pyhton 总提示 name ‘XXX’ is not defined 的解决办法


    #-*-coding:GBK -*- 
    from survey import AnonymousSurvey 
    question = "What language did you first learn to speak?" 
    my_survey = AnonymousSurvey(question)
    print("Enter 'q' at any time to quit.\n") 
    while True: 
    	response = input("Language: ") 
    	if response == 'q':
    # 显示调查结果
    print("\nThank you to everyone who participated in the survey!") 


    #-*-coding:GBK -*- 
    class AnonymousSurvey():
    	def __init__(self,question):
    	def show_question(self):
    	def store_response(self,new_response):
    	def show_results(self):
    		print("Survey results:")
    		for response in responses:
    			print('- '+ response)

    name ‘responses’ is not defined

    name ‘responses’ is not defined
    name ‘question’ is not defined


        def show_question(self):
                print(question)          -- self.question
        def show_results(self):
                print("Survey results:")
                for response in responses:   -- self.responses
                        print('- '+ response)



  • I'd assume this is C, since it works in GCC as well. Where is this defined in the standard, and where has it come from? Answer: That's not an operator --> . That's two separate ...
  • Name mangling is intended to give classes an easy way to define “private” instance variables and methods, without having to worry about instance variables defined by derived classes, or mucking with...
  • 今天就来看一些什么是uri url urn。看看uri:A URI can be further classified as a locator, a name, or both. The term "Uniform Resource Locator" (URL) refers to the subset of URIs that, in additio
  • 关于samba的作用在这里我就不作详细的解说了,由于这几天重装了ubuntu...The specified network name is no longer available”这样的一个小问题,卸载,重新安装samba,又重新配置文件,问题依然存在,但是在windows
  • what is __init__.py for?

    千次阅读 2020-02-06 18:39:28
    Python defines two types of packages. regular packages and namespace packages. Regular packages are traditional packages as they existed in python3.2 and ... A regular package is typically implem...
  • NameError: global name 'reduce' is not defined

    千次阅读 2018-09-14 15:20:18
    I'm new to Python. Would you please tell me what's wrong with the following code? When I run it, I got an error ...NameError: global name 'reduce' is not defined". I asked Goolge but it's use...
  • What is this?

    千次阅读 2014-03-07 10:34:30
    (This is an article I wrote several years ago to explain the this keyword in some programming languages. The title is a pun intended.)Java, C# etc.The this is a keyword in programming languages such a
  • docker run --name mysql -p 3306:3306 -v /root/bo/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it wzj/mysql docker: Error response from daemon: Conflict. The container name "/mysql&...
  • In your opinion, what is the most important characteristic (for example, honesty,intelligence, a sense of humor) that a person can have to be successful in life?
  • 流利说 Level 3 全文

    万次阅读 多人点赞 2019-05-22 10:51:17
    This is because the traffic yesterday was much heavier than usual.   -How was the traffic yesterday? –It was much heavier than usual. -Why were several buses late? –The traffic was ...
  • for..in loops iterate over the entire prototype chain, which is virtually never what you want. 意思是使用for..in会遍历整个原型链,这样不是很好的实现方法,推荐使用Object.keys formRules:{ name:true,...
  • 如题:what is method signature in java? answer:Definition: Two of the components of a method declaration comprise the method signature—the method's name and the parameter types. 方法声明的两个组件...
  • what is RCS/RCS-e

    千次阅读 2014-02-07 18:24:22
    but it would be hard to get a 'short/tangible' understanding of what it really is. Is RCS a kind of specification ? Is it a kind of software package ? Is it a kind of name for a technology ?   ...
  • What Is NXDOMAIN?

    千次阅读 2015-04-06 13:39:02
    What is NXDOMAIN? How does nxdomain affects my browsing? Explains the relationship between NXDOMAIN and DNS Hijacking. A DNS server is used to translate a domain name into an IP address or vise ver
  • Let’s begin by a short introduction to variable ... It is a mechanism in TensorFlow that allows for sharing variables accessed in different parts of the code without passing references to the vari
  • apropos与whatis命令

    千次阅读 2011-03-03 22:09:00
    apropos ...(指令 apropos 与 whatis,这两者检索相同的资料库)指令使用:# apropos who at.allow [at] (5) - determine who can submit jobs via at or batch at.deny [at] (5) - determine who
  • Thread Name: Pool Size: 200 (active: 200, core: 200, max: 200, largest: 200), Task: 16150 (completed: 15950) RemotingException: Server side(,18090) threadpool is exhausted ,detail ...
  • So, what is needed now is the distorm3 Python package ( distorm3 ).   # unzip distorm3-3.3.0.zip  # cd distorm3-3.3.0  # sudo python setup.py build install Check again the installation:...
  • What is CIF/4CIF/QCIF/D1?

    千次阅读 2011-12-19 15:16:25
    QCIF full name Quarter common intermediate format. QCIF is commonly used standardized image format. In the H.323 protocol in the cluster, a video capture device provides the standard acquisition resol
  • 严重: Servlet.service() for servlet action threw exception...java.lang.RuntimeException: file name '....' is too long ( > 100 bytes) at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.p
  • What is The Rule of Three?

    千次阅读 2012-07-01 11:48:43
    1、拷贝一个对象是什么意思? 2、拷贝构造函数和拷贝赋值运算符又都是什么? 3、在什么时候我需要声明他们? 4、我如何阻止我的对象被拷贝? 1、前言(Introduction) C++看待用户定义的数据变量 with  ...
  • What is 4K, UHD, QFHD, FHD, and HD ?

    万次阅读 2018-01-14 21:07:42
    SMARTGADGETSHUB.COM Home Cameras Computers Drones Storage Devices About Us Technical Information ...What is 4K, UHD, QFHD, FHD, and HD ? June 2, 2015by Smart
  • 通常我们在 info.plist 中,可以看到类似如下配置:Bundle Display Name - ${PRODUCT_NAME} Executable File - ${EXECUTABLE_NAME} ... Bundle nameis folder name, where your app (including ex
  • http://stackoverflow.com/questions/26993903/a-virtualbox-machine-with-the-name-homestead-already-exists If you're planning to use multiple VMs ...
  • 什么是解析树?What is a Parse Tree?

    万次阅读 2011-08-31 17:06:29
    The Oracle (tm) Users' Co-Operative FAQ What is a Parse Tree? Author's name: Carel-Jan Engel Author's Email: cjpengel.dba



1 2 3 4 5 ... 20
收藏数 291,266
精华内容 116,506