首页> 中国专利> 针对网络连接设备的显式交互合约

针对网络连接设备的显式交互合约

摘要

提供了计算机系统,计算机系统包括一个或多个处理器,一个或多个处理器被配置为存储多个软件接口,软件接口定义网络连接设备与软件服务之间的显式交互合约。一个或多个处理器被配置为执行多个软件服务。每个软件服务定义由该软件服务操作的一个或多个软件接口。一个或多个处理器被配置为从网络连接设备接收由网络连接设备实现的一个或多个软件接口的列表、基于由网络连接设备实现的一个或多个软件接口与由多个软件服务操作的一个或多个软件接口之间的匹配来选择一个或多个软件服务以及使用所选择的软件服务来处理从网络连接设备接收到的数据。

著录项

  • 公开/公告号CN113039768A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201980075504.0

  • 申请日2019-11-05

  • 分类号H04L29/08(20060101);H04W4/70(20180101);G06F9/445(20180101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人黄倩

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 11:34:14

说明书

背景技术

通常,针对物联网(IoT)设备的软件解决方案后端开发可以由不同的团队、组织或供应商来执行。设备代码与软件解决方案后端之间的互操作性问题可能会增加开发时间并增加开发人员的工作量。附加地,针对一个IoT设备类型开发的软件解决方案通常可能仅适用于该设备类型,而不能快速地适应其他IoT设备类型。

发明内容

提供了计算机系统,计算机系统包括一个或多个处理器,一个或多个处理器被配置为存储多个软件接口,软件接口定义网络连接设备与软件服务之间的显式交互合约。一个或多个处理器被配置为执行多个软件服务。每个软件服务定义由该软件服务操作的一个或多个软件接口。一个或多个处理器被配置为从网络连接设备接收由网络连接设备实现的一个或多个软件接口的指示、基于由网络连接设备实现的一个或多个软件接口与由多个软件服务操作的一个或多个软件接口之间的匹配来选择一个或多个软件服务、以及根据一个或多个软件接口的显式交互合约,使用所选择的软件服务来处理从网络连接设备接收到的数据或向网络连接设备发送命令。

提供本发明内容来以简化形式介绍一些概念,这些概念将在以下的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。

附图说明

图1示出了示例计算机系统,该计算机系统用于根据软件接口的显式交互合约,使用软件服务来处理来自网络连接设备的数据。

图2示出了图1的多个网络连接设备的一个示例。

图3示出了图1的软件接口的示意图。

图4示出了图1的软件接口的一个示例。

图5示出了图1的可扩展软件接口的一个示例。

图6示出了图示根据由图1的计算机系统实现的软件接口的显式交互合约,使用软件服务来处理来自网络连接设备的数据的方法的流程图。

图7示出了图1的计算机系统可以在其中实施的示例计算环境的示意图。

具体实施方式

为了解决这些问题,提供了计算机系统10。图1图示了计算机系统10,计算机系统10包括被配置为存储和管理多个软件接口14的云平台12。在一个示例中,多个软件接口14可以包括由云平台12提供和控制的平台软件接口15。多个软件接口14还可以包括由网络连接设备18的制造方、软件服务20的开发人员或云平台12的其他用户创建的自定义软件接口16。每个软件接口14定义由云平台12的客户和用户操作的网络连接设备18与由开发人员创建的软件服务20之间的显式交互合约。软件服务20可以由网络连接设备18的制造方、与网络连接设备18的制造方无关的第三方开发人员、网络连接设备18的用户以及云平台12的其他用户来开发。显式交互合约是数据文件,数据文件定义方案和协议,例如,数据应根据这些方案和协议而在客户端和服务器之间被发送和接收。

在一个示例中,云平台12包括一个或多个处理器22,一个或多个处理器22被配置为执行本文所述的云平台12的过程和功能。云平台可以包括被配置为在云计算配置中操作的一个或多个服务器设备。如图1所示,云平台12被配置为执行多个软件服务20,每个软件服务定义由软件服务20操作的一个或多个软件接口14。在一个示例中,多个软件服务20被配置为根据软件服务20已被开发来利用的一个或多个软件接口14的显式交互合约来处理数据。这些软件服务20可以由第一方或第三方开发,并且被上传到云平台12。在一个示例中,云平台12可以在使得这些软件服务在云平台12上可用之前,对每个上传的软件服务执行测试、身份验证和认证过程。例如,云平台12可以被配置为测试每个软件服务20是否正确地实现了一个或多个软件接口14。这些软件服务20然后可以在云平台12上被存储和执行,以处理来自由云平台12的用户操作的网络连接设备18的数据。

图2图示了在示例物理环境(即,用户的房屋)周围分布的多个网络连接设备18的示例。网络连接设备可以被配置为经由路由器24来连接到广域网(WAN)。作为特定示例,路由器24可以采取无线网络设备的形式,用于中介(mediate)可以被物理环境中的多个网络连接设备18利用的无线网络。在另一示例中,多个网络连接设备18可以被配置为与被配置为经由路由器24连接到WAN的用户计算设备26通信。

多个网络连接设备18可以采取不同的形式并且可以执行不同的过程和功能。在图2所示的具体示例中,网络连接设备18包括调温计28、壁炉调温计30、体温计32和宠物食品测量设备34。应当理解,图2中图示的特定示例网络连接设备18仅是示例性的,并且网络连接设备可以采用其他合适的形式。作为一些其他非限制性示例,网络连接设备18可以采取包括处理器、存储器、所存储的程序以及能够经由计算机网络连接到远程服务器的通信接口GPS单元、振动/运动传感器、打印机、路由器、灯、HVAC单元、机器人、智能扬声器、智能手表、资产跟踪器、扬声器、智能咖啡机、冰箱传感器、其他类型的传感器和测量设备、其他类型的消费或工业IoT设备等的形式。在图2所示的示例中,每个网络连接设备18被配置为测量物理参数,诸如温度或宠物食品水平。然而,应当理解,网络连接设备18可以采用不一定测量物理参数的其他形式,例如诸如打印机或显示器的网络连接输出设备。

在一个示例中,每个网络连接设备18可以包括处理器或另一类型的硬件逻辑组件,诸如例如现场可编程门阵列(FPGA)、程序和专用集成电路(PASIC/ASIC)、程序和专用标准产品(PSSP/ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。每个网络连接设备18的处理器可以被配置为经由传感器来收集所测量的物理值、执行过程或输出等。每个网络连接设备18的处理器可以进一步被配置为经由由路由器24中介的无线网络和/或经由用户计算设备26而将消息36从网络连接设备18发送到计算系统12。在所示的示例中,用户计算设备26采用大幅面显示器的形式并且可以包括其自己的处理器、非易失性存储装置、易失性存储装置和其他合适的计算机组件。然而,将理解,客户端计算机设备26可以采用其他合适的形式,诸如例如台式计算机设备、膝上型计算机设备、智能电话、平板计算机设备等。

返回到图1,在一个示例中,当首先连接到网络时,每个网络连接设备18可以被配置为与供应服务38通信来执行初始化过程40。初始化过程40可以包括检查对网络连接设备18的固件/软件的任何更新是否可用。初始化过程40还可以包括使用针对云平台12的网关42的地址来将网络连接设备18初始化。在接收到针对云平台12的网关42的地址之后,每个网络连接设备18可以被配置为经由WAN来与云平台12通信。在该示例中,供应服务38的互联网协议地址可以由该网络连接设备18的制造方或销售方提供给每个网络连接设备18。在另一示例中,针对云平台12的网关42的互联网协议地址可以由网络连接设备18的制造方或销售方直接提供给网络连接设备18A。

如图1所示,每个网络连接设备18可以被配置为向由该网络连接设备18实现的云平台12发送软件接口14的指示。指示可以采取例如列表44的形式。在一个示例中,每个网络连接设备18可以被制造为实现一个或多个软件接口14,诸如例如由云平台12索引的平台软件接口15或自定义软件接口16。例如,网络连接设备18的软件/固件可以被开发为符合网络连接设备18正在实现的一个或多个软件接口14的显式交互合约。在一个示例中,软件接口的列表44可以由供应服务38诸如例如在初始化过程40期间发送到云平台12。在另一示例中,诸如边缘网关的边缘计算设备60可以被配置为与网络连接设备18通信,并且将软件接口列表44转发到云平台12。

在另一示例中,针对网络连接设备18的一个或多个软件接口14可以通过由云计算机设备17执行的网络连接设备相关软件程序19来实现。网络连接设备相关软件程序19可以被配置为命令和控制一个或多个相关联的网络连接设备18。在图1所示的示例中,网络连接设备相关软件程序19被配置为与示例网络连接设备18B进行通信。网络连接设备相关软件程序19还被配置为执行本文所述的网络连接设备18的功能和过程。例如,网络连接设备相关软件程序19可以被配置为向云平台12发送软件接口列表44,以及利用云平台12上执行的软件服务20来发送和接收消息36。执行网络连接设备相关软件程序19的云计算机设备17可以是云平台12的云服务器,或者可以是与云平台12分离的计算机设备。在另一示例中,边缘计算设备60可以实现与软件程序19相关联的网络连接设备,并且可以类似地被配置为命令和控制一个或多个相关联的网络连接设备18,并且利用云平台12来发送和接收消息。

作为特定示例,网络连接设备相关软件程序19可以采取软件控制的会议室的形式。与网络连接设备相关软件程序19相关联的网络连接设备18可以包括可以由网络连接设备相关软件程序19导通/关断的联网照明设备、可以向网络连接设备相关软件程序19发送占用数据的占用传感器、联网空调设备等。进一步在该示例中,网络连接设备相关软件程序19可以被配置为实现一个或多个软件接口14,并且可以利用云平台上的软件服务20来发送/接收消息。例如,云平台上的软件服务可以包括代码,该代码基于从占用传感器网络连接设备接收到的占用数据,来命令网络连接设备相关软件程序19导通或关断会议室的联网照明设备。

在一个示例中,每个软件接口14包括由多个软件服务20可访问的网络连接设备18的一个或多个功能和描述性特性(attribute)的语义描述。作为一个特定示例,软件接口14的语义描述可以使用针对链接数据的JavaScript对象表示法(JSON-LD)来描述。JSON-LD被设计为可以直接用作JSON,也可以在资源描述框架(RDF)系统中使用,资源描述框架(RDF)系统提供了以分布式、可扩展的方式描述资源的标准。软件接口14的语义描述提供了网络连接设备18的一个或多个功能和描述性特性的语义类型注释,使得分析、机器学习、用户接口和其他计算可以推断从网络连接设备18接收到的数据的语义。应当理解,语义类型注释是人类可读和机器可读的,并且可以形成对人类可读和机器可读数据类别的下游搜索和数据分析的基础。例如,由图2的示例网络连接设备18,调温计28、壁炉温度计30和/或体温计32测量的物理值可以在语义上被注释为“温度”。以该方式,由这些示例网络连接设备18发送到云平台12的所测量的物理值可以被推断为温度(一起绘制、比较、转换为相似的单位等)。

图3图示了示例软件接口14。作为一些非限制性示例,网络连接设备18的一个或多个功能和描述性特性可以包括由网络连接设备实现的设备属性(property)数据46、遥测数据48、软件命令50以及音频和/或视频流功能51。然而,应当理解,本文中未描述的其他类型的功能和描述性特性也可以被包括在软件接口14中。这些功能描述了由特定类型的网络连接设备18所利用的相关功能性集合,诸如例如,调温计、宠物温度测量单元、资产跟踪器等的功能。在一个示例中,软件接口14的语义描述包括选自以下项的网络连接设备属性46:网络连接设备型号、网络连接设备序列号、网络连接设备制造方、网络连接设备操作系统、网络连接设备存储器属性和网络连接设备类型。网络连接设备型号可以是网络连接设备18的制造方所设置的型号或标识。网络连接设备序列号可以是该网络连接设备18的制造方所设置的序列号。网络连接设备制造方可以是网络连接设备18的制造方的名称。网络连接设备存储器属性可以是总存储器大小、存储器类型、网络连接设备的存储器的制造方等。网络连接设备类型可以是网络连接设备的语义描述,诸如例如“调温计”、“资产跟踪器”等。然而,应理解,网络连接设备18的其他类型的只读或读/写属性也可以被包括在针对网络连接设备属性数据46的软件接口14中。

在另一示例中,软件接口14的语义描述包括经定义的一个或多个事件,事件可以由网络连接设备18生成并且作为遥测数据48发出。经定义的一个或多个事件选自包括以下各项的组:由网络连接设备测量的物理属性、设备状态事件、设备警报事件和设备错误事件。由网络连接设备18测量的物理属性的语义描述可以描述被测量的物理属性以及属性的数据类型。例如,针对调温计网络连接设备18的语义描述可以指示被测量的物理属性是温度,并且由调温计网络连接设备18发送的值是双数据类型。针对设备状态事件的语义描述可以指示网络连接设备18将被如何配置为发出可以由软件服务20捕获的设备状态信息。针对网络连接设备警报和错误事件的语义描述可以指示网络连接设备18被配置为发出什么类型的警报和事件,以及那些警报和错误的类型。应当理解,上述经定义的事件仅是例示性的,并且其他类型的事件可以在软件接口14中进行语义描述。

在另一示例中,软件接口14的语义描述包括由网络连接设备18实现的一个或多个软件命令。语义描述可以描述网络连接设备18可以被指示来由软件服务20执行的功能和操作。例如,语义描述可以描述可用命令的功能名称、描述该命令将要执行的操作的开发人员注释、命令执行的类型(诸如同步或异步)、用于命令输入的数据类型以及命令输出的数据类型。

图4图示了软件接口14的特定示例。示例软件接口14包括网络连接设备18的一个或多个功能和描述性特性的语义描述52。在所示的示例中,语义描述52包括针对由网络连接设备测量的物理属性数据所定义的遥测事件54。如图4所示,所定义的遥测事件54还包括附加语义类型“温度”,附加语义类型“温度”可以被用于指示遥测数据可以被推断为遥测和温度两者。语义描述52还指示由相关联的网络连接设备18测量的物理属性将作为双倍数据类型被发出。因此,为所示软件接口14配置的任何软件服务20可以期望由网络连接设备发出的数据是双倍数据类型的温度值,并且可以相应地处理该数据。以这种方式,由网络连接设备发出的数据可以由那些软件服务20推断为温度(一起绘制、比较、转换为相似的单位等)。作为另一特定示例,体温计网络连接设备可以实现包括所定义的遥测事件54的软件接口14,所定义的遥测事件54还包括BodyTemperature语义类型(例如{“@type”:[“Telemetry”,“Temperature”,“BodyTemperature”],“name”:“temp”,“schema”:“double}),BodyTemperature语义类型可以被用于指示遥测数据可以被推断为遥测、温度和体温。应当理解,尽管图4中示出且以上描述的示例基于表达语义类型的JSON-LD方式,但是软件接口14不限于JSON-LD。软件接口14可以利用任何其他合适的编程语言,并且可以经由其他合适的方式来表达语义类型。

在所示的示例中,软件接口还包括针对示例网络连接设备属性56的语义描述。但是,应当理解,软件接口14可以包括针对网络连接设备的任何合适数量的功能和特性的语义描述,诸如例如一个、三个、七个等。如图所示,针对示例网络连接设备属性56的语义描述52指示网络连接设备包括SETPOINTTEMP属性,SETPOINTTEMP属性可以利用双倍数据类型值来写入。类似地,如以上关于所定义的遥测事件54所描述的,SETPOINTTEMP可写属性可以包括温度语义类型(例如,{“@type”:[“Property”,“Temperature”],)。因此,被配置为在图4所示的软件接口上操作的软件服务20可以推断SETPOINTTEMP既是属性又是温度,并且可以向调温计网络连接设备发送指令,以将其SETPOINTTEMP值设置为特定温度值。由于调温计网络连接设备和特定软件服务20均被配置用于图4所示的示例软件接口,因此调温计网络连接设备的制造方和特定软件服务20的开发人员均可以对如何操纵调温计网络连接设备的SETPOINTTEMP值具有共同的理解。此外,以这种方式,如果那些其他网络连接设备正在植入如图14所示的软件接口14,则实现软件接口的软件服务20也将与其他网络连接设备兼容,其他网络连接设备可以采取其他形式或由其他制造方创建。

返回图1,每个网络连接设备18可以被配置为实现一个或多个软件接口14。云平台12被配置为从网络连接设备18接收诸如由网络连接设备18实现的一个或多个软件接口14的列表44的指示。在一个示例中,一个或多个软件接口14包括由云平台12管理的一个或多个平台软件接口15和/或由制造方和开发人员创建的一个或多个自定义软件接口16。平台软件接口15可以包括例如针对设备信息、应用程序管理、认证管理、诊断日志、出厂重置功能、重启管理等的软件接口14。然而,应理解,开发人员和制造方可以创建和管理可以由软件服务20和网络连接设备18实现的它们自己的自定义软件接口16。

在从网络连接设备18接收软件接口的列表44之后,云平台12可以被配置为基于由网络连接设备18实现的一个或多个软件接口14与由多个软件服务20操作的一个或多个软件接口14之间的匹配来选择一个或多个软件服务20。在图1所示的示例中,网络连接设备18A被配置为实现多个软件接口14中的软件接口A和软件接口B。在从网络连接设备18A接收软件接口44的列表44之后,在该特定示例中,软件接口44包括软件接口A和软件接口B,云平台12被配置为将软件接口的接收列表44与云平台12已知的软件服务20进行比较。具体地,云平台12可以被配置为基于从网络连接设备18A接收到的软件接口44的列表44来过滤多个云服务20。在所示示例中,软件服务20A被配置为在软件接口A上操作,并且软件服务20B被配置为在软件接口B上操作。因此,云平台12可以被配置为选择软件服务20A和20B来处理数据并操作网络连接设备18A。

在一个示例中,软件服务20由云平台12的一个或多个服务器设备来执行,并且云平台12被配置为根据一个或多个软件接口14的显式交互合约,使用所选择的软件服务20来处理从网络连接设备18接收到的数据。作为一个特定示例,从网络连接设备18接收并发送到网络连接设备18的消息36可以包括软件接口标签58,软件接口标签58指示消息中的数据36与之相关联或以其他方式符合的特定软件接口14。作为特定示例,调温计网络连接设备可以被配置为利用指示图4的示例软件接口14的软件接口标签58来标记包括温度数据的测量值的每个消息36。

在接收到消息36之后,云平台12可以被配置为将消息36路由到为该消息36的软件接口标签58中指示的软件接口14配置的选定软件服务20。以此方式,消息36可以被路由到适当的软件服务20并且由适当的软件服务20处理。由软件服务20发送的消息36,诸如例如软件命令50,也可以利用适当的软件接口标签58来标记,并且通过WAM而被发送到网络连接设备18。

在另一示例中,云平台12可以被配置为标识边缘计算设备60,边缘计算设备60可以被配置为执行由云平台12管理的一个或多个软件服务20,并且相对于云平台12,在逻辑上位于WAN中与网络连接设备18相同的一侧。如图1所示,在标识边缘计算设备60之后,云平台12可以被配置为向边缘计算设备60发送所选择的软件服务20中的一个或多个,边缘计算设备60可以被配置为执行那些软件服务20。云平台12可以将网络连接设备18配置为将由所选择的软件服务20处理的消息路由到边缘计算设备60。附加地,从云平台12到网络连接设备18的命令和消息也可以借助边缘计算设备60来路由。在该示例中,来自云平台12的流量可以由边缘计算设备60处理,边缘计算设备60可以向网络连接设备18发送进一步的命令和/或消息。边缘计算设备60可以被配置为利用如本文所述的所选择的软件服务20来处理消息36,并且执行所选择的软件服务20的功能和过程。以此方式,所选择的一个或多个软件服务20由边缘计算设备60来执行,边缘计算设备60与被配置为存储一个或多个软件服务20的云平台12分离。在图1所示的示例中,软件服务20B已被发送到边缘计算设备60。因此,示例网络连接设备18A可以被指示将与软件接口B相关联的消息36路由到边缘计算设备60。另一方面,与软件接口A相关联的消息36可以被路由到云平台12,云平台12被配置为执行软件服务20A,软件服务20A被配置为在软件接口A上操作。

在一个示例中,云平台12还被配置为基于软件服务62的排名因子62来将一个或多个软件服务20匹配到网络连接设备18。例如,如果多于一个软件服务20在由网络连接设备18实现的一个或多个软件接口14上操作,则云平台12可以被配置为基于排名因子62,从多于一个软件服务20中选择优选的软件服务。如上所述,优选的软件服务20随后可以被用于处理来自网络连接设备18的数据。在一个示例中,排名因子62可以包括受欢迎度指标、用户得分指标、关联因子和匹配得分。受欢迎度指标可以跟踪与在类似软件接口上操作的其他类似软件服务20相比,该特定软件服务20被选择的频率。用户得分指标可以跟踪每个软件服务的得分(诸如,1-10的得分)的用户输入。关联因子可以跟踪软件服务20的开发人员是否与网络连接设备的制造方相关联,使得由相同或相关联方创建的软件服务和网络连接设备可以被一起选择。匹配得分可以指示软件服务20的软件接口14与网络连接设备的软件接口匹配的紧密程度。

在图1所示的示例中,尽管软件服务20A和软件服务20D均在由网络连接设备18A实现的软件接口A上操作,但是软件服务20D也在由网络连接设备18A实现的软件接口B上操作。因此,基于匹配得分因子的排名因子62,云平台12可以被配置为选择软件服务20D来与网络连接设备18A匹配。

在这些示例中,云平台12已被描述为自动选择软件服务20并将其匹配到网络连接设备18。在另一示例中,云平台12可以进一步被配置为向网络连接设备18的用户呈现与网络连接设备18匹配的选定软件服务20的列表。作为特定示例,用户可以经由计算设备(诸如例如,图2中所示的用户计算设备26)来访问云平台12上的用户账户。用户可以借助他们在云平台12上的用户帐户来控制他们选择的、用于操作他们的网络连接设备的软件服务20。在该示例中,所选择的软件服务20的列表可以经由云平台12的接口而被呈现给用户,显示在用户计算设备26的显示器上。所选择的软件服务20的列表可以基于软件服务62的排名因子来进行排名。用户然后可以从列表中选择一个或多个软件服务20。如本文所述,用户选择的软件服务20然后可以被用于处理数据并操作网络连接设备18。

在一个示例中,多个软件接口14和多个软件服务20是可扩展的。例如,用户可以选择软件接口14,并且向所选择的软件接口14添加附加的语义描述和/或附加的交互合约。在扩展所选择的软件接口之后,经扩展的软件接口可以被上传到云平台12。

类似地,软件服务20是可扩展的。用户可以选择云平台12上存储的一个或多个软件服务20,并且向所选择的软件服务添加附加代码。经扩展的软件服务20然后可以被上传到云平台12,并且被用于处理来自该用户的网络连接设备18的数据。以这种方式,用户可以通过扩展那些现有软件接口14和软件服务20,利用云平台12上可用的现有软件接口14和软件服务20来生成他们自己的软件解决方案,从而满足他们的特定需求。

作为另一示例,图4的软件接口可以被应用于图2中所示的调温计28、壁炉温度计30和体温计32网络连接设备。然而,虽然所有三个网络连接设备均测量温度的物理属性,但是针对每个网络连接设备的预期温度范围可能不同。例如,调温计网络连接设备28可以期望在华氏60-80度之间的温度范围,壁炉温度计网络连接设备30可以期望在华氏400-800度之间的温度范围,而体温计网络连接设备32可以期望华氏温度97-100度之间的范围。因此,用户可以扩展图4的示例软件接口来语义地描述由特定网络连接设备测量的温度。例如,针对调温计网络连接设备28的软件接口可以被扩展为将其测量值语义地描述为“室温”,而针对体温计网络连接设备的软件接口可以被扩展为将其测量值语义地描述为“体温”。此外,用户可以扩展图4的示例软件接口来将附加数据和功能添加到软件接口。例如,用户可以将操作范围添加到温度值,诸如针对壁炉温度计网络连接设备30的华氏400-800度。操作范围可以控制网络连接设备将被配置来检测的温度范围。一旦图4的示例软件接口利用操作范围功能进行了扩展,则云平台12上的软件服务20可以被配置为将命令发送到网络连接设备,以根据经扩展的软件接口来设置和管理其操作范围。

图5图示了示例的经扩展的软件接口64。在该示例中,用户已选择了图4中图示的示例软件接口14,并且已向软件接口14添加了新的遥测功能66。如图所示,经扩展的软件接口64包括具有语义描述的遥测功能,语义描述标识了所测量的物理值是以双倍数据类型提供的“GPS”值。经扩展的软件接口64然后可以由用户上传到云平台12。用户可以进一步选择云平台12上存储的软件服务,并且向所选择的软件服务添加附加代码来适当地处理用户的经扩展的软件接口64。在另一示例中,对软件接口14的扩展可以与原始软件接口分开创作和存储。在图5所示的具体示例中,不是将新的遥测功能66添加到原始软件接口14的代码,而是新的遥测功能66可以与原始接口分开创作和存储,并且与新遥测功能66是对云平台12上存储的原始软件接口的扩展的指示一起上传到云平台12。

图6是在包括一个或多个处理器的计算机系统上实现的方法600的流程图。方法600可以使用上述系统或利用其他合适的硬件和软件元件来执行。

在602处,方法600可以包括在包括一个或多个处理器的计算机系统处,存储多个软件接口,多个软件接口定义在网络连接设备与软件服务之间的显式交互合约。在一个示例中,多个软件接口和多个软件服务是可扩展的。作为特定示例,软件接口14的语义描述可以使用JSON-LD来描述。JSON-LD被设计为可以直接用作JSON,也可以在资源描述框架(RDF)系统中使用,资源描述框架(RDF)系统提供了以分布式、可扩展的方式来描述资源的标准。扩展软件接口的具体示例在图5中图示。

在一个示例中,每个软件接口包括对多个软件服务可访问的网络连接设备的一个或多个功能和描述性特性的语义描述。软件接口14的语义描述提供了网络连接设备18的一个或多个功能和描述性特性的语义类型注释,使得分析、机器学习、用户接口和其他计算可以推断从网络连接设备18接收到的数据的语义。

在该示例中,语义描述可以包括从由网络连接设备型号、网络连接设备序列号和网络连接设备类型组成的组中选择的网络连接设备属性。网络连接设备型号可以是由该网络连接设备18的制造方设置的型号或标识。网络连接设备序列号可以是由该网络连接设备18的制造方设置的序列号。网络连接设备类型可以是网络连接设备的语义描述,例如,“调温计”、“资产跟踪器”等。

在另一示例中,语义描述可以包括可以由网络连接设备生成的经定义的一个或多个事件。在该示例中,一个或多个事件选自包括以下的组:由网络连接设备测量的物理属性、设备状态事件、设备警报事件、和设备错误事件。由网络连接设备18测量的物理属性的语义描述可以描述被测量的物理属性以及属性的数据类型。例如,针对温度计网络连接设备18的语义描述可以指示被测量的物理属性是温度,并且由调温计网络连接设备18发送的值是双倍数据类型。

在另一示例中,语义描述包括由网络连接设备实现的一个或多个软件命令。语义描述可以描述软件服务20可以指示网络连接设备18执行的功能和操作。例如,语义描述可以描述可用命令的功能名称、描述命令将要执行的操作的开发人员注释、命令执行的类型(诸如同步或异步)、用于命令输入的数据类型和用于命令输出的数据类型。

在604处,方法600可以包括在计算机系统处执行多个软件服务,每个软件服务定义由该软件服务操作的一个或多个软件接口。软件服务可以由第一方或第三方开发,并被上传到计算机系统。每个软件服务指定软件服务被配置为与之交互的一个或多个软件接口。

在606处,方法600可以包括:在网络连接设备处,发送由网络连接设备实现的一个或多个软件接口的指示,诸如列表。列表指示制造网络连接设备要遵循的每个软件接口。这些软件接口可以从多个平台软件接口和/或自定义软件接口中选择。

在608处,方法600可以包括在计算机系统处,接收由网络连接设备实现的一个或多个软件接口的列表。

在610处,方法600可以包括在计算机系统处,基于由网络连接设备实现的一个或多个软件接口与由多个软件服务上操作的一个或多个软件接口之间的匹配来选择一个或多个软件服务。例如,如果多于一个软件服务20在由网络连接设备18实现的一个或多个软件接口14上操作,则步骤610可以进一步包括基于排名因子62,从多于一个软件服务20中选择优选的软件服务。在一个示例中,排名因子62可以包括受欢迎度指标、用户得分指标、关联因子和匹配得分。

在612处,方法600可以包括在网络连接设备18处向计算机系统发送数据。所发送的数据可以包括各种事件,诸如例如,所测量的物理属性、设备状态事件、设备错误或警报事件等。所测量的物理属性可以例如包括由网络连接设备的传感器测量的传感器数据。所发送的消息可以进一步包括软件接口标签58,软件接口标签58指示消息36中的数据与之相关或在以其他方式符合的特定软件接口。

在614处,方法600可以包括:在网络连接设备18处,根据一个或多个软件接口的显式交互合约,使用所选择的软件服务来处理从网络连接设备接收到的数据。在一个示例中,如图1所示,所选择的一个或多个软件服务可以由与被配置为存储一个或多个软件服务的计算机系统的云平台分离的计算机系统的边缘计算设备来执行。

在616处,方法600可以包括在计算机系统10处,根据一个或多个软件接口的显式交互合约来向网络连接设备发送命令。由计算机系统执行的软件服务可以发送到网络连接设备的命令在所实现的一个或多个软件接口中定义。一个或多个软件接口可以进一步定义命令的自变量、命令的返回值等。在一个或多个软件服务在边缘计算设备上执行的示例中,命令可以从边缘计算设备发送到相关联的网络连接设备。应当理解,步骤614和616可以被执行任何合适的次数并且以任何顺序来执行。

在618处,方法600可以包括在网络连接设备18处,从计算机系统10接收命令。网络连接设备18然后可以处理并实施命令,并且将一个或多个值返回到计算机系统10(如果适用)。

在一些实施例中,本文描述的方法和过程可以与一个或多个计算设备的计算系统联系。特别地,这样的方法和过程可以被实现为计算机应用程序或服务、应用程序编程接口(API)、库和/或其他计算机程序产品。

图7示意性地示出了可以实施上述方法和过程中的一个或多个的计算系统700的非限制性实施例。计算系统700以简化形式被示出。计算系统700可以体现为计算机系统10、网络连接设备18、边缘计算设备60、客户端计算设备26以及以上描述且在图1和图2中示出的其他计算设备。计算系统700可以采取以下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备,诸如工业设备(例如,工业设施、机器人等)和消费设备(例如,汽车、咖啡机、家电等)以及可穿戴计算设备,诸如智能手表和头戴式增强现实设备。

计算系统700包括逻辑处理器702、易失性存储器704和非易失性存储设备706。计算系统700可以可选地包括显示子系统708、输入子系统710、通信子系统712和/或图7中未示出的其他组件。

逻辑处理器702包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。这样的指令可以被实现为执行任务、实现数据类型、变换一个或多个组件的状态、达到技术效果或以其他方式达到期望的结果。

逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器702的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的各个组件可以可选地分布在两个或更多个单独设备中,两个或更多个单独设备可以位于远程和/或被配置用于协调处理。逻辑处理器的各方面可以由在云计算配置中配置的可远程访问联网计算设备虚拟化并执行。在这样的情况下,将理解,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。

非易失性存储设备706包括一个或多个物理设备,一个或多个物理设备被配置为保存可由逻辑处理器执行来实现本文描述的方法和过程的指令。当这样的方法和过程被实现时,非易失性存储设备706的状态可以被变换为例如保存不同的数据。

非易失性存储设备706可以包括可移动和/或内置的物理设备。非易失性存储设备706可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光光盘等)、半导体存储器(例如,ROM、EPROM、EEPROM、FLASH存储器等)和/或磁存储器(例如,硬盘驱动装置、软盘驱动装置、磁带驱动装置、MRAM等)或其他大容量存储设备技术。非易失性存储设备706可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址的设备。将理解,即使非易失性存储设备706被配置即使在非易失性存储设备706的电源被切断时,也保存指令。

易失性存储器704可以包括具有随机存取存储器的物理设备。易失性存储器704通常被逻辑处理器702用来在软件指令的处理期间临时存储信息。将理解,当易失性存储器704的电源被切断时,易失性存储器704通常不继续存储指令。

逻辑处理器702、易失性存储器704和非易失性存储设备706的各方面可以被一起集成在一个或多个硬件逻辑组件中。这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序和专用集成电路(PASIC/ASIC)、程序和专用标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。

术语“模块”、“程序”和“引擎”可以被用于描述计算系统700的一个方面,计算系统700通常由处理器以软件来实现,以使用易失性存储器的各部分来执行特定功能,该功能涉及可转换的专门将处理器配置为执行功能的处理。因此,模块、程序或引擎可以使用易失性存储器704的各部分,经由执行由非易失性存储设备706保存的指令的逻辑处理器702来实例化。将理解,不同的模块、程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、功能等实例化。同样,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、功能等实例化。术语“模块”、“程序”和“引擎”可以涵盖可执行文件、数据文件、库、驱动、脚本、数据库记录等的个体或组。

当被包括时,显示子系统708可以被用于呈现由非易失性存储设备706保存的数据的视觉表示。视觉表示可以采取图形用户界面(GUI)的形式。当本文描述的方法和过程改变了非易失性存储设备所保存的数据,并且因此变换了非易失性存储设备的状态时,显示子系统708的状态同样可以被变换为可视地表示基础数据中的变化。显示子系统708可以包括实际上利用任何类型的技术的一个或多个显示设备。这样的显示设备可以在共享的外壳中与逻辑处理器702、易失性存储器704和/或非易失性存储设备706组合,或者这样的显示设备可以是外围显示设备。

当被包括时,输入子系统710可以包括诸如键盘、鼠标、触摸屏或游戏控制器的一个或多个用户输入设备或与之对接。在一些实施例中,输入子系统可以包括所选择的自然用户输入(NUI)组件或与之交互。这样的组件可以是集成的或外围的,并且输入动作的转导和/或处理可以在板上或板外进行处理。示例NUI组件可以包括用于语音和/或声音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件;和/或任何其他合适的传感器。

当被包括时,通信子系统712可以被配置为将本文描述的各种计算设备彼此通信地耦合以及与其他设备通信地耦合。通信子系统712可以包括与一个或多个不同的通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置用于经由无线电话网络或者诸如Wi-Fi上的HDMI的有线或无线局域网或广域网进行通信。在一些实施例中,通信子系统可以允许计算系统700经由诸如互联网的网络而向其他设备发送消息和/或从其他设备接收消息。

以下段落为主题申请的权利要求提供了附加支持。一个方面提供了计算机系统,计算机系统包括一个或多个处理器,一个或多个处理器被配置为:存储多个软件接口,多个软件接口定义在网络连接设备和软件服务之间的显式交互合约;执行多个软件服务,每个软件服务定义由该软件服务操作的一个或多个软件接口;从网络连接设备接收对由网络连接设备实现的一个或多个软件接口的指示;基于由网络连接设备实现的一个或多个软件接口与由多个软件服务操作的一个或多个软件接口之间的匹配来选择一个或多个软件服务;以及根据一个或多个软件服务的显式交互合约,使用所选择的软件服务来处理从网络连接设备接收到的数据或者向网络连接设备发送命令。在该方面中,附加地或备选地,每个软件接口可以包括对多个软件服务可访问的网络连接设备的一个或多个功能和描述性特性的语义描述。在该方面,附加地或备选地,语义描述可以包括网络连接设备的网络连接设备属性。在该方面,附加地或备选地,网络连接设备属性可以选自包括以下的组:网络连接设备型号、网络连接设备序列号、网络连接设备制造方、网络连接设备操作系统、网络连接设备存储器属性、网络连接设备类型、读写属性。在该方面,附加地或备选地,语义描述可以包括可以由网络连接设备生成的所定义的一个或多个事件。在该方面,附加地或备选地,一个或多个事件可以选自包括以下的组:由网络连接设备测量的物理属性、设备状态事件、设备警报事件、和设备错误事件。在该方面,附加地或备选地,语义描述可以包括由网络连接设备实现的一个或多个软件命令。在该方面,附加地或备选地,多个软件接口和多个软件服务可以是可扩展的。在该方面,附加地或备选地,如果多于一个软件服务在由网络连接设备实现的一个或多个软件接口上操作,则一个或多个处理器可以被配置为基于排名因子,从多于一个软件服务中选择优选的软件服务。在该方面,附加地或备选地,排名因子可以选自包括以下的组:受欢迎度指标、用户得分指标、关联因子、和匹配得分。在该方面,附加地或备选地,为了选择一个或多个软件服务,一个或多个处理器可以被配置为基于由网络连接设备实现的一个或多个软件接口的指示来向用户呈现软件服务的列表,并且从软件服务的列表中接收用户对一个或多个软件服务的选择。在该方面,附加地或备选地,所选择的一个或多个软件服务可以由与被配置为存储一个或多个软件服务的云平台分离的边缘计算设备来执行。

另一方面提供了方法,方法包括:在包括一个或多个处理器的计算机系统处,存储多个软件接口,多个软件接口定义在网络连接设备和软件服务之间的显式交互合约;执行多个软件服务,每个软件服务定义由该软件服务操作的一个或多个软件接口;从网络连接设备接收对由网络连接设备实现的一个或多个软件接口的指示;基于由网络连接设备实现的一个或多个软件接口与由多个软件服务操作的一个或多个软件接口之间的匹配来选择一个或多个软件服务;以及根据一个或多个软件服务的显式交互合约,使用所选择的软件服务来处理从网络连接设备接收到的数据或者向网络连接设备发送命令。在该方面中,附加地或备选地,每个软件接口可以包括对多个软件服务可访问的网络连接设备的一个或多个功能和描述性特性的语义描述。在该方面,附加地或备选地,语义描述可以包括可以由网络连接设备生成的所定义的一个或多个事件。在该方面,附加地或备选地,一个或多个事件可以选自包括以下的组:由网络连接设备测量的物理属性、设备状态事件、设备警报事件、和设备错误事件。在该方面,附加地或备选地,语义描述可以包括由网络连接设备实现的一个或多个软件命令。在该方面,附加地或备选地,多个软件接口和多个软件服务可以是可扩展的。在该方面,附加地或备选地,所选择的一个或多个软件服务可以由与被配置为存储一个或多个软件服务的计算机系统的云平台分离的计算机系统的边缘计算设备来执行。

另一方面提供了计算机系统,计算机系统包括一个或多个处理器,处理器被配置为:存储多个软件接口,多个软件接口定义与网络连接设备和软件服务相关联的软件程序之间的显式交互合约;存储多个软件服务,每个软件服务定义由该软件服务操作的一个或多个软件接口;从与网络连接设备相关联的软件程序接收由该软件程序实现的一个或多个软件接口的指示,其中软件程序被配置为控制相关联的网络连接设备;基于与网络连接设备相关联的软件程序实现的一个或多个软件接口与多个软件服务所操作的一个或多个软件接口之间的匹配,选择一个或多个软件服务;以及根据一个或多个软件接口的显式交互合约,使用所选择的软件服务来处理从与网络连接设备相关联的软件程序接收到的数据或者向与网络连接设备相关联的软件程序发送命令。

将理解,本文描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不应被认为是限制性的,因为可以存在多种变型。本文描述的特定例程或方法可以表示任何数量的处理策略中的一个或多个。这样,所图示和/或所描述的各种动作可以以所图示和/或所描述的顺序、以其他顺序、并行地来执行或者被省略。同样,上述过程的顺序可以被改变。

本公开的主题包括本文所公开的各种过程、系统和配置以及其他特征、功能、动作和/或属性的所有新颖的和非显而易见的组合和子组合及其所有等效项。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号