用于基于域名系统的设备和目标发现的方法和系统的制作方法

文档序号:7992089阅读:283来源:国知局
用于基于域名系统的设备和目标发现的方法和系统的制作方法
【专利摘要】本发明描述了一种计算机实施的方法,用于在客户端-服务器计算机网络中取回属于一个或几个服务类型的所有特定服务实例,每种服务类型与服务实例的列表相关联,其中在通过客户端经由客户端应用程序作出的请求中请求特定服务实例,该方法包括:-由域名系统(DNS)接收对特定服务实例的请求,所述请求例如由客户端应用程序转发到所述DNS系统;-由所述域名系统对请求进行解析,其中对请求的解析包括:1)根据记录在所述DNS-SD系统的DNS系统存储器中的和在该请求中传达的信息确定第一服务类型T1和与所述第一服务类型T1相关的服务实例的第一列表L1;2)搜索包括在所述第一服务类型T1的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型T2相关的服务实例的另一个列表L2;3)对i=2,...,N+1进行迭代,N为与第一服务类型T1相关的服务子类型的数量:如果链接结构及其对应的服务子类型Ti存在并且被找到,那么搜索包括在所述服务子类型Ti的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型Ti+1相关的服务实例的列表Li+1。
【专利说明】用于基于域名系统的设备和目标发现的方法和系统
[0001]本发明涉及根据权利要求1和10的前序部分的用于基于域名系统(通常称为“ DNS ”)的设备和目标的发现的方法和系统。
[0002]DNS在诸如互联网的网络上提供关键服务,将对代表文本描述资源的域名的查询翻译成通常由一系列数字代表的网络地址。例如,DNS是应用于互联网的名称解析系统。其被用来将名称解析为互联网协议(称为“IP”)地址,并且反之亦然。更新的方法,例如在DNS-SD草案“基于DNS的服务发现”(http: tools, ietf.0rg/pdf/draft-cheshire-dnsext-dns-sd-10.txt)中描述的基于 DNS 的服务发现(称为“DNS-SD”),提出将DNS也用于服务的发现,例如打印机。
[0003]DNS-SD草案定义了一组用于查询DNS服务器的特定规则和方法论,但是使用已存在的DNS资源记录(RR)类型。此外,DNS-SD草案定义基本语法以存储关于服务的附加信息。DNS RR被命名和构造以便于服务发现。因此,给定客户端正在寻找的服务的类型,以及其中该客户端正在寻找该服务的域,这允许客户端使用标准DNS查询发现一系列该所需服务的已命名实例(instance)。
[0004]DNS-SD定义服务实例为〈实例>.〈服务>.〈域〉的串联,其中〈域〉部分代表其中服务实例被登记的DNS子域,< 服务 > 部分识别根据RFC2782 (http://tools, ietf.0rg/pdf/rfc2782)的服务类型,并且〈实例 > 部分命名该服务实例。
[0005]服务类型(〈服务 >)可以包括两级层次并遵循[_subtype.sub.]_type._proto的一般惯例,其中“_proto”表示使用的IP传输协议,“_type”命名服务类型,关键字“_sub”指示第二级层次是可用的,并且“_subtype”命名服务子类型。
[0006]DNS-SD使用下列资源记录类型来代表服务:
[0007]-SRV RR:存储单个服务实例,即从服务实例解析到主机并且当减少到相关变元(argument)(左:查询的变元,中:查询的类型,右:对查询的响应)时具有下列形式:〈实例>.<服务λ〈域>SRV〈主机X端口〉;
[0008]-TXT RR:存储关于单个服务实例的附加信息,即〈实例>.<服务>.<域>TXT〈“任意文本属性”〉;
[0009]-PTR RR:将服务类型与单个服务实例链接,即〈服务>.<域>PTR〈实例>.<服务>.〈域 >。
[0010]对于每个服务实例,SRV和TXTRR被存储在DNS中。SRVRR基本被用来解析服务实例的主机和端口。对应的TXT RR可以包含关于特定服务实例的附加信息。TXT RR的内容被格式化为键/值对,其中第一个等号(“ = ”)作为分隔符(例如用于打印机服务的“纸型=A4”)。TXT RR可以包含多个键/值对。在二进制表示中,每个键/值对在内容之前存储有长度字段。PTR RR被用来解析服务类型到单个服务实例,即对域内所有网页服务器的查询可以用对服务类型“_http._tcp.<域 >”的DNS查询来完成,并且将产生所有特定网页服务器实例的列表。
[0011]DNS的主要问题是应答的大小被限制为64kB,这将域中单一类别的服务的数量限制为大约700。该限制是更大型基于IP的系统的主要障碍。例如,大型建筑物自动化系统可以由具有500000个目标/服务的5000个设备构成。
[0012]为了克服这一问题,提出了一些解决方案,例如
[0013]-管理站上的工程和数据库;
[0014]-网页服务发现;
[0015]-轻量目录访问协议(LDAP)。
[0016]不幸的是,这些解决方案要求附加的基础结构或者不足够灵活以成为高效。即使其可能被用于更少限制的服务发现,它们在时间和/或设备方面需要附加的努力,因为现有的基础结构需要被扩展以实施这些解决方案。此外,用来将建筑自动化和控制网络(BACnet)设备组网的IT基础结构的管理者可能不允许使用上述的协议。
[0017]本发明的目的是提供一种用于基于DNS的设备和目标的发现的方法和系统,其灵活、高效,免于附加协议的需要,并且允许从DNS服务器发现任意数量的设备/目标/服务。
[0018]这一目的是通过根据权利要求1和10中指定的特征允许从DNS服务器发现任意数量的设备/目标/服务的基于DNS的方法和系统达到的。

【发明内容】

[0019]本发明涉及计算机实施的方法,用于在客户端-服务器计算机网络中取回在属于一个或几个服务类型的几个服务实例之间的特定服务实例的列表,每种服务类型与服务实例的列表相关联,其中在通过客户端经由客户端应用程序作出的对特定服务类型的请求中请求特定服务实例,该方法包括:
[0020]-由DNS接收对特定服务实例列表的请求,所述请求例如由客户端应用程序转发到所述DNS系统;
[0021 ]-由所述DNS对请求进行解析,其中对请求的解析包括:
[0022]I)从记录在所述DNS系统的DNS系统存储器中的和在该请求中传达的信息确定第一服务类型T1和与所述第一服务类型T1相关的服务实例的第一列表L1 ;
[0023]2)搜索包括在所述第一服务类型T1的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型T2相关的服务实例的另一个列表L2 ;
[0024]3)对于i = 2,...,N+1进行迭代,N为与第一服务类型T1相关的服务子类型的数量:如果链接结构及其对应的服务子类型Ti存在并且被找到,那么搜索包括在所述服务子类型Ti的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型Ti+1相关的服务实例的列表Li+1。
[0025]优选地,根据所要求保护的方法由所述DNS和客户端应用程序进行的对请求的解析可以包括第四步骤和第五步骤,在于:
[0026]4)对于根据步骤1-3中的至少一个识别出的服务实例的每个列表Li, i = I,...,N+1,确定特定服务实例是否属于所述列表Li ;
[0027]5)如果该特定服务实例属于根据步骤1-3中的至少一个确定的列表LiQ =1,...,N+1)中的一个,停止根据步骤3的迭代和对链接结构的搜索,并返回与所述特定服务实例相关的信息至客户端,所述返回至客户端的信息包括例如PTR RR,SRV RR和/或TXTRR,否则根据步骤1-4中的至少一个继续搜索所述特定服务实例,直到服务实例的列表Ln+1和服务子类型TN+1已根据步骤4被检查以确定是否所述特定服务实例属于所述列表Li (i =1,...,N+1)中的一个;
[0028]6)如果所述特定服务实例不属于所述列表Li (i = I,..., N+1)中的任何一个,返回错误消息至客户端。
[0029]本发明还涉及一种用于在分布式环境中解析名称并发现服务的域名系统,其包括:
[0030]-名称服务器;
[0031]-适合于将所述DNS连接到至少一个客户端设备的至少一个连接;
[0032]-所述域名系统能够与驻存在该客户端设备中的至少一个客户端应用程序协作;
[0033]其特征在于该名称服务器包括配置为根据权利要求1中描述的方法与驻存在该客户端设备中的客户端应用程序一起工作的客户端应用程序和信息。
[0034]特别地,本发明可以用于分布式客户端-服务器计算机网络中,从而当第一名称服务器例如从客户端接收到查询来自网络中的第二名称服务器的服务的请求时,其中所述第二名称服务器在第一名称服务器中例如由其域响应度(responsibility)来识别,根据本发明第一名称服务器能够向第二名称服务器发送查询请求,第二名称服务器接下来能够根据上述计算机实施的方法搜索并返回服务实例列表和/或有关该请求的附加信息。优选地,第一名称服务器能够根据本发明委派后续请求,其中对以相同方式存储在第二名称服务器中信息的所述后续请求来自客户端。
[0035]因此,本发明提出了对DNS-SD的语义的扩展,其允许在DNS数据库中取回服务实例的扩展列表。优选地,所请求保护的方法可以被扩展到表示元数据到DNS数据库中的几乎任意整合。有利的是,并不要求DNS-SD的完全实施。
[0036]根据本发明,DNS的资源记录包括用于服务类型的TXT RR,其有利地允许与服务类型显著相关的元信息的附加存储。TXT RR的定义被特别地扩展到如下语法:
[0037]-TXT RR:存储关于单个服务实例和服务的附加信息,即
[0038]<实例>.<服务>.〈域>TXT〈”任意文本属性” >
[0039]<服务>.〈域>ΤΧΤ〈”任意文本属性” >
[0040]有利的是,由于第一服务类型T1对客户端应用程序或者是公共可用的(IETFresp.1ANA维护列表)或者是公知的,根据本发明的相关TXT RR为扩展的服务发现建立自然进入点,即用于服务实例的列表Li的发现。
[0041]根据本发明由与服务类型相关的TXT RR实施的链接结构有利地允许应对DNS响应的响应大小限制。根据本发明,用于服务类型的TXT RR,例如所述第一服务类型T1或所述服务子类型Ti中的一个,被特别地配置成用于提供链接结构存在的指示(例如“listtype = linked””)和下一个服务的描述,即所述服务子类型(例如“next = _list_continuationl._sub”)。与服务相关的TXT RR中的服务的子类型特别地被用来为链接列表的延续识别服务子类型。
[0042]优选地,服务子类型可以是任意的和/或具有人类可读(有意义的)的名称。特别地,在实施时解析者可以无需知晓所述服务子类型的名称。优选地,所述解析者能够为第一服务类型和/或所述服务子类型解释用在TXT RR中的键,其中所述键被配置成用于给出对链接列表的提示。
[0043]优选地,链接结构的不同类型可以与TXT RR相关以用于访问所述服务子类型Ti中的一个。链接结构优选地是任意的,从而该方法能够用各种结构进行工作。但优选地是,链接结构是链接的列表,或编号的列表,或树型列表,或双链接的列表。特别地,在链接结构中对子类型的引用可以是隐含的,并且免于在任何资源记录中明确地存储对子类型的引用。优选地,编号的列表可以以指示“listtype = numbered”开始,服务子类型的数量N被编码为“numtypes = N”,第一服务类型T1被编码为“basetype = my_type”,并且然后N个服务子类型 Ti (i = I,…,N+1)被编码为{ “my_typel = _list_continuationl._sub”, ,“my_typeN = _list_continuationN._sub”}。优选地,解析者能够串联第一类型名称和数量以获得真实的子类型。
[0044]优选地,附加信息可以被编码在与服务类型相关的TXT RR中。这可以是、但不限制为特定服务类型层次的可用性或物联网(1T)主机的资源和服务实例之间的区分。例如,Tl可能与“设备列表”相关,并且与Tl相关的TXT RR可能不仅包括到列表的延续(T2)的链接,而且包括到目标01的列表的链接。有利地,因此只需要一个公知的进入点。
[0045]优选地,用于定义链接结构的语义和信息取决于(客户端)应用程序或服务类型,并且可以被定义在已知的例如IETF的服务列表中,或者分别地在IANA中,或者可以服从于特定应用标准。例如,根据请求保护的方法,客户端应用程序可以包括被配置为指向相关链接列表并且显著地便于由DNS使用的信息/数据。
[0046]现在将参考附图更详细地描述本发明的工作原理,其中:
[0047]图1根据本发明的用于包含BACnet服务/设备的DNS配置的配置示例;
[0048]图2根据本发明的链接列表的示例;
[0049]图3根据本发明的链接列表处理的示例。
[0050]图1是根据本发明用于发现特定服务实例的解析过程的原理的例图。
[0051]根据本发明,示例性DNS名称`服务器配置特别地包括:
[0052]-两行(行I和行2),其被配置成用于定义第一服务类型“_bacnet._tcp”的两个服务/设备实例“serviCe_a”和“service』”,其中所述第一服务类型在本示例中代表对BACnet服务的公知进入点;
[0053]-一行(行3),其被配置成用于包括定义用于访问BACnet服务的另一列表的链接的链接列表结构,包括优选地作为属性的列表类型“linked”的TXT RR,以及到下一个服务类型的链接,即到服务子类型“_first._sub._bacnet._tcp” ;
[0054]-两行(行4和行5),其被配置成用于定义如行3中所示的服务子类型“_first._sub._bacnet._tcp” 的两个服务 / 设备实例 “service_c” 和 “service_d” ;
[0055]-两行(行6和行7),其给出用于服务实例的SRV和TXTRR的使用的示例。服务实例 “service_d._f irst._sub._bacnet._tcp,,在端口 “80,,上解析至主机 “aHost.example,com”。行7中的TXT RR声明关于该服务的附加信息,例如用于访问该服务的URI“/service_d/o”。
[0056]上述DNS名称服务器配置已被削减到相关行,省略了域信息。
[0057]图2示出了根据本发明的链接列表结构I。优选地,链接列表结构包括至少一个链接的列表。每个链接的列表与能够扩展到第一服务类型的服务实例的服务子类型相关联。每个服务子类型包括数据元素E2、E3、E4,并且每个数据元素E2、E3、E4包括至少一个到另一服务子类型的另一数据元素的链接121,以及一些数据122。[0058]第一服务类型T1特别地包括数据元素E1并且可以与服务实例的第一列表L1关联。优选地,第一服务类型T1的所述数据元素E1包括进入点111,进入点111包括在何处可以找到另一数据元素E2的信息(即与服务子类型T2相关联的第一链接列表的数据元素E2并且其可以经由连接A1链接到第一服务类型1\)。第一服务类型T1的所述数据元素E1还可以包括其它数据112。
[0059]进入点111的信息优选地被配置成用于提供到服务子类型T2的数据元素E2的第一链接或连接4。根据本实施例以及优选地,到服务子类型T3的数据元素E3的另一连接A2由服务子类型T2的链接121提供,并且到服务子类型T4的数据元素E4的最后连接A3由服务子类型T3的链接121提供。服务子类型T4的数据元素E4的链接121特别地不提供到另一服务子类型的数据元素的任何链接。优选地,服务子类型的每个链接121被配置成用于包括指示在何处以及如何找到另一服务子类型的数据元素的信息。
[0060]对于上面的BACnet示例,数据元素由以相同服务类型(这里:“_bacnet._tcp”和“_first._sub._bacnet._tcp”)开始的行识别。具有RR类型“PTR”的行在图1中表示数据元素的数据部分。具有RR类型“TXT”的行表示数据元素的链接部分。
[0061]图3示出了根据本发明的优选实施例的链接列表的处理。进入点111优选地被配置成用于提供到服务子类型T2 (i = I)的数据元素E2 (i = I)的第一服务类型T1的连接A1的信息,以将与服务子类型T2相关联的服务实例的列表链接到第一服务类型T1的服务实例的列表。进入点111特别地被选择为或者公共可用的(IETF分别地IANA维护的列表)或者客户端应用程序公知的数据。因此,由于第一服务类型T1的进入点111是已知的,所以与服务子类型T2相关联的服务实例的列表可以经由第一连接A1以及其对应的数据元素E2访问。数据122和数据元素E2的链接121由DNS服务器读取。客户端应用程序能够确定子类型T2的数据元素E2的链接121是否有效20,或者所述链接是否无效21。
[0062]根据本发明的客户端应用程序能够根据迭代过程发现服务实例的列表。事实上,如果所述链接有效20,那么其提供到服务子类型T3 (i = 2)的数据元素E3 (i = 2)的服务子类型T2的连接A2 (i = I)的信息,以将与服务子类型T3相关联的服务实例的列表链接到服务子类型T2的服务实例的列表。然后,DNS服务器读取数据元素E3的数据122和链接121,并且DNS服务器确定子类型T3的数据元素E3的链接121是否有效20,或者所述链接是否无效21。并且根据本发明的方法针对与第一服务类型T1相关联的服务子类型的数量N迭代上述过程,即直到i =N为止。如果链接121无效21或者不存在,根据本发明,其被DNS服务器解释为空的,并且后者能够停止迭代。
[0063]在BACnet的示例中,进入点由已知的BACnet服务类型“_bacnet._tcp”给出。进入点通过为服务类型“_bacnet._tcp”的PTR和TXT记录而对DNS服务器进行查询来访问。链接的列表嵌入在每服务子类型的TXT资源记录中,并且TXT资源记录被配置成用于包含用于将链接的列表结构扩展到与后续服务子类型相关联的后续列表的有效链接定义。在每次迭代中,服务子类型的TXT记录由DNS服务器进行检查以找到链接的列表。
[0064]有利地是,对BACnet装置的发现可能对BACnet设备和BACnet目标是感兴趣的。优选地,与BACnet设备(例如“_bacnet._tcp”)相关联的TXT记录可以不仅包括设备的链接列表,而且包括定义BACnet目标的列表的属性。例如,属性“BACnetObjects = _objects._sub._bacnet._tcp”可以为这种列表定义服务类型。[0065]最后,根据用于实现(任意)链接的数据结构的DNS规范、并且基于结构化服务目录的这些数据结构的TXT RR的使用,向本发明提供了相比于现有技术的下列优点:
[0066]-语义排序:根据其服务类型对服务进行分组;
[0067]-无大小限制:在能够查询保持在64kB的响应大小限制内的某些类型的服务的列表的同时,其允许实施任意大小的服务目录;
[0068]-其使用作为IT基础设施一部分的通常已经可用的DNS系统。因此,如果使用DNS,无需承认附加的协议;
[0069]-常用标准互联网技术(DNS)被用于服务发现。这使得在受管理的IT基础设施中使用服务发现机制更容易得多,这些基础设施可能不允许新(非很好证明的)技术或备用的发现/目录协议。
[0070]-根据本发明的方法可应用于广泛的问题和链接的数据结构(远远超越基于链接列表的BACnet示例)。其在不脱离已建立的DNS规范的情况下扩展DNS的能力以表示(服务)信息;
[0071]-本发明使人类可读服务类型、分别地甚至在操作阶段中信息的语义结构能够灵活使用。所使用的服务类型/类别并不一定事先指定,而可以在任何时候被扩展;
[0072]-本发明的思想可以加入到DNS规范中(例如以新的IETFRFC形式)。个别的应用,例如BACnet,可以遵循本发明中给出的原理将服务特定语义标准化。
【权利要求】
1.一种计算机实施的方法,用于在客户端-服务器计算机网络中取回在属于一个或几个服务类型的几个服务实例之中的特定服务实例的列表,每种服务类型与服务实例的列表相关联,其中在通过客户端经由客户端应用程序作出的对特定服务类型的请求中请求特定服务实例,该方法包括: -由域名系统(DNS)接收对特定服务类型的请求,所述请求例如由客户端应用程序转发到所述DNS系统; -由所述域名系统对请求进行解析,其中对请求的解析包括: 1)根据记录在所述DNS系统的DNS系统存储器中的和在所述请求中传达的信息确定第一服务类型T1和与所述第一服务类型T1相关的服务实例的第一列表L1 ; 2)搜索包括在与所述第一服务类型T1相关的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型T2相关的服务实例的另一个列表L2 ; 3)对i= 2,...,N+1进行迭代,N为与第一服务类型T1相关的服务子类型的数量:如果链接结构及其对应的服务子类型Ti存在并且被找到,那么搜索包括在所述服务子类型Ti的TXT资源记录中的链接结构,其中所述链接结构被设计用于确定和识别与服务子类型Ti+1相关的服 务实例的列表Li+1。
2.根据权利要求1的计算机实施的方法,其中由所述DNS和客户端应用程序进行的对请求的解析包括: 4)对于根据步骤1-3中的至少一个识别的服务实例的每个列表Li,i = I,...,N+1,确定特定服务实例是否属于所述列表Li ; 5)如果该特定服务实例属于根据步骤1-3中的至少一个确定的列表LiQ= 1,...,N+1)中的一个,停止根据步骤3的迭代和对链接结构的搜索,并返回与所述特定服务实例相关的信息至客户端,否则根据步骤1-4中的至少一个继续搜索所述特定服务实例,直到服务实例的列表Ln+1和服务子类型Tim已根据步骤4被检查过以确定所述特定服务实例是否属于所述列表Li (i = 1,...,N+1)中的一个; 6)如果所述特定服务实例不属于所述列表Li(i = I,..., N+1)中的任何一个,返回错误消息至客户端。
3.根据权利要求2的计算机实施的方法,其特征在于与所述特定服务相关联的并且返回到客户端的信息包括PTR RR、SRV RR和/或TXT RR。
4.根据权利要求1-3中一项的计算机实施的方法,其特征在于链接结构是任意的。
5.根据权利要求1-4中一项的计算机实施的方法,其特征在于链接结构是链接的列表,或者编号的列表,或者树型列表,或者双链接的列表。
6.根据权利要求1-5中一项的计算机实施的方法,其特征在于在链接结构中对子类型的引用是隐含的,并且免于在任何资源记录中明确的存储。
7.根据权利要求5或6中的一项的计算机实施的方法,其特征在于编号的列表以指示“listtype = numbered”开始,服务子类型的数量N被编码为“numtypes = N”,第一服务类型1\被编码为“basetype = my_type”,并且然后N个服务子类型Ti (i = I,...,N+1)被编码为{“my_typel = _list_continuationl._sub”,...,“my_typeN = _list_continuationN._sub ”}。
8.根据权利要求1-7中的一项的计算机实施的方法,其特征在于与第一服务类型T1或与服务子类型Ti相关联的TXT RR包括关于所述第一服务类型T1或所述后续Ti服务类型编码的附加信息。
9.根据权利要求8的计算机实施的方法,其中所述附加信息包括特定类型层次的可用性或资源和服务实例之间的区分。
10.一种用于在分布式环境中解析名称并发现服务的域名系统,其包括: -名称服务器; -适合于将所述DNS连接到至少一个客户端设备的至少一个连接; -所述域名系统能够与驻存在该客户端设备中的至少一个客户端应用程序协作; 其特征在于该名称服务器包括被配置为根据权利要求1中描述的方法与驻存在该客户端设备中的客户端 应用 程序一起工作的客户端应用程序和信息。
【文档编号】H04L29/08GK103891247SQ201280046021
【公开日】2014年6月25日 申请日期:2012年9月3日 优先权日:2011年9月20日
【发明者】N·维卡里, B·伊斯勒, C·尼德迈尔 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1