物联网PUB-SUB数据发布者的制作方法

文档序号:19325239发布日期:2019-12-04 01:01阅读:194来源:国知局
物联网PUB-SUB数据发布者的制作方法



背景技术:

物联网(iot)是技术中最显著的趋势之一。iot通常涉及可以收集和交换数据的互连设备的网络,使得其负责各种应用。iot可以应用于许多不同的环境并且用于许多不同的应用,诸如汽车、能量、健康护理、运输、制造等。

iot可以依赖于已有的技术来促进设备之间数据的收集和交换。例如,iot可以使用已有的硬件和软件用于设备,以促进数据收集和存储、处理以及其他设备操作。而且,可以包括协议和通信技术的通信基础设施可以用于数据交换。

另外,协议和标准是可用的,并且当前正在针对iot进行开发。一种此类标准是开放式平台通信统一架构(opcua),其包括机器对机器通信协议,机器对机器通信协议可以用于工业自动化或者其他应用。opcua是由opc基金会开发的标准,opc基金会是创建和维护用于工业自动化设备的开放式连接性的行业协会。opcua最初在2008年发布,但是最新的版本在2015年发布。将会发布更新的版本以适应工业自动化的新需求。

opcua通常用于与工业设备和系统通信,以用于工业iot(iiot)的数据收集和控制。使用opcua的行业的一些示例包括制药、石油和天然气、建筑物自动化、工业机器人技术、安全以及制造与过程控制。opcua可以用于提供实时的、车间级的传感器、现场设备、控制器和应用之间以及车间与云之间的平台独立、安全、可靠和语义的互操作性。opcua是跨平台的,并且包括面向服务的架构(soa)。而且,opcua使用信息模型将数据建模到opcua命名空间中。信息模型促进设备之间的数据的收集和交换,并且还促进opcua的soa的使用。

opcua可以发展为提供附加功能性,并且为了实现附加功能性,设备的opcua软件应当被更新。然而,更新设备上的opcua软件可能导致设备在一段时间内不可操作。在许多情况下,被编程为使用opcua来处理和交换数据的设备被设计为持续运行以执行其主要功能。例如,opcua通常在工厂中使用以监测和控制由工厂场地上的机器人执行的操作。机器人被设计为一周七天、一天二十四小时运行。任何停机时间都可能导致工厂中的制造操作的中断和意外延迟。因此,更新该类型的设备上的opcua软件可能破坏设备的主操作。

附图说明

参考以下附图在下文描述中详细描述了本公开内容的实施方式和示例,在附图中,相似的附图标记指示相似的元件。

图1图示了根据本公开内容的示例的iot系统;

图2图示了根据本公开内容的示例的发布者计算机;

图3图示了根据本公开内容的示例的方法;以及

图4图示了根据本公开内容的示例的用于发布者计算机的计算机平台。

具体实施方式

为了简单和说明的目的,主要通过参考实施方式及其示例来描述本公开内容的原理。在以下描述中,陈述了多个具体细节以便提供对实施方式和示例的理解。然而,易见的是,对于本领域普通技术人员,可以在不限于这些具体细节的情况下实践实施方式和示例。在一些情况下,没有详细描述公知的方法和/或结构,以免不必要地混淆实施方式和示例的描述。另外,实施方式和示例可以在各种组合中一起使用。

本公开内容的示例涉及iot设备以及从iot设备向其他计算机和设备提供数据。例如,发布者计算机连接至iot设备。iot设备可以包括传感器、现场设备、控制器、应用或者可以生成要与其他计算机交换的数据的任何计算机或设备。发布者计算机可以包括iot网关,其将iot设备连接至云基础架构。发布者计算机可以从iot设备接收数据,将数据转换为符合预定规范的发布者-订户格式,并且将数据传输至云基础架构和/或其他远程计算机。

根据本公开内容的示例,发布者计算机和iot设备是按照opcua标准操作的opcua设备。iot设备可以是工业自动化系统的一部分,或者可以在其他环境中提供。根据opcua,iot设备可以包括opcua服务器,opcua服务器在“地址空间”中暴露由iot设备生成的数据,并且此数据可以被授权的opcua客户端访问,授权的opcua客户端可以通过地址空间看到什么数据可用,以便选择从opcua服务器接收什么数据。

opcua的当前版本,版本1.03,指定了用于opcua客户端和opcua服务器之间的数据交换的客户端-服务器通信模型。在客户端-服务器通信模型中,opcua客户端一般向opcua服务器发送针对数据的请求,并且继而opcua服务器可以通过向opcua客户端提供所请求的数据来响应该请求。例如,opcua客户端创建单独的会话、订阅和受监测项目,以便以一对一方式从opcua服务器取回数据。会话用于管理opcua客户端和opcua服务器之间的通信关系,并且受监测项目表示用于订阅事件的设置以及来自opcua服务器的变量值数据改变。受监测项目可以在订阅中被分组。由opcua服务器提供的数据被单独地传输至具有与opcua服务器的会话以及针对数据的订阅的各个opcua客户端。资源约束限制并行客户端-服务器连接、订阅和受监测项目的数目,其可能负面地影响持续需要来自较大数目的服务器的数据的客户端。客户端-服务器通信模型指定格式(诸如opc二进制ua编码格式)和传送协议(诸如传输控制协议/因特网协议(tcp/ip))以用于传输数据。

opcua的预期新版本尚非发布,其被推广为包括发布-订阅(pub-sub)通信模型,该pub-sub通信模型支持一对多的数据交换。对于所提出的opcuapub-sub通信模型,opcua应用不直接交换请求和响应。而是,诸如opcua服务器的发布者在没有订户的知识的情况下向面向消息的中间件发送消息以发布数据,并且诸如opcua客户端的订户可以在没有发布者的知识的情况下通过面向消息的中间件接收数据。面向消息的中间件是支持在分布式系统之间发送和接收消息的软件或硬件基础架构。opcuapub-sub通信模型在不需要资源消耗连接的情况下向opcua客户端无连接地发送其数据,并且可以预期pub-sub模型将有助于更快的响应时间,以用于从iot设备向云发送数据。iiot系统可以包括向云发送数据的数千个传感器。pub-sub通信模型指定格式(诸如javascript对象表示法(json)编码格式)和传送协议(诸如高级消息队列协议(amqp)传送协议)以用于传输数据。

为了获得opcuapub-sub通信协议的优点,包括诸如机器人、制造机器等的设备的iot设备可能需要利用新的opcua软件来升级,新的opcua软件促进opcuapub-sub规范的使用。这可能导致iot设备的停机时间。根据本公开内容的示例,iot设备可以使用opcua的当前通信模型(例如,客户端-服务器通信模型)向发布者计算机发送数据,并且发布者计算机运行过程来转换数据以符合opcuapub-sub通信模型。根据opcuapub-sub通信模型,数据继而可以被传输至云或者其他远程计算机。因此,iot系统可以在无需改变发布数据的iot设备的通信软件(诸如opcua服务器软件)的情况下利用pub-sub通信模型。而且,可以包括到云的iot网关的发布者计算机可以在没有停机时间的情况下进行更新,以改变目的地订阅的数据。

图1图示了根据本公开内容的示例的iot系统,称为系统100。系统100可以包括本地环境102,本地环境102包括iot设备110,本地环境102连接至包括远程计算机114的远程环境104。iot设备110可以与其他计算机交换数据,其他计算机包括远程计算机114和本地计算机,诸如本地计算机112。iot设备110可以与发布者计算机120交互,发布者计算机120可以执行pub-sub操作和iot网关操作以便与远程环境104通信,远程环境104包括基于云的网关115和/或远程计算机114。

远程环境104可以包括云环境,其可以提供云服务。远程环境104可以包括基于云的网关115,其摄取(ingest)来自本地环境102的数据,包括来自iot设备110的数据。远程环境104可以包括云资源,包括远程计算机114和/或可以从iot设备接收数据并且运行应用的其他云基础架构,应用诸如分析应用(其分析或使用数据)。例如,分析可以从数据中确定见解,并且见解可以用于控制本地环境102中的机器的操作。

在示例中,本地环境102可以包括制造环境,制造环境包括制造生产设施,制造生产设施包括iot设备110,其可以包括传感器、机器人和其他类型的制造机器。iot设备110可以经由发布者计算机120和基于云的网关115向远程计算机114发送关于要在制造生产设施中执行的制造操作的数据。数据可以包括组装线传感器产生的千兆字节的数据,并且发布者计算机120可以包括用于根据预定通信模型发送数据的模块。远程计算机114可以从多个制造生产设施接收iot数据(例如,来自iot设备110的数据),并且比较iot数据以预测或监测制造误差并且修复误差。在另一示例中,本地环境102可以包括智能建筑物环境,并且iot设备110可以包括监测水、热和电使用的智能传感器。远程计算机114可以分析来自智能传感器的iot数据,以主动地优化能源的使用。在另一示例中,本地环境102可以包括零售环境,并且iot设备110可以包括实时库存跟踪和销售系统。远程计算机114可以分析来自这些系统的iot数据,以提供有效的产品递送选项,并且监测购买行为并且促进推广。

本地环境102可以经由网络连接至远程环境104。网络可以包括因特网、内联网、局域网(lan)、无线lan(wilan)、广域网(wan)、城域网(man)、公共交换电话网络(pstn)、无线个域网(wpan)和其他类型的有线和/或无线通信网络中的一个或多个。远程环境可以包括云环境,其包括分布式云资源。云环境可以包括按需提供的可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池。iot设备110还可以经由网络连接至发布者计算机120和其他计算机,网络可以包括上述网络中的一个或多个。如下文进一步讨论的,iot设备110、本地计算机112和发布者计算机可以经由第一通信模型交换数据,第一通信模型诸如客户端-服务器模型。发布者计算机120可以根据第二不同的通信模型(诸如pub-sub通信模型)与远程计算机114和基于云的网关115通信。两个通信模型可以都在opcua标准或者将要发布的opcua标准的版本中进行了描述。

将对本领域普通技术人员易见的是,本地环境102可以包括iot设备110和其他未示出的计算机。iot设备可以包括连接至网络的任何计算设备,并且具有例如根据iot标准(诸如opcua)与其他设备和计算机传输数据的能力。本地环境102可以包括作为iot设备与其他iot设备对话以便使操作自动化的场景的一部分的iot设备。远程环境104以示例的方式示出,并且不限于经由基于云的网关115连接至本地环境102,并且基于云的网关115可以通过如下来促进环境之间的数据交换:提供云到设备通信选项、内置声明性消息路由、设备元数据和同步状态信息的可查询存储、安全通信和访问控制、针对设备连接性的广泛监测等。而且,发布者计算机120可以执行iot网关操作来将本地环境102连接至远程环境104。例如,发布者计算机120可以执行协议适配。例如,基于云的网关115和发布者计算机120支持通过消息队列遥测传输(mqtt)、amqp和超文本传送协议(http)协议的通信。发布者计算机120可以桥接设备与计算机之间的业务,诸如iot设备和基于云的网关115和/或远程计算机114之间的业务。在示例中,发布者计算机120包括iot网关软件开发包(sdk),其包括用于执行各种网关操作的模块以及可以定制的模块。

图2示出了发布者计算机120和系统100的其他组件的框图。系统100可以包括客户端和服务器。客户端可以包括从服务器得到数据的软件应用,并且服务器可以包括提供数据的软件应用。在示例中,客户端可以是opcua客户端,并且服务器可以包括opcua服务器,其符合opcua标准。客户端和服务器可以在这样的计算机上托管,该计算机可以包括iot设备110或者可以包括连接至iot设备110的计算机。例如,iot设备110a-c可以包括服务器111a-c(例如,opcua服务器),或者连接至计算机托管服务器111a-c,以向客户端(例如,opcua客户端)提供数据,客户端诸如客户端121和客户端113。数据可以包括由iot设备110捕获或测量的iot数据或者关于本地环境102的其他数据。相对于发布者计算机121,服务器111a-c可以称为远程服务器,并且可以在发布者计算机121之外的不同计算机上托管。本地计算机112可以包括客户端113以订阅来自iot设备110中的一个或多个的数据。例如,客户端113订阅来自服务器111c的数据以便从iot设备110c接收数据。通过示例的方式,本地计算机112可以包括膝上型或其他类型的计算机,其由工厂工人用于查看来自iot设备110的数据以及管理iot设备110。例如,iot设备110可以包括传感器、工厂机器等,并且客户端113可以订阅来自服务器111a-c的数据。工厂工人可以经由本地计算机112查看数据,或者本地计算机112可以运行使用来自iot设备110的数据的应用来控制工厂机器。

发布者计算机120可以包括客户端121和服务器122。服务器122可以运行子过程(sub-process)130-132来执行各种操作,以根据第一通信模型140经由客户端121捕获来自服务器111a-c的数据,并且将数据转换为第二通信模型141以用于向远程环境104或其他计算机传输,远程环境104诸如远程计算机114。发布者123可以包括编码器124,其用于根据第二通信模型141对来自服务器111a-c的数据进行编码。在下文进一步讨论的示例中,第一通信模型140可以包括客户端-服务器模型以便从服务器111a-c得到数据(例如,来自iot设备110的iot数据)。而且,可以根据opcua二进制格式对从服务器111a-c向客户端113传输的数据进行编码,并且可以通过opcua中指定的tcp传送协议来传输上述数据。而且,第二通信模型可以是opcuapub-sub通信模型,通过opcuapub-sub通信模型,根据json格式对数据进行编码并且通过amqp传送协议向远程环境104传输数据,远程环境104诸如基于云的网关115、远程计算机114或者其他计算机。

子过程130-132可以包括发布子过程130、非发布子过程131和发布列表子过程132。子过程130-132之所以称为子过程是因为发布者可以执行多个其他过程。一般地,子过程是可以由运行机器可读指令的计算机执行的过程。发布子过程130标识要从服务器111a-c中的一个或多个取回的特定数据。例如,iot设备110可以包括测量多个变量的传感器,多个变量诸如温度、压力、体积等。可以选择变量中的一个或多个由发布子过程130接收。而且,假设已经选择了变量的集合,但是集合需要被改变。非发布子过程131可以用于选择一个或多个变量从集合中移除,所以不再接收这些变量。发布列表子过程132可以被选择为确定针对特定客户端正在从服务器接收的数据或变量的当前集合。子过程130-132中的任何子过程可以由用户经由用于访问服务器122的用户接口选择,或者可以由与服务器122交互的应用或者另一过程选择。而且,服务器122与客户端121交互以便从服务器111a得到数据,如下文进一步讨论的。在服务器122得到数据之后,发布者123可以运行编码器124以将数据编码为预定格式,并且根据预定传送协议向目的地传输数据。编码的示例可以包括xml/text、ua二进制和json。传送协议的示例可以包括tcp、https、amqp和websockets。

根据opcua示例描述发布者计算机120的操作。例如,服务器111a-c和服务器122是opcua服务器,并且客户端113和121是opcua客户端。opcua标准制定opcua客户端和服务器的操作,其中一些在下文中讨论。

opcua使用opc信息模型而使得来自iot设备的数据可用。opcua使用地址空间和服务模型,该服务模型允许opc服务器将数据、警报和事件以及历史集成到其地址空间中,并且通过服务集合提供到它们的接入。例如,服务器111a-c中的每一个维护其自己的地址空间。每个地址空间包括节点。地址空间中的节点可以标识iot数据,诸如变量,并且可以标识过程。客户端可以订阅特定节点来接收事件发生的通知,诸如针对变量或警报的数据。订阅描述由opcua客户端选择的节点集合,服务器针对其来周期性地监测一些条件的存在,并且在检测到条件时,opcua服务器向opcua客户端发送针对这些条件的通知。例如,当opcua服务器检测到数据改变或者事件/警报发生时,opcua服务器生成通知,该通知由订阅传送至客户端。可以在会话中向opcua客户端传输数据。

opcua服务器通过视图暴露其节点。视图可以包括可用于由一个或多个opcua客户端访问的opcua服务器的地址空间的节点的子集。opcua客户端可以访问opcua服务器以标识其可以浏览的视图。可以浏览可用的视图以标识和选择节点,诸如用以接收感兴趣的iot数据。

客户端113和121可以根据opcua标准中描述的客户端-服务器通信模型从服务器111a-c得到数据。例如,通过请求和响应消息从服务器111a-c取回数据。例如,可以由opcua客户端向opcua服务器发送请求消息,以用于在地址空间中的一个或多个节点上执行特定任务,并且获得由opcua服务器返回的响应消息。客户端-服务器通信模型可以用于创建订阅,所以opcua客户端可以接收周期性通知,其包括从opcua服务器输出的事件、警报、数据改变和程序。

如上文讨论的,发布子过程130可以标识从服务器111a-c中的一个或多个取回的特定数据。非发布子过程131可以用于停止接收或者停止订阅特定数据。发布列表子过程132可以确定由客户端订阅的当前数据。opcua服务器的节点可以表示过程以及数据。子过程130-132可以是服务器122的地址空间的节点。诸如客户端113的客户端可以访问服务器122的地址空间的视图,以浏览服务器122的节点并且选择节点中的一个。服务器122可以接收对节点中的一个用于表示子过程130-132中的一个的选择。例如,通过客户端113,诸如工厂管理者的用户浏览服务器122的节点并且选择节点中的一个表示子过程130-132中的一个子过程。代替用户,计算机应用可以选择节点中的一个表示子过程130-132中的一个子过程。

假设服务器122接收表示发布子过程130的其发布节点的选择,以管理从服务器111a-c接收的数据并且管理发布来自发布者计算机120的数据。除了接收用于发布子过程130的节点的选择之外,服务器122还接收标识要从服务器111a-c中的服务器接收的数据的信息。标识数据的信息可以包括要从服务器111a-c中的一个取回的数据的标识符(id)以及将提供数据的计算机的网络地址。例如,假设要从服务器111a取回数据。信息可以包括:表示要从服务器111a接收的数据的服务器111a的地址空间中的节点的唯一节点id以及提供数据的设备或计算机的端点地址。服务器111a-c的地址空间的节点相对于发布者计算机120可以称为远程节点。端点地址可以是托管服务器111a的计算机的网络地址。

服务器122利用节点id和端点地址向客户端121发送包括命令的消息,以订阅由节点id标识的节点。根据opcua的客户端-服务器模型,客户端121创建对于由节点id标识的节点的订阅,并且在不存在与服务器111a的会话情况下创建会话以从服务器111a接收针对节点id的数据。客户端121经由会话从服务器111a接收数据,并且发布者123发布符合opcua的pub-sub通信模型的格式的数据。例如,编码器124可以是json编码器,并且编码器124可以将数据编码为json格式,并且使用amqp将其发送至目的地。目的地可以是基于云的网关115或者任何amqp端点。

假设服务器122接收非发布节点的选择,非发布节点表示用于停止从服务器111a-c中的一个接收特定数据的非发布子过程131。除了接收用于非发布子过程131的节点的选择之外,服务器122还接收标识要停止接收的数据以及要停止从发布者计算机120发布的数据的信息。例如,服务器122接收针对要停止接收的数据的节点id以及提供数据的服务器的网络地址。服务器122使用此信息来取消对于由节点id标识的节点的订阅。例如,服务器122指示客户端121取消对于由节点id标识的节点的订阅,所以客户端121停止接收针对该节点的数据。如果与提供数据的端点没有更多的订阅,客户端121也可以取消与提供数据的服务器的会话。

客户端121维护对服务器111a-c的订阅的列表,所以客户端121可以跟踪其正在从服务器111a-c接收的数据。服务器122可以从客户端121请求列表,或者可以从预定位置访问列表。例如,用户或者应用可以请求订阅的列表,并且客户端121或者服务器122可以提供列表。例如,服务器122接收标识发布列表子过程132的其发布列表节点的选择。可以从客户端113接收发布列表节点的选择。服务器122可以请求其当前从客户端121订阅的节点的列表,并且客户端121从数据存储取回列表并且将其提供至服务器122。服务器122将列表提供至发布者123。发布者123可以按照json对列表进行编码,并且使用传送协议将其发送回请求者。例如,以json对列表进行编码,并且在一个或多个tcp/ip分组中发送至客户端113。例如,json编码的列表包括在tcp/ip、opcua二进制分组的净荷中,并且被传输至本地环境102中的计算机,诸如本地计算机112。如果要将列表传输至远程环境104中的计算机,则可以在amqp消息中传输json编码的列表。可以在接收列表的计算机处解码列表,并且可以由用户查看。

发布者计算机120可以发布由客户端121根据要在opcua标准的未来版本中指定的pub-sub通信模型从服务器111a-c接收的数据。格式可以包括用于pub-sub通信模型的具体编码格式和传送协议。例如,发布者123可以确定要发布的数据收集。数据可以包括客户端121通过其与服务器111a-c的订阅接收的数据。数据可以包括所监测的变量、opcua事件等。发布者123可以从要发布的数据的收集以及从针对要发布的数据的元数据来创建数据集消息。从数据集消息和附加信息来创建网络消息,附加信息诸如标识发布计算机120的发布者id、数据集类id、安全信息和其他信息。网络消息由编码器124来编码,并且被传输至其目的地(例如,json编码和amqp传送协议)。目的地可以包括基于云的网关115,并且基于云的网关115可以向远程计算机114中的一个或多个发送数据,或者发布者计算机120可以将网络消息作为amqp消息直接发送至远程计算机114中的一个或多个。

图3图示了根据本公开内容的示例的方法300。该方法可以由发布者计算机120执行。在301处,发布者计算机120接收在服务器(诸如发布者计算机120上托管的服务器122)处的pub-sub过程的选择。服务器112可以包括opcua服务器。pub-sub过程可以包括与如下相关联的过程:根据第一通信模型从iot设备110a-c接收数据以及根据第二通信模型向一个或多个目的地提供数据。通信模型可以是指定用于得到或提供数据的过程的协议,并且可以指定编码格式和传送协议。第一通信模型和第二通信模型的示例分别包括:在opcua标准中指定的客户端-服务器模型和可以在opcua标准中指定的pub-sub模型。例如,发布者计算机120从服务器111a-c接收由iot设备110a-c生成的数据,该数据是根据opcua中指定的二进制编码格式而编码并且根据tcp/ip传送协议而传输的,该tcp/ip传送协议是用于客户端-服务器通信模型的opcua中的指定传送协议。而且,发布者计算机120可以通过用于pub-sub通信模型的amqp来传输json编码数据。

另外,可以在发布者计算机120的服务器122处选择的pub-sub过程的示例包括发布子过程130、非发布子过程131和发布列表子过程132。服务器122可以是opcua服务器,并且子过程130-132可以由可以被浏览和选择的服务器122的地址空间中的节点表示。例如,节点可以包括由服务器111a-c中的一个服务器的节点表示的用于取回数据的发布节点、由服务器111a-c中的一个服务器的节点表示的用于停止取回数据的非发布节点、以及用于得到从服务器111a-c取回的节点的列表的发布列表节点。在接收pub-sub节点或过程的选择时,服务器122还可以接收标识用于发布或非发布过程的节点以及提供针对节点的数据的计算机的网络地址。

在302处,发布者计算机120的服务器122(其可以是opcua服务器)向客户端121(其可以是在发布者计算机120上托管的opcua客户端)发送消息,以便运行所选择的pub-sub过程。客户端121运行所选择的pub-sub过程。例如,如果在301处选择发布节点,则服务器122可以向客户端121发送指令以取回针对由指定节点id和网络地址标识的节点的数据。客户端121可以创建与在其地址空间中具有节点的服务器的订阅,服务器诸如服务器111a-c中的一个服务器。如果选择了非发布节点,则客户端121可以取消针对利用该选择提供的节点id所标识的节点的订阅。如果选择了发布列表节点,则客户端121可以提供由客户端121当前订阅的来自服务器111a-c的节点的列表。

在303处,发布者计算机120根据第二通信模型向远程计算机传输为所选择的pub-sub过程而确定的数据。例如,如果在301处选择了发布过程,则发布者计算机120可以根据opcua标准中指定的pub-sub规范向基于云的网关115或另一计算机传输针对所选择的节点而接收的iot数据,并且可以根据编码格式对数据进行编码,并且根据为pub-sub规范指定的传送协议来传输数据,诸如通过amqp传输json编码的数据。如果在301处选择了非发布过程,则可以取消订阅以停止接收特定数据。然而,可以根据opcua中指定的pub-sub规范,向基于云的网关115或另一计算机传输由客户端121仍然订阅的由服务器111a-c的节点表示的其他数据,并且可以根据编码格式对数据进行编码,并且根据为pub-sub规范指定的传送协议来传输数据,诸如通过amqp传输json编码的数据。如果在301处选择发布列表节点,则可以向请求列表的远程计算机传输当前订阅的来自服务器111a-c的节点的列表,例如,列表是json编码的。

另外在303处,发布者计算机120传输从服务器111a-c中的一个或多个服务器接收的数据,其可以是与所选择的pub-sub过程相关联的数据的附加数据。例如,基于针对发布子过程130的在服务器122处接收的先前对节点的选择,客户端121可以具有针对服务器111a-c的节点的现有订阅。客户端121通过与服务器111a-c的订阅和会话来接收针对节点的数据,并且发布者123根据pub-sub通信模型向一个或多个远程计算机发布数据。客户端121可以继续通过与服务器111a-c的订阅和会话接收针对节点的数据作为由iot设备110a-c生成的新数据,并且可以继续根据pub-sub通信模型从发布者计算机120发布数据。在该过程继续时,发布者计算机120可以接收服务器122的pub-sub节点的选择,诸如关于301所讨论的,并且也可以从发布者计算机120发布基于选择所生成的数据。例如,如果针对发布子过程130,在301处选择新的节点,则针对新节点的数据可以通过创建订阅来取回,并且附加地从发布者计算机120发布。然而,如果通过非发布子过程131选择节点,则客户端121运行用于停止接收针对该节点的数据的过程,并且由此不再从发布者计算机120发布该数据,但是仍然从发布者计算机120发布针对其他节点的、由客户端121接收的数据。而且,如果选择了发布列表子过程132,则向请求列表的计算机传输列表,例如,以json格式,并且发布者计算机继续发布针对客户端121具有订阅的节点的数据。

图4示出了根据本公开内容的示例的可以用作用于发布者计算机120的平台的计算机400。计算机400可以包括处理器402和计算机可读介质450,计算机可读介质450上存储了处理器402可以取出和运行的机器可读指令455。处理器402可以是基于半导体的微处理器、中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)和/或其他硬件设备。计算机可读介质450可以是非暂时性计算机可读介质,包括存储机器可读指令455的电子、磁性、光学或者其他类型的物理存储。机器可读指令可以包括用于服务器122、客户端121、发布者123以及用于发布者计算机120执行的任何其他过程和操作的代码。计算机可读介质450可以是例如随机存取存储器(ram)、电可擦除可编程只读存储器(eeprom)、存储设备、光盘等。计算机可读介质450可以是非暂时性机器可读存储介质,其中术语“非暂时性”不包括暂时性的传播信号。处理器402可以包括一个或多个处理器。计算机402可以包括一个或多个输入/输出(i/o)设备403,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备或显示器。

计算机400可以包括允许计算机400与诸如远程计算机406的其他计算机通信的通信接口404,远程计算机406例如可以包括基于云的网关115、远程计算机114和本地计算机112。通信接口404可以包括但不限于调制解调器、网络接口卡(nic)、集成网络接口、射频发射机/接收机、红外端口、usb连接或其他接口。通信接口404可以经由有线连接或无线连接与其他计算机连接。通信接口404可以包括用于经由网络405与包括远程计算机406的其他计算机连接的网络接口。网络405可以包括因特网、内联网、局域网(lan)、无线lan(wilan)、广域网

(wan)、城域网(man)、公共交换电话网络(pstn)、无线个域网(wpan)和其他类型的有线和/或无线通信网络中的一个或多个。网络405可以是云计算环境中的网络。处理器402可以取得和运行机器可读指令455以执行本文针对发布者计算机120描述的操作。

上文描述了实施方式和示例,并且本领域技术人员将能够在不脱离实施方式和示例的范围的情况下对所描述的实施方式和示例做出各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1