DDS开发规范的一些理解_第1页
DDS开发规范的一些理解_第2页
DDS开发规范的一些理解_第3页
DDS开发规范的一些理解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7发现配置在DD映现中,参与者参与到应用程序中,必须发现其他参与者。DD驰用了 domain(域)给数据当DD%Z用程序写入,参与者链接到域,同时需要确保他们的配置允许每一个 参与者来发现其他统一个域的参与者。DDS提供了一个中心发现方法和点对点发现方法来完成同一个域中的参与者。中心模 式使用一个独立的服务一DCPSInfoRepo服务,点对点模式使用DDS-RTP跋现协议标准来达到无中心的发现。使用任何一种方法的应用程序能够使用多维配置属性来满足实现需求。 每一种方法都提供了默认配置,如果没有通过命令行或者配置文件进行配置的话。如何细化配置达到更好的发现性能。使用多个DCPSInfoRepo

2、服务,或者需要使用DDS-RTPS满足互操作要求,为了达到这个目的,可以联合使用domain repository 和rtps_discovery 。域配置OpenDDSf已置文彳使用domain部分来配置一个或者多个发现域,每一个域在同一个 文件中指定一个发现配置。OpenDDSZ用程序可以使用基于 DCPSInfoRepo服务的中心发现模式,或者基于 DDS-RTPSt现协议标准的点对点发现方法,或者这两种方法的结合。 DCPSInfoRepo方法对应的类型是rtps_discovery , 一个单独域只能使用一种类型的发 现。看和查看更多repository 和rtps_discover

3、y的配置属性。一个域可以跟一个整数联系起来,配置文件可以在两种方法支持他。第一种方法是简 单的是例子值和域联系起来,例如:domain/1DiscoveryConfig=DiscoveryConfig1 (more properties.)我们的例子使用域关键字来标识域,这个关键字是/1.斜线后面的数值是和域连系的整数值。另一个可选的方法是使用更加容易识别的名字,增加 DomainId属性,同时给它赋 值。domain/booksDomainId=1DiscoveryConfig=DiscoveryConfig1这个域使用books名字,DomainId赋值1, DDSS用需要这个数值来读取配

4、置。多个域 实例可以在一个配置文件中使用这种方式进行区分。一旦一个或者多个域实例已经确定,这个域的发现属性必须确定。在我们以上的例子 中,属性DiscoveryConfig 必须指向另外还有发现属性的section ,或者指定发现的内置变量(DEFAULT_REPO者DEFAULT_RTPS例子名字是 DiscoveryConfig1 。例子名字必须和 repository orrtps_discovery联系。我们例子的扩展:domain/1DiscoveryConfig=DiscoveryConfig1repository/DiscoveryConfiglRepositoryIor=在这个

5、例子中我们的域指向repository ,这用来OpenDDSDCPSInfoRepo服务。可以看 或者有一些情况,当特定域并没有在配置文件中指定。例如,如果一个OpenDDSZ用将域ID3分给他的参与者,上面的例子不支持域 ID为3的配置,下面可以用: common DCPSInfoRepo= DCPSDefaultDiscovery=DEFAULT_REPO domain/1 DiscoveryConfig=DiscoveryConfig1 repository/DiscoveryConfig1 RepositoryIor= DCPSDefaultDiscovery 属性告诉应用如果参与者

6、没有指定域ID的话就给他指定 DEFAULT_REPO现类型,意思是使用DCPSInfoRepo服务,这个DCPSInfoRepo服务可以在找到。 表7-2中,DCPSDefaultDiscovery 属性还有两个数值可以用。DEFAULT_RTP连续值通知应用来告诉在文件中没有域配置的参与者使用RTP跋现来发现参与者。DCPSSefaultiscovery 属性的最后选项告诉应用来应用使用其中一种已经定义的配置 作为默认配置提供给那些没有在文件中定义的参与域。这里有一个例子: common DCPSDefaultDiscovery=DiscoveryConfig2 domain/1 Disc

7、overyConfig=DiscoveryConfig1 repository/DiscoveryConfig1 RepositoryIor= domain/2 DiscoveryConfig=DiscoveryConfig2 repository/DiscoveryConfig2 RepositoryIor=通过在common中增加DCPSDefaultiscovery 属性,那些没有分配到域id的参与者将使用DiscoveryConfig2 的配置。更多关于 RTP跋现的类似配置参看。这是domain可用的属性。配置应用程序的DCPSInfoRepo一个OpenDDS DCPSInfoRe

8、po一个用来参与者发现的本地或者远程节点。配置参与者 应该如何发现 DCPSInfoRepo是本节的目的。假设DCPSInfoRepo服务已经在上启动。 应用程 序可以是他们的 OpenDD缪与者通过命令行选项或者配置文件发现这个服务。在我们节的"Running the Example "我们使用命令行参数来发现DCPSInfoRepo服务:Publisher - DCPSInfoRepo - oDCPSInfoRepo服务在这个文件中产生他的位置对象信息,参与者需要读取这个文件来 进行连接。基于IORs的文件的使用来寻找发现服务,然而在大多数环境中无效,所以应用 程序使用

9、命令行选项来拿简单的指定运行DCPSInfoRepo服务的主机和端口 :Publisher - DCPSInfoRepo上面假设 DCPSInfoRepo已经在主机上启动:$DDS_ROOT/bin/DCPSInfoRepo - ORBListenEndpoints ,应该讲发现内容放到文件中,来降低命令行的复杂性。配置文件的使用同时能够使多个应用共享通用的OpenDD理已置。上面的例子可以移动到配置文件的common部分:commonDCPSInfoRepo=#令行将变成如下: publisher - DCPSInfoRepo我们再来看中的例子,配置文件可以指定域和与这些域相关联的发现配置。

10、这种情况下Repositorylor属性将和命令行表达同一个信息,即指定一个运行的DCPSInfoRepo服务。两个域的配置如下:domain/1DiscoveryConfig=DiscoveryConfig1repository/DiscoveryConfig1RepositoryIor= 下的DiscoveryConfig 属性是域1的所有参与者使用 DiscoveryConfig1 定义的配置。这指向了 reposity部分,RepositoryIor的值为。最终,当定义了 DCPSInfoRepo 的 DiscoveryConfig属性,还可以包含 DEFAULT_REPOcommon

11、DCPSInfoRepo=localhost:12345 domain/1DiscoveryConfig=DiscoveryConfig1repository/DiscoveryConfig1RepositoryIor= 这种情况下,域 2的参与者将引用 DCPSInfoRepo的发现属性,这个在 common中已经定义。如果 DCPSInfoRepo的值没有在common中提供,将会在命令行中当 做一个参数提供:publisher -DCPSInfoRepo localhost:12345 -DCPSConfigFile这样设定了 DCPSInfoRepo的值,如果参与者在文件中读到了 DE

12、FAULT_REPO这有一个 值。如果DCPSInfoRepo没有在配置文件和命令行中定义,那么他的默认值是file : /。如前所述,这在应用环境中不能很有效,所以需要通过其中一种方法设定 DCPSInfoRepo的值。配置多个DCPSInfoRep破例一个DD牌序中的 DDS实体可以关联多个 DCPSW息库(DCPSInfoRepo)。库信息和域关联能够使用配置文件或者通过应用程序API进行配置。内部默认、命令行参数和配置文件选项会起作用,就像现有应用一样,这些应用不想使用多DCPSInfoRepo关联。参考图7-2, 一个进行使用多个 DCPSInfoRepo库。Process A和B都

13、是配置了进行相互 通信,并且在InfoRepo_1中发现其他。这是基本发现的简单应用。然而,随着特定域(Domain1)的使用,上下文的额外层被部署。DDSB体(data readers/data writers )被限制在同一个域中和其他实体通信。者提供了一个分割交通的有效方式。Process C和D配置了相同的方式,运行在域 2中,使用InfoRepo_2。当有一个应用进行需要使用多个域和不同的发 现服务时就遇到了问题。这就是例子中的Process E。它有两个订阅者,一个订阅者从InfoRepo_1发布,一个从InfoRepo_2 。可以从配置文件中查看如何这样工作。卜面是配置文件,只展

14、示发现部分,不显示传输内容。domain/1DiscoveryConfig=DiscoveryConfig1 repository/DiscoveryConfiglRepositoryIor=E读到这个配置文件会发现多个domian部分。每一个域都有一个整数和一个定义的 DiscoveryConfig 。对第一个域(domain/1 ), DiscoveryConfig 属性是用户定义的 DiscoveryConfig1 值。 这个属性使得 OpenDDS例去寻找repository 或者rtps_discovery这样的标示和DiscoveryConfig1 。在我们的例子中,找到了 rep

15、ository/DiscoveryConfig1 ,这就是域 domain/1的发现配置。这部分告诉我们这个域使用的DCPSInfoRepo的地址可以通过RepositoryIor 属性得到。这里他是,端口 12345°RepositoryIor值可以是一个完整的 CORBAIOR或者简单主机:端口。第二个域名字为domain/2,相应的库部分repository/DiscoveryConfig2标示第二个域的配置和InfoRepo_2库。在一个配置文件中可以有任意数量的域部分或者库。 没有详细配置的域都被关联到默认发现配置上。每个DCPSInfoRepo可以连接到多个域,然而一个域

16、不能共享给多个DCPSInfoRepo。这里是repository部分的合法属性。DDS-RTPS现酉已置OMG DDS-RTPS范给了下面例子来说明OpenDD械用的发现方法,还有两种不同的协议来完成发现操作。引用节如下:RTP下巴发现协议划分为两个独立协议1、参与者发现协议2、终端发现协议参与者发现协议(PDP说明了在一个网络中参与者如何发现彼此。一旦两个参与者发现彼此,他们在终端使用终端发现协议(EDB来交换信息。排除这种因果关系,两种协议都是成熟的这节讨论的配置选项允许用户指定属性值来改变简单参与者发现协议(SPDP的行为和检点终端发现协议(SEDP默认设置。DDS-RTPS勺发现配置可以用简单的简单基本发现来完成,或者是用在中的域。简单配置通过在我们的例子配置文件的common中指定属性来实现。(for RTPS)commonDCPSDefaultDiscovery=DEFAULT_RTPS所有DDS-RTP跋现的默认值都是用这种格式采用的。这个基本配置的不同时指定一部 分来抱恨RTPS发现的更多定制参数。下面的历史使用common部分来指向r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论