使用已定义的数据定义的数据处理的制作方法

文档序号:18745709发布日期:2019-09-21 02:19阅读:263来源:国知局
使用已定义的数据定义的数据处理的制作方法

本申请要求2016年10月7日提交的Yamada的题为“在无线通信中使用已定义的数据定义的数据处理(Data Processing Using Defined Data Definitions In Wireless Communications)”的美国临时专利申请No.62/405,361的优先权益,该申请的全部公开内容通过引用并入本文。

技术领域

本公开一般地涉及数据处理,更具体地,本公开涉及在诸如蓝牙低功耗通信的无线通信系统中和/或任何其它无线和/或有线通信中使用数据定义的数据交换和/或处理。



背景技术:

现代电信系统服务大量设备,其中包括无线电话、智能电话、平板计算机、个人计算机、个人数字助理、和/或其它设备。通常,这些设备通过各种网络彼此通信,这些网络可以包括基站、无线接入点、服务器等。为了彼此通信,设备通常发送和/或接收包含信息的数据分组,例如,电子邮件、超文本传输协议(“HTTP”)数据、消息等。数据分组包括控制信息和用户数据,即,有效载荷。控制信息提供用于传送有效载荷的数据(例如,源和目的地网络地址、错误检测码、排序信息等)并且可以在分组的头部和尾部中找到。

数据分组的有效载荷可用于将数据和/或指令传送到设备。在某些情况下,单个数据分组的有效载荷可能不适合所有希望被发送的信息/数据,因此需要发送更多的数据分组。在其它情况下,数据分组的有效载荷可以容纳大量信息/数据。接收设备可能难以提取有效载荷中包含的数据,从而延迟其中包含的数据的实现和/或使用。因此,需要一种方法来为接收和/或发送设备提供生成数据分组的有效载荷并且以高效且节约成本的方式从所接收的数据分组的有效载荷中提取数据的能力。



技术实现要素:

在一些实现中,当前主题涉及一种计算机实现的用于提供多个设备之间的通信的方法。所述方法可以包括在第一设备与第二设备之间建立通信链路;在第一设备与第二设备之间交换至少一个或多个数据分组,其中,当从第二设备接收至少一个或多个数据分组时,第一设备使用至少一个第一数据定义从至少一个或多个数据分组的一个或多个有效载荷中提取数据;以及当从第一设备接收至少一个或多个数据分组时,第二设备使用至少一个第二数据定义从至少一个或多个数据分组的一个或多个有效载荷中提取数据。所述建立和所述交换中的至少一个可以使用至少一个计算系统的至少一个处理器来执行。

在一些实现中,当前主题可以包括一个或多个以下可选的特征。被发送到第一设备的一个或多个数据分组的有效载荷可以根据至少一个第一数据定义来生成。被发送到第二设备的一个或多个数据分组的有效载荷可以根据至少一个第二数据定义来生成。至少一个第一数据定义可以与第一数据定义标识符相关联。第一设备可被配置为使用第一数据定义标识符来请求至少一个第一数据定义。至少一个第二数据定义可以与第二数据定义标识符相关联。第二设备可被配置为使用第二数据定义标识符来请求至少一个第二数据定义。

第一设备可以是配对设备,第二设备可以是通信设备。在一些实现中,所述设备可以是计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继和/或中间设备(例如,数据分组被配置为通过的设备)、端点设备、无线和/或有线扬声器、无线和/或有线接收机和/或收发机、基站(例如,宏基站、微基站、毫微微基站、微微基站等)、路由器、调制解调器和/或任何其它类型的设备、和/或其中的任何组合。

在一些实现中,基于由第二设备将第一数据(包括其类型、位置等)包括在数据分组的有效载荷中,第一数据定义可以指定由第一设备接收的数据分组的有效载荷中的第一数据(包括其类型、位置等)。基于由第一设备将第二数据(包括其类型、位置等)包括在数据分组的有效载荷中,第二数据定义可以指定由第二设备接收的数据分组的有效载荷中的第二数据(包括其类型、位置等)。

在一些实现中,服务器可以通信地耦接到第一设备和第二设备中的至少一个。服务器可以生成第一数据定义和第二数据定义中的至少一个。服务器可以向第一设备和第二设备中的至少一个提供第一数据定义和第二数据定义中的至少一个。

在一些实现中,在第一设备与第二设备之间交换数据可以依赖于第一设备使用第一数据定义和第二设备使用第二数据定义。可替代地,在第一设备与第二设备之间交换数据可以依赖于第一数据定义依赖于第二数据定义和/或第二数据定义依赖于第一数据定义。

在一些实现中,多个第一设备可以通信地耦接到多个第二设备,其中,多个第一设备中的每个第一设备使用多个第一数据定义中自己的第一数据定义,多个第二设备中的每个第二设备使用多个第二数据定义中自己的第二数据定义。

在一些实现中,所述方法还可以包括:由第一设备接收与至少一个第一数据定义对应的第一数据定义标识符;以及由第二设备接收与至少一个第二数据定义对应的第二数据定义标识符。此外,所述方法还可以包括:使用第一设备,使用对应所接收的第一数据定义标识符来验证至少一个第一数据定义。在验证了至少一个第一数据定义时,当从第二设备接收至少一个或多个数据分组时,所述方法可以执行从至少一个或多个数据分组的一个或多个有效载荷中提取数据。在未能验证至少一个第一数据定义时,当从第二设备接收至少一个或多个数据分组时,所述方法可以阻止从至少一个或多个数据分组的一个或多个有效载荷中提取数据。此外,所述方法可以包括:使用第二设备,使用对应所接收的第二数据定义标识符来验证至少一个第二数据定义。在验证了至少一个第二数据定义时,当从第一设备接收至少一个或多个数据分组时,所述方法可以执行从至少一个或多个数据分组的一个或多个有效载荷中提取数据。在未能验证至少一个第二数据定义时,当从第一设备接收至少一个或多个数据分组时,所述方法可以阻止从至少一个或多个数据分组的一个或多个有效载荷中提取数据。

在一些实现中,所述方法还可以包括使用对应所接收的第一数据定义标识符来验证至少一个第一数据定义。在验证了至少一个第一数据定义时,所述方法可以使用至少一个第一数据定义来生成至少一个或多个数据分组的一个或多个有效载荷。在未能验证至少一个第一数据定义时,所述方法可以阻止使用至少一个第一数据定义来生成一个或多个有效载荷。所述方法还可以包括使用对应所接收的第二数据定义标识符来验证至少一个第二数据定义。在验证了至少一个第二数据定义时,所述方法可以使用至少一个第二数据定义来生成至少一个或多个数据分组的一个或多个有效载荷。在未能验证至少一个第二数据定义时,所述方法可以阻止使用至少一个第二数据定义来生成一个或多个有效载荷。

还描述了存储指令的非暂时性计算机程序产品(即,物理实现的计算机程序产品),所述指令在由一个或多个计算系统的一个或多个数据处理器执行时使至少一个数据处理器执行本文中的操作。类似地,还描述了包括一个或多个处理器以及耦合到一个或多个处理器的存储器的计算机系统。存储器可以暂时性地或永久性地存储指令,所述指令使至少一个处理器执行在本文中描述的一个或多个操作。此外,所述方法可以由单个计算系统内或者分布在两个或更多个计算系统之间的一个或多个数据处理器来实现。这样的计算系统可被连接并且可以经由包括但不限于通过网络(例如,因特网、无线广域网、局域网、广域网、有线网络等)的连接的一个或多个连接,经由多个计算系统中的一个或多个之间的直接连接等交换数据和/或命令或其它指令等。

下面的附图和描述中阐述了本文描述的主题的一个或多个变形的细节。根据具体实施方式和附图以及权利要求,本文描述的主题的其它特征和优点将显而易见。

附图说明

包含在本说明书中并构成其中一部分的附图示出了本文公开的主题的某些方面,并且与说明书一起帮助解释与所公开的实现相关联的一些原理。在图中:

图1示出根据当前主题的一些实现的示例性通信系统;

图2示出根据当前主题的一些实现的示例性通信系统;

图3示出根据当前主题的一些实现的示例性通信系统;

图4a示出根据当前主题的一些实现的图1-3中所示的设备的数据定义文件的示例性组成部分;

图4b示出根据当前主题的一些实现的图1-3中所示的设备的数据定义文件的示例性组成部分;

图5示出根据当前主题的一些实现的用于生成数据定义文件的示例性开发环境;

图6示出根据当前主题的一些实现的使用图5中所示的系统生成数据定义文件的示例性过程;

图7a示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程;

图7b示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程,包括交换数据定义文件和/或数据定义文件标识符;

图8a示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程;

图8b示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程;

图9a示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程;

图9b示出根据当前主题的一些实现的用于两个设备之间的通信的示例性过程;

图10示出根据当前主题的一些实现的用于单个通信设备与多个配对设备之间的通信的示例性系统;

图11示出根据当前主题的一些实现的用于基于特殊用户特定的共享密钥(USSK)的通信设备与配对设备之间的通信的示例性系统;

图12示出根据当前主题的一些实现的数据分组的有效载荷中的示例性数据映射;

图13示出根据当前主题的一些实现的由通信设备的处理器从数据分组的有效载荷中进行的示例性数据解包(unpacking)/提取;

图14示出根据当前主题的一些实现的从通信设备到配对设备的示例性数据传输;

图15示出根据当前主题的一些实现的可以使用网关(或任何其它类似设备)来提供设备之间的通信的示例性系统;

图16示出根据当前主题的一些实现的示例性系统;

图17示出根据当前主题的一些实现的示例性方法。

具体实施方式

为了解决当前可用方案的缺陷,当前主题的一个或多个实现提供了在诸如蓝牙低功耗通信的无线通信系统中使用数据定义的数据交换和处理。

在一些实现中,当前主题涉及可以使用一个或多个数据定义结构来解释从无线通信设备接收的数据分组或数据有效载荷的无线通信系统。在一些示例性的非限制性实现中,通信系统可以包括以下中的至少一个:蓝牙低功耗(“BLE”)通信系统、Wi-Fi系统、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、虚拟网络、虚拟局域网(“VLAN”)、因特网、内联网、外联网和/或任何其它无线和/或有线网络和/或系统和/或其中的任何组合。当前主题系统可以使用一个或多个数据定义结构来处理和/或解释具有任何类型、大小、长度等并且可以来自和/或去往通信系统中的任何类型的设备的一个或多个数据分组/有效载荷的内容。尺寸、长度等可以是固定的和/或可变的。在一些实现中,数据定义结构可用于解释与特定软件应用有关的数据分组/有效载荷的内容,但可以独立于通信系统中其上驻留/运行有软件应用的特定设备。这可以允许在通信系统中的多个设备之间重新使用数据定义结构,而不必为通信系统中的每个设备或者添加到通信系统中的新设备生成单独的数据定义结构。在一些实现中,可以在操作中动态地编辑、选择和/或使用数据定义结构。在本申请中,除非特别指出,否则术语“数据分组”、“多个数据分组”和“一个或多个数据分组”可互换地使用以表示一个或多个数据分组;类似地,术语“有效载荷”、“多个有效载荷”和“一个或多个有效载荷”可互换地使用以表示一个或多个有效载荷(无论是在一个数据分组中和/或在多个数据分组中)。

在一些实现中,数据定义结构可以由特定软件应用的开发器生成,并且可被发送到通信系统中接收与软件应用有关的数据分组/有效载荷的设备。一旦设备接收到数据定义结构,其就可被用于解包与软件应用有关的数据分组并解释包含在数据分组中的信息。一旦被解释,包含在数据分组/有效载荷中的信息和/或数据就可被转发以进行进一步处理。

图1示出了根据当前主题的一些实现的示例性通信系统100。系统100可以包括设备1 102、设备2 104、服务器106和数据定义接口108。仅作为非限制性说明,系统100可以是蓝牙低功耗(“BLE”)通信系统。可以使用其它类型的通信,其中包括但不限于无线通信、有线通信和/或两者。设备102可以通信地耦接到设备104。设备102可以是配对设备,例如,传感器、个人计算机、移动电话、智能电话、膝上型计算机、智能电话、平板计算机、和/或任何其它类型的设备。

设备104可以是通信设备,例如,个人计算机、移动电话、智能电话、膝上型计算机、智能电话、平板计算机、和/或任何其它类型的设备。设备104可以使用任何有线和/或无线通信系统通信地耦接到服务器106。

在一些替代实现中,一个或多个设备102和/或104可以是任何计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继设备或中间设备(例如,数据分组被配置为通过的设备)、端点设备、无线和/或有线扬声器、无线和/或有线接收机和/或收发机、基站(例如,宏基站、微基站、毫微微基站、微微基站等)、路由器、调制解调器、和/或任何其它类型的设备、和/或其中的任何组合。以下描述将涉及可互换的“计算设备”和/或“设备”,所有这些都包含任何和/或所有上述设备。

服务器106还可以使用任何有线和/或无线通信系统通信地耦接到数据定义接口108。数据定义接口可被布置在可包括可用于生成数据定义结构的用户接口(例如,浏览器)的计算设备上。设备102、104和服务器106分别可以包括至少一个处理器、至少一个耦合到处理器的存储器,其中,处理器可以执行下面描述的各种功能(例如,基于数据定义文件提取数据,生成数据定义文件,使设备发送数据分组、数据定义文件等)。

在非限制性说明性示例中,为了便于描述,通信设备104可以是智能电话,配对设备102可以是温度传感器。可以理解,设备102、104不限于这些示例,可以使用其它类型的设备。设备可以经由任何无线连接、有线连接、和/或任何其它类型的连接通信地耦接。传感器102可以获得温度、湿度、日期、时间等,根据可以提供给传感器102的数据定义结构来解包(即,提取有效载荷中包含的信息)所获得的信息,解释/处理所获得的信息,并经由BLE将已处理的信息提供给智能电话104。智能电话104可以执行其自己对所接收的数据的提取/解释/处理。

如图1所示,设备102可以包括数据定义、数据定义文件或结构1(下文中称为“DDF1”)103、通信模块105(例如,BLE通信模块、和/或任何其它通信模块)以及传感模块107(例如,传感器)。在一些实现中,模块107可以是任何设备或设备网络/系统(电子、电、机电、机械、光学等、和/或其中的任何组合),例如,电视机、收音机、娱乐系统、扬声器、个人计算机、膝上型计算机、服务器、网关、智能电话、无线电话、平板计算机、接收机、发射机、收发机、车辆、门锁、安全门禁点(例如,机场安检门、公共交通旋转门等)、和/或任何其它设备、和/或其中的任何组合。传感模块107可以耦合到外部设备(例如,传感器)和/或从这样的外部设备接收信号。通信模块105可以包括可用于与设备104通信的各种硬件、软件和/或硬件和软件的任何组合。DDF1 103可用于定义包含从传感器107接收的数据的数据分组的有效载荷的结构。在一些示例性实现中,DDF1 103可以由设备102的制造商预加载。在替代示例性实现中,可以使用数据定义服务器117经由数据定义接口108在服务器106处创建DDF1 103。DDF1 103也可以由服务器106存储在数据定义文件存储设备和/或数据库119中。DDF1 103可以在接收来自设备102、设备104和/或两者的请求时创建。在一些实现中,DDF1可以根据需要动态地生成并且由设备102、104和/或服务器106接收。

在一些实现中,设备2 104可以包括数据定义、数据定义文件2或结构(下文中称为“DDF2”)109、数据解释模块111、通信模块113(例如,BLE通信模块、和/或任何其它无线通信模块)、以及无线通信模块115。通信模块113可以包括各种硬件、软件和/或可用于与设备102通信的硬件和软件的任何组合。设备102和设备104可以使用BLE通信介质、无线通信、有线通信和/或任何其它类型的通信来通信地耦接。DDF2 109可用于解包包含从设备102接收的数据的数据分组的有效载荷。DDF2 109可以基于设备104与设备102通信的需要而专门为设备104而创建。在一些示例性实现中,DDF2 109可以由设备104的制造商预加载(例如,当已知设备104将要与哪些设备102通信时)。在替代示例性实现中,DDF2 109可以使用数据定义服务器117经由数据定义接口108在服务器106处创建。DDF2 109也可以由服务器106存储在数据定义文件存储设备和/或数据库119中。DDF2 109可以在接收来自设备104的请求时创建,其可以指示设备104将要与设备102通信。服务器的存储设备119可以存储有关将与特定设备104通信的各种设备102的信息,因此还可以存储适当的DDF2以便将它们提供给设备104。在一些实现中,与DDF1类似,DDF2根据需要动态地生成并且由设备102、104和/或服务器106接收。

在一些实现中,数据定义文件可以包含定义由相应的设备接收的数据分组的有效载荷的结构的信息,如下所述。作为非限制性示例,可用于从接收自温度传感器的数据分组的有效载荷中解释/提取信息的数据定义文件可以指示数据分组的有效载荷的前5位被指定用于温度,有效载荷的接下来的16位被指定用于压力等。数据定义文件也可以由设备(例如,配对设备)使用以从接收自其它设备(例如,通信设备)的数据分组的有效载荷中提取指令。作为非限制性示例,可用于从接收自温度传感器的数据分组的有效载荷中解释/提取信息的数据定义文件可以指示前10位是用于设置日期和时间的指令,接下来的10位是用于将温度传感器设备切换到测量模式等的指令。数据定义文件可以由设备的数据解释模块(例如,硬件、软件、和/或其中的任何组合)用于从接收自各种设备的数据分组的有效载荷中提取/解释信息。数据定义文件可以由设备本身、服务器、设备的制造商(预加载到设备上)、和/或任何其它实体生成。数据定义文件可以是通用的和/或与任何设备或设备类型无关,和/或可以专门针对特定设备、特定类型的设备、涉及各种设备的特定通信介质、和/或其中的任何组合而创建。数据定义文件可以由服务器、设备和/或两者存储,和/或按需提供。数据定义文件还可以根据需要进行更新。

当设备104从设备102接收数据分组时,其数据解释模块111可以使用DDF2 109来提取所接收的数据分组(例如,来自传感器107的原始数据)的有效载荷内容,其中DDF2 109可以匹配设备102的数据分组有效载荷特性。设备104的通信模块113可以经由通信链路110与设备102的通信模块105通信,以便在设备102与104之间接收和/或发送数据。这样,通信模块113可以接收来自设备102的数据分组,然后可以将所接收的数据分组转发到数据解释模块111以进行处理。数据解释模块111可以使用DDF2 109来解释和解包(即,提取有效载荷中包含的信息)所接收的数据分组,并设置包含在所接收的数据分组的有效载荷中的未解包的原始数据的格式。已设置格式的数据可以使用通信模块115从设备104发送到服务器106,以存储在服务器106处。服务器106可以使用同样存储在服务器106处的DDF2 109来解释从设备104接收的已设置格式的数据中包含的信息。

图2示出了根据当前主题的一些实现的示例性通信系统200。系统200可以与系统100类似,并且可以包括设备102、设备104、服务器106以及数据定义接口108。除了图1中所示的设备102的组件之外,系统200还可以包括数据解释模块211,其可用于执行与设备104的数据解释模块111类似的功能。在一些实现中,设备102和/或104可以包括一个或多个数据解释模块。设备102的数据解释模块211可以使用DDF1 103来解释和/或解包从设备104接收的信息。如上所述,DDF1 103可以预加载到设备102上和/或由服务器106(和/或任何其它组件)按需生成并提供给设备102,以用于解释/解包从设备104接收的数据。

图3示出了根据当前主题的一些实现的示例性通信系统300。系统300可以与系统100和200类似,并且可以包括设备102、设备104以及服务器106。与系统200(图2中所示)类似,设备102和104可以分别包括数据解释模块211、111。除了图1和2中所示的设备104的组件之外,设备104还可以包括超文本标记语言(“HTML”)表示层302。此外,服务器106可以包括基于HTML的表示层定义服务器304,其可以通信地耦接到基于HTML的表示和数据定义接口308。在一些实现中,上述HTML组件可以包括能够在设备104上表示为用户接口的HTML5和/或交互式HTML页面。HTML表示层302可以包括文本、按钮、图形、图像、视频、音频等的描述,其可以以HTML的格式进行表示。基于HTML的表示定义服务器304可以提供和/或发送(例如,按需)用于HTML表示层302的一个或多个HTML文件以在设备104上的用户接口上进行显示。HTML表示层302可以是Web浏览器,其可以在本地包括HTML数据和/或可以从基于HTML的表示定义服务器304接收HTML数据(而不是在HTML表示层302的本地存储HTML数据)以用于显示。基于HTML的表示定义服务器304可以是Web服务器。基于HTML的表示和数据定义接口308可以是能够用于构建HTML数据的接口,其中HTML数据可以存储在基于HTML的表示定义服务器304中并且根据需要发送到HTML表示层302。可替代地,基于HTML的表示和数据定义接口308可用于构建可存储在HTML表示层302本地的HTML数据。

在一些实现中,基于HTML表示层302生成的用户接口可以提供用于在设备104上执行各种事务和/或操作的接口。例如,HTML表示层302可以显示数据同步图标或按钮,其可以启动设备102与104之间的通信。在该示例性实现中,如图4a-b所示,HTML表示层302可以与设备102的指令定义或数据定义交互以生成入站数据分组(即,发送到设备1 102的分组),包括其有效载荷,并且向设备102发送请求以使用数据定义文件103生成出站数据分组(即,发送到设备2 104的分组),包括其对应的有效载荷。一旦设备104接收到出站数据分组,数据定义文件109的分组数据定义和处理规则可被应用于提取/解包包含在出站数据分组的有效载荷中的数据。如果在通信中未检测到错误,则HTML表示层302可以执行从设备102接收的数据(如包含在出站数据分组的有效载荷中)的传输和显示。在一些实现中,设备104还可以作为服务器106(图3中未示出)的网关进行操作,并提供从设备102接收的数据以及执行其自己的操作,例如,以交互的方式向其用户提供通信等。可以理解,当前主题不限于使用上述基于HTML的组件来表示通过处理包含在数据分组中的数据而得到的信息。可以使用任何其它机制来触发对包含在数据分组中的数据的响应(例如,生成音频/视频信号,将设备切换到特定操作模式(例如,传感、激活锁定、撤防安全系统等)。可以使用任何接口来表示和/或操作已处理的信息。在一些实现中,HTML定义(和/或任何其它类型的定义)可以包含在数据分组中,由此,数据定义文件可以包括用于解包/提取包含在其中的信息的各种指令。

图4a分别示出了设备102、104的数据定义文件103和109的示例性组成部分。DDF1 103可以包括用于生成出站数据分组有效载荷424的数据定义411和处理规则415,以及用于处理入站数据分组有效载荷426的数据定义421和处理规则423。如图1所示,设备102可以获得数据403(例如,传感器输出、和/或由任何其它设备输出的任何其它数据)。数据403可以由设备102确定和/或可以由通信地耦接到设备102的外部设备提供。在示例性实现中,当设备102是传感器时,传感器数据403可以包括传感器测量、日期、时间、实时信息、位置信息、传感器状态信息等

在一些实现中,可以使用处理规则415来处理数据403以及数据定义411(例如,指示应如何解释/打包/解包数据403等的定义)以生成发送到设备104的出站数据分组。分组的传输可以经由任何无线和/或有线通信链路(例如,BLE、WiFi等)和/或其中的任何组合来进行。然后,设备104可以使用其DDF2 109从中解包/提取信息。上述定义和规则可以从服务器(图4a中未示出)和/或设备104接收和/或可以由设备102的制造商预加载。

一旦设备104接收到分组424,设备104可使用其数据定义429和处理规则431来从分组424中解包/提取数据以生成设备1输出437。数据定义429可以包括关于如何从分组424中提取数据的信息,并且可以特定于特定设备102。定义429和规则431可以从服务器(图4a中未示出)接收和/或可以由设备104生成和/或可以由设备104的制造商预加载。

在一些实现中,DDF2 109还可以包括数据定义433,其可用于生成将要发送到设备102的入站数据分组426的有效载荷。可以使用设备1输入数据439来生成入站数据分组有效载荷426。作为非限制性示例,数据439可以包括用于设置设备102上的时间/日期,将设备102切换到测量模式等的指令。可以使用无线、有线和/或任何其它类型的通信和/或其中的任何组合将数据分组426发送到设备102。一旦设备102接收到数据分组426,处理规则423以及数据定义421可被用于从数据分组426中解包/提取指令以生成输入数据409(例如,其可以是传感器输入和/或任何其它设备的任何其它输入)。

在一些实现中,如下面将进一步详细描述的,可以将可被创建和/或使用的每个数据定义文件与一个或多个唯一数据定义文件标识符(“DDF ID”)相关联。可以为特定数据定义文件规定数据定义文件标识符,并且可以在创建数据定义文件时为数据定义文件生成数据定义文件标识符和/或可以由设备102、104的制造商预加载数据定义文件标识符(和/或可以由可与设备102、104通信的外部设备提供数据定义文件标识符)。在一些实现中,DDF ID可以由设备使用(在对设备和/或与设备相关联的用户进行认证之后)以请求与DDF ID相关联的特定数据定义文件。DDF可以由接收DDF ID的设备进行验证,并且可以向请求设备提供适当的数据定义文件。在一些实现中,DDF ID还可用于选择和/或标识可用于创建数据定义文件和/或从数据分组有效载荷中解包/提取数据的数据定义和/或处理规则。

图4b可以是图4a的示例性变形,其分别示出了设备102、104的数据定义文件103和109的示例性组成部分。DDF1 103可以包括原始数据定义410、出站分组有效载荷定义412、数据编译定义414、处理规则416、数据属性定义418、入站分组有效载荷定义420,以及数据/指令转换定义422。如图1和4b所示,设备102可以获得原始数据402和数据属性406,在一些实现中,当设备102请求输入和/或传感器启动向设备102发送数据和属性时,可以预先确定原始数据402和数据属性406。在一些实现中,可以基于原始数据402和/或数据属性406来选择适当的数据定义文件。在一些实现中,传感器输出403(如图4a中所示)可以包括以下原始数据402和数据属性406中的至少一个。作为非限制性示例(并且为了便于理解),这些(即,原始数据:数据属性)可以包括:温度:测量时间;光度:测量时间和条件;门锁状态:门锁ID、型号、时间;门锁生物识别读数:门锁ID、型号、时间;和/或任何其它项。可以理解,其它类型的原始数据:数据属性组合是可能的。

在一些实现中,原始数据定义410可以包括关于原始数据报头、配置(例如,原始数据位长度,包括的原始数据的数量等)的各种数据和/或信息等。数据属性定义418可以包括关于原始数据402和数据属性406的组合中的数据属性的位置、数据属性位长度等的各种数据和/或信息。在一些实现中,可以彼此分开地和/或同时向设备1提供原始数据402和/或数据属性406。在一些实现中,如果需要,数据编译组件414可以组合所接收的原始数据和数据属性。

在一些实现中,数据编译组件414可以生成一个或多个指令(例如,函数调用、触发器等)以指示处理规则组件416,以用于生成出站数据分组有效载荷424。出站数据分组有效载荷424的内容和配置可以使用出站分组有效载荷定义412来规定。在一些实现中,数据编译组件414还可以收集/编译为了生成出站数据分组有效载荷424而需要处理的所有必需的信息、数据、属性、状态等。

在一些实现中,处理规则组件422可以通过基于由入站分组有效载荷定义组件420提供的数据和/或信息处理入站数据分组有效载荷426来生成指令408。作为非限制性示例,入站数据分组有效载荷可以包括与开始温度测量、开始测量大气压力、重置一个或多个传感器上的计时器等的时间和/或其中的任何组合有关的数据和/或信息。基于入站分组有效载荷定义420,处理规则组件416可以生成传感器可解释和/或执行的一个或多个指令(例如,代码)408。可替代地,处理规则组件422可以生成传感器可单独解释和/或执行的单独指令408。

在一些示例性的非限制性实现中,入站数据分组有效载荷426可以包括通过使用加密的生物识别认证授权码来解锁门的指令,其中加密的生物识别认证授权码指定了应与解锁门相匹配的用户的生物识别特征。处理规则组件422可以使用入站分组有效载荷定义420来解析数据和/或信息(例如,解锁门的指令、生物识别特征、用户的身份信息等)并且生成一个针对门锁的指令,其中,该指令包含从入站数据分组有效载荷426获得的解析数据和/或信息的组合。可替代地,可以单独向门锁提供单独的指令以进行解释和执行。在其它示例性实现中,入站数据分组有效载荷426可以包括汽车驾驶员标识符,以使得汽车在接收到指令408时可以执行座椅调整、仪表板显示、娱乐系统设置、空调、点火启动等。可以理解,以上是入站指令及其使用的非限制性的说明性示例。还应理解,当前主题不限于以上示例性实现。

原始数据402和/或数据属性406可以由设备102确定和/或可以由通信地耦接到设备102的外部设备提供。在示例性实现中,设备102是传感器,原始数据402可以是传感器原始数据,并且可以包括传感器测量、日期、时间等。数据属性406可以包括实时信息、位置信息、传感器状况信息等。

在一些实现中,原始数据402和数据属性406可以与原始数据定义410和数据属性定义418一起提供给数据编译414,其中原始数据定义410可以包括定义如何解释/打包/解包原始数据402等的信息,数据属性定义418可以包括定义如何解释/打包/解包数据属性406等的信息。数据编译414可以使用原始数据定义410和数据属性定义418来编译和/或组合来自原始数据402、数据属性406的信息。然后可以基于出站分组有效载荷定义412,使用一个或多个处理规则416进一步处理已编译的信息,以生成包含使用定义410、412、418和处理规则416形成的有效载荷的出站数据分组424。随后,向设备104发送出站数据分组424。分组的传输可以经由任何无线和/或有线通信链路(例如,BLE、WiFi等)和/或其中的任何组合来进行。然后,设备104可以使用其DDF2 109从中解包/提取信息。上述定义和规则可以从服务器(图4a中未示出)和/或设备104接收和/或可以由设备102的制造商预加载。在一些实现中,用于数据定义文件的数据定义文件标识符可以基于信息/数据/功能性/功能/等来规定,可以向设备1 102提供这些信息/数据/功能性/功能等和/或指示设备1 102执行它们。例如,数据属性406和/或入站数据分组有效载荷426可以包括适当的DDF ID,其可以标识设备1 102应使用的特定数据定义文件。设备1 102可以使用所提供的DDF ID来确认正确的数据定义文件被应用于它作为原始数据402/数据属性406和/或入站数据分组有效载荷426接收的输入。在一些实现(如下面将进一步讨论的)中,在DDF ID与设备已接收和/或已存储的DDF不匹配,或者设备没有所需的正确DDF或任何DDF的情况下,该设备可以向另一个或第二设备和/或服务器发送请求以请求正确的DDF。如果第二设备和服务器都没有正确的DDF,则可以动态地生成DDF(例如,基于可由设备提供和/或与需要解包的数据分组有效载荷相关联的参数)。第二设备还可以在传送第一设备的请求和/或发送必需的DDF时用作又一个(第三)设备和/或服务器的中介。在一些实现中,可以使用由设备1和2共享的共享密钥(如下所述)来提供关于应使用哪些数据定义文件的适当信息。可替代地,共享密钥可以包含DDF ID,其可以指定将被设备使用的特定数据定义文件。

一旦设备104接收到分组424,设备104可使用其分组数据定义428和处理规则430从分组424中解包/提取数据以生成设备数据1 436。数据定义428可以包含关于如何从所接收的分组424中提取数据的信息,并且可以特定于特定设备102。定义428和规则430可以从服务器(图4a中未示出)接收和/或可以由设备104生成和/或可以由设备104的制造商预加载。

在一些实现中,DDF2 109还可以包括设备1有效载荷定义432。具有设备1有效载荷定义432的处理规则434可用于生成将要发送到设备102的入站数据分组426的有效载荷。可以基于设备1指令438来准备入站数据分组有效载荷。作为非限制性示例,所述指令可以包括设置时间/日期(包括设备102上的新的时间/日期数据),将设备102切换到测量模式等的指令。可以使用无线、有线和/或任何其它类型的通信和/或其中的任何组合将数据分组426发送到设备102。一旦设备102接收到数据分组426,处理规则422以及入站有效载荷分组定义420可被用于从数据分组426中解包/提取指令以生成指令408。

与上文类似,标识将被设备2 104使用的特定DDF2的数据定义文件标识符可被提供给设备2 104。例如,出站数据分组有效载荷424(可以通过多个数据分组发送)可以包括适当的DDF2ID,以确保设备2 104正确处理所接收的出站数据分组有效载荷424。在多个数据分组发送一个数据有效载荷的情况下,DDF标识符可以包括在一个或多个或所有数据分组中,其中,DDF标识符可以在有效载荷中引用所有数据分组以确保适当的数据定义被应用于所有分组。在一些实现中,为了确保设备接收到适当的DDF ID,设备1指令438可以同时包括用于设备1和设备2的DDF标识符。一旦被设备2接收到,用于设备2的DDF2标识符可被保留在设备2中,用于设备1的DDF1标识符可被包括在入站数据分组有效载荷426中(其也可以通过多个数据分组发送,从而可以将DDF1ID包含在一个或多个或所有数据分组中和/或引用传输中的所有分组)。

在一些实现中,如果在一个或多个设备上发现不正确的DDF ID(例如,DDF ID与DDF不匹配)(和/或如果与DDF不匹配的DDF ID被提供给一个或多个设备),则设备可以彼此通信和/或与服务器(图4b中未示出)通信以请求适当的DDF。例如,如果设备1已经接收到与DDF不匹配的DDF ID,则设备1可以与设备2通信,设备2又可以向服务器和/或能够与设备1和/或设备2通信地耦接的任何其它实体请求适当的DDF ID和/或DDF(可替代地,设备1可以直接与服务器/实体通信)。在一些实现中,设备1和/或设备2可以存储和/或可被提供(根据请求提供和/或自动提供和/或由制造商提供)用于两个设备的数据定义文件(即,DDF1和DDF2)和/或或用于两个数据定义文件的数据定义文件标识符(即,DDF1 ID和DDF2ID)。这样,一个设备可以向另一个设备请求适当的DDF和/或DDF ID,而不涉及服务器和/或另一个实体。在一些实现中,DDF ID(和/或DDF)可以包括在可由设备1和2共享的共享密钥(如下所述)中和/或由这些共享密钥引用,由此,DDF ID(和/或DDF)可以与共享密钥一起提供和/或随后共享共享密钥。在一些实现中,DDF和/或DDF ID可以由一个或多个设备和/或服务器/实体(通信地耦接到一个或多个设备)进行更新。在确定对DDF和/或DDF ID进行更新时,已经接收到更新的DDF和/或DDF ID的设备/服务器/实体可以向其它设备/服务器/实体发送适当的通知,以确保系统中的所有组件具有最新信息。

图5示出了根据当前主题的一些实现的用于生成数据定义文件的示例性开发环境500。环境500可以在设计上面讨论的通信系统(例如,分别在图1至3中示出的系统100、200、300)时实现。环境500可以包括设备1开发环境502、设备2开发环境504、以及通信地耦接到接口108的服务器106。环境502可以包括DDF1 503(具有对应的DDF1ID)、DDF1开发模块507、以及通信模块505。通信模块505可以从外部设备(例如,图5中所示的传感器设备)接收数据。模块505和507可以包括硬件、软件和/或其中的任何组合。模块507可用于基于从服务器106接收的信息来生成DDF1 503。

环境504可以包括DDF2 509(具有对应的DDF2ID)、DDF2开发模块506、通信模块513、以及无线通信模块515。通信模块507可以从通信模块505接收数据。无线通信模块514可以通信地耦接到服务器106。服务器106可以包括服务器数据库517,其可以存储数据定义文件、有关设备102、104的信息和/或可用于生成数据定义文件的任何其它信息。模块506和513可以包括硬件、软件和/或其中的任何组合。模块506可用于基于从服务器106接收的信息来生成DDF2 509。在一些实现中,服务器106还可以存储和/或被提供DDF1ID和DDF2ID以及对应的DDF1和DDF2。

在一些实现中,可以使用以下设备102、设备104、服务器106中的至少一个(例如,使用接口108、数据库517等)和/或使用任何其它设备(例如,它们可以预加载到一个或多个设备上)来生成DDF1和/或DDF2(以及对应的DDF ID)。DDF1和/或DDF2(以及对应的DDF ID)可被发送到和/或安装在相应的设备102、104和/或这两个设备上。可以使用具有接收和/或发送能力的开发模块506和/或507来实现此目的。另外,模块506、507还都可以检测数据定义和/或处理规则中的错误,以及生成和发送指示这种错误的报告。可以通过验证和/或测试过程来纠正错误,如下面关于图6所讨论的。

图6示出了根据当前主题的一些实现的使用图5中所示的系统500生成数据定义文件的示例性过程600。过程600可以在设计通信系统(例如,分别在图1至3中示出的系统100、200、300)时实现。过程600可以经由如图5中所示的诸如接口108的浏览器接口和诸如服务器106的服务器(例如,云服务器)来启动。开发人员可以启动和/或创建和/或设置用于开发数据定义文件的开发帐户。在602处,可以针对传感器501(和/或可以包含在设备1中和/或可以通信地耦接到设备1的任何其它设备)与通信模块505之间的通信而规定通信数据结构/接口。也可以规定通信模块513与设备2之间的数据结构/接口。在一些实现中,505和513中的通信模块可以包括用于执行低级功能(例如那些规定的蓝牙规范)的内置功能,包括广播通告分组,发送反向连接请求等。在一些情况下,可以使用规定分组有效载荷结构的预设通信简档(例如,预设的BLE简档)。这些简档通常是固定的,不能进行更改以确保互操作性。作为非限制性示例,如果血压监控器使用标准BLE简档,则智能电话应用只需要知道将使用哪个BLE标准简档来从血压监控器接收数据。虽然这种简档被设计为涵盖血压监控器将发送的所有信息,但在许多情况下,只有这种BLE简档是不够的。当前主题提供了使用这种标准BLE简档的方案。具体地,它通过在实时环境中简化编码、编译/集成代码、验证和测试来提供设计和构建数据有效载荷结构的能力。当前主题的另一个优点是它以更简单、更快速和更便宜的方式实现连接性功能开发。

在604处,可以启动/设置数据定义模块507和506,其中可以包括创建适当的开发软件应用和/或将适当的开发软件应用从服务器106提供给相应的开发环境502和504。此外,可以生成DDF ID和/或将其分配给DDF/将其与DDF相关联(或相反操作),并且DDF ID可用于跟踪对DDF的更改/修订。可以使用接口108来创建这样的开发软件应用,接口108可以将这些软件应用分别发送到设备1和2的开发环境502和504。另外,还可以生成数据定义文件503和509,并且可以将数据定义文件503和509分别发送到设备1和2的开发环境504、506。一旦将数据定义文件发送到开发环境,开发过程600可以分别在设备1和2中进行。

在设备1开发环境中,在606处,可以建立设备1的开发环境。这可以涉及选择通信模块505(例如,BLE通信模块)和适当的开发板。在608处,可以建立传感器设备501(和/或可以包含在设备1中和/或可以通信地耦接到设备1的任何其它设备)与通信模块505之间的连接。在610处,可以使用通信模块505下载设备1的数据定义文件(即,DDF1)。可以从服务器106下载DDF1。在替代的示例性实施例中,可以从设备2下载DDF1。

在设备2开发环境中,在612处,可以建立设备2的开发环境。这可以涉及选择通信设备(例如,智能电话、平板计算机、智能扬声器、本文公开的任何其它设备等)。在614处,可以启动/设置数据定义文件2开发模块506。这可以涉及从服务器106下载开发软件应用。在616处,可以使用通信模块515下载设备2的数据定义文件(即,DDF2)。可以从服务器106下载DDF2并将其安装在设备2上,可以在不使用通信模块515的情况下完成此操作。在一些实现中,需要认证(例如,登录)才能下载DDF1和/或DDF2和/或相应的开发软件应用。这可以防止对DDF1和DDF2进行未经授权的访问和使用。在替代的示例性实施例中,DDF1可以从服务器106和/或从设备1下载到设备2,以便跟踪哪个DDF1与哪个DDF2一起使用。

一旦将DDF1和DDF2下载到设备1和/或设备2,开发过程600可以继续到在618-624处的验证和测试。在618处,可以在设备1和2的开发模块507与开发模块506之间建立通信。可以分别使用设备1、2的通信模块505和513(例如,BLE通信模块和/或任何其它无线和/或有线模块)来建立该通信。在620处,可以在开发环境模块506与服务器106之间建立通信。可以使用通信模块515(例如,无线和/或有线通信模块)来完成此操作。在622处,一旦建立了适当的开发模块与服务器之间的通信链路,就可以执行数据传输和指令内容的验证。另外,可以运行各种场景的测试以确保通信的完整性和/或稳健性。测试可以涉及确保设备能够使用适当的DDF正确打包数据和/或从数据分组中正确解包/提取数据。一旦测试成功完成,在624处,设备1和2可以在运行时(即,在生产系统中)使用DDF1和DDF2。在一些实现中,可以在一个设备和/或计算系统(例如,分布式计算系统、云等)上模拟过程600。设备和/或计算系统可以与设备1和2以及/或者通信地耦接到设备1和2的服务器分离。在这种情况下,DDF1和DDF2可以由这样的设备/或计算系统生成和/或测试,然后被提供给设备1和/或2和/或服务器。此外,还可以生成与DDF相关联的DDF ID和/或将与DDF相关联的DDF ID提供给设备。

图7a示出了根据当前主题的一些实现的用于两个设备之间的通信的示例性过程700。过程700可以包括设备1(例如,配对设备)102、设备2(例如,通信设备)104与服务器106之间的通信。在该过程中,设备102可以已经预加载数据定义文件1 103,设备104可以是希望与设备102通信的新设备。如图7a的顶部所示,设备104(和/或其用户)可以请求服务器106向其提供数据定义文件2 109。这可以在设备104向服务器106提供适当的凭据(例如,在设备104的用户登录接口上将凭据输入到存储在服务器106上的用户帐户和/或自动提供任何这样的凭据(例如,无需人工输入登录凭据))时完成。在验证凭据时,服务器106可以将DDF2 109发送到设备104。可替代地,不需要凭据也可以从服务器接收DDF2 109。另外,如上所述,DDF2 109可以预加载到设备104上。在一些实现中,DDF1和/或DDF2可以被专门设计为由设备1和2使用以从接收自彼此的一个或多个数据分组的有效载荷中提取数据(例如,在多个数据分组/有效载荷中接收数据的情况)。可替代地,DDF1和/或DDF2可以是通用的。一旦设备2接收到DDF2,就可在设备1与设备2之间建立通信链路(例如,BLE通信链路、无线通信链路、有线通信链路和/或任何其它类型的链路),如图7a的底部所示。在一些实现中,例如,在BLE通信环境中,设备102可被配置为广播通告数据分组,其可以包括关于所需DDF2的信息。基于所广播的通告数据分组中包含的信息,设备104可以向服务器106请求DDF2。在一些情况下,一旦建立了设备102与104之间的连接,也可以由数据分组提供关于DDF2的信息。通告分组广播的示例性实现在2016年1月11日提交的Yamada的题为“使用共享密钥的选择性无线设备配对(Selective Pairing of Wireless Devices Using Share Keys)”的共同拥有、共同未决的美国专利申请No.14/992,642中进行了讨论,该申请要求2015年7月21日提交的美国临时专利申请No.62/194,939的优先权益,这些申请的全部公开内容通过引用并入本文。可以理解,系统700和由系统700执行的过程可以在任何通信环境中实现,其可以包括任何类型的设备,其中包括但不限于任何计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继和/或中间设备(例如,数据分组被配置为通过的设备)、端点设备、无线和/或有线扬声器、无线和/或有线接收机和/或收发机、基站(例如,宏基站、微基站、毫微微基站、微微基站等)、路由器、调制解调器、和/或任何其它类型的设备、和/或其中的任何组合。

在一些实现中,设备1和/或2和/或服务器106可以包括和/或被提供一个或两个或其它数据定义文件。设备/服务器可以向其它设备提供这样的DDF(例如,根据请求)。例如,如图7b中所示,设备1可以向设备2请求DDF1(例如,由于DDF1未被提供、生成、变得损坏等原因,设备1可能没有DDF1),类似地,设备2可以向设备1请求DDF 2。设备1和/或2和/或服务器可以使用适当的DDF ID来确定已经向它们提供了正确的数据定义文件。DDF ID可被预先提供给每个设备/服务器和/或可以向其它设备/服务器请求,如图7b中所示。此外,虽然本申请中的讨论示出了一个设备向另一个设备请求数据定义文件(例如,设备1向设备2请求DDF1,设备2又向服务器106请求DDF1,例如,如图8a中所示),但应当理解,当前主题系统中的一个或所有设备可以生成/存储和/或可以被提供和/或可以请求用于系统中的其它设备的数据定义文件和/或数据定义文件标识符。

图8a示出了根据当前主题的一些实现的用于两个设备之间的通信的示例性过程800。过程800(与过程700类似)可以包括设备1(例如,配对设备)102、设备2(例如,通信设备)104与服务器106之间的通信。在该过程中,设备102和104可以是希望彼此通信的新设备。如图8a的顶部所示,设备104(和/或其用户)可以请求服务器106向其提供DDF1 103和DDF2 109。这可以在设备104向服务器106提供适当的凭据(例如,在设备104的用户登录接口上将凭据输入到存储在服务器106上的用户帐户)时完成。在验证凭据时,服务器106可以将DDF1 103、DDF2 109发送到设备104。可替代地,不需要凭据也可以从服务器接收DDF2 109。

一旦设备104接收到DDF1和DDF2,设备104可以发起与设备102的通信(例如,通过空中接口和/或以任何其它方式)并将DDF1 103发送到设备102,如图8a的中间部分所示。一旦设备102接收到DDF1 103,设备104可以使用DDF2 109发起与设备102的通信,如图8a的底部所示。可以理解,系统800和由系统800执行的过程可以在任何通信环境中实现,其可以包括任何类型的设备,其中包括但不限于任何计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继和/或中间设备(例如,数据分组被配置为通过的设备)、端点设备、无线和/或有线扬声器、无线和/或有线接收机和/或收发机、基站(例如,宏基站、微基站、毫微微基站、微微基站等)、路由器、调制解调器、和/或任何其它类型的设备、和/或其中的任何组合。

图8b示出了根据当前主题的一些实现的用于两个设备之间的通信的示例性过程810。可以结合本文描述的任何过程来执行过程810。它可用于基于可以由设备发送的特定数据定义标识符来交换/接收数据定义文件。如图8b中所示,设备1 102可以通信地耦接到设备2 104,设备2 104可以通信地耦接到服务器106。可以理解,设备1 102可以仅直接耦合到服务器106和/或设备104。如图8b中所示,服务器106可以包括数据定义文件1 103和2 109的副本。设备1 102可以向设备2 104发送请求以获得数据定义文件1 103的副本。在请求中,设备1可以发送数据定义文件1标识符(DDF1ID)。在接收到请求和DDF1ID时,设备2 104可以将请求和DDF1ID一起发送到服务器106以获得DDF1 103的副本。然后,服务器106可以将DDF1 103发送到设备2 104,设备2 104又将其发送到设备1 102。设备1 102可以使用DDF1ID来验证接收到正确的DDF1。可替代地,设备2 104可以存储DDF1的副本,设备1 102可以直接向设备2请求它(即,无需进一步发送到服务器106)。在又一个替代实现中,设备1 102可以直接将对DDF1的请求发送到服务器106。类似地,设备2 104可以向设备1 102和/或服务器106发送请求以获得数据定义文件(例如,DDF1和/或DDF2)的副本。该请求可以包括适当的数据定义文件标识符。此外,设备可以发送数据定义文件的每个其它副本,当接收到数据定义文件时,接收设备可以使用数据定义文件标识符来验证接收到正确的数据定义文件副本。上述过程可以作为向服务器认证设备和/或彼此认证的一部分来执行和/或在此操作之前和/或在此操作之后执行。

图9a示出了根据当前主题的一些实现的用于两个设备之间的通信的示例性过程900。过程900(与上述过程700、800、810类似)可以包括设备1(例如,配对设备)102、设备2(例如,通信设备)104与服务器106之间的通信。在该过程中,设备102可以包括用户特定的共享密钥(“USSK”)和/或全局共享密钥(“GSK”)902以及DDF1 103和/或适当的DDF ID(例如,DDF1ID和/或DDF2ID)。在一些实现中,USSK/GSK 902可以包括DDF1ID和/或可以单独提供DDF1ID。在一些实现中,图9a所示的一个或多个组件可以是通信网络的组件(例如,网关、服务器、其它计算设备等),并且可以向网络进行注册(例如,包括在可以存储关于网络组件的信息(例如,地址等)的网络数据库组件中)。USSK/GSK在2016年1月11日提交的Yamada的题为“使用共享密钥的选择性无线设备配对(Selective Pairing of Wireless Devices Using Share Keys)”的共同拥有、共同未决的美国专利申请No.14/992,642中进行了讨论,该申请要求2015年7月21日提交的美国临时专利申请No.62/194,939的优先权益,这些申请的全部公开内容通过引用并入本文。使用USSK 902(或GSK)可以进一步确保两个设备之间通信的安全性。在该过程中,服务器106可以存储USSK 902(或GSK)并且可以在从设备104接收到适当的请求时向设备104提供USSK 902(例如,设备104的用户登录到存储在服务器106上的用户帐户和/或设备104可以在无需用户输入的情况下自动/人工将其信息/凭据提供给服务器106和/或使用任何其它机制)。可替代地,服务器106不需要存储USSK 902,其中,USSK 902可以仅由设备102、104共享。如上所述,DDF ID也可以由设备102、104向彼此提供而不涉及服务器106。

一旦设备104接收到USSK 902,设备104和设备102能够和/或被配置为发起和/或建立通信(例如,BLE通信、无线和/或有线通信连接等)。然后,设备104可以向设备102发送USSK 902。可替代地,可以在建立任何通信之前发送USSK。在从设备104接收USSK 902时,设备102可以中断其隐身模式并且可以开始向设备104发送DDF2 109要求信息/数据。在从设备102接收到这样的信息之后,设备104可以向服务器106发送向其提供DDF2 109的请求,如图9a的中间部分所示。

在从设备104接收到对DDF2 109的请求之后,服务器106可以向设备104发送DDF2 109。一旦设备104接收到DDF2 109,它就可以与设备102进行通信,并且DDF1/DDF2可用于从数据分组的有效载荷中解包/提取数据,如图9a的底部所示。适当的DDF ID可用于请求DDF和/或验证已接收和/或已发送正确版本的DDF。

在一些替代实现中,如果由使用设备104的用户提供的凭据证实需要提供USSK 902和DDF2 109两者,则服务器可以同时提供USSK 902和DDF2 109两者。一旦设备102和104使用USSK 902建立了通信链路,设备102和104可以开始使用DDF1和DDF2交换数据和/或指令。

图9b示出了根据当前主题的一些实现的用于两个设备之间的通信的示例性过程910。过程910可用于其中使用多个服务器(例如,服务器106和906)的情况。过程910可以允许在服务器106与906之间传输USSK/GSK 902。传输可以是安全的并且可以在用户提供有效的标识和/或认证凭据时启动。

如图9b中的第一行所示,设备102可以包括USSK 902和DDF1 103,服务器2 906可以包括USSK和DDF2 109。USSK 902可用于设备102、104和/或服务器106、906的连接。DDF1 103和DDF2 109可以由设备102、104用于通信目的(根据上面的讨论)。如图9b中的第二行所示,服务器906可被授权(例如,通过用户提交适当的凭据和/或认证(例如,用户必须登录到用户的在线零售商帐户,和/或可以在无需用户输入的情况下提供凭据/认证信息)以将USSK 902和DDF2 109发送到服务器106。一旦USSK 902和DDF2 109被发送到服务器106,服务器106可以对被授权将USSK 902和DDF2 109从服务器906传输到服务器106的用户进行认证。用户可以针对用户设备104进行认证。设备104然后从服务器106接收USSK 902和DDF2 109,如图9b中的第三行所示。如图9b中的第四行所示,设备104然后可以广播具有USSK 902的通告分组,并且可以连接到设备102以使用DDF1和DDF2进行通信。与上面类似,可以使用适当的DDF ID向图9b中所示的任何服务器和/或设备请求DDF和/或验证已接收和/或已发送正确的DDF副本。此外,可以使用USSK(例如,DDF ID可以包括在USSK中)或者不使用USSK来发送DDF ID。可以在所有设备102、104和服务器106、906之间交换任何数据和/或指令。

图10示出了根据当前主题的一些实现的用于单个通信设备与多个配对设备之间的通信的示例性系统1000。系统1000可以包括多个设备1002(a、b、c、d)、单个通信设备104、以及服务器106,所有这些设备可以彼此通信地耦接。设备1002可以包括和/或被提供相应的数据定义文件1 1003(a、b、c、d)。可以使用单独的DDF1ID来标识每个DDF1 1003。可替代地,可以使用一个DDF1ID来标识每个DDF1 1003。一个或多个DDF1 1003可以由设备的制造商预加载和/或可以从服务器106和/或设备104发送到设备1002。DDF ID可用于请求和/或验证任何设备/服务器已发送和/或接收正确的DDF1 1003。为了提供设备1002与设备104之间的通信,通信设备104可以存储与各个设备1002(a、b、c、d)对应的DDF2(a、b、c、d)1009(a、b、c、d)。DDF2 1009可以预加载到设备104上和/或可以由服务器106根据设备104的请求来提供。

在一些实现中,设备104中的数据解释模块(图10中未示出)可以在检测到由设备104从特定设备1002接收的通告分组和/或数据分组时选择适当的DDF2 1009。可替代地,可以使用DDF2ID来选择适当的DDF2 1009。所选择的DDF2 1009可用于从该分组的有效载荷中解包/提取数据(例如,DDF2a 1009a可用于从接收自设备1002a的一个或多个数据分组的有效载荷中解包/提取数据等)。在一些实现中,可以使用一个DDF2 1009从接收自一个或多个或任何设备1002的数据分组的有效载荷中解包/提取数据。在一些实现中,设备1002(a、b、c、d)可具有不同的USSK。设备2可以发送可被存储在其中一个设备1中并且可规定设备2应与哪个设备1通信的USSK。设备2可以使用与USSK相关联的DDF2之一。

图11示出了根据当前主题的一些实现的用于基于特殊用户特定的共享密钥(USSK)的通信设备与配对设备之间的通信的示例性系统1100。系统1100可以包括设备1(例如,配对设备)102、设备2(例如,通信设备)104、以及服务器106。设备102可以包括多个DDF1 1103(a、b、c)以用于与设备104进行通信。当设备102用于不同目的和/或可以执行不同功能和/或不同通信时,这可能是有用的。在系统1100中,设备104可以基于设备102用于对设备104做出响应的特殊用户特定的共享密钥而使用特殊DDF2 1109(其可以从服务器106获得和/或可以预加载到设备104上)。例如,如果设备102对USSKa 1102做出响应,则DDF1a 1103a和DDF2a 1109可用于两个设备之间的通信。在一些示例性实现中,设备2可以使用一个或多个DDF2来从接收自设备102的数据分组的有效载荷中解包/提取数据,而不管已从设备102接收的数据分组的类型。

此外,服务器106可以存储一个或多个DDF2 1109,并且可以根据请求将它们提供给设备104。如图11中所示,DDF2d尚未被提供给设备104,因为设备104不使用它与设备102通信。

可替代地,DDF ID可用于请求、发送和/或验证已接收适当的DDF和/或已将适当的DDF发送到相应的设备。此外,作为USSK的替代和/或补充,DDF ID可以由适当的设备发送和/或检测以发送、接收和/或验证DDF。

图12示出了根据当前主题的一些实现的数据分组的有效载荷中的示例性数据映射。为了便于说明,图12讨论了与葡萄糖传感器的测量有关的数据的数据映射。可以理解,该当前主题可以适用于任何类型的设备102数据,并且不限于葡萄糖传感器。图12所示的数据映射过程与上面关于图4a-b讨论的过程类似。可以将包括葡萄糖仪读数数据、测量日期/时间数据等的传感器数据1202提供给设备102。数据编译模块1214可以使用该数据以及原始数据定义1210、数据属性定义1218来编译数据以使用出站分组有效载荷定义1212生成出站分组有效载荷。原始数据定义1210可以规定将如何在将原始数据映射到数据分组1250的有效载荷中之前解释该数据。出站分组有效载荷定义可以规定将如何在数据分组1250的有效载荷中映射该数据。例如,将从数据分组1250的有效载荷中的位57和105的位置1249、1252开始映射葡萄糖仪读数数据1213(如编译的),其中,每个位置可以有16位。数据属性定义1218可以规定将如何在将测量日期/时间数据1215(如编译的)映射到数据分组1250的有效载荷中之前解释原始数据。出站分组有效载荷定义可以规定将如何在数据分组1250的有效载荷中映射该数据。例如,将从数据分组1250的有效载荷中的位73和121的位置1251、1253开始映射日期/时间,其中,每个位置可以有32位。出站分组有效载荷定义可以规定有效载荷中将有多少组数据(例如,“N”,其中,N可以是大于或等于零的整数)。如图12中所示,有效载荷中有两组数据。

在一些示例性实现中,设备102的处理器可以使用处理规则1216以使用定义1210、1212、1218和已经提供的数据1202来生成将要发送到设备104(图12中未示出)的出站分组1250。分组1250可以包括各种标准组成部分1248(例如,8位的前导码、32位的访问地址、8位的报头、8位的分组长度标识)以及位于分组末尾的循环冗余校验(“CRC”)1254。这些标准组成部分可用于确保通过通信链路(例如,BLE通信链路、无线通信链路、有线通信链路和/或任何其它链路和/或其中的任何组合)从源(即,设备102)进行正确的发送并且在目的地(即,设备104)处正确接收数据分组。在一些实现中,由于使用了定义1210、1212和1218,所以数据分组1250的有效载荷(如包含在1249、1251、1252和1253中的)可以具有特定的固定大小,例如如图12中所示,有效载荷的大小是96位。在替代实现中,有效载荷的大小可以是可变的。

图13示出了根据当前主题的一些实现的由设备104的处理器从数据分组1250的有效载荷中对数据进行的示例性解包/提取。一旦分组1250(在图12中示出)到达设备104处,设备104的处理器可以使用DDF2 109来从其有效载荷中解包/提取数据。DDF2 109可以包括分组有效载荷定义1328。定义1328可以规定传感器数据被包含在有效载荷中与位57-72和105-120对应的位置中,并且规定日期/时间数据被包含在有效载荷中与位73-104和121-152对应的位置中。处理规则1330以及定义1328可用于从数据分组1250的有效载荷中提取数据并在设备104上呈现数据1336。数据可以采用设备104的用户期望的任何格式来表示和/或可以规定特殊格式(例如,如图13中所示)。数据1336可被发送到服务器(图13中未示出)以进行存储和/或管理数据。

图14示出了根据当前主题的一些实现的从设备104到设备102的示例性数据传输。在葡萄糖传感器的示例中,所发送的数据可以包括指示传感器开始测量、设置时钟等的指令。可以理解,被发送到设备102的数据不限于指令,而可以是任何其它数据。返回参考图14,设备104可以生成和/或获得指令1438(例如,重置传感器的指令)。指令1438可以在内部生成、由用户输入、由外部实体提供等。指令1438可以由服务器106(图14中未示出)发送。设备104的数据定义文件2 109可用于基于指令1438来准备数据分组1450以发送到设备102。

指令1438可被提供给处理规则1430,其与设备1有效载荷定义1432(例如,“传感器重置:0x0005”)一起可以将数据映射到入站分组1450。数据1450的有效载荷1451可以包括16位(从位57开始),可以包含上述指令(即“0x0005”)。其它标准组成部分(如图14中所示)可以包括在数据分组1450中,以确保数据分组1450被发送到正确的目的地,即,设备102。

一旦设备102接收到分组1450,数据定义文件1103可以用于解包/提取包含在数据分组1450的有效载荷中的数据,即,重置传感器的指令。设备102的处理器可以使用处理规则1416以及入站分组有效载荷定义1420来解包/提取所接收的数据分组的有效载荷中的数据。使用有效载荷定义1420,设备102的处理器可以确定所接收的数据/指令与重置传感器的指令(例如,“0x0005:传感器重置”)相对应。可以将提取的指令1408提供给传感器以进行适当的动作。

虽然图12-14示出了可以将一组或多组数据放置在单个数据分组的有效载荷中的情况,但在一些示例性实现中,可以将数据分成两个或更多个数据分组。例如,可通过这样的操作来确保不超过数据分组的有效载荷的预定大小。可替代地,这可以确保更有利的通信,因为较大的有效载荷数据分组需要更多的时间以进行发送/接收。将要包括在数据分组(无论是从设备102发送到设备104还是从设备104发送到设备102)的有效载荷中的特殊数据的总大小和/或特定大小可以基于各种因素预先确定,例如,正在发送的数据;设备102、104;用户偏好;开发人员偏好;通信链路的要求等。在此提供图12-14所示的有效载荷的总大小以及数据的特定部分的大小只是为了说明的目的,当前主题不限于所示的大小。

此外,虽然图12-14示出了处理规则,但是这样的处理规则是可选的,并且有效载荷可以仅基于定义而与数据打包在一起。此外,可以理解,由设备102发送的一个或多个数据分组的有效载荷中的数据可以在从设备102发送之前、在向设备104发送的期间、和/或在被设备104接收时进行修改、组合、分离、删除等。在一些实现中,有效载荷可以包括用于组合来自一个或多个数据分组的数据的指令。

在一些实现中,DDF可以在创建、发送和/或存储时被加密。这是出于安全的原因和/或为了保持DDF的内容的机密性。可以使用各种安全措施来保护DDF内容的完整性,例如,证书、校验和等。

在一些实现中,处理规则可以包括通信协议,例如,协议可以规定数据分组的类型和/或数据分组中可以按特定顺序交换的内容的类型。这可以增强设备1和2和/或任何其它设备之间的通信的安全性,因为DDF和/或DDF ID是按需交换的。可以实现其它类型的安全措施以保护设备1和2、服务器和/或任何其它设备之间的通信。

图15示出了根据当前主题的一些实现的可以使用网关(或任何其它类似设备)来提供设备之间的通信的示例性系统1500。系统1500可以包括通过网络(例如,云)1501通信地耦接的服务器1 1502和服务器2 1504(可替代地,可以使用一个服务器或多于两个的服务器)、网关设备1506、用户设备1508、以及一个或多个外部设备1510(a、b、c)。在一些实现中,系统1500的一个或多个或所有组件可以经由任何类型的有线和/或无线连接与彼此通信地耦接。在示例性实现中,网关设备1506可以使用以太网连接和/或无线连接和/或任何其它类型的连接与服务器1 1502通信地耦接;用户设备1508可以使用无线连接(例如,LTE、WiFi等)与服务器2 1504通信地耦接;网关设备1506和用户设备1508可以使用无线连接(例如,蓝牙连接)通信地耦接;外部设备1510可以使用无线连接(例如,蓝牙连接)通信地耦接到网关设备1506和/或用户设备1508中的一个或两者。在进一步的示例性非限制性的实现中,外部设备1510可以是以下中的一个或多个:传感器、门锁、标识标签、电视机、收音机、计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继设备、中间设备、端点设备、无线扬声器、有线扬声器、无线接收机、有线接收机、收发机、基站、路由器、调制解调器、和/或任何其它设备、和/或其中的任何组合。

在一些实现中,网关设备1506可用于在用户设备1508与外部设备1510之间提供通信。网关设备1506可用于为通信提供安全性,由此,可以根据上述一个或多个实现,使用适当的DDF和/或DDF ID来请求和/或验证从外部设备1510和/或用户设备1508接收和/或发送到外部设备1510和/或用户设备1508的数据。网关设备1506可以相对于外部设备1510而位于任何位置。在一些实现中,网关设备1506可用于保持与一个或多个外部设备1510的按需和/或连续的通信。服务器1502(和/或服务器1504)可以控制网关设备1506如何与外部设备1510交互,包括但不限于从外部设备1510收集数据,向外部设备1510提供执行各种任务的指令等。网关设备1506还可以独立地与服务器1502(和/或服务器1504)和/或一个或多个外部设备1510执行任务。网关设备1506可被配置为包括人机接口,以使得它可以接受命令和/或显示其状态等。例如,网关设备1506可以具有与用户设备1508的通信接口。此外,在一些非限制性的示例性实现中,一个或多个外部设备1510可以与上面讨论的配对设备类似,网关设备1506和用户设备1508可以与上面讨论的通信设备类似,其中,服务器1502/1504可以与同样在上面描述的服务器类似。在进一步的非限制性的示例性实现中,网关设备1506可以与通信设备类似,用户设备1508可以与上面讨论的配对设备类似,或者相反。根据上面讨论的一个或多个实现,网关设备1506、外部设备1510和/或用户设备1508可以请求(和/或可以被请求)接收和/或发送DDF和/或DDF ID。此外,网关设备1506可以相对于外部设备1510而位于任何位置。

在一些实现中,服务器2 1504可以生成、存储一个或多个共享密钥(如上所述)和/或将一个或多个共享密钥提供给网关设备1506和/或用户设备1508。共享密钥可用于建立网关设备1506、用户设备1508和/或一个或多个外部设备1510之间的通信。共享密钥的使用在2016年1月11日提交的Yamada的题为“使用共享密钥的选择性无线设备配对(Selective Pairing of Wireless Devices Using Share Keys)”的共同拥有、共同未决的美国专利申请No.14/992,642中进行了讨论,该申请要求2015年7月21日提交的美国临时专利申请No.62/194,939的优先权益,这些申请的全部公开内容通过引用并入本文。网关设备1506、用户设备1508和/或一个或多个外部设备1510的组合可用于访问控制、机器到机器数据收集、设备控制、定向通知/通告、息票支付、支付、支付许可/确认、数字签名/标记等目的。在一些实现中,数据、数据定义、数据定义文件标识符、共享密钥和/或任何其它数据可以同时和/或按需发送和/或按照预定顺序发送一个和/或可以进行加密。在一些实现中,外部设备1510可以生成私有加密密钥和/或公共加密密钥。公共加密密钥可以与网关设备1506和/或用户设备1508共享。当网关设备1506和/或用户设备1508与外部设备1510通信时,其传输可以通过外部设备1510生成并共享的公共加密密钥来进行加密。当外部设备1510加密其到网关设备1506和/或用户设备1508的传输时,可以使用它们各自的公共加密密钥,前提是网关设备1506和/或用户设备1508分别具有与外部设备150共享的公共加密密钥。

在访问控制的示例性实现中,用户设备1508可以请求服务器1504向其提供特定外部设备1510(例如,旅馆房间中的门)的访问权限。服务器1504可以验证用户设备1508是否被授权(例如,用户设备1508的用户提供适当的凭据以验证用户/用户设备的身份,和/或认证用户设备和/或用户设备上的软件)和/或接近外部设备1510。一旦认证完成,网关设备1506可用于协调用户设备1508和外部设备1510之间的访问(例如,通过向用户设备1508和外部设备1510两者提供允许用户设备1508访问外部设备1510的特殊共享密钥)。在替代的实现中,对于访问控制,可能不需要网关设备1506,因为访问控制可以由具有正确的共享密钥以及与适当DDF ID相关联的DDF的用户设备1508和/或外部设备1510来实现。服务器1504(和/或1502和/或组合服务器1502/1504)可以按需向用户设备1508和/或外部设备1510两者提供允许用户设备1508访问外部设备1510的特殊共享密钥。如果需要/被请求,服务器1504(和/或1502和/或组合服务器1502/1504)也可以提供DDF。此外,也可能不需要一个或多个服务器1502/1504,只要在另一个服务器与外部设备1510之间存在通信。

在一些实现中,网关设备1506可被配置为与大量外部设备1510(例如,数十、数百、数千、数百万等)进行通信,并且可以控制操作、设备与系统1500的其它组件的配对(如果需要)、从设备1510收集各种信息、和/或将该信息提供给服务器1502和/或1504。类似地,系统1500可用于位置跟踪(例如,跟踪大型仓库中的员工和/或物品的位置,在灾害发生后跟踪救援人员在恢复/救援工作中的位置)和/或跟踪外部设备1510的目的。

在一些实现中,为了启动和/或设置特定外部设备1510(例如,传感器),用户设备1508可以与外部设备1510通信并执行初始设置(例如,执行传感器功能诊断、帐户设置、位置注册,交换数据定义文件、数据定义文件标识符、共享密钥等)。用户设备1508可以与网关设备1506通信并执行初始设置(例如,执行传感器功能诊断、帐户设置,位置注册,交换数据定义文件、数据定义文件标识符、共享密钥等)。服务器1502和/或1504中的一个或多个可用于提供适当的连接信息(例如,DDF、DDF ID,共享密钥等)。用户设备1508可以访问一个或多个外部设备1510并且可以执行初始设置。然后,网关设备1506可以建立与一个或多个外部设备1510的连接,包括提供适当的连接信息(例如,DDF、DDF ID、共享密钥等)并在需要时完成配对和/或进行提供。然后,用户设备1508可以接收有关已经建立了网关设备1506与外部设备之间的连接的确认。一旦建立了网关设备1506与外部设备1510之间的连接,一个或多个服务器1502和/或1504可以发送指令以启动网关设备1506和一个或多个设备1510的操作(例如,打开温度传感器并且开始测量温度)。在一些实现中,新用户设备1508可以向服务器1502和/或1504之一请求和接收DDF、DDF ID、共享密钥等,以建立与外部设备的通信和/或执行设备功能诊断和/或维护(例如,这可以在新用户设备1508和/或其用户被认证之后执行)。在一些实现中,系统1500不限于图15中所示的配置。例如,可以存在多个网关设备1506、多个用户设备1508、多个服务器(和/或一个组合服务器)等。可以使用任何类型的系统1500的组件之间的通信/连接机制。

在一些实现中,当前主题可被配置为在系统1600中实现,如图16中所示。系统1600可以包括处理器1610、存储器1620、存储设备1630、以及输入/输出设备1640。组件1610、1620、1630和1640中的每一个可以使用系统总线1650互连。处理器1610可被配置为处理在系统1600内执行的指令。在一些实现中,处理器1610可以是单线程处理器。在替代的实现中,处理器1610可以是多线程处理器。处理器1610还可以被配置为处理存储在存储器1620中或存储设备1630上的指令,包括通过输入/输出设备1640接收或发送信息。存储器1620可以在系统1600内存储信息。在一些实现中,存储器1620可以是计算机可读介质。在替代的实现中,存储器1620可以是易失性存储器单元。在又一些实现中,存储器1620可以是非易失性存储器单元。存储设备1630能够为系统1600提供大容量存储。在一些实现中,存储设备1630可以是计算机可读介质。在替代的实现中,存储设备1630可以是软盘设备、硬盘设备、光盘设备、磁带设备、非易失性固态存储器或任何其它类型的存储设备。输入/输出设备1640可被配置为提供针对系统1600的输入/输出操作。在一些实现中,输入/输出设备1640可以包括键盘和/或点击设备。在替代的实现中,输入/输出设备1640可以包括用于显示图形用户接口的显示单元。

图17示出了根据当前主题的一些实现的用于在多个设备之间提供通信的示例性方法1700。在1702处,可以在第一设备(例如,配对设备102)与第二设备(例如,通信设备104)之间建立通信链路。在1704处,可以在第一设备与第二设备之间交换至少一个数据分组。当从第二设备接收数据分组时,第一设备可以使用第一数据定义(例如,DDF1 103)从数据分组的有效载荷中提取数据。当从第一设备接收数据分组时,第二设备可以使用第二数据定义(例如,DDF2 109)从数据分组的有效载荷中提取数据。

在一些实现中,当前主题可包括以下可选特征中的一个或多个。被发送到第一设备的一个或多个数据分组的有效载荷可以根据至少一个第一数据定义来生成。被发送到第二设备的一个或多个数据分组的有效载荷可以根据至少一个第二数据定义来生成。至少一个第一数据定义可以与第一数据定义标识符相关联。第一设备可被配置为使用第一数据定义标识符来请求至少一个第一数据定义。至少一个第二数据定义可以与第二数据定义标识符相关联。第二设备可被配置为使用第二数据定义标识符来请求至少一个第二数据定义。

第一设备可以是配对设备,第二设备可以是通信设备。在一些实现中,所述设备可以是计算设备、电话、无线电话、智能电话、平板计算机、个人计算机、膝上型计算机、服务器、网关、网络单元、设备网络、中继和/或中间设备(例如,数据分组被配置为通过的设备)、端点设备、无线和/或有线扬声器、无线和/或有线接收机和/或收发机、基站(例如,宏基站、微基站、毫微微基站、微微基站等)、路由器、调制解调器、和/或任何其它类型的设备、和/或其中的任何组合。

在一些实现中,基于由第二设备将第一数据(包括其类型、位置等)包括在数据分组的有效载荷中,第一数据定义可以指定由第一设备接收的数据分组的有效载荷中的第一数据(包括其类型、位置等)。基于由第一设备将第二数据(包括其类型、位置等)包括在数据分组的有效载荷中,第二数据定义可以指定由第二设备接收的数据分组的有效载荷中的第二数据(包括其类型、位置等)。

在一些实现中,服务器可以通信地耦接到第一设备和第二设备中的至少一个。服务器可以生成第一数据定义和第二数据定义中的至少一个。服务器可以向第一设备和第二设备中的至少一个提供第一数据定义和第二数据定义中的至少一个。

在一些实现中,在第一设备与第二设备之间交换数据可以依赖于第一设备使用第一数据定义和第二设备使用第二数据定义。可替代地,在第一设备与第二设备之间交换数据可以依赖于第一数据定义依赖于第二数据定义和/或第二数据定义依赖于第一数据定义。

在一些实现中,多个第一设备可以通信地耦接到多个第二设备,其中,多个第一设备中的每个第一设备可以使用多个第一数据定义中自己的第一数据定义,多个第二设备中的每个第二设备可以使用多个第二数据定义中自己的第二数据定义。

在一些实现中,所述方法还可以包括:由第一设备接收与至少一个第一数据定义对应的第一数据定义标识符;以及由第二设备接收与至少一个第二数据定义对应的第二数据定义标识符。此外,所述方法还可以包括:使用第一设备,使用对应所接收的第一数据定义标识符来验证至少一个第一数据定义。在验证了至少一个第一数据定义时,当从第二设备接收至少一个或多个数据分组时,所述方法可以执行从至少一个或多个数据分组的一个或多个有效载荷中提取数据。在未能验证至少一个第一数据定义时,当从第二设备接收至少一个或多个数据分组时,所述方法可以阻止从至少一个或多个数据分组的一个或多个有效载荷中提取数据。此外,所述方法还可以包括:使用第二设备,使用对应所接收的第二数据定义标识符来验证至少一个第二数据定义。在验证了至少一个第二数据定义时,当从第一设备接收至少一个或多个数据分组时,所述方法可以执行从至少一个或多个数据分组的一个或多个有效载荷中提取数据。在未能验证至少一个第二数据定义时,当从第一设备接收至少一个或多个数据分组时,所述方法可以阻止从至少一个或多个数据分组的一个或多个有效载荷中提取数据。

在一些实现中,所述方法还可以包括使用对应所接收的第一数据定义标识符来验证至少一个第一数据定义。在验证了至少一个第一数据定义时,所述方法可以使用至少一个第一数据定义来生成至少一个或多个数据分组的一个或多个有效载荷。在未能验证至少一个第一数据定义时,所述方法可以阻止使用至少一个第一数据定义来生成一个或多个有效载荷。所述方法还可以包括使用对应所接收的第二数据定义标识符来验证至少一个第二数据定义。在验证了至少一个第二数据定义时,所述方法可以使用至少一个第二数据定义来生成至少一个或多个数据分组的一个或多个有效载荷。在未能验证至少一个第二数据定义时,所述方法可以阻止使用至少一个第二数据定义来生成一个或多个有效载荷。

本文公开的系统和方法可以采用各种形式来实现,例如包括数据处理器,诸如还包括数据库、数字电子电路、固件、软件或它们的组合的计算机。此外,本公开的实现的上述特征和其它方面和原理可以在各种环境中实现。这样的环境和相关应用可被专门构造为根据所公开的实现来执行各种过程和操作,或者它们可以包括通过代码选择性地激活或重新配置以提供必需功能的通用计算机或计算平台。本文公开的过程非固有地与任何特定计算机、网络、架构、环境或其它装置相关,并且可以通过硬件、软件和/或固件的适当组合来实现。例如,各种通用机器可以与根据所公开的实现的教导编写的程序一起使用,或者可以更方便地构造专用装置或系统来执行所需的方法和技术。

本文公开的系统和方法可以实现为计算机程序产品,即有形地具体化在信息载体中的计算机程序,例如,具体化在机器可读存储设备或传播信号中,以用于由数据处理装置执行或控制数据处理装置的操作,数据处理装置例如是可编程处理器、计算机或多个计算机。计算机程序可以用任何形式的编程语言编写,包括编译或解译语言,并且可以采用任何形式部署,包括作为独立程序或者作为模块、组件、子程序或其它适合在计算环境中使用的单元。可以将计算机程序部署为在一个计算机上或在一个站点的多个计算机上执行,或者分布在多个站点上并通过通信网络互连。

如本文所使用的,术语“用户”可以指包括人或计算机的任何实体。

虽然在某些情况下,诸如第一、第二等的序数可以与顺序相关;但是如在本文中使用的,序数并非暗示顺序。例如,序数可以仅用于将一个项与另一个项区分开。例如,为了区分第一事件和第二事件,但不需要暗示任何按时间顺序排列或固定的参考系(使得描述的一个段落中的第一事件可以与描述的另一个段落中的第一事件不同)。

前面的描述旨在说明而不是限制本发明的范围,本发明的范围由所附权利要求的范围限定。其它实现落入所附权利要求的范围内。

这些计算机程序(也可被称为程序、软件、软件应用、应用、组件或代码)包括用于可编程处理器的机器指令,并且可以通过高级程序和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,例如,磁盘、光盘、存储器和可编程逻辑设备(PLD),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时性地存储这样的机器指令,例如如非暂时性的固态存储器或磁性硬盘驱动器或任何等效的存储介质。可替代地或附加地,机器可读介质可以以瞬态方式存储这样的机器指令,例如如处理器缓存或与一个或多个物理处理器核相关联的其它随机存取存储器。

为了提供与用户的交互,本文描述的主题可以在具有显示设备以及键盘和点击设备的计算机上实现,显示设备例如是用于向用户显示信息的阴极射线管(CRT)或液晶显示器(LCD)监控器;键盘和点击设备例如是鼠标或轨迹球,用户可以通过它们向计算机提供输入。其它类型的设备也可用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;可以以任何形式接收来自用户的输入,包括但不限于声学、语音或触觉输入。

本文描述的主题可以在包括后端组件、中间组件或前端组件或此类后端组件、中间组件或前端组件的任何组合的计算系统中实现,后端组件例如是一个或多个数据服务器,中间组件例如是一个或多个应用服务器,前端组件例如是一个或多个具有图形用户接口或Web浏览器的客户端计算机,用户可以通过图形用户接口或Web浏览器与本文描述的主题的实现进行交互。系统的组件可以通过任何形式的数字数据通信介质互连,例如,通信网络。通信网络的示例包括但不限于局域网(“LAN”)、广域网(“WAN”)、以及因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常但非排它地彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系通过在各个计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而产生。

在前面的描述中阐述的实现不代表与本文描述的主题一致的所有实现。相反,它们仅仅是与所描述的主题相关的方面一致的一些示例。虽然上面已经详细描述了一些变化,但是其它修改或添加也是可能的。特别地,除了本文所述的那些之外,还可以提供其它特征和/或变化。例如,上述实现可以针对所公开的特征的各种组合和子组合和/或上面公开的若干其它特征的组合和子组合。另外,在附图中示出和/或在本文中描述的逻辑流程并非需要所示的特定次序或顺序次序以实现期望的结果。其它实现可以落入所附权利要求的范围内。

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