Method and system for domain name system based discovery of devices and objects

09705843 · 2017-07-11

Assignee

Inventors

Cpc classification

International classification

Abstract

The Specific service instances are requested by a client via a client application. The request is received by a Domain Name System (DNS). The request is resolved by the DNS by determining from information recorded in a DNS system memory and conveyed in the request, a first type T1 of service and a first list L1 of service instances associated with the first type T1. The DNS then searches for a linked structure in a TXT resource record for the first type T1. The linked structure identifies another list L2 of service instances associated with a subtype T2 of service. Then iteratively, for i=2, . . . , N+1, N being a number of the subtypes of service associated with the first type T1 of service, searching a TXT resource record for a linked structure identifying a corresponding subtype Ti of service and identifying a list Li+1 of service instances associated with the subtype Ti+1.

Claims

1. A computer implemented method for processing in a client-server computer network a request for a specific service type, the method comprising: receiving, by a Domain Name System (DNS), the request for a specific service type, the request being forwarded to the Domain Name System from a client via a client application; and resolving the request by the Domain Name System, wherein the resolving of the request comprises: determining, from information recorded in a DNS memory of the Domain Name System and from information included in the request, a first type T.sub.1 of service and a first list L.sub.1 of service instances associated with the first type T.sub.1 of service; searching for a linked structure in a text (TXT) resource record, the linked structure being associated with the first type T.sub.1 of service, the linked structure identifying a second list L.sub.2 of service instances associated with a subtype T.sub.2 of service; iteratively, for each subtype T.sub.i of service, where i=2, . . . , N+1, wherein N represents a number of subtypes of services associated with the first type T.sub.1 of service and wherein N is at least 1, searching in a text resource record for the subtype T.sub.i of service, for a linked structure associated with the subtype T.sub.i of service, the linked structure identifying a list L.sub.i+1 of service instances associated with a subtype T.sub.i+1 of service; wherein (a) the first list L.sub.1 of service instances associated with the first type T.sub.1 of service, (b) the second list L.sub.2 of service instances associated with a subtype T.sub.2 of service, and (c) each list L.sub.i+1 of service instances identified by the iterative search of the text resource record for each subtype T.sub.i of service, collectively define a plurality of service instance lists; generating a response to the request for a specific service type based on one or more of the plurality of service instance lists; and communicating the response to the client.

2. A computer implemented method according to claim 1, wherein the request for the specific service type serves to request a specific service instance, and generating the response to the request for a specific service type based on one or more of the plurality of service instance lists and communicating the response to the client comprises: for each list L.sub.i, (i=1, . . . , N+1), of service instances identified by a corresponding linked structure, wherein N is at least 1, determining if the specific service instance belongs to the respective list L.sub.i; if the specific service instance belongs to one of the lists L.sub.i (i=1, . . . , N+1), stopping iteratively searching for the linked structure and returning information related to the specific service instance to the client, else continuing iteratively searching for the linked structure until list L.sub.N+1 of service instances and subtype T.sub.N+1 of service have been checked for determining if the specific service instance belongs to one of said lists L.sub.i (i=1, . . . , N+1); and if the specific service instance belongs to none of said lists L.sub.i (i=1, . . . , N+1), returning to the client an error message.

3. A computer implemented method according to claim 2, wherein the information related to said specific service and returned to the client comprises pointer return results (PTR RR), service record return results (SRV RR), and/or text return results (TXT RR).

4. A computer implemented method according to claim 1, wherein the linked structure in the text (TXT) resource record is arbitrary.

5. A computer implemented method according to claim 1, wherein the linked structure in the text (TXT) resource record is a linked list, or a numbered list, or a tree type list, or a double linked list.

6. A computer implemented method according to claim 5, wherein the numbered list starts with an indication listtype=numbered, a number N of subtypes of services is encoded as numtypes=N, the first type T.sub.1 of service is encoded as basetype=my_type, and the N subtypes T.sub.i (i=2, . . . , N+1) of services are encoded as {my_type1=_list_continuation1._sub, . . . , my_typeN=_list_continuationN._sub}.

7. A computer implemented method according to claim 1, wherein a reference to a subtype in the linked structure in the text (TXT) resource record is implicit, and free of an explicit storing in any resource records.

8. A computer implemented method according to claim 1, wherein the TXT resource record containing the linked structure associated with the first type T.sub.1 of service or with a subtype T.sub.i of service, comprises encoded additional information concerning the first type T.sub.1 of service or the subtype T.sub.i type of service.

9. A computer implemented method according to claim 8, wherein the additional information comprises an availability of a specific type hierarchy or a distinction between resources and services instances.

10. A Domain Name System (DNS) for resolving names and discovering services in a distributive environment, comprising: a name server device; at least one connection adapted for connecting the Domain Name System to at least one client device; said Domain Name System being able to cooperate with a client application residing in the at least one client device; wherein the name server device is configured to perform a method for retrieving a list of specific service instances, the method comprising: receiving, by the Domain Name System, a request for a specific service type, the request being forwarded to the Domain Name System from a client via the client application; and resolving the request by the Domain Name System, wherein the resolving of the request comprises: determining, from information recorded in a DNS memory of the Domain Name System and from information included in the request, a first type T.sub.1 of service and a first list L.sub.1 of service instances associated with said first type T.sub.1 of service; searching for a linked structure in a text (TXT) resource record, the linked structure being associated with the first type T.sub.1 of service, the linked structure identifying a second list L.sub.2 of service instances associated with a subtype T.sub.2 of service; and iteratively, for each subtype T.sub.i of service, where i=2, . . . , N+1, and where N is at least 1, N being a number of subtypes of services associated with the first type T.sub.1 of service, searching in a text resource record for the subtype T.sub.i of service, for a linked structure associated with the subtype T.sub.i of service, the linked structure identifying a list L.sub.i+1 of service instances associated with a subtype T.sub.i+1 of service; wherein (a) the first list L.sub.1 of service instances associated with the first type T.sub.1 of service, (b) the second list L.sub.2 of service instances associated with a subtype T.sub.2 of service, and (c) each list L.sub.i+1 of service instances identified by the iterative search of the text resource record for each subtype T.sub.i of service, collectively define a plurality of service instance lists; generating a response to the request for a specific service type based on one or more of the plurality of service instance lists; and communicating the response to the client.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) These and other objects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the preferred embodiments, taken in conjunction with the accompanying drawings of which:

(2) FIG. 1 is an example of a proposed configuration for a DNS configuration containing BACnet services/devices;

(3) FIG. 2 is an example of a linked list;

(4) FIG. 3 is an example of linked list processing; and

(5) FIG. 4 shows a Domain Name System.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

(6) Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.

(7) FIG. 1 is an illustration of the proposed principle of resolution process for discovering a specific service instance.

(8) The example proposed DNS name server configuration comprises in particular: two lines (line 1 and line 2) configured for defining two service/device instances service_a and service_b of the first type of service _bacnet._tcp, wherein said first type of service represents, in this example, the well known entry point for BACnet services;

(9) one line (line 3) configured for comprising a link list structure defining a link for accessing to another list of BACnet services, the TXT RR comprising preferentially as attributes the type of the list linked and the link to the next service type, i.e. to the subtype of service _first._sub._bacnet.tcp;

(10) two lines (line 4 and line 5) configured for defining two service/device instances service_c and service_d of the subtype of service _first._sub._bacnet._tcp as indicated in line 3;

(11) two lines (line 6 and line 7) give an example of an usage of a SRV and TXT RR for a service instance. The service instance service_d._first._sub._bacnet._tcp resolves to the host aHost.example.com on port 80. The TXT RR in line 7 states additional information about this service, e.g. the URI /service_d/o for accessing the service.

(12) The above-mentioned DNS name server configuration has been reduced to relevant lines, omitting domain information.

(13) FIG. 2 illustrates a linked list structure 1. Preferentially, the linked list structure comprises at least one linked list. Each linked list is associated to a subtype of service that is able to extend to service instances of the first type of service. Each subtype of service comprises data elements E.sub.2, E.sub.3, E.sub.4, and each data element E.sub.2, E.sub.3, E.sub.4 comprises at least one link 121 to another data element of another subtype of service, and some data 122.

(14) The first type T.sub.1 of service comprises in particular data elements E.sub.1 and might be associated to a first list L.sub.1 of service instances. Preferentially, said data elements E.sub.1 of the first type T.sub.1 of service comprise an entry point 111, that comprises information where another data element E.sub.2 can be found (i.e. the data element E.sub.2 of the first linked list associated to the subtype T.sub.2 of service and that might be linked to the first type T.sub.1 of service via a connection A.sub.1). Said data elements E.sub.1 of the first type T.sub.1 of service might also comprise other data 112.

(15) The information of the entry point 111 is preferentially configured for providing a first link or connection A.sub.1 to the data elements E.sub.2 of the subtype T.sub.2 of service. According to the present embodiment and preferentially, another connection A.sub.2 to the data elements E.sub.3 of the subtype T.sub.3 of service is provided by a link 121 of the subtype T.sub.2 of service, and a last connection A.sub.3 to the data elements E.sub.4 of the subtype T.sub.4 of service is provided by a link 121 of the subtype T.sub.3 of service. The link 121 of the data elements E.sub.4 of the subtype T.sub.4 of service does in particular not provide any link to data elements of another subtype of service. Preferentially, each link 121 of the subtypes of services is configured for comprising information indicating where and how to find the data elements of another subtype of service.

(16) For the BACnet example above, a data element is identified by the lines starting with the identical service type (here: _bacnet._tcp and _first._sub._bacnet._tcp). Lines with RR type PTR represent in FIG. 1 the data part of a data element. Lines with RR type TXT represent the link part of a data element.

(17) FIG. 3 illustrates the processing of a linked list according to a preferred embodiment. The entry point 111 is preferentially configured for providing information for a connection A.sub.1 of the first type T.sub.1 of service to the data elements E.sub.2 (i=1) of a subtype T.sub.2 (i=1) of service, in order to link a list of service instances associated to the subtype T.sub.2 of service to a list of service instances of the first type T.sub.1 of service. The entry point 111 is in particular chosen as a data either publicly available (IETF respectively IANA maintained list) or well known to the client-application. Therefore, since the entry point 111 of the first type T.sub.1 of service is known, the list of service instances associated to the subtype T.sub.2 of service can be accessed via the first connection A.sub.1, as well as its corresponding data elements E.sub.2. The data 122 and the link 121 of the data elements E.sub.2 are read by the DNS server. The client application is able to determine if the link 121 of the data elements E.sub.2 of the subtype T.sub.2 is valid 20, or if said link is not valid 21.

(18) The client application is able to discover lists of services instances according to an iterative process. Indeed, if said link is valid 20, then it provides information for a connection A.sub.2 (i=1) of the subtype T.sub.2 of service to the data elements E.sub.3 (i=2) of a subtype T.sub.3 (i=2) of service, in order to link a list of service instances associated to the subtype T.sub.3 of service to a list of service instances of the subtype T.sub.2 of service. Then, the data 122 and the link 121 of the data elements E.sub.3 are read by the DNS server, and the DNS server determines if the link 121 of the data elements E.sub.3 of the subtype T.sub.3 is valid 20, or if said link is not valid 21. And the proposed method iterates the above mentioned process for the number N of subtypes of services associated to the first type T.sub.1 of service, i.e. until i=N. If a link 121 is not valid 21 or does not exist, it is interpreted as empty by the DNS server, and the latter is able to stop the iteration.

(19) In the BACnet example, the entry point is given by the known BACnet service type _bacnet._tcp. The entry point is accessed by querying the DNS server for the PTR and TXT records of the service type _bacnet._tcp. A linked list is embedded in the TXT resource record of each subtype of service, and the TXT resource record being configured for containing a valid link definition for extending the linked list structure to subsequent lists associated to subsequent subtypes of services. At each iteration, the TXT records of the subtype of service are checked by the DNS server for finding a linked list.

(20) Advantageously, the discovery for BACnet installations might be interested in BACnet devices and BACnet objects. Preferentially, the TXT record associated to BACnet devices (e.g. _bacnet._tcp) might comprise not only a linked list of devices, but an attribute defining a list of BACnet objects. For example, an attribute BACnetObjects=_objects._sub._bacnet._tcp could define a service type for such a list.

(21) Finally, the use of TXT RR from DNS specifications for the realization of (arbitrary) linked data structures and, based on these data structures, of a structured service directory provides the following advantages compared to related art techniques:

(22) a semantic ordering: services are grouped according to their service type;

(23) no size limitation: it allows an implementation of service directories of arbitrary size while being able to query list of services of certain types that stay within the response size constraint of 64 kB;

(24) it uses a DNS system usually already available as part of the IT infrastructure. Therefore, no additional protocols need to be admitted if DNS is used;

(25) common standard Internet technology (DNS) is used for service discovery. This makes it much easier to use the service discovery mechanism in managed IT infrastructures that may not allow new (not well-proven) technologies or alternate discovery/directory protocols;

(26) the method is applicable to a broad range of problems and linked data structures (far beyond the BACnet examples based on linked lists). It extends the capabilities of the DNS to represent (service) information without leaving the established DNS specification;

(27) the proposals enable flexible use of human readable service types, respectively semantic structures of information even in the operational phase. The service types/categories used must not be specified beforehand but can be extended anytime; the ideas may find their way into the DNS specification (e.g. in the form of a new IETF RFC). Individual applications, such as BACnet, might standardize service specific semantics following the principles given above.

(28) A Domain Name System (DNS) 400 for resolving names and discovering services in a distributive environment is shown in FIG. 4. The DNS 400 includes a name server 402. At least one connection 404 connects the Domain Name System 400 to at least one client device 406. The Domain Name System 400 is able to cooperate with a client application 408 residing in the client device 406.

(29) The invention has been described in detail with particular reference to preferred embodiments thereof and examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention covered by the claims which may include the phrase at least one of A, B and C as an alternative expression that means one or more of A, B and C may be used, contrary to the holding in Superguide v. DIRECTV, 69 USPQ2d 1865(Fed. Cir. 2004).