CN107431726A - 消息总线服务目录 - Google Patents
消息总线服务目录 Download PDFInfo
- Publication number
- CN107431726A CN107431726A CN201680017117.8A CN201680017117A CN107431726A CN 107431726 A CN107431726 A CN 107431726A CN 201680017117 A CN201680017117 A CN 201680017117A CN 107431726 A CN107431726 A CN 107431726A
- Authority
- CN
- China
- Prior art keywords
- service
- omb
- message
- dns
- message agent
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文提出了一种被称为“开放消息总线”(OMB)的消息传送系统架构。所述OMB是促进服务之间的连接性和通信的消息传送系统基础设施。所述OMB构架可以提供基础设施服务,所述基础设施服务可以由连接至所述OMB的所有服务利用。
Description
有关申请的交叉引用
本申请要求于2015年2月20日提交的标题为“Message Bus Service Directory(消息总线服务目录)”的美国临时专利申请第62/118,882号的优先权,其内容以引用的方式全部并入本文。
背景技术
现有的基于消息传送的中间件架构
基于消息的中间件在通信服务之间提供“消息层”,从而抽象出各种服务所运行的底层操作环境。换言之,“消息层”充当在服务之间交换消息的中间人。图1示出了基于消息的中间件的高级表示。在图1中,四种服务经由公共中间件平台通信。各种服务可以在不同的平台(例如,硬件平台、操作系统等)上运行。该中间件抽象出各种服务的底层操作环境,从而使得其可以经由一些定义的消息传送协议通信。
存在许多基于消息的中间件架构。中间件架构可以包括诸如消息队列、发布/订阅、和消息代理的特征。中间件层可以基于消息队列的构思。基于队列的中间件架构可以采用许多不同的形式;除其他技术之外,还可以存在用于将消息发送至所有服务的单个共享队列、供各种服务从基于队列的中间件架构接收消息的专用队列、供各种服务将消息发送至基于队列的中间件架构的专用队列。在发布/订阅模型中,将消息发送(发布)至中间件的目的地。该目的地取决于消息“主题”(有时称为信道)。希望接收与特定主题有关的消息的服务“订阅”主题。主题可以与消息类型(调试、警报、警告、或者任务请求)有关。可以利用若干队列将消息代理实施为具有若干主题的发布/订阅架构。术语“消息代理”是通常指接收所有消息并且指配所有消息的实体的消息总线的一部分。
消息类型
发送至中间件代理或者从中间件代理发送的消息可以按照几种不同方式表征。四种常见类型的消息是发送消息、接收消息(阻塞)、接收消息(非阻塞)、和通知。通过服务将发送消息发送至代理。一旦服务将消息发送至代理,服务不期望任何响应并且服务继续执行。阻塞消息是在服务接收到消息之前会使服务暂停(阻塞)的消息。例如,如果服务尝试从代理或者队列读取消息,但消息尚未准备好,则服务的执行将会被阻塞。非阻塞消息是在消息准备好之前不会使服务暂停(阻塞)的消息。例如,如果服务尝试从代理或者队列读取消息,但消息尚未准备好,则服务的执行将在消息准备好之前继续。当服务尝试非阻塞读取时,其可以向代理提供可以在消息准备好时调用的回调函数。通知消息是代理人发送至服务作为一些先前请求的结果的消息。例如,先前请求可能是非阻塞读取尝试或者订阅请求。
消息总线协议
高级消息队列协议(AMQP)是消息总线协议。图2示出了AMQP交换与队列之间的关系。AMQP交换接受来自服务的消息并且将消息路由至一个或者多个队列。可以将交换设计为基于静态规则(例如,将消息发送至这5种服务)、基于将自身绑定至交换的任何队列、基于消息主题、或者基于消息报头中的值来路由消息。
消息队列遥测传输(MQTT),例如参考2014年5月18日的OASOS MQTT V3.1.1委员会规范01是基于消息的中间件协议。MQTT是针对限制装置和低带宽网络制定的低开销消息队列和传输协议,众所周知,该限制装置和低带宽网络部署在Facebook Messenger移动应用程序中。MQTT使用发布/订阅(或者客户端/服务器)模型。MQTT的元素是客户端(该客户端可以是发布者和订阅者)、服务器(还称为代理)、会话、订阅、和主题。与HTTP一样,MQTT协议不对称,这是因为MQTT协议区分了两种不同的角色:客户端和服务器。
在MQTT术语中,客户端是使用MQTT的程序或者装置。其始终建立与服务器的网络连接。客户端可以:
●发布其他客户端可能感兴趣的应用消息。
●订阅,以请求其有兴趣接收的应用消息。
●取消订阅,以移除对应用消息的请求。
●断开与服务器的连接。
MQTT服务器是接受来自客户端的连接的实体。与HTTP不同,MQTT服务器通常不运行任何应用逻辑,相反,MQTT服务器充当发布应用消息的客户端与已经订阅以接收这些应用消息的客户端之间的中间件。
主题是MQTT中的“Q”——主题是由服务器维护以便将发布者和订阅者链接的已命名的消息队列。MQTT客户端在其将PUBLISH消息(例如,将不透明消息有效载荷递送给订阅所供应的主题名称的任何客户端的指令)发布给MQTT服务器时承担发布者的角色,并且在其将SUBSCRIBE消息(例如,接收任何与所供应的主题筛选器相匹配的PUBLISH消息的指令)发布给MQTT服务器时承担订阅者的角色。主题筛选器是包含在订阅中的表达式,以指示对一个或者多个主题的兴趣。主题筛选器可以包括通配符。利用三种QoS保障级别中的一种来递送PUBLISH消息,诸如,至多一次、至少一次、恰好一次。
会话和订阅表示在客户端与服务器之间的两种附接级别。会话是客户端与服务器之间的有状态交互(例如,有源TCP/IP网络连接),并且由唯一的客户端标识符识别。会话可以仅由将CONNECT消息发送至服务器的客户端建立。在CONNECT、PUBLISH、和SUBSCRIBE消息中的标记确定如果会话断开连接那么如何维护会话状态。
域名系统(DNS)
域名系统(DNS)定义在RFC 1035中。DNS不是一种消息总线或者中间件,相反,域名系统(DNS)是建立在用于计算机、服务、或者连接至互联网或者专用网络的任何资源的分布式数据库上的分层命名系统。将域名系统(DNS)设计为将IP地址与指配给各个参与实体的域名相关联。
域名系统—服务发现(DNS-SD)
基于DNS的服务发现(DNS-SD)不是一种消息总线或者中间件,相反,基于DNS的服务发现(DNS-SD)是使用标准DNS编程接口、服务器、和分组格式来支持网络服务的发现的协议。在给定客户端正在查找的服务类型和客户端正在查找该服务的域的情况下,该机制允许客户端通过使用标准DNS查询来发现该期望的服务的已命名实例的列表。
可以通过使用如RFC 2782中所描述的DNS服务位置记录(SRV)和如RFC 6763所描述的DNS文本记录(TXT)来描述特定服务实例。SRV记录具有“<Instance>.<Service>.<Domain>”形式的名称并且给出了可以达成服务实例的目标主机和端口。相同名称的DNSTXT记录通过使用密钥/值对(例如,scl=<uri_path_to_sclBase>)按照结构化的形式给出关于该实例的附加信息。客户端通过使用具有"<Service>.<Domain>"形式的名称的针对DNS指针记录(PTR)的DNS查询(如RFC 6763所讨论的)来发现给定服务类型的可用实例的列表,该列表返回零个或者多个名称的集合,该零个或者多个名称是前述DNS SRV/TXT记录对的名称。客户端然后可以执行第二DNS查询来检索(多个)SRV/TXT记录对,并且获取包含在这些记录内的发现信号。使用该发现的主机、端口、和附加发现信息,客户端然后可以访问/调用感兴趣的服务。
oneM2M服务层
服务层是定义服务如何与应用和其他服务交互的一组协议。如在oneM2M TS-0001功能架构中所讨论的,oneM2M服务层被组织为一组公共功能(或者服务能力),将该组公共功能(或者服务能力)的实例化称为公共服务实体(CSE)。这些公共功能经由如图3和图4所示的Mca、Mcc、和Mcn参考点显示。图4还高亮了Msc参考点。Msc参考点指定不同服务部件的服务能力之间的交互集合。服务能力之间的交互的实现是如oneM2M TS-0007服务部件架构所讨论的特定实施方式。
Mca参考点指定应用实体(AE)与CSE之间的通信流,而Mcc参考点指定相同M2M服务提供商域中的两个CSE之间的通信流。跨Mca和Mcc的通信经由配对的请求/响应消息发生,其中,各个请求在托管在目标CSE上的资源上执行特定RESTful操作(例如,创建、检索、更新、删除)。在位于不同M2M SP的基础设施域中的CSE之间使用Mcc’。在CSE与用于除了传输和连接性之外的服务的底层网络服务实体(NSE)之间使用Mcn。
CSE托管在称为“节点”的架构实体上。节点是功能实体,该功能实体包含:a)一个CSE和零个或者多个AE,或者b)一个或者多个AE。由CSE提供的服务可以不同,从实施在低成本装置上的温度传感器服务到部署在大型网络服务器上的开票系统。因此,该架构非常适合于利用消息传送协议。
发明内容
本文提出了一种我们称为“开放消息总线”(OMB)的消息传送系统架构。OMB是促进服务之间的连接性和通信的消息传送系统基础设施。OMB构架提供一些基础设施服务,这些基础设施服务可以由连接至OMB的所有服务利用。
OMB基础设施提供服务目录和发现服务。该发现服务允许客户端浏览服务目录或者数据库,该服务目录或者数据库对哪些服务经由OMB可用进行编目并且提供附加细节,诸如,服务需要哪些协议来通信、与访问服务相关联的成本等。OMB提供服务可以用来动态地发现在它们感兴趣的OMB上哪些服务可用的DNS-SD接口,并且然后使用在发现期间获得的信息以连接至OMB并且与这些发现的服务通信。
一旦服务加入OMB,则其可以订阅服务目录并且在特定服务或者特定等级的服务与OMB连接或者断开连接时接收通知。
OMB可以利用传输不可知API。将API设计为使得服务可以使用任何底层传输和应用级协议(UDP、CoAP、TCP、WebSocket、HTTP等)来连接至总线并且与使用不同的底层传输和应用级协议的其他服务通信。
该发明内容的提供是为了以简化的形式介绍对于在下面的详细说明中进一步描述的构思的选择。本发明内容既不旨在识别所要求的主题的关键特征或者本质特征,也不旨在用于限制所要求的主题的范围。此外,所要求的主题不限于解决在本公开的任何部分中提到的任何或者所有缺点的限制。
附图说明
通过下面结合附图图示的说明书可以得到更详细的理解,其中:
图1图示了基于消息的中间件的示例性高级表示;
图2图示了AMQP交换与队列之间的示例性关系;
图3图示了示例性oneM2M功能架构;
图4图示了示例性oneM2M功能架构;
图5图示了示例性开放消息总线架构;
图6图示了在开放消息总线架构中运行的示例性服务目录;
图7图示了在开放消息总线架构中运行的示例性数据库服务;
图8图示了在开放消息总线架构中运行的示例性管理服务;
图9图示了具有服务/OMB AP/OMB客户端关系的开放消息总线架构的示例性端对端通信;
图10图示了示例性的基于DNS-SD的服务发现消息流;
图11图示了使用开放消息总线架构的一个或者多个部件的消息传送的示例性概述;
图12图示了用于将服务发现信息发布至服务目录的示例性消息流;
图13图示了用于基于DNS-SD的发现的示例性消息流;
图14图示了打开AMQP连接的示例性消息流;
图15图示了用于通过使用消息总线构架的一个或者多个部件来与发现的服务进行通信的示例性方法流程;
图16图示了通过使用OMB架构可以如何部署oneM2M服务(CFS的)或者服务部件(例如,一组服务)的示例性实施方式;
图17A是可以实施所公开的主题的示例机器对机器(M2M)或者物联网(IoT)通信系统的系统图;
图17B是可以在图17A中图示的M2M/IoT通信系统内使用的示例架构的系统图;
图17C是可以在图17A中图示的通信系统内使用的示例M2M/IoT终端或者网关装置的系统图;
图17D是可以体现图17A的通信系统的各个方面的示例计算系统的框图;以及
图18图示了与消息总线服务目录相关联的示例性用户界面。
具体实施方式
本文讨论的是促进服务之间的连接性和通信的消息传送总线(还称为“开放消息总线”(OMB))。所公开的消息传送总线提供基础设施服务,该基础设施服务可以由与消息传送总线连接的服务利用。
诸如,高级消息队列协议(AMQP)和消息队列遥测传输(MQTT)的常规消息传送总线协议不具有用于动态地发现消息总线上哪些服务可用的内置支持。因此,连接至消息总线的服务可能不知道消息总线上有哪些其他服务。这可能会导致消息总线的服务的未充分利用。例如,如果家庭自动化服务提供商能够连接至提供关于当地天气条件的信息的服务,则家庭自动化服务提供商可能能够更高效地管理家庭供暖和制冷系统。AMQP和MQTT没有为家庭自动化提供商提供动态地发现和使用天气服务的手段。
OMB基础设施可以提供包括发现服务的服务目录。发现服务允许客户端浏览服务目录或者数据库,该服务目录或者数据库对哪些服务经由OMB可用进行编目。除了其他方面之外,发现服务还可以提供附加细节,诸如,服务需要哪些协议来通信或者与访问服务相关联的成本。在示例中,OMB提供服务可以用来动态地发现在OMB上哪些他们感兴趣的服务可用的DNS-SD接口并且然后使用在发现期间获得的信息以连接至OMB并且与这些发现的服务通信。
当服务加入OMB,可以将其称为OMB客户端。OMB客户端可以订阅服务目录并且在特定服务(包括特定等级的服务)与OMB连接或者断开连接时接收通知。
OMB可以利用传输不可知应用编程接口(API)。将API设计为使得服务可以使用任何底层传输和应用级协议(UDP、CoAP、TCP、WebSocket、HTTP、AMQP、MQTT、XMPP等)来连接至总线并且与使用不同的底层传输和应用级协议的其他服务通信。
图5是OMB架构201的示例性图示。OMB架构201具有消息总线构架202,该消息总线构架202包括消息代理203以及一个或者多个消息总线构架202服务(即,基础设施服务—在本文中更详细地讨论的),诸如服务目录210或者其他服务204。如图7和图8分别所示,除了其他方面之外,其他服务204可以包括数据库服务240和管理服务250。本文进一步详细讨论的,数据库服务240可以由服务用来存储和查询信息。管理服务250可以用于管理和监测与消息总线构架202连接的客户端服务。
服务目录210可以用于动态地发现和发布与消息代理203连接的服务。服务目录210支持DNS-SD接口211以及OMB API 212。在位置追踪装置220向消息代理203注册或者与消息代理203连接之前,DNS-SD接口211可以由第一服务(例如,位置追踪装置220)用来浏览与消息代理203连接的可用服务。一旦向消息代理203注册位置追踪装置220,OMB API 225就可以用于利用与消息总线构架202相关联的订阅或者通知机制。订阅是在服务表示其希望知道事件X何时发生的时候。通知是在将事件X已经发生告知服务的时候。订阅或者通知机制可能不可用于DNS-SD接口211上。订阅或者通知机制允许诸如位置追踪装置220的服务订阅服务目录210以便接收关于其他服务的通知。例如,位置追踪装置220可以订阅,以在位置追踪装置220感兴趣的服务与总线连接或者断开连接时接收通知。在本文中更详细地描述了服务目录210和订阅或者通知机制(例如,图6的订阅或者通知213)。
如本文更详细地讨论的,服务经由诸如OMB客户端222的OMB客户端与消息构架202接口连接,该OMB客户端提供在服务与底层传输(例如,AMQP、UDP、MQTT、XMPP、WebSocket等)之间的由OMB使用的抽象层(API)。
OMB架构201及其传输不可知API(例如,OMB API 225)允许按照规定比例进行设计。该设计将大型部署(例如,云基础设施)调整为较小部署(例如,家庭网关)。例如,将服务托管在许多远程服务器上的基于云的部署缩小为将所有服务托管在例如低复杂度的温度传感器的单个装置上的部署。
图6图示了在OMB架构201中运行的示例性服务目录210。除了其他方面之外,服务目录210可以支持OMB客户端214、与DNS-SD接口211连接的DNS-SD服务器218、服务发布者管理器217、服务发现查询管理器216、订阅或者通知管理器213、和服务发现记录存储装置215。服务发布者管理器217接受服务创建请求。该服务发布者管理器217可以用于在服务目录210中输入新服务简档。服务发现查询管理器216接受来自其他服务的服务查询并且检查请求服务是否在服务目录210中。订阅/通知管理器213可以接受来自其他服务的订阅请求,并且在将新服务输入服务目录210中时生成请求通知。DNS-SD接口211允许服务(例如,位置追踪装置220)浏览服务目录210,但不访问消息代理203或者消息构架202的其他部分。当位置追踪装置220(或者其他服务)希望在决定位置追踪装置220是否应该与消息构架202连接之前动态地确定经由消息构架202提供哪些服务时,DNS-SD接口211可能会特别有用。
服务简档(例如,服务简档219)由描述服务(例如,位置追踪装置220或者位置追踪服务230)的PTR、SRV、和TXT记录组成。服务简档219将是驻留在存储器中的表中的条目。OMBAPI(例如,OMB API 225或者OMB API 212)允许在服务目录210中注册服务简档,允许对服务目录210执行发现或者服务操作,并且允许其他OMB客户端(例如,OMB客户端222)将订阅请求下发至服务目录210。当在服务目录210中注册(或者注销)特定服务时,可以使用订阅请求来请求通知。
本文稍后提出的(例如,表3)是与服务目录210相关联的OMB调用的列表。ombConfig()API允许将服务简档223加载到服务目录210中。例如,当网络管理员希望使用管理服务250将服务的简档(例如,位置追踪装置220的服务简档223)加载到服务目录210中时,可以使用ombConfig()API。可替代地,位置追踪装置220可以使用ombConfig()API将其自身的服务简档223加载到服务目录210中。例如,当位置追踪装置220的服务简档223由网络管理员加载时,位置追踪装置220可以使用ombConfig()API来取得其服务简档223,并且学习如何正确地与消息代理203连接和配置消息代理203(经由其OMB客户端222)以及确定其所依赖的其他服务。
OMB API 212允许服务目录210从其他OMB服务接收发布、订阅、和创建目录请求并且将通知发送至其他OMB服务。订阅或者通知特征允许与消息总线构架202(或者与服务相关联的OMB客户端)的一个或者多个部件连接的其他服务订阅服务目录210并且基于指定标准来接收通知(例如,特定类型的服务已经创建、更新、或者删除了服务目录简档)。注意,将本文所使用的服务目录简档视为服务简档。
服务目录210通过使用DNS-SD记录类型(PTR、SRV、和TXT)将服务简档219存储在数据库内。将与消息代理203连接的各种服务(即,OMB服务)的服务简档静态地、或者经由管理控制台(管理服务250)动态地、或者通过OMB服务对ombConfig()API的使用动态地提供到DNS-SD服务器218中。这些记录配置有表1中列出的服务目录和配置信息。
表1–OMB服务配置信息的示例
可以为各种服务指配服务ID和服务类型。可以将服务ID映射至DNS-SD服务类型并且可以用来执行OMB服务(例如,特定类型的oneM2M服务或者ETSI M2M服务)的基于DNS-SD的发现。可以将标识符格式化并且使用,使得还可以将附加DNS-SD服务子类型定义为提供附加粒度(例如,可以映射至服务能力的子服务)。
将在各个OMB服务(例如,位置追踪装置220或者位置追踪服务230)的DNS-SD服务器218上创建DNS-SD SRV记录,该各个OMB服务加载到服务目录210中并且可选地针对OMB服务所支持的单独的特征(例如,两个单独区域的位置覆盖范围)。SRV记录语法支持定义服务以及子服务。该语法可以用于指定特征(作为子服务)。DNS-SD接口211然后可以用于执行DNS PTR记录查找,以发现给定服务类型(例如,特定oneM2M服务或者ETSI M2M服务)的可用实例的列表。对DNS PTR查找的响应是匹配实例名称的列表。针对服务类型实例的DNS-SDPTR记录可以具有格式service.proto.domain PTR instance.service.proto.domain。针对OMB服务子类型实例的DNS-SD PTR记录可以具有以下格式:
●sub-service.service.proto.domain PTR instance.sub-service.service.proto.domain
○子服务由下划线字符紧接着子服务名称(例如,_hdr)组成。
○服务由下划线字符紧接着服务协议名称(例如,_etsiM2M)组成。该字段允许搜索实体检查与服务通信所需的协议。
○proto由下划线和“_tcp”(用于通过TCP运行的应用协议)或者“_udp”(用于所有其他协议)组成。
○域指定服务名称所注册的DNS子域。该DNS子域可以是“local.”,这意味着“链接本地域”,或者该DNS子域可以是非本地DNS域名(例如,“com”)。
●PTR是在DNS PTR记录中使用的DNS关键字。
●实例是指配给服务实例的用户友好型名称(例如,OMB服务实例的名称)。
用于托管在名为“example.com”的域中的类型为“etsiM2M”和实例名称为“nrar01”的OMB服务实例的示例PTR记录如下示出:
nrar.etsiM2M._tcp.example.com.PTR nrar01._nrar._etsiM2M._tcp.example.com
DNS-SD使用DNS SRV记录来定义目标主机名称或者地址和服务实例可以到达的端口。由于在OMB服务之间不使用基于IP的地址,所以SRV记录不一定需要将客户端指向发现的服务。SRV记录可以将搜索器指向地址/端口/协议组合的列表,可以使用该列表来加入总线并且与消息总线构架202的一个或者多个部件通信。搜索器的OMB客户端122可以使用这些地址/端口/协议组合中的一个地址/端口/协议组合来连接至消息总线构架202并且与发现的服务通信。用于OMB服务实例的SRV记录可以具有格式:service._proto.domain TTLclass SRV priority weight port target。用于OMB服务子类型实例的SRV记录具有格式:sub_service._service._proto.domain TTL class SRV priority weight port target。术语可以如下描述:
●sub_service:期望的子服务的符号名称
●service:期望的服务的符号名称
●proto:期望的服务的传输协议;这通常是TCP或者UDP。
●domain:此记录有效的域名。
●TTL:标准DNS存活时间字段。
●class:标准DNS类别字段(其总是设置为表示‘互联网’的值‘IN’)。
●priority:目标主机的优先级,较低的值意味着更优选。
●weight:具有相同优先级的记录的相对权重。
●port:要在其上找到服务的TCP或者UDP端口。
●target:提供服务的机器的规范主机名。
用于类型“etsiM2M”和实例名称“nrar01”的OMB服务实例的示例SRV记录是:_etsiM2M._tcp.example.com.86400IN SRV 0 5 5060 nrar01.example.com。
还可以在各个OMB服务的DNS-SD服务器上创建针对服务目录210的DNS-SD TXT记录(例如,通过管理工具250)。DNS-SD使用DNS TXT记录来存储传达关于已命名的服务的附加信息的名称/值对。按照“名称=值”的形式将各个名称/值对编码成在DNS TXT记录内的其自身的构成字符串。一直到第一个‘=’字符的所有字符都是名称。在第一个‘=’字符之后到字符串末尾的所有字符(若存在,包括随后的‘=’字符)都是值。从服务目录210的角度看,DNS-SD TXT记录可以用于存储OMB服务的有用属性信息。例如,DNS-SD TXT记录可以包括如下的属性名称/值对:
●SERVICE_ID=12345
●SERVICE_TYPE=NAE
●SERVICE_NAME=NAE01
●BROKER_IP_OPTION_1=172.25.0.230
●BORKER_PORT_OPTION_1=5672
●OMB_PROTOCOL_TYPE_OPTION_1=AMQP
●BROKER_IP_OPTION_2=172.25.0.231
●BORKER_PORT_OPTION_2=5673
●OMB_PROTOCOL_TYPE_OPTION_2=HTTP
●SELF_EXHANGE_NAME=NAE01_EX
●SELF_ROUTING_KEY=NAE01_RK
●SELF_QUEUE=NAE01_Q
●SD_EXCHANGE_NAME=SD01_EX
●SD_ROUTING_KEY=SD01_RK
●GDI_EXCHANGE_NAME=GDI01_EX
●GDI_ROUTING_KEY=GDI01_RK
●REQD_SERVICES=SD,GDI,NRAR,NSEC,NHDR
OMB服务配置是指服务(例如,位置追踪装置220)向OMB客户端(例如,OMB客户端222)提供关于其自身的信息,从而使得其可以与消息代理203连接并且在消息代理203上进行通信的进程。在表1(上文)中示出了在配置期间提供的信息。本文讨论的架构支持用于OMB服务配置的多种方法。第一种方法仅仅依赖使用配置文件。第二种方法依赖与DNS TXT记录查找耦合的配置文件。对于第一种方法,所有这些信息包含在存储在服务(例如,位置追踪服务230)内的OMB服务配置的文件中。在示例中,位置追踪装置220经由API调用将该配置文件传送至OMB客户端222。当使用第一种方法时,ombConfig()API调用未对消息代理203进行任何操作;仅将文件传送至OMB客户端222。然而,一旦OMB客户端222配置有关于位置追踪装置220的信息,位置追踪装置220可以使用ombRegister()API调用来向消息总线构架202(例如,消息代理203)的部分进行注册。在本文中,在表中并且在关于图12的调用流程的讨论中更详细地讨论了ombRegister()API和ombConfig()API。
对于第二种方法,将表1中的信息存储在两个单独的文件中。第一个文件存储DNS信息(表1的前4行)并且存储在服务(例如,位置追踪装置220)内。在示例中,位置追踪装置220将该第一个文件传送至OMB客户端222,这可以经由ombConfig()API调用来完成。将剩余的信息存储在服务目录210中提供的DNS TXT记录内。OMB客户端222经由DNS TXT记录查找来检索剩余的信息。
要理解,执行图10至图15中所图示的步骤的实体可以是逻辑实体。这些步骤可以存储在诸如,图17C或者图17D中图示的装置、服务器、或者计算机系统的存储器中,并且在上述装置、服务器、或者计算机系统的处理器上执行。在示例中,利用下文关于M2M装置的交互的其他细节,图11的位置追踪装置230和位置追踪装置220可以驻留在图17A的一个或者多个M2M终端装置18上,而图11的消息代理203、服务目录201、和DNS-SD服务器211、和OMBAP接口212可以驻留在图17A的M2M网关装置14上。这仅是一个示例。
图10是服务(位置追踪装置220)使用DNS-SD来浏览服务目录210的进程的示例性图示。在该示例中,位置追踪装置220搜索ETSI网络应用使能(NAE)服务。在oneM2M示例中,位置追踪装置220搜索oneM2M装置管理(DMG)服务。在步骤280,如果不使用多播,则位置追踪装置220配置有本地服务目录服务器(例如,服务目录210)的单播地址。在步骤281,服务目录210具有为附接至消息代理203的服务提供的DNS-SD服务发现记录(PTR、SRV、和TXT)。在步骤282,位置追踪装置220发送针对NAE PTR记录的DNS-SD查找。在步骤283,服务目录283将DNS-SD响应(例如,ane01._nae._etsiM2M._tcp.com)发送至位置追踪装置220。在步骤284,位置追踪装置220选择要解析的(多个)期望的NAE PTR记录。在步骤285,位置追踪装置220针对所选择的服务发送针对SRV记录的DNS-SD查找(例如,nae01.nae._etsiM2M._tcp.com)。在步骤286,服务目录210发送DNS-SD响应(例如,包含nae01.example.com FQDN,nae01._nae._etsiM2M._tcp.com的SRV记录)。该SRV记录向位置追踪装置220提供地址/端口/协议组合的列表,可以使用该列表来加入总线并且与OMB通信。在步骤287,位置追踪装置220发送针对TXT记录的DNS-SD查找(例如,nae01.example.com)。DNS TXT记录向位置追踪装置220提供传达关于服务的附加信息的名称/值对。在步骤288,服务目录210发送DNS-SD响应(例如,包含针对nae01的发现信息的TXT记录)。在步骤289,位置追踪装置220对接收到的TXT记录中的发现信息(例如,nae01)进行处理。
通常,图10的步骤可以认为是如下:在步骤280,位置追踪装置220预先提供有服务目录210的地址。在步骤281,服务目录210预先加载有可以发现的记录。在步骤282,位置追踪装置220询问服务目录210其是否知道任何NAE服务的情况。在步骤283,服务目录210向位置追踪装置220提供指针列表。存在服务目录210知道的各个NAE服务的指针。各个指针告知位置追踪装置220其可以在何处找到关于NAE服务的实例的更多信息。在步骤284,位置追踪装置220挑选指针。在步骤285,指针可以用于检索服务(例如,位置追踪服务230)的SRV记录。SRV记录提供关于服务的细节。具体地,SRV记录告知在何处可以达成服务。在步骤286,将SRV记录提供给位置追踪装置220。在步骤287,位置追踪装置220取得针对服务的TXT记录。TXT记录可以是给出关于服务的更多细节的自定义记录。在步骤288,将TXT记录发送至位置追踪装置220。在步骤289,分析TXT记录并且位置追踪装置220决定其是否希望使用服务。
在关于图10的上述步骤的概述中,假设位置追踪装置220对与发现的服务通信感兴趣,位置追踪装置220可以决定加入消息总线构架202。位置追踪装置220的OMB客户端222可以从发现的服务的TXT文件获得一组IP地址/端口号/协议组合,可以使用这组IP地址/端口号/协议组合访问消息总线构架202(例如,消息代理203)的部分。TXT还可以指示哪些队列可以用于访问发现的服务。
图7是消息总线数据库服务的示例性图示。数据库服务240可以将数据库服务提供给与消息代理203连接的其他服务。数据库服务240可以是如图5所图示的其他服务204中的一个服务。图7示出了数据库服务240被设计为包括通用数据库接口(GDI)服务242。通用数据库接口(GDI)是多个数据库的公共应用接口,其提供了数据库接入和数据管理的能力。数据库服务240的部分(例如,RDBMS 245和DBMS246)在很大程度上并不知道如本文所讨论的消息总线构架202。将GDI服务242设计为与表4中列出的OMB API接口连接。在图7中,例如,OMB客户端244利用AMQP接口243。然而,可替代地,由于OMB API241将保持不变,所以可以基于不同接口(例如,HTTP)来使用OMB客户端244。
图9是在与消息代理203连接的服务之间的端对端通信可以如何工作的示例性图示。各个服务接口与其本地OMB客户端接口连接。图9示出了OMB客户端265和OMB客户端268分别经由传输接口266和传输接口267与代理接口连接。OMB客户端265和OMB客户端268可以使用不同的传输接口。例如,OMB客户端265可以经由AMQP与消息代理203接口连接,而OMB客户端268经由WebSocket与消息代理203接口连接。各种服务可以使用托管在消息代理203上的一个或者多个交换(例如,交换269)接收来自其他服务(例如,x-nrar)的消息。各种服务可以将其(多个)交换与其(多个)队列绑定。绑定向交换提供服务的(多个)队列的(多个)名称(例如,q-nsec)。该名称由交换用来路由消息。各种服务使用托管在消息代理203上的一个或者多个队列接收来自其他服务的消息。各个OMB客户端(例如,OMB客户端265和OMB客户端268)仅需要到消息代理203的单个传输连接。消息代理203通过使用通信信道来支持发送(产生)和接收(消耗)通过该单个传输连接多路复用的消息。
再次参照图5,构建到消息总线构架202中的发现架构允许服务在向消息总线构架202注册并且经由消息代理203通信之前浏览可用服务。在示例中,经由CoAP进行通信的轻量级位置追踪传感器(例如,位置追踪装置220)希望发现其可以用来上传其GPS坐标的位置追踪服务(例如,位置追踪服务230)。追踪传感器将发现的位置追踪服务经由WebSocket进行通信。其用例由图11所示和参照图5所示的示例性调用流程来说明。
利用本文讨论的其他细节,图11总体上讨论DNS-SD发现之后对消息总线和服务利用进行注册。在步骤291,位置追踪服务230可以经由OMB API将其服务简档发布至服务目录210。在步骤292,位置追踪装置220通过使用DNS-SD接口211来浏览服务目录210。在步骤293,位置追踪装置220决定与消息代理203连接,这可能是由于存在位置追踪服务。在步骤294,位置追踪装置220经由消息代理203与位置追踪服务230联系。
图12图示了将服务发现信息发布到服务目录中的更详细的示例。概括地说,参照图12,图12详细地描述了图11的步骤291,已经连接至消息代理203的位置追踪服务230将其简档公布到服务目录210中,使得其(位置追踪服务230)可以由其他服务发现。一旦位置追踪服务230处于服务目录210中,位置追踪服务230就可以被其他服务发现。例如,诸如位置追踪、开票、图像处理、和遥测的服务可以使用该过程来在服务目录210中发布其简档。简档可以包含信息,诸如ombServiceID、ombServiceType、和代理联系地址。在位置追踪服务230示例中,ombService ID是识别与消息代理203连接的位置追踪服务230的标识符。ombServiceType是识别服务类型的标识符。在该示例中,其将识别位置追踪服务230提供位置服务。代理联系地址可以是服务可以用来联系和加入消息总线构架202的一个或者多个部分的URI、IP地址、或者端口号。可以存在一组联系地址。各个地址可以用于不同的传输协议。例如,可以存在AMQP URI、WebSockets URI、和MQTT URI。可替代地,这些URI可以由服务目录210提供。
进一步参照图12,框296是订阅AMQP代理以接收发布至其队列的消息的服务目录的示例,这是在启动时通常发生的操作(例如,初始化步骤)。在步骤301,将ombConfig()API调用发送至OMB客户端214。在该步骤中,服务目录210正在利用其配置文件来配置其OMB客户端214。在步骤302,从服务目录210发送ombRegister()API调用以便向消息总线构架202的一个或者多个部件注册其ServiceID。消息总线构架202的一个或者多个部件可以为服务目录210创建消息队列。在步骤303,利用ombReceive()(sd_callback_fcn)API调用,服务目录210将在接收到来自消息代理203的消息时要做什么通知给OMB客户端124。sd_callback_fcn是到应该被调用以处理所接收到的消息的函数的指针。
图12的框297图示了将其OMB服务简档发布至服务目录的服务的示例流程。在步骤304,经由ombSdRegister()API调用,位置追踪服务230请求将其简档加载到服务目录210中。在步骤305,位置追踪服务230的OMB客户端231将ombSdRegister注册消息发布至服务目录210的消息代理203。在步骤306,消息代理203使用回调函数来将消息转发至服务目录210的OMB客户端214。消息代理203先前配置有回调函数,未示出该步骤。在步骤307,OMB客户端214使用设置在步骤3030的sd_callback_fcn指针来调用负责处理新服务注册的服务目录功能。步骤307的消息可能类似于以下:sd_callback_fcn(ombMsgID=1234,ombRxServiceID=S1,ombMsgType=SD Reg Request,ombRxMsgPayload=SD Profile)。在步骤308,可以通过使用服务目录210来存储简档并且创建响应。在步骤309,通过使用ombTransmit()API调用,服务目录210将消息发送回新服务,该消息将其注册请求已成功通知给新服务。步骤309的消息可能类似于以下:ombTransmit(ombBlocking=FALSE,ombTarget=S1,ombMsgID=1234,ombTxMsgPayload=SD Reg Response(SD注册响应))。在步骤310,OMB客户端214将步骤309的消息发布至消息代理203。在步骤311,消息代理203将步骤309的消息转发至OMB客户端231。在步骤312,OMB客户端231将步骤309的消息转发至位置追踪服务230。
图13图示了基于DNS-SD的发现的更详细示例。概括地说,参照图13,图13详细地描述了图11的步骤292,可能尚未与消息代理203连接的位置追踪装置220可以查询DNS-SD服务器218以检查消息代理203是否具有可用的位置追踪服务。DNS-SD服务器218可以向位置追踪装置220提供消息代理203的AMQP URI和位置追踪服务230的OMBServiceId或者位置追踪服务230的可以发现与消息代理203连接的ombServiceType。可选地,当位置追踪装置220做出其DNS-SD查询时,位置追踪装置220可以指示其支持什么类型的传输(例如,AMQP),并且DNS-SD服务器218可以使用该信息来确定应该将什么IP地址、端口号、或者协议信息包括在TXT记录中。一旦位置追踪装置220选择其希望使用的服务(例如,位置追踪服务230),其就会使用位置追踪服务230的DNS TXT文件来学习如何联系并且使用该服务。ombServiceID是识别与消息代理203连接的位置追踪服务230的标识符。ombServiceType是识别服务类型的标识符。在该示例中,其将识别位置追踪服务230提供位置服务。TXT文件将包括代理联系地址。BROKER_IP、BROKER_PORT、和OMB_PROTOCOL_TYPE指示联系地址和消息协议。TXT文件可以包括多个联系地址和协议,从而使得执行发现的位置追踪装置220可以选择其将会使用什么协议来联系消息代理203。位置追踪装置220从DNS TXT文件学习相关联的SERVICE_ID。SERVICE_ID可以由位置追踪装置220用来在与消息总线构架202的一个或者多个部分连接时联系位置追踪服务230。
进一步参照图13,在OMB客户端222与DNS-SD服务器210之间的交互不会通过消息代理203发生,而是通过单独的DNS-SD接口211发生。可替代地,如果OMB客户端222不支持DNS-SD接口,则位置追踪装置220可以支持DNS-SD并且查询DNS-SD服务器210。下面是关于DNS-SD发现的细节。在步骤320,位置追踪装置220可以请求OMB客户端222使用其DNS-SD接口211来浏览特定类型的服务的服务目录210。本文定义的ombSdDiscover()API调用可以用于向OMB客户端222做出请求。对于步骤320的替代,OMB客户端222可以提供有用于多个DNS-SD服务器的联系信息,使得其可以对多个服务器执行搜索。
在步骤321,如本文更详细地讨论的,OMB客户端222向DNS-SD服务器218做出PTR记录请求。在步骤322,DNS-SD服务器218利用与请求的ServiceType相匹配的0-N serviceId’做出响应。在步骤323,OMB客户端222请求与在步骤322提供的列表的第一服务相关联的TXT记录。在步骤324,DNS-SD服务器218利用用于第一服务的TXT记录做出响应。在步骤325,OMB客户端222存储用于第一服务的TXT记录。在步骤326,OMB客户端222将请求与在步骤322提供的列表的第N服务相关联的TXT记录。在步骤327,DNS-SD服务器218利用用于第N服务的TXT记录做出响应。在步骤328,OMB客户端222存储用于第N服务的TXT记录。在步骤329,OMB客户端222通过响应于本文所讨论的ombSdDiscover()API,向位置追踪装置220提供发现的服务的列表。
图14图示了用于与消息代理203或者消息总线构架202的其他部分连接的更详细的示例方法流程。概括地说,参照图14,图14详细地描述了图11的步骤293,位置追踪装置220可以决定与消息总线构架202的一个或者多个部件(例如,消息代理203)结合。位置追踪装置220可以使用在先前步骤中发现的代理联系地址,以便开放与消息代理203的连接(例如,AMQP连接)。下面是关于与消息代理203连接的细节。在步骤330,位置追踪装置使用ombRegister()API来请求OMB客户端222与消息代理203连接。在步骤331,假设OMB客户端222被设计为具有AMQP传输接口,OMB客户端222使用AMQP URI来联系消息代理203并且请求开放连接。可能已经在针对图13的步骤292所描述的发现进程期间获得AMQP URI。可以将OMB客户端222设计为使用其他传输接口(例如,CoAP等)。该示例涵盖底层传输是AMQP的情况。
在步骤332,消息代理203的AMQP接口对步骤331的请求做出响应。在步骤333,在AMQP连接上建立安全性(例如,安全性挑战)。OMB客户端222使用来自在DNS-SD查找期间获得的TXT记录的连接参数。在步骤334,在AMQP连接上建立安全性(例如,安全性响应)。在步骤335,配置了AMQP连接(例如,提出的最大信道、提出的最大帧大小、期望的心跳延迟等)。OMB客户端222使用来自在DNS-SD查找期间获得的TXT记录的连接参数。在步骤336,配置了AMQP连接(例如,协商的最大信道、协商的最大帧大小、协商的心跳延迟等)。在步骤337,消息代理203的AMQP确认已经建立了连接(例如,协议版本、服务器特性、可用安全性等)。在步骤338,OMB客户端222的AMQP确认已经建立了连接(例如,所选择的安全性、客户端特性等)。在步骤339,OMB客户端222对步骤331的ombRegister()请求做出响应。响应可以包含注册请求是否成功、是否拒绝注册请求、或者注册请求是否造成错误的指示。
图15是用于通过使用消息总线构架202的一个或者多个部件(例如,消息代理203)来与发现的服务进行通信的示例性方法流程。概括地说,位置追踪装置220使用发现的ombServiceID将消息发送至位置追踪服务230。注意,使用发现的OMBServiceID或者ombServiceType。在步骤341,位置追踪装置220发送用于先前发现的位置追踪服务230的消息(例如,ombTransmit()API调用)。步骤341的消息可能类似于以下:ombTransmit(ombBlocking=False,ombTarget=S2,ombToken=ABC,ombTxMsgPayloadombCallbackFcn=S1_callback_fcn)。先前发现的OMBServiceID可以用于识别目标位置追踪服务230。在图15中,将位置追踪服务230称为S2(服务2),而将位置追踪装置220称为S1(服务1)。在步骤342,OMB客户端222将步骤341的消息发布至消息代理203。步骤342的消息可以类似于以下:publish(exchange=‘x-s2’,routing key=‘S2’,OMB Message)(发布(交换=‘x-s2’,路由密钥=‘S2’,OMB消息))。在步骤343,消息代理203将步骤341的消息转发至OMB客户端231。在步骤344,OMB客户端222将消息转发至位置追踪服务230。步骤344的消息可以类似于以下:sd_callback_fcn(ombMsgID=1234,ombToken=ABC,ombRxServiceID=S1,ombMsgType=Tx Request,ombRxMsgPayload=Tx payload)。在步骤345,位置追踪服务230对步骤341的消息进行处理。在步骤346,位置追踪服务230通过使用omb传输API对请求做出响应。位置追踪服务230可以通过使用由步骤344的sd_callback_fcn提供的相同服务ID来识别其正在响应的服务。步骤346的消息可以类似于以下:ombTransmit(ombBlocking=FALSE,ombTarget=S1,ombMsgID=1234,ombToken=ABC,ombTxMsgPayload=Tx Response(Tx响应))。在步骤347,OMB客户端231将消息发布至消息代理203。步骤347的消息可以类似于以下:publish(exchange=‘x-s1’,routing key=‘S1’,OMB Message)(发布(交换=‘x-s1’,路由密钥=‘S1’,OMB消息))。在步骤348,消息代理203将步骤346的消息转发至OMB客户端222。在步骤349,OMB客户端222将步骤346的消息转发至对请求进行处理的位置追踪装置220。步骤349的消息可能类似于以下:(ombRspCode,ombRxMsgType=Tx_Rsp,ombToken=ABC,ombRxMsgPayload)。
图16图示了通过使用本文所讨论的OMB架构可以如何部署oneM2M服务(CSF的)或者服务部件(例如,一组服务)的示例性实施方式。注意,各种服务可以利用其自身的OMN客户端(CSF 1和CSF 6)来部署。注意,多个服务可以共享OMB客户端(CSF 2和CSF 3)。Mcc、Mca、和Mcn参考点可以不遍历消息总线代理。可以直接将这些参考点路由至互联网以便分别到达远程服务、应用、或者外部网络。可以将Msc参考点映射或者绑定至OMB(参照演示了Msc参考点如何连接服务的另一示意图的图4)。注意,CSF和OMB客户端可以部署在网络服务器上或者部署在单独的远程网络服务器上。
本文讨论的是关于可以协助实现服务与消息代理203的传输不可知连接的OMBAPI(例如,OMB API 225、OMB API 214等)的细节。一旦OMB API 225与消息代理203连接,OMB API 225就可以用于与和消息代理203连接的其他服务交换消息。消息代理203充当代理,从而在客户端之间传送消息。OMB API可以支持以下特征:1)独立和不可知的底层传输协议,2)独立和不可知的叠加服务协议,3)支持阻塞和非阻塞功能,以及4)基于面向对象的原则。如上所述,OMB API 225是独立和不可知的底层OMB传输协议(例如,消息传送、AMQP、XMPP、MQTT、网络套接字等)。底层传输可以由OMB客户端222隐藏。OMB API 225是使用消息代理203的、独立和不可知的叠加服务协议。使用OMB API 225的各个叠加服务(例如,oneM2M服务、ETSI M2M服务等)期望绑定至OMB API 225。因此,OMB API独立于服务使用的有效载荷格式。例如,服务可以使用XML、JSON、自定义格式等。
OMB API 225支持阻塞和非阻塞功能。为了支持非阻塞功能,OMB API(例如,OMBAPI 225)允许将回调函数提供给OMB客户端222。可以将消息放置在消息代理203上,并且回调函数可以在接收到响应时由OMB客户端222调用。OMB API 225的设计基于面向对象的原则并且被设计为库。
OMB API支持不同类型的功能。在第一示例中,服务(例如,位置追踪装置22)能够基于对应的OMB服务配置设置(参见表1)来配置OMB客户端222。在第二示例中,位置追踪服务230可以发起OMB客户端225与消息代理203之间的连接或者注册。这会造成基于对应的OMB服务配置设置来配置消息代理203(例如,创建/配置必要的消息代理构建,诸如,交换、队列、绑定)。在第三示例中,OMB服务(例如,位置追踪装置220)可以发现经由服务目录210连接至消息代理230的其他可用OMB服务(例如,位置追踪服务230)。在第四示例中,OMB服务可以创建/检索/更新/删除存储在数据库服务240中的信息。在第五示例中,可以通过消息代理203来发送和接收OMB服务。在第六示例中,OMB服务可以将关于其自身的管理或者调试信息提供给管理服务250。在第七示例中,管理服务可以用于管理OMB服务。在第八示例中,OMB服务可以订阅OMB服务目录并且指定通知标准(例如,如果特定类型的服务与消息代理203连接/当特定类型的服务与消息代理203连接时)。在第九示例中,OMB服务可以发起OMB客户端(例如,OMB客户端222)与消息代理203之间断开连接或者注销。
与消息总线构架202的消息代理203或者另一部分连接的服务可以使用OMBServiceID。OMBServiceID是由消息总线构架202的一个或者多个部件指配的标识符。OMBServiceID用于识别总线上的各种服务。OMBServiceID可以提供到服务中,或者可以在向消息总线构件202注册时指配OMBServiceID。服务可以与消息总线构架202连接并且不向其他服务提供服务。然而,这种服务仍将指配有OMBServiceID,使得其可以在总线上通信。不提供任何服务的“服务”的示例可以是简单地从其他服务收集信息并且触发警报的警报服务(例如,警笛装置)。
服务还可以被指配有ombServiceType。ombServiceType识别服务类型。例如,ombServiceType可以指示相关联的服务是传感器或者相关联的服务用于图像处理。ombServiceType可以提供到服务中,并且可以在向消息总线构架202的一个或者多个部件进行注册时指配ombServiceType。OMBServiceID和ombServiceType由服务用来发现和处理其他服务。例如,可以使用OMBServiceID将消息发送至服务的特定实例,并且可以使用ombServiceType来订阅与特定服务类型有关的所有消息。本文讨论了示例调用流程。OMB客户端可以指配有附加的可选标识符,诸如ombGroupId。可以将多个ombGroupId指配给各个OMB客户端。ombGroupId可以用于基于所有权、成本、类型、访问权限等对客户端进行分组。
本文讨论了对OMB API的进一步说明。以下是可以对OMB API 225等所支持的函数调用进行分组的编目:1)用于通过消息代理进行通信的通用OMB API函数(如表2所示);2)OMB服务目录API功能(如表3所示);3)OMB数据库API函数(如表4所示);以及4)OMB管理控制台API函数。
表2–通用OMB API函数
表3–OMB服务目录API函数
表4–用于与OMB数据库通信的API函数
表5列出了OMB API所支持的的一组公共参数。这些公共参数出现在大多数OMBAPI调用中并且在此进行了描述。
表5–公共输入和输出参数
ombConfig()函数由服务调用以利用特定于服务和消息代理的信息来配置OMB客户端。表6中示出了其他细节。
表6–ombConfig()输入和输出参数
表7列出了可能的ombRegister()输入和输出参数。ombRegister()由OMB服务调用以向消息总线构架进行注册并且创建OMB交换。交换是OMB的一部分。交换接受来自服务的消息并且将其路由至队列。一旦处于队列中,消息就会被发送至一个或者多个服务。基本上,该函数用于创建与OMB的连接。“连接”是“OMB交换”。
表7–ombRegister()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombRspCode | 描述请参见表5 |
表8列出了可能的ombDeregister()输入和输出参数。ombDeregister()函数由OMB服务调用以向消息代理进行注销。
表8–ombDeregister()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombRspCode | 描述请参见表5 |
ombReceive()函数由OMB服务调用以从OMB客户端接收未经请求的消息。该接收可以按照阻塞或者非阻塞的方式完成。另外,可以针对一种或者多种定义的OMB消息类型来完成接收。
当OMB客户端从消息代理接收OMB消息时,OMB客户端将检查以确定消息经过请求还是未经请求。经过请求的消息具有与来自OMB客户端的先前传输的OMB消息相匹配的OMB消息ID(例如,该消息是对前一个请求的响应)。未经请求的消息是与先前传输的OMB消息不匹配的OMB消息。
表9–ombReceive()输入和输出参数
参照表9,取决于接收到的OMB消息的类型,OMB客户端在将OMB消息转发至OMB服务之前可以或者可以不对OMB消息有效载荷进行解码。例如,OMB客户端对从OMB服务目录发起的OMB消息的OMB消息有效载荷进行解码。而OMB客户端不对从OMB服务发起的OMB消息的OMB消息有效载荷进行解码,该OMB服务不是构架服务,并且OMB客户端不知道/了解该OMB服务(例如,oneM2M服务或者ETSI M2M服务等)。
表10列出了可能的ombTransmit()输入和输出参数。ombTransmit()函数由OMB服务调用以将消息传输至其他OMB服务。该传输可以按照阻塞或者非阻塞的方式完成。
表10–ombTransmit()输入和输出参数
表11列出了可能的ombSdRegister()输入和输出参数。ombSdRegister()函数由OMB服务调用以在OMB服务目录中创建服务简档(经由OMB接口而不是DNS-SD接口)。注册可以具有与其相关联的生命周期,使得其可能需要在生命周期到期之前经由ombSdUpdate()进行更新。否则,注册可以由OMB服务目录自动删除。来自配置文件的信息和/或DNS TXT记录可以用于创建OMB服务目录简档。
表11–ombSdRegister()输入和输出参数
表12列出了可能的ombSdDeregister()输入和输出参数。ombSdDeregister()函数由OMB服务调用以从OMB服务目录注销服务简档。
表12–ombSdDeregister()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombToken | 描述请参见表5 |
ombRspCode | 描述请参见表5 |
表13列出了可能的ombSdUpdate()输入和输出参数。ombSdUpdate()函数由OMB服务调用以更新其服务目录简档。该功能在OMB服务知道其OMB服务目录简档并且在服务目录中动态地更新/创建其自身的简档时使用。
表13–ombSdUpdate()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombSdProfile | OMB服务目录简档 |
ombToken | 描述请参见表5 |
ombSdRegExpTime | OMB服务目录注册的到期时间 |
ombRxMsgType | 描述请参见表5。该参数对阻塞模式有效。 |
ombRxMsgPayload | 描述请参见表5。该参数对阻塞模式有效。 |
ombRspCode | 描述请参见表5。 |
表14列出了可能的ombSdDiscover()输入和输出参数。ombSdDiscover()函数由OMB服务调用以查询OMB服务目录,以发现和取回连接至与特定查询相匹配的OMB的可用OMB服务。
该API调用将利用基于底层DNS的服务目录(若可用)。另外,其将利用基于OMB的服务目录进行发现。
表14–ombSdDiscover()输入和输出参数
表15列出了可能的ombSdSubscribe()输入和输出参数。ombSdSubscribe()函数由OMB服务调用以订阅OMB服务目录,以接收针对状态变化的通知,诸如在创建、更新、或者删除OMB服务简档时。
表15–ombSdSubscribe()输入和输出参数
表16列出了可能的ombDbRegister()输入和输出参数。ombDbRegister()函数由OMB服务调用以向OMB数据库进行注册。
表16–ombDbRegister()输入和输出参数
表17列出了可能的ombDbDeregister()输入和输出参数。ombDbDeregister()函数由OMB服务调用以从OMB数据库注销。
表17–ombDbDeregister()输入和输出参数
表18列出了可能的ombDbCreateResource()输入和输出参数。ombDbCreateResource()函数由OMB服务调用以在OMB数据库中创建资源。
表18–ombDbCreateResource()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombToken | 描述请参见表5 |
ombRxMsgType | 描述请参见表5。 |
ombRxMsgPayload | 描述请参见表5。该参数对阻塞模式有效。 |
ombRspCode | 描述请参见表5。 |
ombDbTarget | 要在数据库中创建的资源的目标地址(URI) |
ombDbContent | 要在数据库中创建的资源的表示 |
ombDbContentType | 内容类型(XML、JSON等) |
ombDbResourceType | 创建的资源的类型 |
ombDbContentCreated | 在数据库中创建的资源的表示 |
表19列出了可能的ombDbRetrieveResource()输入和输出参数。ombDbRetrieveResource()函数由OMB服务调用以从OMB数据库取回资源。
表19–ombDbRetrieveResource()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombToken | 描述请参见表5 |
ombRxMsgType | 描述请参见表5。该参数对阻塞模式有效 |
ombRxMsgPayload | 描述请参见表5。该参数对阻塞模式有效 |
ombRspCode | 描述请参见表5 |
ombDbTarget | 要在数据库中取回的资源的目标地址(URI) |
ombDbContentType | 优选的内容类型(XML、JSON等) |
ombDbResourceType | 取回的资源的类型 |
ombDbContent | 从数据库取回的资源的表示 |
表20列出了可能的ombDbUpdateResource()输入和输出参数。ombDbUpdateResource()函数由OMB服务调用以在OMB数据库中更新资源。
表20–ombDbUpdateResource()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombToken | 描述请参见表5 |
ombRxMsgType | 描述请参见表5。该参数对阻塞模式有效。 |
ombRxMsgPayload | 描述请参见表5。该参数对阻塞模式有效。 |
ombRspCode | 描述请参见表5 |
ombDbTarget | 要在数据库中更新的资源的目标地址(URI) |
ombDbContent | 要在数据库中更新的资源的表示 |
ombDbContentType | 内容类型(XML、JSON等) |
ombDbResourceType | 更新的资源的类型 |
ombDbContentUpdated | 在数据库中的资源的更新的表示 |
表21列出了可能的ombDbDeleteResource()输入和输出参数。
ombDbDeleteResource()函数由OMB服务调用以在OMB数据库中删除资源。
表21–ombDbDeleteResource()输入和输出参数
参数 | 描述 |
ombServiceID | 描述请参见表5 |
ombBlocking | 描述请参见表5 |
ombCallbackFcn | 描述请参见表5 |
ombToken | 描述请参见表5 |
ombRxMsgType | 描述请参见表5。该参数对阻塞模式有效。 |
ombRxMsgPayload | 描述请参见表5。该参数对阻塞模式有效。 |
ombRspCode | 描述请参见表5 |
ombDbTarget | 要在数据库中删除的资源的目标地址(URI) |
表22列出了可能的ombDbFindAllSubscriptions()输入和输出参数。ombDbFindAllSubscriptions()函数由OMB服务调用以递归地寻找在数据库内的目标资源下的所有订阅资源。
表22–ombDbFindAllSubscriptions()输入和输出参数
表23列出了可能的ombDbFindAllChildResources()输入和输出参数。ombDbFindAllChildResources()函数由OMB服务调用以在OMB数据库内寻找仅针对一个级别的父资源下的所有子资源。
表23–ombDbFindAllChildResources()输入和输出参数
表24列出了可能的ombDbFindAllChildResourcesRecursively()输入和输出参数。ombDbFindAllChildResourcesRecursively()函数由OMB服务调用以在OMB数据库内递归地寻找给定的目标资源下的所有子资源。
表24-ombDbFindAllChildResourcesRecursively()输入和输出参数
表25列出了可能的ombDbIsResourcePresent()输入和输出参数。ombDbIsResourcePresent()函数由OMB服务调用以递归地搜索OMB数据库,以便获得与指定searchString相匹配的资源。
表25–ombDbIsResourcePresent()输入和输出参数
诸如,高级消息队列协议(AMQP)和消息队列遥测传输(MQTT)的常规消息总线协议不具备用于动态地发现哪些服务可用于消息总线上的内置支持。因此,连接至消息总线的服务可能不知道哪些其他服务处于消息总线上。这可能会导致消息总线的服务的未充分利用。例如,如果家庭自动化服务提供商能够连接至提供关于本地天气情况的信息的服务,则家庭自动化服务提供商可能能够更高效地管理家庭供暖和制冷系统。AMQP和MQTT不为家庭自动化提供商提供动态地发现和使用天气服务的手段。
当服务发现其希望接入的另一服务时,这两个服务的底层传输协议有可能不会兼容。例如,托管在低成本IoT传感器上的服务可以经由诸如CoAP的基于轻量级UDP的协议连接至消息传送系统,而托管在服务器上的数据挖掘服务可以经由诸如WebSocket的基于TCP的协议连接至消息传送系统。本文讨论的API或者协议可以由服务用来与消息代理连接,本文讨论的API或者协议可以对由对等服务使用的传输协议是不可知的。可以通过更新OMB客户端265的传输接口来支持新协议。OMB客户端API不一定会改变,传输接口将会改变。消息代理还将会更新为支持新传输接口。
服务可以动态地与消息总线相关联并且与消息总线取消关联。当服务与消息总线相关联时,可以通知其他服务。例如,供暖和制冷系统服务可能期望知道天气感测服务何时可用。当服务与消息总线取消关联时,可以通知其他服务。例如,相同的供暖和制冷系统服务可能期望知道天气感测服务何时取消关联,使得其可以对新天气感测服务进行定位。按照惯例,当新成员与消息总线相关联或者取消关联时,人们不会假设将通知与消息总线相关联的所有服务。如本文所讨论的消息总线协议或者基础设施提供了用于供服务指示其感兴趣的其他服务的手段,并且在这些其他服务与消息总线相关联或者取消关联时请求消息通知服务。
贯穿本公开,存在对与消息总线构架连接的服务的引用,并且使用服务目录来浏览哪些服务经由消息总线构架的一个或者多个部件(例如,消息代理203)可用(例如,注册或者连接)。术语“装置”可以按照可交换的方式用作服务。服务通常是指执行某些类型的计算或者存储的逻辑实体。装置通常是指物理的事物;其可以具有比服务更少的功能。例如,警笛装置可以仅仅从其他服务收集感测到的信息,并且做出关于是否发出警笛声的决定。服务和装置都可以与本文所公开的消息总线构架连接并且使用服务目录来浏览哪些服务经由消息总线构架的一个或者多个部件可用。本文所讨论的资源是可以经由网络(例如,Web)识别、命名、和寻址(通常通过使用URI)的实体。
虽然本文通过背景来描述oneM2M和ETSI M2M架构,并且oneM2M和ETSI M2M架构用于说明本文描述的主题,但是应该理解,本文描述的主题的实施方式可以发生变化,同时保持在本公开的范围内。本领域的技术人员还要认识到,所公开的的主题不限于使用本文所讨论的oneM2M和ETSI M2M架构的实施方式,而是可以实施在其他架构和系统中。
图17A是可以实施一个或者多个所公开的构思的示例机器对机器(M2M)、物联网(IoT)、或者物联网(WoT)通信系统10的示意图。通常,M2M技术为IoT/WoT提供建筑块,并且任何M2M装置、M2M网关、或者M2M服务平台可以是IoT/WoT以及IoT/WoT服务层的部件等。
如图17A所示,M2M/IoT/WoT通信系统10包括通信网络12。该通信网络12可以是固定网络(例如,以太网、光纤、ISDN、PLC等)或者无线网络(例如,WLAN、蜂窝等)或者异构网络的网络。例如,通信网络12可以由多个接入网组成,该多个接入网向多个用户提供内容,诸如,语音、数据、视频、消息传送、广播。例如,通信网络12可以采用一种或者多种信道接入方法,诸如,码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)等。进一步地,通信网络12可以包括其他网络,诸如,例如,核心网络、互联网、传感器网络、工业控制网络、个人域网、融合个人网络、卫星网络、家庭网络、或者企业网络。
如图17A所示,M2M/IoT/WoT通信系统10可以包括基础设施域和场域。基础架构域指端对端M2M部署的网络端,并且场域指区域网络,通常在M2M网关之后。场域包括M2M网关14和终端装置18。要了解,若需要,可以将任何数量的M2M网关装置14和M2M终端装置18包括在M2M/IoT/WoT通信系统10中。M2M网关装置14和M2M终端装置18中的每一个配置为经由通信网络12或者直接无线电链路来传输和接收信号。M2M网关装置14允许无线M2M装置(例如,蜂窝和非蜂窝)以及固定网络M2M装置(例如,PLC)通过诸如通信网络12或者直接无线电链路的运营商网络通信。例如,M2M装置18可以收集数据并且经由通信网络12或者直接无线电链路将该数据发送至M2M应用20或者M2M装置18。M2M装置18还可以从M2M应用20或者M2M装置18接收数据。进一步地,如下所述,可以经由M2M服务层22将数据和信号发送至M2M应用20和从M2M应用20接收数据和信号。M2M装置18和网关14可以经由各种网络通信,各种网络包括例如蜂窝、WLAN、WPAN(例如,Zigbee、6LoWPAN、蓝牙)、直接无线链接,以及有线。
参照图17B,在场域中图示的M2M服务层22向M2M应用20、M2M网关装置14、和M2M终端装置18和通信网络12提供服务。要理解,若需要,M2M服务层22可以与任何数量的M2M应用、M2M网关装置14、M2M终端装置18、和通信网络12通信。可以通过一个或者多个服务器、计算机等来实施M2M服务层22。M2M服务层22提供适用于M2M终端装置18、M2M网关装置14、和M2M应用20的服务能力。可以按照各种方式来实施M2M服务层22的功能,例如,实施为网络服务器、实施在蜂窝核心网中、实施在云中等。
与所图示的M2M服务层22类似,在基础架构域中存在M2M服务层22’。M2M服务层22’向在基础架构域中的M2M应用20’和底层通信网络12’提供服务。M2M服务层22’还向在场域中的M2M网关装置14和M2M终端装置18提供服务。要理解,M2M服务层22’可以与任何数量的M2M应用、M2M网关装置、和M2M终端装置通信。M2M服务层22’可以通过不同的服务提供商来与服务层交互。可以通过一个或者多个服务器、计算机、虚拟机器(例如,云/计算/存储场)等来实施M2M服务层22’。
仍然参照图17B,M2M服务层22和22’提供不同的应用和行业可以利用的服务传送能力的核心集。这些服务能力使M2M应用20和20’能够与装置交互并且执行功能,诸如数据收集、数据分析、装置管理、安全、开票、服务/装置发现等。本质上,这些服务能力使应用解除了实施这些功能的负担,从而简化了应用开发并且降低成本和上市时间。服务层22和22’还使M2M应用20和20’能够通过各种网络12和12’结合服务层22和22’提供的服务来进行通信。
在一些示例中,如本文所讨论的,M2M应用20和20’可以包括通过使用开放消息总线架构的一个或者多个部件来进行通信的期望的应用。M2M应用20和20’可以包括在各个行业中的应用,各个行业诸如但不限于运输、健康与保健、联网家庭、能量管理、资产追踪、以及安全和监控。如上所述,跨系统的装置、网关、和其他服务器运行的M2M服务层支持诸如例如数据采集、装置管理、安全、开票、位置追踪/地理围墙、装置/服务发现、以及遗留系统集成的功能,并且将这些功能作为服务提供给M2M应用20和20’。
本申请的开放消息总线架构的一个或者多个部件可以结合服务层一起实施。服务层是软件中间件层,该软件中间件层通过一组应用编程接口(API)和底层组网接口来支持增值服务能力。M2M实体(例如,可以通过结合硬件和软件来实施的M2M功能性实体,诸如,装置、网关、或者服务/平台等)可以提供应用或者服务。ETSI M2M和oneM2M都使用可以包含本申请的开放消息总线架构的一个或者多个部件的服务层。将ETSI M2M的服务层称为服务能力层(SCL)。SCL可以实施在M2M装置(在这种情况下,其称为装置SCL(DSCL))、网关(在这种情况下,其称为网关SCL(GSCL))、和/或网络节点(在这种情况下,其称为网络SCL(NSCL))内。oneM2M服务层支持一组公共服务功能(CSF)(即,服务能力)。将一组一个或者多个特定类型的CSF的例示被称为公共服务实体(CSE),可以将该公共服务实体托管在不同类型的网络节点(例如,基础设施节点,中间节点,应用专用节点)上。进一步地,可以将本申请的开放消息总线架构的一个或者多个部件实施为使用面向服务的架构(SOA)和/或面向资源的架构(ROA)来访问诸如本申请的开放消息总线架构的一个或者多个部件的服务的M2M网络的一部分。
图17C是示例M2M装置30——诸如M2M终端装置18——的系统图。如图17C所示,M2M装置30(例如,位置追踪装置220)可以包括处理器32、收发器34、传输/接收元件36、扬声器/麦克风38、小键盘40、显示器/触摸板42、不可移动存储器44、可移动存储器46、电源48、全球定位系统(GPS)芯片集50、和其他外围装置52。应该了解,M2M装置30可以包括前述元件的任何子集合,同时与所公开的主题保持一致。M2M装置30(例如,位置追踪装置220)可以是使用用于开放消息总线架构的所公开的系统和方法的装置。
处理器32可以是通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或者多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)、状态机等。处理器32可以执行信号编码、数据处理、功率控制、输入/输出处理、和/或使M2M装置30能够在无线环境中运行的任何其他功能。处理器32可以耦合至收发器34,该收发器34可以耦合至传输/接收元件36。虽然图17C将处理器32和收发器34描绘为单独的部件,但是要了解,可以将处理器32和收发器34集成在电子封装或者芯片中。处理器32可以执行应用层程序(例如,浏览器)和/或无线接入层(RAN)程序和/或通信。处理器32还可以诸如例如在接入层和/或应用层执行诸如认证、安全密钥协议、和/或密码操作的安全操作。
传输/接收元件36可以被配置为将信号传输至M2M服务平台22或者从M2M服务平台22接收信号。例如,传输/接收元件36可以是被配置为传输和/或接收RF信号的天线。传输/接收元件36可以支持各种网络和空中接口,诸如,WLAN、WPAN、蜂窝等。例如,在示例中,传输/接收元件36可以是配置为传输和/或接收IR、UV、或者可见光信号的发射机/检测器。在再一示例中,传输/接收元件36可以配置为传输和接收RF和光信号这两者。要了解,传输/接收元件36可以被配置为传输和/或接收无线或者有线信号的任何组合。
另外,尽管在图17C中将传输/接收元件36描绘为单个元件,但是M2M装置30可以包括任何数量的传输/接收元件36。更具体地,M2M装置30可以采用MIMO技术。因此,在示例中,M2M装置30可以包括用于传输和接收无线信号的两个或者更多个传输/接收元件36(例如,多个天线)。
收发器34可以被配置为调制待由传输/接收元件36传输的信号并且解调制由传输/接收元件36接收的信号。如上文提到的,M2M装置30可以具有多模式能力。因此,例如,收发器34可以包括用于使M2M装置30能够经由诸如UTRA和IEEE 802.11的多个RAT通信的多个收发器。
处理器32可以访问来自任何类型的合适的存储器的信息,并且将数据存储在任何类型的合适的存储器中,任何类型的合适的存储器诸如不可移动存储器44和/或可移动存储器46。不可移动存储器44可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘、或者任何其他类型的存储器存储装置。可移动存储器46可以包括用户识别模块(SIM)卡、记忆棒、安全数字(SD)存储卡等。在其他实施例中,处理器32可以访问来自并未在物理上位于M2M装置30的存储器的信息,或者将数据存储在该存储器中,诸如在服务器或者家庭计算机上。处理器32可以被配置为响应于本文所描述的一些示例中的开放消息总线架构的一个或者多个部件是成功还是失败(例如,服务发现、服务订阅等)或者指示开放消息总线架构的一个或者多个部件的状态而控制显示器或者指示器42上的照明图案、图像、或者颜色。在显示器或者指示器42上的控制照明图案、图像、或者颜色可以反映本文所图示或者讨论的示意图(例如,图1至图16)中的任何方法流程或者部件的状态。本文公开的是用于创建和实现开放消息总线架构的消息和过程。除了其他可以显示在显示器42上的方面之外,可以将消息和过程扩展为提供供用户请求经由输入源(例如,扬声器/麦克风38、小键盘40、或者显示器/触摸板42)配置开放消息总线的接口/API,并且请求、配置、或者查询与开放消息总线相关的消息。
处理器32可以接收来自电源48的电力,并且可以被配置为分布和/或控制用于M2M装置30中的其他部件的电力。电源48可以是用于对M2M装置30充电的任何合适的装置。例如,电源48可以包括一个或者多个干电池(例如,镍-镉(NiCd)、镍-锌(NiZn)、镍金属氢化物(NiMH)、锂离子(Li-ion)等)、太阳能电池、燃料电池等。
处理器32还可以耦合至被配置为提供关于M2M装置30的当前位置的位置信息(例如,经纬度)的GPS芯片集50。要了解,M2M装置30可以在与本文所公开的信息保持一致的同时通过任何合适的位置确定方法来获得位置信息。
处理器32可以进一步耦合至其他外围装置52,该外围装置52可以包括提供附加特征、功能、和/或有线或者无线连接性的一个或者多个软件和/或硬件模块。例如,外围装置52可以包括加速度计、电子罗盘、卫星收发器、传感器、数码相机(用于照片或者视频)、通用串行总线(USB)端口、振动装置、电视收发器、免提耳机、模块、调频(FM)无线电单元、数字音乐播放器、媒体播放器、视频游戏机模块、互联网浏览器等。
图17D是示例性计算系统90的框图,例如,图17A和图17B的M2M服务平台22可以实施在该示例性计算系统90上。计算装置90可以包括计算机或者服务器并且可以主要由计算机可读指令控制,在任何情况下,该计算机可读指令可以是软件的形式,或者可以通过任何手段存储或者访问这种软件。可以在中央处理单元(CPU)91内执行这种计算机可读指令,以使计算系统90工作。在许多个已知的工作站、服务器、和个人计算机中,中央处理单元91由称作微处理器的单片机CPU来实现。在其他机器中,中央处理单元91可以包括多个处理器。协处理器81是可选处理器,该可选处理器与主CPU 91不同,执行附加功能或者协助CPU 91。CPU 91和/或协处理器81可以接收、生成、并且处理与用于开放消息总线架构的一个或者多个部件的所公开的系统和方法有关的数据,诸如,接收用于浏览与消息总线构架相关联的服务的DNS-SD消息。
在操作中,CPU 91取得、解码、并且执行指令,并且经由计算机的主数据传输路径系统总线80将信息传输至其他资源并且传输来自其他资源的信息。这种系统总线连接在计算系统90中的部件,并且限定用于数据交换的介质。系统总线80通常包括用于发送数据的数据线、用于发送地址的地址线、和用于发送中断并且用于操作系统总线的控制线。这种系统总线80的示例是PCI(外围部件互连)总线。
耦合至系统总线80的存储器装置包括随机存取存储器(RAM)82和只读存储器(ROM)93。这种存储器包括允许存储和检索信息的电路系统。ROM 93通常包含不能轻易修改的存储数据。存储在RAM 82中的数据可以由CPU 91或者其他硬件装置读取或者改变。访问RAM82和/或ROM 93可以由存储器控制器92控制。当指令被执行时,存储器控制器92可以提供将虚拟地址转化成物理地址的地址转换功能。存储器控制器92还可以提供将系统内的进程隔离并且将系统进程与用户进程隔离的存储器保护功能。因此,在第一模式中运行的程序仅可以访问通过其自身的进程虚拟地址空间映射的存储器;该程序不能访问在另一进程的虚拟地址空间内的存储器,除非已经建立了在进程之间共享的存储器。
另外,计算系统90可以包含负责将指令从CPU 91传送到外围装置的外围装置控制器83,外围装置诸如打印机94、键盘84、鼠标95、和磁盘驱动器85。
由显示控制器96控制的显示器86用于显示由计算系统90生成的可视输出。这种可视输出可以包括文本、图形、动画图形、和视频。显示器86可以利用基于CRT的视频显示器、基于LCD的平板显示器、基于气体等离子体的平板显示器、或者触摸板来实施。显示控制器96包括生成发送至显示器86的视频信号所需的电子部件。
进一步地,计算系统90可以包含网络适配器97,该网络适配器97可以用于将计算系统90连接至外部通信网络,诸如图17A和图17B的网络12。
图18图示了可以基于本文所讨论的方法和系统生成的示例性显示器(例如,图形用户界面)。显示器接口901(例如,触摸屏显示器)可以在与消息总线服务目录相关联的框902中提供文本,诸如表1至表25的参数。在另一示例中,本文所讨论的任何步骤(例如,发送的消息或者步骤的成功)的进程可以显示在框902(例如,图10至图15)中。另外,图形输出903可以显示在显示器接口901(例如,与图1至图17D相关联)上。图形输出903可以是集群中的装置的拓扑,本文所讨论的任何方法或者系统的进程的图形输出等。例如,在图形用户界面的协助下,管理服务250(参见图8)可以用于管理和监测连接至OMB的客户端服务。管理服务250可以用于配置和监测消息总线服务目录。
要理解,本文描述的任何或者所有系统、方法、和过程可以体现为存储在计算机可读存储介质上的计算机可执行指令(即,程序代码)的形式,该指令在由机器(诸如,计算机、服务器、M2M终端装置、M2M网关装置等)执行时,执行和/或实施本文描述的系统、方法、和进程。具体地,上文描述的任何步骤、操作、或者功能可以按照这种计算机可执行指令的形式来实现。计算机可读存储介质包括实施在用于存储信息的任何方法或者技术中的易失性和非易失性介质以及可移动和不可移动介质,但是这种计算机可读存储介质不包括信号。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或者其他存储器技术、CD-ROM、数字多功能光盘(DVD)或者其他光盘存储、磁盒、磁带、磁盘存储或者其他磁存储装置、或者可以用于存储期望的信息并且可以由计算机访问的任何其他物理的介质。
如图所图示,在本公开的主题中所描述的优选方法、系统、或者设备中,为了清楚起见采用了特定术语。然而,所要求的主题不旨在限于所选择的特定术语,并且应该理解,各个特定元件包括以相似的方式操作以实现相似的目的的所有技术等效物。
该书面描述使用示例,包括最佳模式来公开本发明,并且还使本领域的任何技术人员能够实践本发明,包括制作并且使用任何装置或者系统,并且执行任何合并的方法。本发明的专利范围由权利要求书限定,并且可以包括其他示例(例如,跳过步骤、组合步骤、或者在本文所公开的示例性方法之间添加步骤)。如果这些示例具有与权利要求书的文字语言并无不同的元件,或者如果这些示例包括与权利要求书的文字语言无实质性差异的相同元件,那么这种其他示例旨在落入权利要求书的范围内。针对下文所讨论的方法、系统、计算机可读存储介质、设备等的元素的所有组合按照与详细说明的其他部分一致的方式预期。
一种方法、系统、计算机可读存储介质、或者设备,其具有用于发送对关于与消息代理相关联的可用服务的信息的请求的手段;接收包括对可用服务的描述的响应;从该响应选择可用服务的第一可用服务;并且基于响应中的对第一可用服务的描述与消息代理连接。对信息的请求可以包括DNS-SD查找指针记录。响应可以是DNS-SD响应。
一种方法、系统、计算机可读存储介质、或者设备,其具有用于将第一服务的简档加载到对经由消息代理可用的服务进行编目的服务目录中的手段,第一服务与消息代理连接;接收第二服务浏览服务目录的请求;从第二服务接收与消息代理连接的请求;以及经由消息代理将第一服务连接至第二服务。可以将浏览服务目录的请求与DNS-SD接口相关联。消息代理可以与管理服务连接。消息代理可以与数据库服务连接。第一服务可以经由与消息总线客户端连接的应用编程接口与消息代理连接。当第一服务与消息代理断开连接时,可以存在第二服务的通知。通过第二服务,可以存在订阅,以在具有相匹配的简档的第三服务与消息代理连接时接收通知。
一种方法、系统、计算机可读存储介质、或者设备,其具有用于经由消息代理将第一服务与第二服务连接的手段;并且通过第一服务发送请求,该请求包括在状态随着第二服务或者第三服务而发生变化或者状态随着与消息代理连接的代理类别而发生变化时通知第一服务的指令。状态变化可以包括删除、创建、或者更新第二服务或者第三服务的服务简档。状态变化可以包括删除、创建、或者更新第二服务或者第三服务。
一种方法、系统、计算机可读存储介质、或者设备,其具有针对第一服务的手段,该第一服务管理描述多个服务的简档;消息总线客户端与第一服务通信地连接;以及与第一服务和消息总线客户端通信地连接的消息代理,消息总线客户端提供针对第一服务的应用编程接口(API)以与消息总线连接。API可以允许第一服务利用服务标识符或者服务类型标识符来识别其自身。API可以允许第一服务来指示API请求是阻塞还是非阻塞。API可以允许第一服务来为各个API调用或者各个非阻塞API调用提供令牌值、函数名称、或者到函数的指针。令牌可以由第一服务用来将响应与原始API调用相关联。API可以允许第一服务在返回至非阻塞请求时指示调用了那些函数。API可以为第一服务提供一组命令以与消息代理通信,但不执行特定于在第一服务与消息代理之间使用的底层传输协议的命令。
Claims (20)
1.一种装置,包括:
处理器;以及
存储器,所述存储器与所述处理器连接,所述存储器包括可执行指令,所述可执行指令在由所述处理器执行时使所述处理器实行操作,所述操作包括:
请求关于与消息代理相关联的可用服务的信息;
接收包括对所述可用服务的描述的响应;
从所述响应审查所述可用服务中的第一服务;以及
基于所述响应中的对所述第一服务的描述来与所述消息代理连接。
2.根据权利要求1所述的装置,其中,包括对可用服务的描述的所述响应来自与所述消息代理连接的服务目录。
3.根据权利要求2所述的装置,其中,所述服务目录对经由消息代理可用的所述服务进行编目。
4.根据权利要求2所述的装置,其中,浏览所述服务目录的请求与DNS-SD接口相关联。
5.根据权利要求1所述的装置,其中,对信息的请求包括针对指针记录的DNS-SD查找。
6.根据权利要求1所述的装置,其中,所述响应是DNS-SD响应。
7.根据权利要求1所述的装置,所述操作进一步包括:发送用于所述第一服务的DNS服务位置记录。
8.根据权利要求1所述的装置,其中,所述消息代理经由传输不可知应用编程接口连接。
9.根据权利要求1所述的装置,所述操作进一步包括:订阅,以在具有匹配的简档的第二可用服务与所述消息代理连接时接收通知。
10.一种方法,包括:
从第一服务请求关于与消息代理相关联的可用服务的信息;
接收包括对所述可用服务的描述的响应;
从所述响应审查所述可用服务中的第二服务;以及
基于所述响应中的对所述第二服务的描述来与所述消息代理连接。
11.根据权利要求10所述的方法,其中,对信息的所述请求包括针对指针记录的DNS-SD查找。
12.根据权利要求10所述的方法,其中,所述响应是DNS-SD响应。
13.根据权利要求10所述的方法,所述操作进一步包括:发送用于所述第二服务的DNS服务位置记录。
14.根据权利要求10所述的方法,其中,所述消息代理经由传输不可知应用编程接口连接。
15.根据权利要求10所述的方法,所述操作进一步包括:订阅,以在具有匹配的简档的第三服务与所述消息代理连接时接收通知。
16.根据权利要求10所述的方法,所述操作进一步包括:当所述第二服务与所述消息代理断开连接时,通知所述第一服务。
17.一种计算机可读存储介质,所述计算机可读存储介质包括计算机可执行指令,所述计算机可执行指令在由计算装置执行时使所述计算装置实行操作,所述操作包括:
请求关于与消息代理相关联的可用服务的信息;
接收包括对所述可用服务的描述的响应;
从所述响应审查所述可用服务中的第一服务;以及
基于所述响应中的对所述第一服务的描述来与所述消息代理连接。
18.根据权利要求17所述的装置,其中,包括对可用服务的描述的所述响应来自与所述消息代理连接的服务目录。
19.根据权利要求18所述的装置,其中,所述服务目录对经由消息代理可用的所述服务进行编目。
20.根据权利要求18所述的装置,其中,浏览所述服务目录的请求与DNS-SD接口相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562118882P | 2015-02-20 | 2015-02-20 | |
US62/118,882 | 2015-02-20 | ||
PCT/US2016/018692 WO2016134267A1 (en) | 2015-02-20 | 2016-02-19 | Message bus service directory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107431726A true CN107431726A (zh) | 2017-12-01 |
CN107431726B CN107431726B (zh) | 2020-07-28 |
Family
ID=55456948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680017117.8A Active CN107431726B (zh) | 2015-02-20 | 2016-02-19 | 消息总线服务目录 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10708376B2 (zh) |
EP (1) | EP3259898B1 (zh) |
JP (1) | JP6538867B2 (zh) |
KR (1) | KR102046700B1 (zh) |
CN (1) | CN107431726B (zh) |
WO (1) | WO2016134267A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650277A (zh) * | 2018-05-24 | 2018-10-12 | 哈工大机器人(合肥)国际创新研究院 | 一种数据加密传输方法 |
CN110138850A (zh) * | 2019-05-06 | 2019-08-16 | 福建星网智慧科技股份有限公司 | 一种基于DNSmasq实现云PBX业务负载均衡的方法 |
CN110808973A (zh) * | 2019-10-31 | 2020-02-18 | 国网河北省电力有限公司电力科学研究院 | 一种可以跨主机部署的融合型消息总线 |
CN112559202A (zh) * | 2020-12-08 | 2021-03-26 | 北京机电工程研究所 | 基于嵌入式实时操作系统的飞行器应用软件通讯方法 |
CN112835911A (zh) * | 2021-03-10 | 2021-05-25 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109314715B (zh) * | 2016-07-02 | 2022-03-29 | 英特尔公司 | 用于物联网的资源编排代理 |
US10650621B1 (en) | 2016-09-13 | 2020-05-12 | Iocurrents, Inc. | Interfacing with a vehicular controller area network |
WO2018061017A1 (en) | 2016-09-30 | 2018-04-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatuses for charging of a service session of m2m devices in a communication network |
US9860677B1 (en) * | 2016-09-30 | 2018-01-02 | Intel Corporation | Internet-of-things gateway coordination |
JP6848426B2 (ja) * | 2016-12-27 | 2021-03-24 | 富士通株式会社 | 通信装置,通信システム,プログラム及び通信制御方法 |
US10554607B2 (en) * | 2017-02-24 | 2020-02-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Heterogeneous cloud controller |
US10728181B2 (en) * | 2017-03-27 | 2020-07-28 | Dell Products, L.P. | Advanced message queuing protocol (AMQP) message broker and messaging client interactions via dynamic programming commands using message properties |
US11323519B2 (en) * | 2017-04-19 | 2022-05-03 | Microsoft Technology Licensing, Llc | Internet of things pub-sub data publisher |
US10833881B1 (en) * | 2017-11-06 | 2020-11-10 | Amazon Technologies, Inc. | Distributing publication messages to devices |
CN108429665B (zh) * | 2018-03-22 | 2020-12-15 | 四川长虹电器股份有限公司 | 一种并发通信传输数据的方法 |
CN110391991B (zh) * | 2018-04-18 | 2022-04-29 | 华为技术有限公司 | 一种流量控制的方法及相关装置 |
CN108924183B (zh) * | 2018-05-31 | 2022-01-11 | 北京百度网讯科技有限公司 | 用于处理信息的方法及装置 |
JP7030217B2 (ja) * | 2019-01-28 | 2022-03-04 | 日本電信電話株式会社 | メッセージ送受信方法、通信装置、及びプログラム |
WO2020209703A1 (en) * | 2019-04-12 | 2020-10-15 | Samsung Electronics Co., Ltd. | Method and system for discovering edge-server or edge-service through domain name server (dns) resolution |
US11128587B2 (en) * | 2019-05-13 | 2021-09-21 | Sap Se | Enterprise messaging using a virtual message broker |
CN111131426B (zh) * | 2019-12-19 | 2022-05-10 | 浙江百应科技有限公司 | 一种基于mqtt数据交互的方法、终端及服务端 |
CN113098914B (zh) * | 2019-12-23 | 2022-09-30 | 中国移动通信集团湖南有限公司 | 消息总线系统及消息传输方法、装置、电子设备 |
KR20220097555A (ko) * | 2020-10-21 | 2022-07-08 | 한국전자기술연구원 | 다중 메시지 프로토콜을 지원하는 컨테이너 오케스트레이터 기반의 메모리 공유 방법 |
US20240007544A1 (en) * | 2020-12-09 | 2024-01-04 | Sony Group Corporation | Broker device, publisher device, subscriber device, publisher-subscriber system, publisher-subscriber method |
US11902239B2 (en) * | 2021-01-11 | 2024-02-13 | Salesforce, Inc. | Unified application messaging service |
CN113626219B (zh) * | 2021-08-06 | 2022-11-22 | 湖南大学 | 一种基于注册回调机制的线程间数据分发方法 |
US11819762B1 (en) * | 2021-08-06 | 2023-11-21 | Amazon Technologies, Inc. | Registration and control of a game entity as a device |
US11922235B2 (en) * | 2021-11-10 | 2024-03-05 | International Business Corporation Machines | Coordinating asynchronous communication among microservices |
US11985211B2 (en) | 2022-03-16 | 2024-05-14 | Cisco Technology, Inc. | Dynamic hashing framework for synchronization between network telemetry producers and consumers |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140119A1 (en) * | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Dynamic service discovery |
JP2004334896A (ja) * | 2000-04-10 | 2004-11-25 | Nec Corp | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
CN1882935A (zh) * | 2003-12-23 | 2006-12-20 | 思科技术公司 | 向移动节点提供位置特定的服务 |
WO2008082021A1 (en) * | 2007-01-05 | 2008-07-10 | Ajou University Industry Cooperation Foundation | Open framework system for heterogeneous computing and service integration |
CN101609415A (zh) * | 2009-07-17 | 2009-12-23 | 武汉大学 | 基于中间件的通用服务调用系统及方法 |
CN101669113A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 从表单和表元数据中导出web服务接口的方法 |
CN102763085A (zh) * | 2009-12-03 | 2012-10-31 | 国际商业机器公司 | 使用云服务目录来供应服务 |
US20130232271A1 (en) * | 2010-11-05 | 2013-09-05 | Electronics And Telecommunications Research Institute | Method for providing logical space-based polymorphic service and device using same |
CN103384201A (zh) * | 2012-05-01 | 2013-11-06 | 美国博通公司 | 网络中基于服务的功率管理 |
CN103503487A (zh) * | 2011-03-03 | 2014-01-08 | 交互数字专利控股公司 | 用于接入隶属于所发现的服务供应商的服务的方法和装置 |
CN104254844A (zh) * | 2012-06-26 | 2014-12-31 | 惠普发展公司,有限责任合伙企业 | 向wi-fi客户端暴露网络打印机 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782541B1 (en) * | 1999-05-28 | 2004-08-24 | Avaya Technology Corp. | System and method of exchanging information between software modules |
US6594700B1 (en) | 1999-06-14 | 2003-07-15 | International Business Machines Corporation | System and method for implementing a universal service broker interchange mechanism |
US7414981B2 (en) * | 2001-04-25 | 2008-08-19 | Qwest Communications International, Inc. | Method and system for event and message registration by an association controller |
US7870012B2 (en) * | 2001-05-15 | 2011-01-11 | Agile Software Corporation | Method for managing a workflow process that assists users in procurement, sourcing, and decision-support for strategic sourcing |
US8346929B1 (en) * | 2003-08-18 | 2013-01-01 | Oracle America, Inc. | System and method for generating secure Web service architectures using a Web Services security assessment methodology |
JP2007538313A (ja) * | 2004-04-29 | 2007-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 分散ネットワーキング・アーキテクチャ内にサービスをモデル化し、動的にデプロイするためのシステムおよび方法 |
US8812684B1 (en) * | 2006-09-28 | 2014-08-19 | Rockwell Automation Technologies, Inc. | Messaging configuration system |
US20080104258A1 (en) * | 2006-10-30 | 2008-05-01 | Gestalt, Llc | System and method for dynamic data discovery in service oriented networks with peer-to-peer based communication |
US8081610B2 (en) * | 2007-05-09 | 2011-12-20 | Vlad Stirbu | Modifying remote service discovery based on presence |
US20110314163A1 (en) * | 2010-06-16 | 2011-12-22 | Mmb Research Inc. | Wireless communication network for smart appliances |
EP2646935B1 (en) * | 2010-11-30 | 2015-08-05 | Nokia Technologies Oy | Method and apparatus for coordinating information request messages over an ad-hoc mesh network |
US20170063566A1 (en) * | 2011-10-04 | 2017-03-02 | Electro Industries/Gauge Tech | Internet of things (iot) intelligent electronic devices, systems and methods |
WO2013101765A1 (en) * | 2011-12-27 | 2013-07-04 | Cisco Technology, Inc. | System and method for management of network-based services |
US9515920B2 (en) * | 2012-04-20 | 2016-12-06 | Futurewei Technologies, Inc. | Name-based neighbor discovery and multi-hop service discovery in information-centric networks |
US9553831B2 (en) * | 2013-04-11 | 2017-01-24 | Cisco Technology, Inc. | Adaptive publish/subscribe system |
US10171594B2 (en) * | 2013-09-28 | 2019-01-01 | Mcafee, Llc | Service-oriented architecture |
WO2015047436A1 (en) * | 2013-09-28 | 2015-04-02 | Mcafee, Inc. | Efficient request-response routing over a data exchange layer |
US9414215B2 (en) * | 2013-10-04 | 2016-08-09 | Cisco Technology, Inc. | System and method for orchestrating mobile data networks in a machine-to-machine environment |
US20150156266A1 (en) * | 2013-11-29 | 2015-06-04 | Qualcomm Incorporated | Discovering cloud-based services for iot devices in an iot network associated with a user |
US9417831B2 (en) * | 2014-03-05 | 2016-08-16 | Tricerat | Method and system of providing computer network based limited visibility service discovery |
US20150301875A1 (en) * | 2014-04-22 | 2015-10-22 | Andreas Harnesk | Persisting and managing application messages |
US9660943B2 (en) * | 2014-04-25 | 2017-05-23 | International Business Machines Corporation | Messaging based signaling for communications sessions |
CN111405493B (zh) * | 2014-07-07 | 2022-08-12 | 康维达无线有限责任公司 | 用于基于机器类型通信组的服务的协调分组 |
WO2016011361A1 (en) * | 2014-07-18 | 2016-01-21 | Convida Wireless, Llc | M2m ontology management and semantics interoperability |
JP2017525042A (ja) * | 2014-07-22 | 2017-08-31 | コンヴィーダ ワイヤレス, エルエルシー | M2m−iotサービスのパブリケーションおよび発見 |
US10075348B2 (en) * | 2014-07-25 | 2018-09-11 | Cable Television Laboratories, Inc. | Network service discovery |
CN106605421B (zh) * | 2014-09-16 | 2020-01-31 | 诺基亚技术有限公司 | 用于服务节点的匿名访问和控制的方法和装置 |
US20160128043A1 (en) * | 2014-10-30 | 2016-05-05 | Qualcomm Incorporated | Dynamic mobile ad hoc internet of things (iot) gateway |
CN107430512B (zh) * | 2014-10-31 | 2021-02-02 | 康维达无线有限责任公司 | 管理机器对机器系统中的应用关系 |
US10084643B2 (en) * | 2014-11-28 | 2018-09-25 | Huawei Technologies Co., Ltd. | Systems and methods for providing customized virtual wireless networks based on service oriented network auto-creation |
US9762556B2 (en) * | 2015-01-09 | 2017-09-12 | Verisign, Inc. | Registering, managing, and communicating with IOT devices using domain name system processes |
US9935950B2 (en) * | 2015-01-12 | 2018-04-03 | Verisign, Inc. | Systems and methods for establishing ownership and delegation ownership of IOT devices using domain name system services |
US20160205106A1 (en) * | 2015-01-12 | 2016-07-14 | Verisign, Inc. | Systems and methods for providing iot services |
WO2016118979A2 (en) * | 2015-01-23 | 2016-07-28 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
US10362074B2 (en) * | 2015-02-03 | 2019-07-23 | Kodiak Networks, Inc | Session management and notification mechanisms for push-to-talk (PTT) |
-
2016
- 2016-02-19 US US15/048,506 patent/US10708376B2/en active Active
- 2016-02-19 JP JP2017543945A patent/JP6538867B2/ja active Active
- 2016-02-19 KR KR1020177026124A patent/KR102046700B1/ko active IP Right Grant
- 2016-02-19 EP EP16708307.0A patent/EP3259898B1/en active Active
- 2016-02-19 CN CN201680017117.8A patent/CN107431726B/zh active Active
- 2016-02-19 WO PCT/US2016/018692 patent/WO2016134267A1/en active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004334896A (ja) * | 2000-04-10 | 2004-11-25 | Nec Corp | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
US20030140119A1 (en) * | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Dynamic service discovery |
CN1882935A (zh) * | 2003-12-23 | 2006-12-20 | 思科技术公司 | 向移动节点提供位置特定的服务 |
WO2008082021A1 (en) * | 2007-01-05 | 2008-07-10 | Ajou University Industry Cooperation Foundation | Open framework system for heterogeneous computing and service integration |
CN101669113A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 从表单和表元数据中导出web服务接口的方法 |
CN101609415A (zh) * | 2009-07-17 | 2009-12-23 | 武汉大学 | 基于中间件的通用服务调用系统及方法 |
CN102763085A (zh) * | 2009-12-03 | 2012-10-31 | 国际商业机器公司 | 使用云服务目录来供应服务 |
US20130232271A1 (en) * | 2010-11-05 | 2013-09-05 | Electronics And Telecommunications Research Institute | Method for providing logical space-based polymorphic service and device using same |
CN103503487A (zh) * | 2011-03-03 | 2014-01-08 | 交互数字专利控股公司 | 用于接入隶属于所发现的服务供应商的服务的方法和装置 |
CN103384201A (zh) * | 2012-05-01 | 2013-11-06 | 美国博通公司 | 网络中基于服务的功率管理 |
CN104254844A (zh) * | 2012-06-26 | 2014-12-31 | 惠普发展公司,有限责任合伙企业 | 向wi-fi客户端暴露网络打印机 |
Non-Patent Citations (1)
Title |
---|
FEDERICA PAGANELLI ET AL.: "Message-Based Service Brokering and Dynamic Composition in the SAI Middleware.", 《2010 IEEE INTERNATIONAL CONFERENCE ON SERVICES COMPUTING》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650277A (zh) * | 2018-05-24 | 2018-10-12 | 哈工大机器人(合肥)国际创新研究院 | 一种数据加密传输方法 |
CN110138850A (zh) * | 2019-05-06 | 2019-08-16 | 福建星网智慧科技股份有限公司 | 一种基于DNSmasq实现云PBX业务负载均衡的方法 |
CN110808973A (zh) * | 2019-10-31 | 2020-02-18 | 国网河北省电力有限公司电力科学研究院 | 一种可以跨主机部署的融合型消息总线 |
CN112559202A (zh) * | 2020-12-08 | 2021-03-26 | 北京机电工程研究所 | 基于嵌入式实时操作系统的飞行器应用软件通讯方法 |
CN112835911A (zh) * | 2021-03-10 | 2021-05-25 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
CN112835911B (zh) * | 2021-03-10 | 2022-12-02 | 四川大学华西医院 | 一种适用于医疗信息平台的主数据管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107431726B (zh) | 2020-07-28 |
JP2018512645A (ja) | 2018-05-17 |
WO2016134267A1 (en) | 2016-08-25 |
KR102046700B1 (ko) | 2019-11-19 |
US10708376B2 (en) | 2020-07-07 |
EP3259898B1 (en) | 2020-07-22 |
US20160248871A1 (en) | 2016-08-25 |
JP6538867B2 (ja) | 2019-07-03 |
KR20170118815A (ko) | 2017-10-25 |
EP3259898A1 (en) | 2017-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107431726A (zh) | 消息总线服务目录 | |
US10404601B2 (en) | Load balancing in the internet of things | |
US11368522B2 (en) | Lightweight IoT information model | |
US10412053B2 (en) | Service layer device location management and privacy control | |
EP3170284B1 (en) | Enhanced operations between service layer and management layer in an m2m system by allowing the execution of a plurality of commands on a plurality of devices | |
JP6302050B2 (ja) | 改善された発見のためのシステムおよび方法 | |
CN108989372A (zh) | 服务发现的方法、注册中心和设备 | |
US10334406B2 (en) | Methods and apparatus for analyzing and grouping service layer subscriptions and notifications for enhanced efficiency | |
CN106797392A (zh) | M2m‑iot服务的发布和发现 | |
CN108886531A (zh) | 使用服务层能力进行网络和应用管理 | |
KR20170028878A (ko) | 무선 통신 시스템에서 요청 메시지를 처리하기 위한 방법 및 이를 위한 장치 | |
KR102500594B1 (ko) | 통신 네트워크에서의 서비스 계층 메시지 템플릿들 | |
EP3794804A1 (en) | Service layer-based methods to enable efficient analytics of iot data | |
CN107925583A (zh) | 服务层任播和些播 | |
KR20150062904A (ko) | 부속 그룹 자원과 검색, 그룹 명칭 속성 정보를 이용한 그룹의 생성, 조회, 갱신 및 삭제 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |