CN107046537B - 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法 - Google Patents

一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法 Download PDF

Info

Publication number
CN107046537B
CN107046537B CN201710212565.XA CN201710212565A CN107046537B CN 107046537 B CN107046537 B CN 107046537B CN 201710212565 A CN201710212565 A CN 201710212565A CN 107046537 B CN107046537 B CN 107046537B
Authority
CN
China
Prior art keywords
alljoyn
dns
ocf
resource
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710212565.XA
Other languages
English (en)
Other versions
CN107046537A (zh
Inventor
李永华
万昊
汪子元
陈科锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Fortune Techgroup Co ltd
Original Assignee
Shanghai Fortune Techgroup Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Fortune Techgroup Co ltd filed Critical Shanghai Fortune Techgroup Co ltd
Priority to CN201710212565.XA priority Critical patent/CN107046537B/zh
Publication of CN107046537A publication Critical patent/CN107046537A/zh
Application granted granted Critical
Publication of CN107046537B publication Critical patent/CN107046537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于DNS‑SD的OCF客户端对AllJoyn服务的发现方法,其通过发送符合AllJoyn服务发现机制的DNS‑SD消息去发现AllJoyn服务资源。通过本方案可以实现OCF客户端设备对AllJoyn服务资源的发现,实现了OCF协议与AllJoyn协议互联互通。

Description

一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法
技术领域
本发明涉及网络技术,具体涉及OCF客户端对AllJoyn服务的发现技术。
背景技术
AllJoyn的服务发现机制采用Next-generation Name service(NGNS),NGNS发现协议采用了通过使用AllJoyn申请的多播地址和端口来发送基于多播的mDNS。AllJoyn服务消费端调用FindAdvertiseName()初始化NGNS消息序列,NGNS通过多播DNS发送基于DNS-SD的查询消息;NGNS使用AllJoyn申请的多播地址和端口来发送基于多播的DNS,IPv4组播地址为224.0.0.251,IPv6组播地址为FF02::FB,组播端口号为5353;任何与搜索名字匹配的服务提供端通过单播方式发送DNS-SD消息响应服务消费端。
OCF的服务发现是基于CoAP discovery机制。所有发布中的OCF设备加入“AllCoAP Nodes”多播分组,如IPv6中的FF0X::FD或监听端口“5683”。需要发现资源的OCF客户端也加入该多播分组。OCF客户端发送一个发现请求给多播分组和端口“5683”,请求的URI为/oic/res。如果OCF客户端正处在发现指定资源类型的过程中,则它应使用带有指定“rt”参数的查询指令,否则所有的OCF设备都会回复此请求。
可见,AllJoyn系统的服务发现机制和OCF的资源发现机制使用两种完全不同的发现协议,因此,AllJoyn设备与OCF设备之间无法互相发现。
发明内容
针对现有AllJoyn设备与OCF设备之间无法互相发现的问题,需要一种能够实现AllJoyn设备与OCF设备之间互相发现的方案。
为此,本发明所要解决的技术问题是提供一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法,使得AllJoyn设备与OCF设备之间可互相发现。
为了解决上述技术问题,本发明提供的基于DNS-SD的OCF客户端对AllJoyn服务的发现方法,通过发送符合AllJoyn服务发现机制的DNS-SD消息去发现AllJoyn服务资源。
在本方案中,在OCF客户端,通过OCF的资源发现接口发现AllJoyn服务资源,并将该资源生成AllJoyn标准的DNS-SD查询消息。
在本方案中,OCF客户端的资源发现接口将OCF的resource URI映射为DNS-SD消息中的TXT记录的“PATH={URI}”,对应于AllJoyn的对象路径;
将OCF的resourcetype映射为DNS-SD消息中TXT记录的“NAME={resourcetype}”,对应于AllJoyn的well-known name;
将OCF的resourceinteface映射为DNS-SD消息中TXT记录的“IF={resourceinterface}”,对应于AllJoyn的接口。
在本方案中,以多播的方式发送DNS-SD消息。
在本方案中,AllJoyn服务端收到DNS-SD查询消息后,进行匹配,在AllJoyn服务和OCF要发现的资源相互匹配后,返回相应的DNS-SD响应消息给OCF客户端。
在本方案中,OCF客户端在接收到DNS-SD响应消息后,进行解析得到AllJoyn服务的资源属性。
通过本方案可以实现OCF客户端设备对AllJoyn服务资源的发现,实现了OCF协议与AllJoyn协议互联互通。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本方案中DNS-SD消息的生成流程图;
图2为本方案中OCF客户端发现AllJoyn服务资源的流程图;
图3为本发明实例中OCF客户端发现AllJoyn服务资源的流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本方案基于DNS-SD消息,有效实现OCF客户端对AllJoyn服务的发现。由OCF客户端通过发送符合AllJoyn服务发现机制的DNS-SD消息去发现AllJoyn服务资源。
为此,本方案在OCF客户端,使用OCF的资源发现接口去发现AllJoyn服务资源,此时使用的AllJoyn服务资源符合OCF标准资源定义规范,拥有resource URI,resource type等;OCF客户端的资源发现接口将该资源生成AllJoyn标准的DNS-SD查询消息,由此实现对OCF客户端设备对AllJoyn服务资源的发现。
其中,DNS-SD(DNS-Based Service Discovery)定义了一种配置DNS PTR,SRV和TXT记录的常规方法。
而AllJoyn客户端通过如下名字格式来查询某一DNS PTR记录,从而发现某一服务的所有实例:
<Service>.<Domain>。
DNS-SD响应方返回DNS SRV和DNS TXT记录,且SRV和TXT有如下的命名格式:
<Instance>.<Service>.<Domain>。
在此基础上,为生成符合AllJoyn服务发现机制的DNS-SD消息(即AllJoyn标准的DNS-SD消息),OCF客户端发现资源接口需要提供resource URI,resource type和resourceinterface。
同时,OCF资源与AllJoyn DNS-SD消息之间采用如下的映射规则:
将OCF的resource URI映射为DNS-SD消息中的TXT记录的“PATH={URI}”,对应于AllJoyn的对象路径;
将OCF的resourcetype映射为DNS-SD消息中TXT记录的“NAME={resourcetype}”,对应于AllJoyn的well-known name;
将OCF的resourceinterface映射为DNS-SD消息中TXT记录的“IF={resourceinterface}”,对应于AllJoyn的接口。
据此,本方案中DNS-SD消息的生成流程如下(参见图1):
(1)定义要发现的AllJoyn服务的ResourceURI、Resource Type和ResourceInterface,以及OCF客户端应用程序调用findResource()方法;
(2)C++SDK通过进程间通信调用底层栈的资源发现方法OCDoResource()方法;
(3)OCStack接收到待发现AllJoyn资源的参数,按照上述对应的映射规则转化封装成DNS-SD消息;
(4)调用Socket,以多播的方式发送DNS-SD消息,其中IPv4组播地址为224.0.0.251,IPv6组播地址为FF02::FB,组播端口号为5353。
基于上述的DNS-SD查询消息,OCF客户端在发送DNS-SD查询消息后,AllJoyn服务端收到该DNS-SD查询消息,如果AllJoyn服务端拥有和DNS-SD查询消息相同的well-knownname,将会返回相应的DNS-SD响应消息给OCF客户端,至此,完成OCF客户端对AllJoyn服务的发现过程。
由此,OCF客户端基于DNS-SD消息发现AllJoyn服务的流程如下(参见图2):
(1)AllJoyn服务提供端连接AllJoyn router,注册总线对象,申请well-knownname;
(2)AllJoyn服务对象开启mDNS端口监听;
(3)OCF客户端初始化,调用OCF资源发现接口,寻找AllJoyn资源;
(4)OCStack根据发现的AllJoyn资源属性生成DNS-SD查询消息;
(5)按照mDNS多播发送DNS-SD查询消息;
(6)AllJoyn服务端收到DNS-SD查询消息,解析TXT记录,匹配对应的well-knownname和接口;
(7)AllJoyn服务和OCF要发现的资源相互匹配,AllJoyn服务端发送DNS-SD回复;
(8)OCF客户端收到DNS-SD回复,解析TXT记录,得到AllJoyn服务的资源属性,完成对AllJoyn服务资源的发现过程。
下面以资源发现的实例具体阐述OCF客户端基于DNS-SD消息对AllJoyn服务的发现过程。
首先,如下表所示,分别为AllJoyn标准服务对象和OCF标准资源进行定义:
Figure BDA0001261317690000041
Figure BDA0001261317690000051
由此,OCF客户端对AllJoyn服务的发现的整个流程如下(参见图3):
(1)AllJoyn服务提供端注册总线对象,对象路径为:/org/freedesktop/example,接口为:org.alljoyn.example.test。
(2)AllJoyncore向AllJoyn路由申请well-known name:org.alljoyn.example。
(3)AllJoyn服务端绑定端口,开启mDNS端口监听。
(4)OCF客户端调用资源发现函数,发现资源:
Resource type:org.alljoyn.example,
Resource URI:/org/freedesktop/example,
Resouece interface:org.alljoyn.example.test。
(5)OCStack根据AllJoyn资源属性生成对应的DNS-SD查询消息。
(6)mDNS多播发送DNS-SD查询消息。
(7)AllJoyn服务端通过mDNS端口监听,收到DNS-SD查询消息,解析TXT记录,匹配对应的well-known name,对象路径和接口;
(8)在AllJoyn服务和OCF要发现的资源相互匹配后,AllJoyn服务端发送DNS-SD回复(单播响应)。
(9)OCF客户端收到DNS-SD回复,解析TXT记录,得到AllJoyn服务的资源属性,完成对AllJoyn服务资源的发现过程。
由上实例可知,本方案实现了OCF客户端对AllJoyn服务的发现,有效实现了OCF协议与AllJoyn协议互联互通。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (3)

1.一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法,其特征在于,
所述OCF客户端通过OCF的资源发现接口发现AllJoyn服务资源,所述AllJoyn服务资源符合OCF标准资源定义规范;
所述OCF客户端的所述资源发现接口将所述AllJoyn服务资源生成AllJoyn标准的DNS-SD消息;
所述OCF客户端向AllJoyn服务端发送符合AllJoyn服务发现机制的所述DNS-SD消息;所述AllJoyn服务端收到所述DNS-SD消息后进行匹配,在所述AllJoyn服务和OCF要发现的资源相互匹配后,返回相应的DNS-SD响应消息给所述OCF客户端;
所述OCF客户端在接收到所述DNS-SD响应消息后,进行解析得到所述AllJoyn服务的资源属性。
2.根据权利要求1所述的OCF客户端对AllJoyn服务的发现方法,其特征在于,所述OCF客户端的所述资源发现接口将OCF的resource URI映射为所述DNS-SD消息中的TXT记录的“PATH={URI}”,对应于AllJoyn的对象路径;
将OCF的resourcetype映射为所述DNS-SD消息中TXT记录的“NAME={resourcetype}”,对应于AllJoyn的well-known name;
将OCF的resourceinteface映射为所述DNS-SD消息中TXT记录的“IF={resourceinterface}”,对应于AllJoyn的接口。
3.根据权利要求1所述的OCF客户端对AllJoyn服务的发现方法,其特征在于,以多播的方式发送所述DNS-SD消息。
CN201710212565.XA 2017-04-01 2017-04-01 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法 Active CN107046537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710212565.XA CN107046537B (zh) 2017-04-01 2017-04-01 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710212565.XA CN107046537B (zh) 2017-04-01 2017-04-01 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法

Publications (2)

Publication Number Publication Date
CN107046537A CN107046537A (zh) 2017-08-15
CN107046537B true CN107046537B (zh) 2020-04-28

Family

ID=59544244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710212565.XA Active CN107046537B (zh) 2017-04-01 2017-04-01 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法

Country Status (1)

Country Link
CN (1) CN107046537B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858838B (zh) * 2018-08-24 2021-03-09 Oppo广东移动通信有限公司 桥接通信的方法和设备
CN109446439B (zh) * 2018-09-30 2022-09-06 青岛海尔科技有限公司 一种资源目录的选择方法、装置、系统及存储介质
CN109361551B (zh) * 2018-11-21 2020-06-30 四川长虹电器股份有限公司 一种局域网双通道设备发现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013088323A2 (en) * 2011-12-16 2013-06-20 Koninklijke Philips Electronics N.V. Operation of wireless resource-constrained devices in ip networks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9906605B2 (en) * 2014-05-23 2018-02-27 Qualcomm Connected Experiences, Inc. Enhanced DNS-based service discovery in an internet of things (IoT) environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013088323A2 (en) * 2011-12-16 2013-06-20 Koninklijke Philips Electronics N.V. Operation of wireless resource-constrained devices in ip networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
slides-94-dnssd-2的时间页;x;《时间页》;20151031 *
Use of DNS-SD/mDNS by AllJoyn;Dave Thaler;《IETF》;20151031;第3-8页 *

Also Published As

Publication number Publication date
CN107046537A (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
KR102047197B1 (ko) 사물 인터넷을 위한 광역 서비스 발견
US10863422B2 (en) Mechanisms for ad hoc service discovery
US9281955B2 (en) Interoperability of data plane based overlays and control plane based overlays in a network environment
US9832168B2 (en) Service discovery within multi-link networks
US10659430B2 (en) Systems and methods for dynamic network address modification related applications
US9479422B2 (en) mDNS-DNS architecture
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
EP2922321B1 (en) 6lowpan network-based service discovery
CN101141488B (zh) 组播服务代理的实现方法及系统和节点发现方法
WO2015003566A1 (zh) 组播域名系统中报文传输的方法、装置及系统
CN107046537B (zh) 一种基于DNS-SD的OCF客户端对AllJoyn服务的发现方法
WO2018214809A1 (zh) 消息发送方法及装置、存储介质
CN107800597B (zh) 家电设备的数据传输方法、装置和计算机可读存储介质
WO2011157126A2 (zh) 一种报文转发方法和网间路由装置
US20160173326A1 (en) Network configuration using service identifier
WO2013117112A1 (zh) 传感器网络解析互通平台、传感器网络互通方法及系统
KR102270909B1 (ko) 멀티미디어 공유 방법, 등록 방법, 서버 및 프록시 서버
Stolikj et al. Context based service discovery in unmanaged networks using mDNS/DNS-SD
WO2014110737A1 (zh) 网络中的设备配置方法、设备和系统
US20150032898A1 (en) Method for establishing a virtual community network connection and a system for implementing said method
Moritz et al. Devices profile for web services in wireless sensor networks: Adaptations and enhancements
WO2016095751A1 (zh) 一种域名解析方法及装置
CN112887452B (zh) 局域网间通信方法与系统、nat网关
WO2012167660A1 (zh) 一种获取cim资源的方法和装置
Henneke et al. Leveraging OPC-UA discovery by software-defined networking and network function virtualization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant