太阳城集团

  • / 67
  • 下载费用:30 金币  

主动和被动链订阅.pdf

摘要
申请专利号:

太阳城集团CN201580046566.0

申请日:

2015.08.27

公开号:

太阳城集团CN106716294A

公开日:

2017.05.24

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 1/16申请日:20150827|||公开
IPC分类号: G06F1/16; G06F3/0482(2013.01)I; G06F3/0484(2013.01)I; G06F9/44; G06F19/00(2011.01)I 主分类号: G06F1/16
申请人: 微软技术许可有限责任公司
发明人: D·D·本特利; P·D·谢弗; D·J·布罗克森
地址: 美国华盛顿州
优先权: 2014.08.29 US 62/044,110; 2015.01.29 US 14/609,299
专利代理机构: 上海专利商标事务所有限公司 31100 代理人: 陈小刚
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580046566.0

授权太阳城集团号:

|||

法律状态太阳城集团日:

太阳城集团2017.06.16|||2017.05.24

法律状态类型:

实质审查的生效|||公开

摘要

一种计算设备包括多个硬件组件和多个模块。该多个模块中的第一模块直接订阅以接收来自该多个硬件组件中的第一硬件组件的第一参数。第一模块对第一硬件组件的订阅指定激活第一硬件组件以将第一参数提供给第一模块来满足该订阅。第一模块被配置成从第一参数导出第二参数。该多个模块中的第二模块通过直接订阅以接收来自第一模块的第二参数来间接地订阅第一硬件组件。第二模块对第一模块的订阅指定激活第一模块来将第二参数提供给第二模块以满足该订阅。

权利要求书

1.一种计算设备,包括:
多个硬件组件;以及
多个模块;
其中所述多个模块中的第一模块直接订阅以接收来自所述多个硬件组件中的第一硬
件组件的第一参数,其中所述第一模块对所述第一硬件组件的订阅指定激活所述第一硬件
组件以将所述第一参数提供给所述第一模块以满足所述订阅,并且其中所述第一模块被配
置成从所述第一参数导出第二参数;以及
其中所述多个模块中的第二模块通过直接订阅以接收来自所述第一模块的第二参数
来间接地订阅所述第一硬件组件,并且其中所述第二模块对所述第一模块的订阅指定激活
所述第一模块以将所述第二参数提供给所述第二模块来满足所述订阅。
2.如权利要求1所述的计算设备,其特征在于,所述计算设备是可穿戴设备,并且其中
所述第一硬件组件是配置成确定所述可穿戴设备的穿戴者的生物测定参数的生物测定传
感器。
3.如权利要求1所述的计算设备,其特征在于,所述第二模块经由被动订阅来间接地订
阅所述多个硬件组件中的第二硬件组件,其中所述被动订阅指定在所述第二硬件组件已经
被激活以满足除所述被动订阅以外的功能的情况下所述第二硬件组件向所述第二模块提
供第三参数,并且其中所述第二模块被配置成在所述第二硬件组件被激活的情况下从所述
第三参数导出第四参数并且在所述第二硬件组件未被激活的情况下从所述第二参数导出
所述第四参数。
4.如权利要求1所述的计算设备,其特征在于,所述第二模块对所述第二硬件组件的被
动订阅响应于所述第二参数指示触发被修改。
5.如权利要求4所述的计算设备,其特征在于,所述订阅响应于所述触发通过调整所述
第二硬件组件产生所述第三参数的采样频率被修改。
6.如权利要求4所述的计算设备,其特征在于,所述订阅响应于所述触发通过将所述被
动订阅切换成指定激活所述第二硬件元件以将所述第三参数提供给所述第二模块来满足
所述订阅的主动订阅被修改。
7.如权利要求4所述的计算设备,其特征在于,所述计算设备是可穿戴设备,其中所述
第一硬件组件是配置成确定所述可穿戴设备的穿戴者的第一生物测定参数的生物测定传
感器,其中所述第一模块被配置成基于所述第一生物测定参数来确定所述穿戴者的状态,
并且其中所述触发包括所述穿戴者的状态的变化。
8.如权利要求1所述的计算设备,其特征在于,对所述第一硬件组件的订阅包括定义所
述订阅的一个或多个约束的一个或多个订阅修饰符。
9.如权利要求8所述的计算设备,其特征在于,所述一个或多个订阅修饰符包括所述第
一硬件组件产生所述第一参数的采样频率,并且其中所述第一硬件组件以作为订阅以接收
所述第一参数的各模块所指示的采样频率的最小公倍数的频率来产生所述第一参数。
10.如权利要求8所述的计算设备,其特征在于,所述一个或多个订阅修饰符包括所述
第一硬件组件在其期间被激活产生所述第一参数的采样时段,并且其中所述第一硬件组件
在订阅以接收所述第一参数的各模块所指示的采样时段中的最长采样时段期间产生所述
第一参数。
11.如权利要求8所述的计算设备,其特征在于,所述一个或多个订阅修饰符包括一模
块订阅以接收所述第一参数的订阅历时。
12.如权利要求8所述的计算设备,其特征在于,所述一个或多个订阅修饰符包括指定
响应于一模块建立订阅以从所述第一硬件组件接收所述第一参数来将所述第一参数的最
新近采样版本发送给所述模块的即时通知约束。

说明书

主动和被动链订阅

背景

一些计算设备(例如,可穿戴计算设备)可具有有限的本地处理、数据存储以及储
能资源。这样的本地化约束可限制计算设备执行各种操作的能力。

附图简述

图1A示出示例可穿戴计算设备的各方面。

图1B示出示例该可穿戴计算设备的各附加方面。

图2示出了示例计算环境。

图3示出示例客户端计算设备的各方面。

图4示出可由客户端计算设备显示的示例图形用户界面(GUI)。

图5示出表示图4的示例GUI的示例用户界面(UI)元素树。

图6示出用于生成图4的示例GUI的示例UI布局文件。

图7示出用于更新图4的示例GUI中的一个或多个UI元素的示例更新二进制大对象
(BLOB)。

图8示出示例经本地化UI元素标识符。

图9示出示例经个别化UI元素标识符。

图10示出其中一事件触发与客户端计算设备的UI元素相关联的命令以调整客户
端计算设备的操作的示例场景。

图11示出其中一事件触发与客户端计算设备的UI元素相关联的命令以调整主机
计算设备的操作的示例场景。

图12示出其中一事件触发与客户端计算设备的UI元素相关联的命令以调整连接
网络的计算设备的操作的示例场景。

图13示出由客户端计算设备在三阶段协议的命令阶段期间接收到的示例命令分
组。

图14A示出其中远程计算设备在三阶段协议的数据阶段期间将数据分组发送给客
户端计算设备的示例场景。

图14B示出其中客户端计算设备在三阶段协议的数据阶段期间将数据分组发送给
远程计算设备的示例场景。

图14C示出其中在三阶段协议的数据阶段期间在远程计算设备和客户端计算设备
之间没有发送数据分组的示例场景。

图15示出用于管理能由客户端计算设备显示的GUI的呈现的示例方法。

图16示出用于向多个客户端计算设备提供基于订阅的数据以管理能由该多个客
户端计算设备显示的GUI的呈现的示例方法。

图17示出用于响应于接收到事件的通知来向客户端计算设备远程提供资源的示
例方法。

图18示出用于高效地中继客户端计算设备和服务计算设备之间的通信的示例方
法。

图19示出用于使用相同的三阶段协议通过不同通信I/O接口与远程计算设备进行
通信的示例方法。

图20示出与客户端计算设备通信的示例主机计算设备。

图21示出用于根据订阅将由客户端计算设备的数据源所产生的所发布数据提供
给主机计算设备的示例方法。

图22和23示出用于根据订阅将由客户端计算设备的数据源所提供的所发布数据
分发给主机计算设备的各模块的示例方法。

图24示出包括具有对计算设备的数据源所提供的所发布数据的不同订阅的多个
模块的示例计算设备。

图25示出可由计算设备采用的示例订阅分层结构。

图26示出其中订阅响应于可穿戴计算设备的状态变化被修改的示例场景。

图27示出其中订阅响应于可穿戴计算设备相对于可穿戴计算设备的穿戴者的状
态变化被修改的示例场景。

图28示出其中订阅响应于可穿戴计算设备的穿戴者的状态变化被修改的示例场
景。

图29示出示例计算系统。

详细描述

为提高具有本地化处理、数据存储和/或储能约束的客户端计算设备的被感知的
能力,各种操作可从该计算设备外包并由一个或多个远程计算设备来处理。由于这样的外
包,客户端计算设备与远程计算设备之间的通信量可显著增加。因此,本公开涉及用于促进
客户端计算设备与为客户端计算设备的利益来分配资源的远程计算设备之间的数据高效
和能量高效通信的各种办法。

在一些实现中,客户端计算设备可能缺少与远程计算设备直接通信(例如,经由因
特网)的广域网连接性。然而,客户端计算设备可具有与主机计算设备的局域网连接(例如,
经由通用串行总线(USB)、蓝牙(BT)、低功耗蓝牙(BTLE)),且主机计算设备可经由广域网连
接(例如,经由因特网)与远程计算设备通信。在这样的实现中,客户端计算设备与远程计算
设备之间的通信可通过主机计算设备来中继。此外,在一些情形下,主机计算设备可以执行
一些或全部操作以进一步提高客户端计算设备的通信效率。

通过提高客户端计算设备的通信效率,可向用户隐藏客户端计算设备的本地资源
约束。

客户端计算设备可以采用任何合适的形式而不偏离本公开的范围。图1A和1B示出
包括用于促进高效通信的特征的可穿戴计算设备10形式的示例客户端设备的各方面。所示
的设备采取复合带12的形式。在一个实现中,闭合机制允许复合带的端部容易的附连和分
开,使得该带可闭合成环并戴在手腕上。在其他实现中,设备可被制造成弹性足以被拉开超
过手并仍符合手腕的连续环。替换地,该设备可具有打开的手镯形状因子,其中带的端部不
彼此固定。在又一些其他实现中,更加伸长的带状可穿戴计算设备可被穿戴在用户的二头
肌、腰、胸、踝、腿、头或身体其他部分上。因此,在此构想的可穿戴计算设备包括眼镜、头带、
袖标、护踝带、胸带或任何其他可穿戴形状因子。此外,不具有可穿戴配置的计算设备可包
括镀敷触点。

如各附图中所示,可穿戴计算设备10可包括各种功能电子组件:计算系统14、显示
器16、扩音器18、触觉电机20、通信套件22,以及各种传感器。在所示实现中,各功能电子组
件被集成在该带的若干刚性段中——即,显示器承载模块24A、枕垫24B、储能室24C和24D,
以及带扣24E。这一策略保护了功能组件免受物理挤压、免受过热和潮湿、以及避免被暴露
于皮肤上找得到的水和物质,诸如汗、乳液、药膏等等。在所示的可穿戴计算设备10的构造
中,复合带12的一端与另一端重叠。带扣24E被布置在复合带的重叠端处,并且接收槽26被
布置在该重叠的端处。

可穿戴计算设备10的各功能电子组件从一个或多个储能电子组件28中汲取电力。
电池——例如锂离子电池——是一种类型的储能电子组件。替代的示例包括超级以及究极
电容器。为了提供最小刚性体积的合适的存储容量,可使用多个离散分开的储能电子组件。
这些可被布置在储能室24C和24D中,或在复合带12的任何刚性段中。储能电子组件与功能
电子组件之间的电连接被路由通过柔性段30(例如,30A、30B、30C、30D)。在某些实现中,储
能单元具有弯曲的形状以舒适地适配围绕穿戴者的手腕或其它身体部位。在一些实现中,
储能单元可以是柔性的以容适到穿戴者的耦合。

一般而言,储能电子组件28可以是可替换的和/或可再充电的。在一些示例中,再
充电功率可通过通用串行总线(USB)端口32来提供。在其他示例中,该储能电子组件可通过
无线感应或环境光充电来再充电。在又一些其他示例中,该可穿戴计算设备可包括机电部
件以从用户偶然的或带目的的身体运动中对储能电子组件再充电。

在可穿戴计算设备10中,计算系统14被容纳在显示器承载模块24A中并且放置在
显示器16之下。该计算系统操作地耦合到显示器16、扩音器18、通信套件22以及各种传感
器。该计算系统包括保持数据和指令的数据存储机34以及执行指令的逻辑机36。

在一些实现中,共享数据缓冲器66可位于数据存储机34附近或被包括在数据存储
机34中。共享数据缓冲器66可被配置成存储数据分组以准备经由多个不同通信I/O接口中
的任一者来传输。在一个特定示例中,共享数据缓冲器66存储数据分组以供经由有线通信
I/O接口或无线通信I/O接口来传输,如将在下文更详细地讨论的。

显示器16可以是任何合适类型的显示器,诸如轻薄、低功耗发光二极管(LED)阵列
或液晶显示(LCD)阵列。也可使用量子点显示技术。也可使用电子纸技术。合适的LED阵列包
括有机LED(OLED)或有源矩阵OLED阵列等等。LCD阵列可以被有源地从背后照亮。然而,某些
类型的LCD阵列(例如,硅上的液晶LCOS阵列)可经由环境光从正面照亮。尽管附图示出了基
本上平的显示表面,这个方面不意指为必须的,因为弯曲的显示表面也可被使用。在某些使
用情形中,可穿戴计算设备10可随同显示器16被佩戴在穿戴者腕部前面,类似传统腕表。

通信套件22可包括任何适当的有线或无线通信I/O接口部件。在图1A和1B中,通信
套件包括USB端口32,其可被用于在可穿戴计算设备10和其它计算机系统之间交换数据以
及提供再充电电力。该通信套件可进一步包括双向BT、BTLE Wi-Fi、蜂窝、以太网、近场通讯
和/或其他无线电装置。在一些实现中,该通信套件可包括额外的用于光通信、视距(例如,
红外)通信的收发机。通信套件22的任何合适的通信I/O接口部件可被用来经由数字通信信
道传送机器可读太阳城集团。例如,无线数字通信信道可在Wi-Fi或BT上建立以传送数据。在另一
示例中,有线数字通信信道可在USB上建立以传送数据。

在一些实现中,为充分利用多个不同通信I/O接口,可穿戴计算设备可以采用相同
的三阶段协议来在多个不同传输层(例如,USB、BT、BTLE)上进行通信。三阶段协议可包括命
令阶段、数据阶段、以及状态阶段。具体而言,命令协议可具有对所有不同传输层上的通信
而言相同的分组格式。这一统一实现允许可在不同传输层中的任一者上发送的共享命令
库。共享命令库和统一命令协议可提高通信效率,同时降低可穿戴计算设备的存储器占用。

在可穿戴计算设备10中,触摸屏传感器38与显示器16耦合并且被配置成接收来自
用户的触摸输入。因此,在一些实现中,显示器可以是触摸传感器显示器。一般而言,该触摸
传感器可以是电阻式、电容式或基于光学的。按钮传感器(例如,微动开关)可被用于探测可
包括摇杆的按钮40A和40B的状态。来自按钮传感器的输入可被用于执行归位键或开-关特
征,控制音频音量,话筒,或另一合适的操作。

图1A和1B示出可穿戴计算设备10的各种其它传感器。这样的传感器包括话筒42、
可见光传感器44、紫外线传感器46,以及环境温度传感器48。话筒向可被用于测量环境声级
或接收来自用户的语音命令的计算系统14提供输入。来自可见光传感器、紫外线传感器和
环境温度传感器的输入可被用于评估用户所处环境的各方面。

图1A和1B示出了一对接触传感器——安排在显示器承载模块24A上的充电接触传
感器50,和安排在枕垫24B上的枕垫接触传感器52。每个接触传感器在可穿戴计算设备10被
戴着时接触穿戴者的皮肤,并且还可包括镀敷触点。接触传感器可包括独立的或协作的传
感器元件来提供多个感测功能。例如,该接触传感器可提供响应于穿戴者的皮肤的电阻和/
或电容的电阻和/或电容感测功能。为此,两个接触传感器例如可被配置为皮肤电反应传感
器。在所示的配置中,两个接触传感器之间的间隔提供用于皮肤阻抗的更准确的测量的相
对长的电气路径长度。在一些示例中,接触传感器还提供该穿戴者的皮肤温度的测量。在所
示的配置中,热敏电阻形式的皮肤温度传感器54被集成到充电接触传感器50中,其提供到
皮肤的直接热传导路径。来自环境温度传感器48和皮肤温度传感器54的输出可被不同地应
用以估计来自穿戴者身体的热通量。该度量能被使用来改善例如基于步程计的卡路里计数
的精确性。除了以上描述的基于接触的皮肤传感器,各种类型的非接触皮肤传感器也可被
包括。

以所示的配置被布置在枕垫接触传感器52内部的是光学脉搏率传感器56。该光学
脉搏率传感器可包括窄带(例如,绿色)LED发射器和匹配的光电二极管来检测通过皮肤的
毛细血管的脉动血流并从而提供对该穿戴者的脉搏率的测量。在某些实现中,光学脉搏率
传感器还可被配置来感测穿戴者的血压。在所示的配置中,光学脉搏率传感器56和显示器
16被安排成在佩戴时在设备的相对侧上。为了工程上便利,脉搏率传感器可替换地可被直
接置于显示器之后。

可穿戴计算设备10可同样包括诸如加速度计58、陀螺仪60以及磁力计62之类的运
动传感部件。加速度计和陀螺仪可提供沿三条正交轴的惯性数据以及太阳城集团三条轴的旋转数
据,作为组合的六个自由度。这一传感数据能被使用来提供例如步数计/卡路里计数功能。
来自加速度计和陀螺仪的数据可与来自磁力计的地磁数据结合以进一步定义按照地理方
位的惯性和旋转数据。

可穿戴计算设备10还可包括全球定位系统(GPS)接收器64来确定穿戴者的地理位
置和/或速度。在一些配置中,GPS接收器的天线可以是相对柔性的并且延伸到柔性段30A。
在图1A和1B的配置中,GPS接收器远离光学脉搏率传感器56以降低来自该光学脉搏率传感
器的干扰。

该可穿戴计算设备仅仅是可将对操作的处理卸载到远程计算设备的客户端计算
设备的一个示例。客户端计算设备可以采取任何合适的形式。

图2示出了示例计算环境200。计算环境200可包括配置成向多个客户端计算设备
(例如,客户端计算设备A、客户端计算设备B、客户端计算设备N)204提供远程管理和处理功
能性的服务计算设备202。服务计算设备202可被配置成执行与多个客户端计算设备中的任
一者的任何合适的方面相关的操作。服务计算设备202可以向任何数目的客户端计算设备
提供处理资源。此外,服务计算设备202可以向任何合适类型的客户端计算设备提供资源。
在一些实现中,服务计算设备可以表示云计算系统中的多个不同的连接网络的计算设备。

不同客户端计算设备可以配置有不同通信能力。相应地,服务计算设备202可以按
不同方式与不同客户端计算设备通信。在一些情形下,服务计算设备202可经由网络206(诸
如因特网)与客户端计算设备直接通信。这样的客户端计算设备可被称为连接网络的计算
设备。在所示示例中,客户端计算设备N是经由网络206与服务计算设备202直接通信的连接
网络的计算设备。

在一些情形下,客户端计算设备可不具有与服务计算设备202的直接网络连接。相
反,客户端计算设备可被配置成经由局域网连接(例如,USB、蓝牙、低功耗蓝牙)与主机计算
设备通信。局域网连接可以是有线连接或无线连接。这样的客户端计算设备可被称为非连
接网络的计算设备。服务计算设备202可以通过经由连接网络的主机计算设备中继通信来
与非连接网络的客户端计算设备通信。

连接网络的主机计算设备可以采取任何合适的形式。例如,主机计算设备可包括
智能电话、膝上型计算机、台式计算机、平板、娱乐控制台、专用热点、或另一合适的计算设
备。在一个特定示例中,非连接网络的客户端计算设备是可穿戴计算设备且主机计算设备
是智能电话。

在一些实现中,客户端计算设备可包括用于在不同条件下与主机计算设备通信的
多个通信I/O接口。例如,该多个通信I/O接口可包括配置成与主机计算设备通信的有线通
信I/O接口和配置成与主机计算设备通信的无线通信I/O接口。在一个特定示例中,客户端
计算设备可被配置成经由USB链路、BT链路、或BTLE链路中的任一者与主机计算设备通信。

在所示示例中,客户端计算设备A被配置成没有经由网络206与服务计算设备202
直接通信的非连接网络的计算设备。相反,客户端计算设备A被配置成经由局域网连接208
与主机计算设备A通信。在一个示例中,局域网连接208可以是例如经由USB或以太网的有线
网络连接。在另一示例中,局域网连接208可以是例如经由BT或BTLE的无线网络连接。此外,
主机计算设备A被配置成经由网络206与服务计算设备202通信。相应地,服务计算设备202
可被配置成将通信发送给主机计算设备A,且主机计算设备A可被配置成将该通信中继到客
户端计算设备A,且反之亦然。同样,主机计算设备B和客户端计算设备B可以按类似的方式
通信。

注意,在一些实现中,主机计算设备可为相关联的客户端设备的利益来直接分配
资源而不涉及服务计算设备。例如,主机计算设备可以代替服务计算设备来向客户端计算
设备提供远程处理和管理功能性。此外,主机计算设备可被配置成向任何合适数目的客户
端计算设备提供所有服务的所有实例。

图3更详细地示出示例客户端计算设备300的各方面。客户端计算设备300可以表
示图2中示出的计算环境200中包括的多个客户端计算设备204中的任一者。客户端计算设
备300可包括设备标识符302。设备标识符302可以将客户端计算设备300与计算环境200中
的每一其他计算设备区分开。在一个示例中,设备标识符302是全局唯一标识符(GUID)。设
备GUID可具有任何合适的唯一性属性和概率。在一个示例中,设备GUID被存储为128位的
值。在另一示例中,设备标识符302不是GUID,而改为是序列号。设备标识符302可以符合任
何合适的寻址方案。例如,设备标识符302可被包括作为寻址方案的一部分以标识从客户端
计算设备300发送的通信和由客户端计算设备300接收的通信。

客户端计算设备300可包括配置成在视觉上呈现图形用户界面(GUI)306的显示器
304。GUI 306可以呈现客户端计算设备300上安装的应用(诸如应用308)的视觉元素。应用
308可以是客户端计算设备300上安装的多个应用之一。

注意,应用可被安装或以其他方式变得可用于以任何合适的方式在客户端计算设
备上使用。此外,应用可充当用于以任何合适的方式从远程源接收太阳城集团的管道。例如,应用
可包括导航到网站或其他远程太阳城集团源的通用web太阳城集团器,且web太阳城集团器可以经由GUI呈现从
远程太阳城集团源接收到的太阳城集团。

每一应用可包括应用标识符。例如,应用308包括应用标识符310。应用标识符310
可以将该应用与客户端计算设备300上安装的每一其他应用区分开。在一些实现中,应用标
识符310可以将应用308与计算环境200中的每一其他应用区分开。在一些实现中,应用标识
符310可以是GUID。应用GUID可具有任何合适的唯一性属性和概率。在一个示例中,应用
GUID被存储为128位的值。在一些实现中,应用GUID将一应用与其他应用区分开,但不区分
该应用的所有实例或安装。例如,同一应用的两个不同实例可被安装在两个不同计算设备
上且该应用的每一实例可具有相同的应用GUID。

每一应用可包括多个页。每一页可由页索引来寻址。例如,页312包括页索引314。
页索引314可以将页312与应用308中包括的每一其他页区分开。该应用中的多个页可按任
何合适的方式寻址。在一个示例中,应用的每一个页可具有线性位置,并且因此具有可被用
作该页的页索引的序数。注意,在这一实现中,GUI 306可以一次显示一应用的单个页。在一
些实现中,GUI可被配置成一次显示一个以上页。序数页编号只是一个示例,且各页可以按
另一合适的方式来标识。

注意,页可以表示不同UI元素的任何空间和/或逻辑编组并且不限于显示器一次
能供呈现的空间区域。例如,页可大于或小于显示器的显示区域。

每一页可包括多个用户界面(UI)元素316(例如,UI元素A、UI元素B、UI元素N)。页
中包括的多个UI元素可以提供由GUI 306呈现的视觉内容。UI元素可以采取任何合适的形
式。不同类型的UI元素的非限制性示例包括文本域、按钮、文本区、复选框、单选按钮、下拉
列表、允许单个和多个选择的列表、用于编组视觉组件的面板、图像、视频、以及其他合适的
UI元素。

每一UI元素可包括将该UI元素与该页中包括的每一其他UI元素区分开的UI元素
标签。例如,UI元素A包括将UI元素A与页312上的每一其他UI元素区分开的UI元素标签318。
注意,UI元素标签可包括包含数字、串、代码、或任何其他标识符的任何合适的标识特性。

在一些实现中,显示器304可被配置成检测触摸输入。显示器可以采用任何合适的
触摸检测技术。在这样的实现中,多个UI元素中的一者或多者可以是可经由触摸输入来选
择的。在一些情形下,经由触摸输入选择UI元素可以触发发起由客户端计算设备在本地或
由远程计算设备(例如,与客户端计算设备配对的主机计算设备或者由服务计算设备)远程
地执行操作的事件。作为补充或替换,其他输入模态可被选择或以其他方式被激活(例如,
语音、姿势、注视、硬件控制、以及其他)。

如上所述,图2中示出的服务计算设备202可被配置成为多个客户端计算设备204
的利益来分配处理资源。例如,服务计算设备202可被配置成为多个客户端计算设备204执
行不同操作。在一个示例中,服务计算设备202可被配置成远程地管理能由客户端计算设备
显示的GUI的呈现。为了按通信高效的方式管理GUI的呈现,服务计算设备可以实现将GUI中
呈现的UI元素的格式化太阳城集团与表示经由UI元素呈现的实际太阳城集团(例如,文本域UI元素中呈
现的数字和字母)的二进制数据分开的办法。如此,在服务计算设备202将经更新太阳城集团发送
给客户端计算设备以经由一个或多个UI元素显示时,该经更新太阳城集团不必包括任何格式化信
息。

在一个示例中,服务计算设备202可被配置成将UI布局文件320发送给客户端计算
设备300。UI布局文件320可以定义GUI 306中呈现的UI元素的视觉布局,而没有指定用来填
充该UI元素的底层数据。作为示例,UI布局可以定义特定显示位置中的文本框,并且布局文
件可以指定该框中显示的文本将具有12磅Arial字体,但布局文件将不指定要显示在这一
文本框中的实际字母。在其他实现中,UI布局文件定义GUI中呈现的UI元素的视觉布局且可
包括用来填充UI元素的底层数据的初始版本。在一些实现中,UI布局文件320可以在每页的
基础上定义UI元素的视觉布局,且服务计算设备202可以向客户端计算设备发送针对客户
端计算设备300上安装的每一应用的每一页的UI布局文件。在其他实施例中,UI布局文件可
以在每应用的基础上生成,且UI布局文件可以定义在应用中包括的每一页上的UI元素的视
觉布局。

UI布局文件320可由服务计算设备202根据预定义方案或以任何其他合适的方式
生成。在一个示例中,UI布局文件可以从XML文件生成。XML文件可以提供行业标准方案和确
认工具以帮助确保UI布局文件适于由客户端计算设备显示。

在一些情形下,服务计算设备202可以生成该XML文件。在一些其他情形下,服务计
算设备202可以从第三方计算设备210接收该XML文件。第三方计算设备210可由任何类型的
内容生产者操作,其非限制性示例包括网站主机、社交网络、新闻馈源主机、或另一合适的
UI布局太阳城集团源。

服务计算设备202可包括配置成执行XML文件(或其他布局源太阳城集团)到可能更易于
由客户端计算设备消费的二进制机器可读格式的变换的变换模块212。例如,经变换UI布局
文件的二进制格式可以镜像客户端计算设备的数据的直接存储器表示。具体而言,UI布局
文件的二进制数据格式可包括根据类结构组织的数据的二进制副本。此外,在其中XML文件
是从第三方计算设备210提供的情形下,变换操作可以提供机会以允许要被变换成适于显
示在客户端计算设备上的布局的第三方计算设备的布局的基于自动机的变换。例如,第三
方计算设备210的UI布局的格式可被配置用于与客户端计算设备300不同的平台,且服务计
算设备202可被配置成将该格式太阳城集团转换为与客户端计算设备的平台兼容。

图4-6示出了其中可从UI布局文件生成GUI的示例场景。图4示出了包括多个UI元
素402的示例GUI 400。多个UI元素402可包括不同UI元素类型,包含页、框、以及串。注意,
GUI 400仅仅是一个示例,且GUI可以呈现任何合适类型的UI元素。在GUI 400中,一些UI元
素可被嵌套在其他UI元素内以形成父-子关系。

图5示出表示GUI 400中包括的多个UI元素402的父-子关系的分层结构的示例UI
元素树结构500。具体而言,页1是UI元素树结构500的根元素。页1不具备父节点,且框2和框
7是页1的紧接子节点。框2具有框3和框5作为紧接子节点。框7具有框8作为紧接子节点。框3
具有串4作为紧接子节点。框5具有串6作为紧接子节点。框8具有串9和串10作为紧接子节
点。串4、串6、串9以及串10是不具有子节点的叶节点。

图6示出可以从树结构500生成的示例UI布局文件600。例如,UI布局文件600可以
表示图3中示出的UI布局文件320。UI布局文件600包括指示GUI所呈现的页的通用结构的页
头部602。

例如,页头部602可包括UI布局文件的版本604、根UI元素(例如,页1)的紧接子节
点606的数目、以及UI布局文件中子UI元素的总数608(例如,9)。版本604可以指示当前正在
使用哪一UI布局文件来在更新UI元素时合适地确定UI元素类型。

UI布局文件600可包括多个UI元素610。每一UI元素可包括UI元素标识符612和UI
元素描述符614。UI元素标识符612可以将该UI元素与UI布局文件600中的每一其他UI元素
区分开。例如,UI元素标识符可以是唯一性数字标识符。UI元素标识符可被用于数据更新二
进制大对象(BLOB)和单个数据更新请求两者的数据绑定。注意,更新BLOB是更新对象的一
个非限制性示例。任何合适类型的对象可被采用以传送更新数据。UI元素描述符614可以定
义经由UI元素显示的太阳城集团的UI元素类型616和格式化属性618。在所解说的实现中,格式化
属性618包括存储器大小、位置、颜色、字体类型、对齐、透明度、以及子UI元素的数目。然而,
任何合适的格式化属性可由UI元素描述符来定义。

多个UI元素610可任选地在UI布局文件600中根据图5所示的树结构500的经平坦
化版本来排序。具体而言,多个UI元素610可以在UI布局文件600中根据树结构500所指示的
父-子关系来排序。经平坦化的树结构可以表示客户端计算设备用来生成GUI的最终存储器
格式。通过在经平坦化的树结构中对UI元素排序并且提供每一UI元素的子节点的数目作为
属性,可以用最小量的太阳城集团来传达父-子分层结构内的UI元素的位置。换言之,这样的格式
可以减少发送给客户端计算设备的UI布局文件中包括的数据量。这样的办法提供了其中客
户端计算设备的通信效率可被提高的一个示例。

在一个示例中,UI布局文件600具有对于发送给客户端计算设备而言可能高效的
二进制机器可读格式。注意,UI布局文件可被发送给客户端计算设备一次,以向客户端计算
设备通知UI布局文件中的每一UI元素的格式化属性。然而,在一些情形下,经更新UI布局文
件可被发送给客户端计算设备以改变GUI的视觉布局。这样的经更新UI布局文件可具有可
由服务计算设备跟踪的不同版本。例如,经更新UI布局文件可以改变UI元素的格式化属性、
添加页、删除页、向页添加UI元素、和/或从页删除UI元素。注意,经更新UI布局文件可以只
更新UI元素的格式化属性,并且可不同于包括要经由UI元素呈现的经更新太阳城集团的更新
BLOB。

一旦客户端计算设备300从UI布局文件320中知晓了UI元素的格式化属性,服务计
算设备202就可被配置成发送后续更新BLOB以更新经由GUI 306中的一个或多个UI元素呈
现的太阳城集团。

图7示出了用于更新GUI中的一个或多个UI元素的示例更新BLOB 700。更新BLOB
700可包括要改变的UI元素702的UI元素标识符704以及要经由UI元素702显示的经更新信
息的净荷706。经更新太阳城集团可以替换先前经由该UI元素显示的太阳城集团。例如,净荷706中包括的
经更新太阳城集团可以是经更新太阳城集团的直接二进制机器可读表示。在一些情形下,要更新的多个
UI元素的UI元素标识符和经更新太阳城集团可被捆绑成同一更新BLOB。在其他情形下,只有一个
UI元素可被更新。这一类型的所选更新是高效的,因为不必发送针对不被更新的UI元素的
数据。

此外,每一净荷可以省略要改变的UI元素的格式化属性,因为客户端计算设备从
UI布局文件中引用这样的格式化属性。例如,UI元素类型可以通过查找与UI布局文件中的
UI元素标识符相关联的类型来确定。如此,对象类型不必经由净荷来传递。UI布局文件中包
括的所有其他方面可类似地从净荷省去,因为这些方面可以使用更新BLOB中包括的UI元素
标识符来查找。

在一个特定示例中,UI元素可被更新以呈现数字“7”,且对应的更新BLOB可仅包括
数字“7”的UI元素标识符和二进制表示。在接收到更新BLOB时,客户端计算设备可以从先前
接收到的UI布局文件中查找二进制数据的UI元素类型(例如,整型)。换言之,UI元素标识符
可以充当净荷中包括的二进制数据的绑定机制。类似地,客户端计算设备可以查找用于创
建数字“7”的所需视觉表示的屏幕位置和格式化特性,即使这样的格式化没有作为更新
BLOB的一部分来传递。。

与这一办法相对,其他通信格式(例如,JSON或XML)在BLOB本身内包括从数据净荷
到数据内部表示的映射。在一个特定示例中,更新BLOB可包括包含数字七的串以及指示该
串是整型UI元素的映射。此外,这样的办法可包括用于显示底层数据的所有格式化。与其中
从UI布局文件确定UI元素类型的办法相比,这样的办法可增加更新BLOB中包括的数据量。

更新BLOB中包括的经更新太阳城集团可由客户端计算设备从任何合适的源接收。在一些
情形下,服务计算设备202可以生成经更新太阳城集团。在一些情形下,服务计算设备202可以从第
三方计算设备210接收经更新太阳城集团。在一个示例中,服务计算设备202可以从第三方计算设
备210订阅该太阳城集团。在另一示例中,服务计算设备202可以从第三方计算设备210抓取
(scape)经更新太阳城集团。在一些情形下,经更新太阳城集团可以按XML格式从第三方计算设备210接
收。服务计算设备202可被配置成例如经由变换模块212将XML数据转换成二进制机器可读
格式。在一些情形下,服务计算设备202可以按二进制机器可读格式从第三方计算设备210
接收经更新太阳城集团并且变换不是必需的。

在一些情形下,UI布局文件和/或后续更新BLOB可以经由广域网连接从服务计算
设备直接发送给客户端计算设备。例如,服务计算设备可知晓客户端计算设备的设备标识
符,并且可将通信发送给客户端计算设备(也称为推送法)。在另一示例中,客户端计算设备
可以请求来自服务计算设备的UI布局文件和/或更新BLOB,并且服务计算设备可以响应于
接收到该请求来发送通信(也称为拉取法)。在一些情形下,多个客户端计算设备可以订阅
UI布局文件和后续更新BLOB。服务计算设备可知晓订阅方客户端计算设备,并且可将通信
广播给所有订阅方客户端计算设备。

在一些实现中,在客户端计算设备经由中间主机计算设备与服务计算设备通信的
情形下,用于更新GUI的处理或管理责任中的一些或全部可由主机计算设备代替服务计算
设备直接处理。在一个示例中,UI布局文件可由服务计算设备生成,和/或与UI布局文件相
对应的后续更新BLOB可由主机计算设备生成,反之亦然。

在另一示例中,服务计算设备可以将表示GUI的XML文件发送给主机计算设备,且
主机计算设备可以将该XML文件变换成具有二进制机器可读格式的UI布局文件。在这样的
实现中,主机计算设备可包括变换模块212。在又一示例中,主机计算设备可以处理用于管
理GUI的所有处理责任。具体而言,主机计算设备可以生成GUI布局文件和后续更新BLOB而
无需与服务计算设备通信。

在提高通信效率的另一示例办法中,远程计算设备(例如,服务计算设备或主机计
算设备)可以订阅客户端计算设备的事件。换言之,在此描述的办法可以使客户端计算设备
能够以高效的方式向远程计算设备传递用于执行各种操作的处理和控制请求。在一个示例
中,远程计算设备可以订阅与客户端计算设备所显示的GUI中的特定UI元素相关联的事件。
在另一示例中,远程计算设备可以订阅与客户端计算设备的各组件相关联的事件。例如,远
程计算设备可以订阅客户端计算设备的不同传感器,且客户端计算设备可以响应于不同事
件来将传感器读数发送给远程计算设备。注意,任何合适的事件可以触发为客户端计算设
备的利益来执行操作。此外,这样的操作可以例如经由映射与特定UI元素相关联。此外,这
一办法可以向经由中间主机计算设备请求远程处理和控制资源的非连接网络的客户端计
算设备提供通信效率的进一步优化,如在此将描述的。此外,这样的办法可以允许主机计算
设备直接向客户端计算设备提供远程处理和控制资源而不涉及服务计算设备。

在一个示例中,服务计算设备202可以标识计算环境200中的任何客户端计算设备
上显示的任何UI元素的任何实例。如上所述,GUI可以呈现应用的包括多个UI元素的页。该
应用具有将该应用与计算环境中的每一其他应用区分开的应用标识符。GUI中显示的页的
页索引将该页与该应用中包括的每一其他页区分开。该页中包括的每一UI元素具有将该UI
元素与该页中包括的每一其他UI元素区分开的UI元素标签。

如图8所示,这些寻址元素可被包括在可被用来跨客户端计算设备上安装的所有
应用来标识任何UI元素的本地化UI元素标识符800中。换言之,本地化UI元素标识符将UI元
素的实例与能在客户端计算设备上安装的任何应用中显示的每一UI元素的每一其他实例
区分开。具体而言,本地化UI元素标识符800可包括应用标识符802、页索引804以及UI元素
标识符806的地址三元组。在一个示例中,应用标识符802表示应用标识符310,页索引804表
示页索引314,且UI元素标签806表示UI元素标签318,它们全部在图3中示出。

在一个示例中,应用标识符是具有第一存储器大小的GUID,且页索引和UI元素标
签是各自具有小于应用GUID的第一存储器大小的存储器大小的其他类型的标识符。该其他
标识符可更小以在将本地化UI元素标识符发送给远程计算设备时节省客户端计算设备的
带宽。

此外,如在图9中所示,本地化UI元素标识符800可通过将设备标识符902添加到该
地址三元组来被转换成个别UI元素标识符900。具体而言,经个别化UI元素标识符900可包
括设备标识符902、应用标识符802、页索引804以及UI元素标签806。在一个示例中,设备标
识符902表示图3中示出的设备标识符302。经个别化UI元素标识符900可被用来跨计算环境
200内的所有客户端计算设备上安装的所有应用来标识UI元素的任何实例。

注意,本地化UI元素标识符和经个别化UI元素标识符的不同地址元素可按任何合
适的方式排序以形成UI元素地址的任何合适的格式变型。

服务计算设备202和/或主机计算设备可被配置成接收来自一个或多个计算设备
的事件的通知。在一个示例中,服务计算设备202可以基于服务计算设备订阅不同客户端计
算设备上的各UI元素来接收事件的通知。在一个示例中,服务计算设备202包括可被配置成
生成、修改、和/或维护对UI元素的不同实例的订阅列表的订阅模块214。服务计算设备可以
订阅不同客户端计算设备上的UI元素的任何合适数目的不同实例。在一些情形下,通知可
以从连接网络的客户端计算设备直接接收。在一些情形下,通知可以从代表非连接网络的
客户端计算设备的主机计算设备接收。

服务计算设备可以接收任何合适类型的事件的通知。在一个示例中,事件包括经
由到客户端计算设备的用户输入选择UI元素的实例。在另一示例中,事件包括经由到客户
端计算设备的用户输入修改UI元素的实例。在又一示例中,事件包括客户端计算设备的物
理按钮被按下。注意,事件可不与UI元素相关。例如,事件可周期性地发生。在另一示例中,
事件可响应于客户端计算设备的另一合适的操作发生。

由服务计算设备202接收到的每一通知可包括经个别化UI元素标识符。服务计算
设备202可被配置成基于事件的通知中包括的经个别化UI元素标识符来标识UI元素的实
例。

在其中客户端计算设备是非连接网络的设备的情形下,客户端计算设备可以将事
件的通知发送给主机计算设备。事件的通知可包括本地化UI元素标识符。主机计算设备可
被配置成将发送该通知的客户端计算设备的设备标识符添加到本地化UI元素标识符以生
成经个别化UI元素标识符,并且主机计算设备可被配置成将包括经个别化UI元素标识符的
该通知中继到服务计算设备。通过不在客户端计算设备处将设备标识符附加到本地化UI元
素标识符,由客户端计算设备发送的数据的量可被降低,并且通信效率可被提高。在主机计
算设备布局相对于客户端计算设备有大量处理资源和通信带宽的情形下,这样的办法可尤
其有益。在降低电池供电的客户端计算设备中由通信消耗的能量方面,这样的办法也可尤
其有益。

响应于标识UI元素的实例,服务计算设备202可被配置成执行与该UI元素相关联
的操作。服务计算设备202可包括配置成生成、修改和/或维护UI元素的实例到不同操作的
映射的映射模块216。在一个示例中,UI元素的实例可被映射到个别操作。在另一示例中,UI
元素的实例可被映射到可基于各种操作条件来有条件地执行的多个不同操作。

服务计算设备202可包括配置成执行与被标识为事件所涉及的UI元素的实例相关
联的操作的操作处理模块218。具体而言,操作处理模块218可被配置成管理服务计算设备
202的处理和数据存储资源以执行操作。此外,在一些情形下,操作处理模块218可被配置成
生成发送给其他远程计算设备以代表请求方客户端计算设备执行操作的命令。例如,服务
计算设备202可充当客户端计算设备与其他连接网络的计算设备(诸如第三方计算设备
210)之间的中介。在另一示例中,服务计算设备202可以向主机计算设备发送命令,并且主
机计算设备可被配置成执行该命令所指定的操作。在又一示例中,服务计算设备202可以向
主机计算设备发送命令,并且主机计算设备可以将该命令中继到与该主机计算设备配对或
以其他方式进行通信的客户端计算设备。在一些实现中,主机计算设备可包括操作处理模
块。例如,在其中主机计算设备为客户端设备直接执行操作而不涉及服务计算设备的实现
中,主机计算设备可包括操作处理模块。

服务计算设备202可包括事件记录模块220。事件记录模块220可被配置成创建并
维护针对服务计算设备202所订阅的UI元素的事件的日志。例如,事件记录模块220可以在
每次服务计算设备202接收到事件的通知时创建日志条目。在一个示例中,日志可被组织成
使得每一客户端计算设备具有与关联于该客户端计算设备的UI元素相关联的事件的列表。
在另一示例中,日志可被组织成使得每一UI元素具有对任何特定客户端计算设备而言不可
知的事件的列表。这一类型的组织对于跨特定UI元素在不同客户端计算设备上的所有实例
来跟踪与该UI元素的交互而言可以是有用的。日志可以跟踪针对不同UI元素的事件以判断
UI元素的流行性、使用率、或其他合适的方面。这样的跟踪可被应用来细化和开发各种应
用。此外,日志可集体地跟踪多个客户端计算设备对UI元素的使用率或流行性,这可被应用
于不同应用(诸如调查、投票、或其他合适的活动)。

此外,在一些情形下,主机计算设备可以处理通知并直接执行操作而无需与服务
计算设备通信。例如,主机计算设备可以直接执行操作以减少与服务计算设备的通信。在另
一示例中,如果主机计算设备失去与服务计算设备的网络连接,则主机计算设备可以直接
执行操作。

主机计算设备可包括映射模块216以标识与事件的通知中标识的UI元素的实例相
关联的操作。在一些情形下,在主机计算设备上维护的映射的版本可相对于在服务计算设
备上维护的映射的版本被截短。例如,主机计算设备上维护的映射的版本可只包括安装在
相关联的客户端计算设备上的应用的UI元素的实例。

在一些实现中,主机计算设备可包括事件记录模块220。事件记录模块220可被配
置成在本地记录与所关联的非连接网络的计算设备的UI元素相关联的事件。

服务计算设备和/或主机计算设备可被配置成为客户端计算设备执行任何合适的
操作。图10-12示出响应于事件的通知而执行的与UI元素的实例相关联的不同操作的示例
场景。

图10示出其中事件触发用于调整客户端计算设备1000的操作的命令的示例场景。
该命令可表示与客户端计算设备1000的UI元素相关联的操作。具体而言,客户端计算设备
1000包括生成呈现客户端计算设备1000上安装的体育应用的篮球比分页的GUI 1002的触
摸显示器。GUI 1002包括在不同比赛中对战的不同球队以及与这些不同球队相关联的比分
的形式多个UI元素1004。此外,GUI 1002包括更新比分按钮1006。

客户端计算设备1000可被配置成响应于接收到选择更新比分按钮1006的触摸输
入来生成与更新比分按钮1006相关联的事件的通知。在其他实现中,更新比分按钮1006被
省略且比分被周期性地更新。在又一些其他实现中,更新被推送给客户端计算设备。任何合
适的事件可以触发执行与UI元素的实例相关联的操作。

该通知包括标识客户端计算设备1000上的更新比分按钮1006的实例或者以其他
方式标识适当的触发(即使它是无按钮触发)的经个别化UI元素标识符。客户端计算设备
1000将事件的通知经由广域网连接直接发送给服务计算设备1008或者通过连接网络的主
机计算设备进行中继。服务计算设备1008基于经个别化UI元素标识符来标识更新比分按钮
1006或另一触发并查找与该UI元素相关联的操作。在这种情况下,该操作包括向客户端计
算设备1000发送用于调整该客户端计算设备的操作的命令。具体而言,服务计算设备1008
将更新BLOB发送给客户端计算设备1000。更新BLOB包括要经由与GUI 1002中的经更新比分
相对应的UI元素呈现的经更新太阳城集团。

服务计算设备可以响应于一事件来将任何合适的经更新太阳城集团或经刷新太阳城集团发送
给客户端计算设备以经由UI元素来显示。例如,如果自最后更新以来只有一个球队的比分
已改变,则只有该比分需要被包括在更新BLOB中。在所解说的示例中,SEA的比分是唯一改
变的UI元素。如此,更新BLOB包括与SEA的比分相对应的UI元素的UI元素标识符以及数字
“7”的数据净荷。注意,这一改变在图12中被突出显示,但实际上,突出显示可以从GUI中省
略。

图11示出其中事件触发用于调整主机计算设备的操作的命令的示例场景。该命令
可表示与客户端计算设备的UI元素相关联的操作。具体而言,客户端计算设备1100包括生
成呈现客户端计算设备1100上安装的电话音量应用的一页的GUI 1102的触摸显示器。电话
音量应用可以允许用户调整充当该客户端计算设备的主机计算设备的智能电话1110的音
量。GUI 1102包括不同文本标记和音量滑块1106形式的多个UI元素1104。

客户端计算设备1100可被配置成响应于接收到调整音量滑块1106的位置的触摸
输入来生成与音量滑块1106相关联的事件的通知。该通知包括标识客户端计算设备1100上
音量滑块1106的实例的经个别化UI元素标识符。客户端计算设备1100可将事件的通知经由
广域网连接直接发送给服务计算设备1108或者通过连接网络的主机计算设备(例如,智能
电话1110)进行中继。服务计算设备1108基于经个别化UI元素标识符来标识音量滑块1106
并查找与该UI元素相关联的操作。在这种情况下,该操作包括向智能电话1110发送用于调
整该智能电话的操作的命令。具体而言,该命令可指令智能电话调整该智能电话上的扬声
器的音量。

在另一示例中,客户端计算设备1100是非连接网络的计算设备且智能电话1110充
当该客户端计算设备的主机计算设备。在这一示例中,客户端计算设备1100将事件的通知
发送给智能电话1110。该通知包括经本地化UI元素标识符。智能电话1110基于经本地化UI
元素标识符来标识音量滑块1106,例如经由存储在本地的映射来查找与该UI元素相关联的
操作。此外,智能电话1110执行该操作以直接调整音量。在一些实现中,作为节省带宽的措
施,智能电话1110可不将该通知中继到服务计算设备。在一些实现中,智能电话1110可以将
该通知中继到服务计算设备1108作为事件记录功能的一部分。

图12示出其中事件触发用于调整连接网络的计算设备的操作的命令的示例场景。
该命令可表示与客户端计算设备的UI元素相关联的操作。具体而言,客户端计算设备1200
包括生成呈现客户端计算设备1200上安装的电视观看伴侣应用的电视观众调查页的GUI
1202的触摸显示器。GUI 1202包括与连接网络的电视机1210上显示的不同风格的电视节目
相对应的不同投票按钮(例如,投票A、投票B、投票C、投票D)形式的多个UI元素1204。

客户端计算设备1200可被配置成响应于经由触摸或其他输入来选择投票按钮之
一而生成事件的通知。在这一示例中,用户通过经由对客户端计算设备1200的触摸输入来
选择按钮1206来投票给动作风格。该通知包括标识客户端计算设备1100上按钮1206的实例
的经个别化UI元素标识符。客户端计算设备1200将事件的通知经由广域网连接直接发送给
服务计算设备1208或者通过连接网络的主机计算设备进行中继。服务计算设备1208基于经
个别化UI元素标识符来标识按钮1206并查找与该UI元素相关联的操作。在这种情形下,该
操作包括例如经由上述事件记录模块在UI元素事件的日志中跟踪该事件。该日志可跟踪有
多少不同客户端计算设备选择了GUI中的不同投票按钮以便提高调查/投票功能性。此外,
服务计算设备1208可被配置成发送电视观众调查的结果以显示在客户端计算设备1200或
连接网络的电视机1210上。

在一些实现中,服务计算设备可被配置成为UI元素在不同客户端计算设备上的所
有实例执行操作。例如,同一电视观看伴侣应用可被安装在多个不同客户端计算设备上。在
一个示例中,作为管理多个客户端计算设备的GUI的一部分,服务计算设备可以发送更新
BLOB以更新经由调查结果UI元素显示的太阳城集团。具体而言,更新BLOB可包括要被更新的调查
结果UI元素的经本地化UI元素标识符以及包含表示调查结果的二进制数据的净荷。在一个
示例中,服务计算设备可以将更新BLOB广播给所有客户端计算设备。如果该应用被安装在
客户端计算设备上,则客户端计算设备可以更新经由经本地化UI元素标识符所指定的调查
结果UI元素显示的太阳城集团。如果该应用没有被安装在客户端计算设备上,则客户端计算设备
可以丢弃该更新BLOB。

在另一示例中,用于控制连接网络的电视机1210的应用可被安装在客户端计算设
备1200上,诸如虚拟遥控应用。虚拟遥控应用可包括能被选择以调整连接网络的电视机
1210的操作的UI元素。例如,UI元素可包括音量控件、频道控件、DVR控件、或另一合适的电
视机控件。客户端计算设备可以响应于经由用户输入选择这些遥控类型的UI元素之一来向
服务计算设备1208和/或连接网络的电视机1210发送事件的通知。此外,服务计算设备1208
可以将与UI元素相关联的命令发送给连接网络的电视机1210以调整该连接网络的电视机
的操作。例如,该命令可以改变频道、调整音量、记录电视节目、或执行另一合适的动作。客
户端计算设备可被用来以此方式调整连接网络的电视机的任何合适参数。

根据上述办法,仅通过客户端计算设备(或相关联的主机计算设备)提供包括任何
客户端计算设备的GUI中显示的任何UI元素的经个别化UI元素标识符的通知,可以向远程
计算设备(例如,服务计算设备、主机计算设备、第三方计算设备、或另一合适的计算设备)
通知触发执行与该UI元素相关联的操作的事件。换言之,这样的寻址方案可以允许客户端
计算设备按数据高效的方式向远程计算设备传递处理请求。

在提高通信效率的又一示例办法中,客户端计算设备可被配置成使用相同协议在
有线通信I/O接口和无线通信I/O接口两者上与远程计算设备通信。一般而言,这一协议可
以与任何数目的不同传输层(例如,USB、BT以及BTLE)一起使用。该协议的分组格式可在不
同通信I/O接口的传输层上完全相同。此外,该协议的客户端计算设备侧可具有针对所有传
输层的单个统一实现。在一个示例中,该协议可按在多个不同传输层上相同的方式将客户
端计算设备的特征(诸如UI元素、传感器信号、以及其他组成太阳城集团)暴露给远程计算设备。这
样的统一性可允许可兼容不同传输层的共享库。相应地,该共享实现可以降低客户端计算
设备上的存储器占用并可提高通信效率。

在一个示例中,该协议可以是包括命令阶段、数据阶段、以及状态阶段的三阶段协
议。在命令阶段期间,命令分组可以从远程计算设备发送给客户端计算设备。命令分组可以
指定要由客户端计算设备服务的命令。在数据阶段期间,可任选地,一个或多个数据分组可
以基于命令分组中指定的命令在远程计算设备和客户端计算设备之间传送。在状态阶段期
间,客户端计算设备可以将状态码发送给远程计算设备,指示该命令是否被客户端计算设
备成功服务。

在一个示例中,三阶段协议可以是包括多个不同命令的命令协议。更具体而言,命
令协议可以定义三个不同命令类型。第一命令类型指定远程计算设备在数据阶段期间将数
据发送给客户端计算设备。在第一命令类型的一个示例中,设置客户端计算设备的背光的
敏感度水平的命令可包括背光的所需强度水平。所需强度值可以在数据阶段期间从远程计
算设备发送给客户端计算设备。

第二命令类型指定远程计算设备在数据阶段期间接收来自客户端计算设备的数
据。在第二命令类型的一个示例中,请求客户端计算设备的背光的当前强度水平的命令可
以导致客户端计算设备将背光的当前强度水平发送给远程计算设备。

第三命令类型指定在数据阶段期间没有数据在远程计算设备与客户端计算设备
之间交换。在第三命令类型的一个示例中,打开背光的命令可以从远程计算设备发送给客
户端计算设备。

在一些实现中,命令协议的所有命令可由远程计算设备(例如,服务计算设备或主
机计算设备)发起。通过从远程计算设备发起所有命令,客户端计算设备可被允许具有较少
处理能力且仍然实现该命令协议。

图13示出可以在三阶段命令协议的命令阶段期间从远程计算设备发送给客户端
计算设备的示例命令分组1300。命令分组1300可包括命令或命令标识符1302、命令自变量
1304、以及存储器大小1306。命令1302可以从兼容不同通信I/O接口的不同传输层的命令库
中选择。具体而言,命令库可以由有线通信I/O接口和无线通信I/O接口共享。命令自变量
1304可以从可由客户端计算设备的命令处理程序处理以服务命令的多个命令自变量中选
择。命令自变量可任选地基于被选择来处理的命令的类型而被包括在命令分组中。命令自
变量的格式可在主机计算设备和执行该命令的客户端计算设备的命令处理程序之间被隐
式地知晓。命令自变量可被用来在数据阶段期间在数据从主机计算设备发送之前来设置或
初始化客户端计算设备以执行命令。存储器大小1306可以指定在三阶段命令协议的数据阶
段期间传送的数据的总存储器大小。

在一个示例中,客户端计算设备上的每一命令处理程序可由三个函数来定义。第
一函数可以是可任选地基于命令分组所指定的命令类型来执行的自变量设置函数。具体而
言,这一可任选函数可由命令处理程序注册以在接收到命令分组时在客户端计算设备上执
行设置操作。第二函数可以是可被注册并在命令处理程序服务其中数据从客户端计算设备
发送到远程计算设备的命令时执行的传送函数。第三函数可以是可被注册并在命令处理程
序服务其中数据由客户端计算设备从远程计算设备接收的命令时执行的接收函数。

图14A-14C示出根据三阶段命令协议的远程计算设备1400与客户端计算设备1402
之间的通信的示例场景。具体而言,三阶段命令协议可包括命令阶段1404、数据阶段1406、
以及状态阶段1408。在命令阶段1404期间,命令分组1410可以从远程计算设备1400发送给
客户端计算设备1402。基于命令分组1410所指定的命令的类型,数据分组可以或可以不在
数据阶段1406期间发送。如果命令指定数据分组在数据阶段1406期间发送,则该命令可进
一步指定数据分组要被发送的方向。在一个示例中,该方向可被隐式地编码在命令标识符
中。具体而言,在数据阶段期间,数据分组从远程计算设备1400发送到客户端计算设备1402
或数据分组从客户端计算设备1402发送到远程计算设备1400。在一些实现中,数据阶段可
在每命令的基础上被配置用于单向通信。

图14A示出其中命令指定远程计算设备1400在数据阶段1406期间将多个数据分组
1412发送给客户端计算设备1402的示例场景。图14B示出其中命令指定客户端计算设备
1402将多个数据分组1412发送给远程计算设备1400的示例场景。图14C示出其中命令指定
在数据阶段1406期间没有数据分组在远程计算设备1400与客户端计算设备1402之间传送
的示例场景。在数据阶段1406期间,任何合适数目的数据分组可被发送或接收。

在一些实现中,数据阶段1406可被优化以用于高效、高带宽通信。在一个示例中,
多个数据分组1406可被配置而无需任何特殊报头或标志,以降低在各设备之间传送的数据
的量。

在另一示例中,数据分组1406的大小可被动态地选择以与通过其发送该数据分组
的通信I/O接口的最大传输单元(MTU)相对应。具体而言,如果数据分组经由有线通信I/O接
口发送,则各分组可根据该有线通信I/O接口的MTU来设定大小。如果数据分组经由无线通
信I/O接口发送,则各数据分组可根据该无线通信I/O接口的MTU来设定大小。注意,不同通
信I/O接口各自可具有不同MTU。

如上所述,在一些实现中,客户端计算设备可包括共享缓冲器,诸如图1B中示出的
共享缓冲器66。共享缓冲器可以是配置成保持经由有线通信I/O接口发送或经由无线通信
I/O接口发送的机器可读数据分组的存储机。换言之,共享缓冲器可充当在数据阶段1306期
间发送的外出数据分组的线索。在一些实现中,可以一次在仅一个传输协议上服务任何特
定命令(例如,当命令在USB上运行时,BT/BTLE上的命令被阻塞)。一旦命令被发送,则下一
命令可被处理。在一个示例中,每一传输层可以支持一个经阻塞的命令,并且传输层的经阻
塞的命令可被存储在共享缓冲器中。

在一个示例中,共享缓冲器可具有与有线通信I/O接口的MTU和无线通信I/O接口
的MTU中的最大MTU相对应的大小。在其中存在具有不同MTU的多个不同无线和/或有线通信
I/O接口的情形下,共享缓冲器可根据该多个不同MTU中的最大MTU来设定大小。相应地,共
享缓冲器可被设计成以相同的方式促进操作来在不同通信I/O接口上通信。

在状态阶段1408期间,客户端计算设备1402可以将状态码1414发送给远程计算设
备。状态码1414可以指示该命令是否被命令处理程序成功接收。在一个示例中,命令协议中
的每一命令可以状态码1414被发送到远程计算设备而结束。在一些实现中,如果该命令没
有被客户端计算设备1402成功服务,则状态码1414可以指示在服务命令时发生的错误的类
型。在一个示例中,如果在USB上的数据阶段中间报告了错误,则可通过停止其上发生数据
传输的USB管道来指示该错误。在另一示例中,如果在BT/BTLE上的数据阶段中间报告了错
误,则可通过断开正在其上传送数据的套接字连接来指示该错误。如果在数据阶段的最后
部分期间或恰在状态阶段之前发生了错误,则可通过发送出错状态消息来指示该错误。

通过根据上述办法提高通信效率,客户端计算设备的本地资源约束可被隐藏。

图15示出用于管理能由客户端计算设备显示的GUI的呈现的示例方法1500。例如,
方法1500可由客户端计算设备执行,诸如图2中示出的客户端计算设备A-N。

在1502,方法1500可包括接收定义GUI的视觉布局的UI布局文件。UI布局文件可包
括多个UI元素。每一UI元素可包括UI元素标识符和UI元素描述符。UI元素标识符可以将该
UI元素与UI布局文件中的每一其他UI元素区分开。UI元素描述符可以定义经由该UI元素显
示的太阳城集团的属性。例如,该属性可包括UI元素类型、存储器大小、位置、颜色、子UI元素的数
目、和/或其他合适的属性中的一者或多者。

在一些实现中,UI布局文件可具有经平坦化树结构,其中多个UI元素在该UI布局
文件中根据父-子关系来排序。在一些实现中,UI布局文件可包括指示该UI布局文件的版
本、根UI元素的紧接子节点的数目、以及该UI布局文件中UI元素的总数的页头部。在一些实
现中,UI布局文件可具有二进制机器可读格式。

UI布局文件可经由数字通信信道来接收。在一些情形下,UI布局文件可以通过广
域网连接从服务计算设备接收。在一些情形下,客户端计算设备可不经由广域网连接与服
务计算设备直接通信。相反,该计算设备可被配置成经由第一局域网连接与主机计算设备
通信。此外,主机计算设备可被配置成经由第二广域网连接与服务计算设备通信。服务计算
设备可被配置成将UI布局文件发送给主机计算设备,且主机计算设备可被配置成将UI布局
文件中继给客户端计算设备,使得UI布局文件可以从主机计算设备接收。换言之,UI布局文
件可以经由主机计算设备中继来从服务计算设备接收。

在1504,方法1500可包括根据UI布局文件经由客户端计算设备的显示器呈现GUI。

在1506,方法1500可包括接收更新BLOB。更新BLOB可指定UI布局文件中要改变的
一个或多个UI元素。对于要改变的每一UI元素,更新BLOB可包括该UI元素的UI元素标识符
以及包含要经由该UI元素显示的经更新太阳城集团的更新净荷。

在一些情形下,更新BLOB可以从服务计算设备接收。在一些情形下,更新BLOB可以
从主机计算设备接收。在一些实现中,更新BLOB可具有二进制机器可读格式。

在1508,方法1500可包括对于更新BLOB所指定的每一UI元素,基于该UI元素的UI
元素标识符来从UI布局文件确定该UI元素的属性。

在1510,方法1500可包括根据更新BLOB经由显示器改变GUI。

图16示出用于向多个客户端计算设备提供基于订阅的数据以管理能由该多个客
户端计算设备显示的GUI的呈现的示例方法1600。例如,方法1600可由服务计算设备或主机
计算设备执行,诸如图2中示出的服务计算设备202或主机计算设备A和B。

在1602,方法1600可包括向多个订阅方计算设备提供针对UI布局文件的订阅。

UI布局文件可以定义能由该多个计算设备中的每一者显示的GUI的视觉布局。UI
布局文件可包括多个UI元素。每一UI元素可包括UI元素标识符和UI元素描述符。UI元素标
识符可以将该UI元素与UI布局文件中的每一其他UI元素区分开。UI元素描述符可以定义经
由该UI元素显示的太阳城集团的属性。在一些实现中,UI布局文件可具有二进制机器可读格式。

在1604,方法1600可包括将UI布局文件发送给多个订阅方计算设备以根据UI布局
文件显示GUI。

在1606,方法1600可包括生成指定UI布局文件中要改变的一个或多个UI元素的更
新BLOB。对于要改变的每一UI元素,更新BLOB可包括该UI元素的UI元素标识符以及包含要
经由该UI元素显示的经更新太阳城集团的更新净荷。

在一些实现中,经更新BLOB中包括的更新太阳城集团可由服务计算设备生成。在其他实
现中,经更新太阳城集团可以从另一源接收。相应地,在1608,方法1600可任选地可包括从第三方
计算设备接收具有人类可读格式的太阳城集团。

在1610,方法1600可任选地可包括执行具有人类可读格式的太阳城集团的变换以生成具
有二进制机器可读格式的经更新太阳城集团。该经更新太阳城集团可被包括在更新BLOB中。

在1612,方法1600可包括将更新BLOB发送给多个订阅方计算设备以根据该更新
BLOB改变GUI。在一些实现中,更新BLOB具有二进制机器可读格式。在一些情形下,UI布局文
件和更新BLOB可以通过广域网连接发送给订阅方计算设备。在其他情形下,UI布局文件可
以经由主机计算设备中继来发送给订阅方计算设备。

图17示出用于响应于接收到与客户端计算设备的UI元素相关联的事件的通知来
向客户端计算设备远程提供资源的示例方法1700。例如,方法1700可由服务计算设备或主
机计算设备执行。

在1702,方法1700可包括接收事件的通知。该通知可包括将一UI元素的实例与任
何UI元素的每一其他实例区分开的经个别化UI元素标识符。经个别化UI元素标识符可包括
设备标识符、应用标识符、页索引、以及UI元素标签。设备标识符可以将客户端计算设备与
每一其他计算设备区分开。应用标识符可以将一应用与每一其他应用区分开。页索引可以
将UI元素的实例位于其上的页与应用中包括的每一其他页区分开。UI元素标签可以将该UI
元素与该页中包括的每一其他UI元素区分开。

任何合适的事件可以触发通知被发送给远程计算设备。在一个示例中,事件可包
括经由到客户端计算设备的用户输入选择了UI元素的实例或以其他方式进行交互。在另一
示例中,事件可以由客户端计算设备的另一操作来触发。在又一示例中,事件可被重复触
发,诸如周期性地。

在1704,方法1700可包括基于事件的通知中包括的经个别化UI元素标识符来标识
UI元素的实例。

在1706,方法1700可包括响应于标识UI元素的实例,执行与UI元素的实例相关联
的操作。在一个示例中,每一经个别化UI元素标识符可被映射到一个或多个操作,并且该操
作可以通过执行对映射的查找来标识。该操作可包括任何合适类型的操作。在一个示例中,
在1708,方法1700可包括向主机计算设备发送用于调整主机计算设备的操作的命令。在另
一示例中,在1710,方法1700可包括向不同于主机计算设备的连接网络的计算设备发送用
于调整该连接网络的计算设备的操作的命令。在又一示例中,在1712,方法1700可包括向主
机计算设备发送用于调整客户端计算设备的操作的命令。在这一情形下,主机计算设备可
被配置成将该命令转发给客户端计算设备。

图18示出用于高效地中继客户端计算设备和服务计算设备之间的通信的示例方
法1800。例如,方法1800可由与客户端计算设备配对的主机计算设备(诸如图2中所示的主
机计算设备A和B)执行。

在1802,方法1802可包括从客户端计算设备接收事件的通知。该通知可包括将UI
元素的实例与能在客户端计算设备的任何应用中显示的每一UI元素的每一其他实例区分
开的经本地化UI元素标识符。经本地化UI元素标识符可包括应用标识符、页索引、以及UI元
素标签。应用标识符可以将一应用与每一其他应用区分开。页索引可以将UI元素的实例位
于其上的页与应用中包括的每一其他页区分开。UI元素标签可以将该UI元素与该页中包括
的每一其他UI元素区分开。事件的通知可经由数字通信信道来接收。数字通信信道可以是
有线或无线的。数字通信信道可以采取任何合适形式的通信信道以传送机器可读数据。

在1804,方法1800可包括将设备标识符添加到经本地化UI元素标识符上以生成经
个别化UI元素标识符。设备标识符可以将客户端计算设备与每一其他计算设备区分开。

在1806,方法1800可包括将包括经个别化UI元素标识符的通知中继到服务计算设
备。

取决于与UI元素的实例相关联的操作的类型,服务计算设备可以将命令发送给主
机计算设备或客户端计算设备。相应地,在1808,方法1800可任选地可包括响应于将通知中
继到服务计算设备,从服务计算设备接收用于调整该计算设备的操作的命令,该操作与UI
元素的实例相关联。在其他情形下,服务计算设备可以将命令发送给不同连接网络的设备。
在又一些其他情形下,服务计算设备可以执行操作而不向另一计算设备发送命令。

在1810,方法1800可任选地可包括确定该命令是被定向在主机计算设备处还是该
命令被定向在客户端计算设备处。如果命令被定向在主机计算设备处,则方法1800可移至
1812。否则,方法1800可移至1814。

在1812,方法1800可任选地可包括根据命令来调整计算设备的操作。

在1814,方法1800可任选地可包括将命令中继到客户端计算设备。

图19示出用于使用相同的三阶段协议通过不同通信I/O接口与远程计算设备进行
通信的示例方法1900。例如,该方法可由客户端计算设备执行,诸如图2中示出的客户端计
算设备A-N。

在1902,方法1900可包括使用相同的三阶段协议经由有线通信I/O接口和无线通
信I/O接口两者与远程计算设备通信。三阶段协议可包括命令阶段、数据阶段、以及状态阶
段。

在1904,方法1900可包括在命令阶段期间从主机计算设备接收命令分组。命令分
组可包括命令、命令自变量、以及存储器大小。命令可以从由有线通信I/O接口和无线通信
I/O接口共享的命令库中选择。命令自变量可以从由该计算设备的命令处理程序处理以服
务该命令的多个命令自变量中选择。存储器大小可以指定在数据阶段期间传送的数据的总
存储器大小。

在1906,方法1900可包括确定命令分组中包括的命令指定在数据阶段期间从客户
端计算设备发送数据、在数据阶段期间在客户端设备处接收数据、还是在数据阶段期间不
传送数据。如果命令指定在数据阶段期间从客户端计算设备发送数据,则该方法移至1908。
否则,如果命令指定在数据阶段期间在客户端计算设备处接收数据,则方法1900移至1910。
否则,方法1900移至1912。

在1908,方法1900可包括在数据阶段期间将一个或多个数据分组发送给远程计算
设备。

在1910,方法1900可包括在数据阶段期间从远程计算设备接收一个或多个数据分
组。

在1912,方法1900可包括在状态阶段期间向主机计算设备发送状态码。状态码可
以指示该命令是否被命令处理程序成功服务。在一些实现中,如果该命令没有被可穿戴设
备成功服务,则状态码可以指示在服务命令时发生的错误的类型。

在一些实现中,第一命令分组可经由有线I/O接口接收。如此,第一一个或多个数
据分组可如来自第一命令分组的命令所指定地被发送或接收。因为第一命令分组是经由有
线I/O接口接收的,所以第一一个或多个数据分组也可以经由有线I/O接口来发送或接收。
此外,第二命令分组可经由无线I/O接口来接收。如此,第二一个或多个数据分组可如来自
第二命令分组的命令所指定地被发送或接收。因为第二命令分组是经由无线I/O接口接收
的,所以第二一个或多个数据分组也可以经由无线I/O接口来发送或接收。

一些计算设备可以实现基于发布者/订阅者的办法,其中订阅者模块订阅发布者
模块或其他数据源。在这样的办法中,在数据源发布数据时,数据源向订阅者模块(以及订
阅该数据源的每一其他模块)通知所发布数据。

这一办法的限制在于在数据被发布时,依赖于发布方数据源来主动通知订阅者模
块。当在单个计算设备的界限内运行时,这样的限制不是问题。然而,如果数据源位于与订
阅者模块不同的计算设备上,则可发生通知问题。例如,在一些情形下,带宽约束可按延迟
所发布数据或其他太阳城集团按及时的方式被发送/接收。作为另一示例,不同订阅方模块对同一
所发布数据的重复请求可造成同一太阳城集团在设备之间重复传送,这消耗功率。在又一示例中,
数据源可位于客户端计算设备上且订阅方模块可位于对与客户端计算设备的通信进行中
介的主机计算设备上。换言之,主机计算设备可以发起客户端计算设备与主机计算设备之
间的所有通信。例如,客户端计算设备可以只响应于接收到来自主机计算设备的请求来将
数据发送给主机计算设备。在这样的示例中,客户端计算设备可不具有向主机计算设备上
的订阅者通知新数据可用的机制。

相应地,在一些实现中,可以实现一种向订阅者完全隐藏数据源位于远程计算设
备上的办法。此外,这样的办法可为没有独立地启用推送通信的各通信协议启用“推送”通
信模型,诸如主机中介通信实现。

图20示出与客户端计算设备2002通信的示例主机计算设备2000。主机计算设备
2000和客户端计算设备2002可以采取任何合适的形式。在一个特定示例中,主机计算设备
2000是智能电话而客户端计算设备2002是可穿戴计算设备。

客户端计算设备2002包括多个数据源2004。多个数据源2004中的每一者可被配置
成发布数据。数据源可以按任何合适的方式以任何合适的速率发布任何合适类型的数据。
在一些情形下,数据源可以在指定时段和/或根据指定太阳城集团安排来发布数据。在一些情形
下,数据源可以响应于触发或条件来发布数据。

在一个示例中,数据源可包括测量身体参数的传感器。在其中客户端计算设备
2002是可穿戴计算设备的一个特定示例中,数据源可包括测量该可穿戴计算设备的穿戴者
的身体参数的传感器。在另一示例中,数据源可包括输出从接收自另一中间模块或传感器
的输入数据导出的数据的模块。客户端计算设备2002可包括任何合适的数目和/或类型的
数据源。

客户端计算设备2002可包括配置成管理由多个数据源2004发布的数据以及配置
成管理对数据源2004所提供的所发布数据的订阅的远程订阅管理器2006。例如,远程订阅
管理器2006可被配置成建立对多个数据源2004中的每一者的订阅。相应地,在多个数据源
2004中的数据源发布数据时,远程订阅管理器2006可通过对该数据源的订阅来接收该数
据。

远程订阅管理器2006可包括配置成存储由多个数据源2004提供的所发布数据的
订阅缓冲器2008。订阅缓冲器2008可以是配置成存储所发布数据(例如,数据分组)以准备
分发给订阅该所发布数据的各模块的物理存储机。订阅缓冲器2008可包括用于存储所发布
数据的多个数据槽2010。在所描绘的示例中,订阅缓冲器2008包括与每一订阅相对应的数
据槽。这样的配置可以只允许数据源所提供的所发布数据的最新近版本被存储在订阅缓冲
器中。这样的实现可能适于具有有限存储资源的客户端计算设备。在另一示例中,订阅缓冲
器2008可包括与每一订阅相对应的多个数据槽以存储数据源所提供的所发布数据的多个
版本。

在一些实现中,每一数据源可由经个别化数据源标识符2012来标识。在所描绘的
示例中,订阅缓冲器2008的多个数据槽2010可根据已建立对其的订阅的数据源的数据源标
识符来组织。换言之,数据源标识符可被用来对订阅缓冲器2008中的对应数据槽进行寻址。
所发布数据的数据净荷2014可被存储在多个数据槽2010中的每一者中。

在一些实现中,客户端计算设备2002与主机计算设备2000之间的通信可以由主机
计算设备2000来中介。换言之,客户端计算设备2002可以只响应于接收到来自主机计算设
备2000的请求来将所发布数据发送给主机计算设备2000。在这样的实现中,可存在其中在
接收到来自主机计算设备2000的各请求之间数据源发布了数据的多个版本的情形。相应
地,在一些这样的实现中,与每一数据源相对应的错过样本计数2016可被存储在订阅缓冲
器2008中。错过样本计数2016可以指示自接收到来自主机计算设备2000的最后读请求以来
数据源已发布数据的次数。例如,如果在主机设备请求数据读之前新数据已从数据源发布,
则错过样本计数2016可针对具有先前没有发送给主机计算设备2000的未读数据的每一数
据源递增。错过样本计数2016可被发送给主机计算设备2000并可由主机计算设备2000使用
来调整向客户端计算设备2002发送对所发布数据的请求的频率。

主机计算设备2000包括订阅所发布数据和/或提供所发布数据的数据源的多个模
块2018。一模块可订阅任何合适类型的所发布数据和/或任何合适类型的数据源,包括位于
主机计算设备2000上的数据源和/或位于客户端计算设备2002上的数据源。一模块可具有
对由不同数据源提供的不同类型的所发布数据的多个订阅。多个模块可订阅相同类型的所
发布数据和/或同一数据源。

主机计算设备2000可包括配置成管理订阅并将所发布数据在本地分发给主机计
算设备2000的多个模块2018的远程订阅分派器2020。在一些情形下,远程订阅分派器2020
可以充当作为提供所发布数据的客户端计算设备2002的数据源的代理的本地数据发布者。

远程订阅分派器2020包括订阅所发布数据和/或提供所发布数据的数据源的各模
块的订阅列表2022。在从远程订阅管理器2006接收到所发布数据时,远程订阅分派器2020
可以参考订阅列表2022以将所发布数据分发给订阅以接收所发布数据的主机计算设备
2000的适当模块。在一个示例中,订阅列表2022可根据已建立对其的订阅的数据源的数据
源标识符2012来组织。例如,在远程订阅分派器2020接收到来自模块的对数据源的订阅的
请求时,远程订阅分派器2020可以检查订阅列表2022以查看是否已针对该数据源建立了订
阅。如果没有建立先前订阅,则远程订阅分派器2020将针对该数据源的新条目添加到订阅
列表2022。否则,如果先前已针对该数据源建立了订阅,则远程订阅分派器2020将该模块添
加到订阅以接收该数据源所提供的所发布数据的模块列表。

订阅列表2022可按此方式来组织以防止从主机计算设备2000向客户端计算设备
2002发送针对同一所发布数据的冗余请求。相应地,在主机计算设备2000和客户端计算设
备2002之间传送的数据可被降低。在另一示例中,从一模块接收到的每一订阅请求可由远
程订阅分派器2020转发给客户端计算设备2002的远程订阅管理器2006。

在一些实现中,一模块可以将包括数据源标识符2012的订阅请求发送给远程订阅
分派器2020。在其他实现中,一模块可以将不包括数据源标识符2012的订阅请求发送给远
程订阅分派器2020。例如,该请求可仅标识该模块期望接收的数据的类型。在这样的实现
中,远程订阅分派器2020可经由代理功能将数据源标识符2012添加到订阅请求。使用这样
的代理功能向各模块提供了允许以相同方式作出订阅请求而不管数据源是本地地位于主
机计算设备2000上还是远程地位于客户端计算设备2002上的透明性。

此外,远程订阅分派器2020可被配置成管理与客户端计算设备2002的远程订阅管
理器2006的通信。具体而言,远程订阅分派器2020可被配置成向客户端计算设备2002周期
性地发送读请求。可以采用任何合适的周期性太阳城集团区间。在一个示例中,读请求是针对订阅
缓冲器2008中存储的所有远程所发布数据的。在这种情形下,读请求可以是自己不知道要
读取什么数据的单个命令。在另一示例中,读请求能以来自特定数据源的所发布数据为目
标,并且该读请求可包括与远程订阅分派器期望接收的所发布数据相对应的特定数据源标
识符。

响应于接收到来自远程订阅分派器2020的读请求,远程订阅管理器2006可被配置
成将订阅缓冲器2008中存储的所有所发布数据发送给远程订阅分派器2020。所发布数据可
被编组以用于按任何合适的方式传输。在一个示例中,远程订阅管理器2006可以发送所发
布数据的多个数据分组。与数据源相对应的每一数据分组可包括所发布数据的被包裹在报
头中的数据净荷2014,报头指示提供该所发布数据的数据源的数据源标识符2012。此外,每
一数据分组可任选地可包括错过样本计数2016。例如,错过样本计数2016可以在其中通信
不是由主机中介的实现中省略。

客户端计算设备2002可以按任何合适的方式将所发布数据发送给主机计算设备
2000。例如,多个数据分组可以在有线通信I/O接口和/或无线通信I/O接口上发送。相同的
通信协议可被用于有线和无线通信两者。在一个示例中,通信协议可包括主机中介的传输
层协议,其中只有主机计算设备2000发起客户端计算设备2002与主机计算设备2000之间的
通信。

响应于接收到来自远程订阅管理器2006的多个数据分组,远程订阅分派器2020可
以将所发布数据存储在所发布数据缓冲器2024中。所发布数据缓冲器2024可以是配置成存
储所发布数据以供分发给主机计算设备2000的各订阅方模块的物理存储机。此外,远程订
阅分派器2020可被配置成标识从远程订阅管理器2006接收到的每一数据分组中的数据源
标识符。数据源标识符可以标识提供数据分组中包括的所发布数据的数据源。例如,数据源
标识符可以位于数据分组的报头中。此外,远程订阅分派器2020可被配置成在订阅列表
2022中查找订阅以接收来自与所标识的数据源标识符相对应的数据源的所发布数据的模
块,并将该数据分组分发给那些模块。

在一些实现中,远程订阅分派器2020可被配置成在将数据分组发送给订阅方模块
之前从数据分组移除数据源标识符2012和错过样本计数2016。换言之,远程订阅分派器
2020可被配置成只将所发布数据的数据净荷2014发送给订阅方模块。在这样的实现中,从
订阅方模块的观点来看,通过远程订阅接收到的数据分组可看起来与通过本地订阅提供的
数据分组相同。

由于周期性地发送读请求的性质(也称为轮询所发布数据),如果轮询太阳城集团区间过
低,则所发布数据样本将被错过(如错过样本计数所指示的)。相应地,用于确定采样速率或
调整周期性太阳城集团区间的智能方案可被采用以增加接收到所有所发布数据的可能性。在一个
示例中,读请求频率可以被设置成最频繁地发布数据的数据源的频率的两倍。当在客户端
计算设备2002上激活各自以不同周期性速率进行发布的诸订阅时,远程订阅分派器2020可
被配置成动态地调整远程订阅分派器2020发送读请求的速率。例如,该速率可被动态地调
整以符合最频繁地进行发布的数据源。如此,远程订阅分派器2020可能不会不必要地发送
读请求,这可节省带宽、处理和/或功率资源。

在一些实现中,采样速率可基于数据源的错过样本计数来动态地改变。例如,如果
数据源的错过样本计数小于阈值,则采样速率可能足以捕捉足够的所发布数据。如此,采样
速率可被动态地降低直至错过样本计数达到阈值,以降低在主机计算设备2000与客户端计
算设备2002之间传送的数据的量。另一方面,如果数据源的错过样本计数大于阈值,则采样
速率可被动态地增加直至错过样本计数小于阈值,以捕捉合适量的数据源所发布的数据。

图21示出用于根据多个订阅将由客户端计算设备的数据源所产生的所发布数据
提供给主机计算设备的示例方法2100。例如,方法2100可由远程订阅管理器执行,诸如图20
中所示的客户端计算设备2002的远程订阅管理器2006。在一个特定示例中,远程订阅管理
器2006位于包括发布由位于智能电话上的各模块订阅的数据的数据源的可穿戴计算设备
上。远程订阅管理器2006与智能电话的远程订阅分派器2020通信以模拟允许可穿戴计算设
备的数据源所发布的数据由智能电话的订阅方模块接收的推送通信协议。在另一示例中,
方法2100可由图1A和1B中示出的可穿戴计算设备10、图2中所示的多个客户端计算设备204
之一、图3中所示的客户端计算设备300、图13和14中所示的客户端计算设备1402、或图29中
所示的计算系统2900执行。在任何情形下,执行方法2100的计算设备可充当客户端计算设
备。

在2102,方法2100可任选地可包括从主机计算设备的远程订阅分派器接收多个订
阅请求。每一订阅请求可包括标识客户端计算设备的数据源的数据源标识符。

在2104,方法2100可包括建立多个订阅以接收由客户端计算设备的多个数据源所
发布的数据。每一订阅可对应于不同数据源。

在一些实现中,可响应于接收到来自主机计算设备的远程订阅分派器的多个订阅
请求来建立多个订阅。在其他实现中,可响应于接收到来自另一源(诸如远程服务计算设
备)的多个订阅请求来建立多个订阅。在一些情形下,这样的请求可由主机计算设备2000中
继。在一些实现中,客户端计算设备可以建立多个订阅而无需接收任何订阅请求。

此外,在其中客户端计算设备包括配置成与主机计算设备进行通信的有线通信I/
O接口和配置成与主机计算设备进行通信的无线通信I/O接口的一些实现中,该方法可包括
经由有线通信I/O接口和无线通信I/O接口两者与主机计算设备通信。在一个示例中,通信
可包括使用主机中介传输层协议,其中只有远程计算设备发起客户端计算设备与主机计算
设备之间的通信。换言之,因为主机计算设备发起主机计算设备与客户端计算设备之间的
所有通信,在主机计算设备发起与客户端计算设备的通信时,多个订阅可被建立以增加所
发布数据可供发送给主机计算设备的可能性。

在2106,方法2100可包括经由订阅接收来自客户端计算设备的数据源的所发布数
据。

在2108,方法2100可包括将所发布数据存储在订阅缓冲器中。例如,订阅缓冲器可
以是配置成存储由客户端计算设备的数据源所提供的所发布数据的存储机。在一些实现
中,已建立对其的订阅的数据源在任何时刻发布数据时,该所发布数据可被存储在订阅缓
冲器中。

在一些实现中,订阅缓冲器可包括与已建立的每一订阅相对应的数据槽。数据槽
可被配置成只存储由一数据源所提供的所发布数据的一个实例。如此,如果数据源提供所
发布数据的新实例,则新实例可替换数据槽中的所发布数据的较旧实例。订阅缓冲器可以
按这样的方式配置以限制专用于存储所发布数据的存储资源。在具有有限存储资源的客户
端计算设备(诸如可穿戴计算设备)的实现中,这样的配置可以是合乎需要的。在这样的实
现中,在2110,方法2100可包括响应于经由订阅接收到来自数据源的所发布数据,将所发布
数据存储在与该订阅相对应的数据槽中。在其他实现中,订阅缓冲器可包括与每一订阅相
对应的多个数据槽,并且数据源所提供的所发布数据的多个实例可被存储在该多个数据槽
中。

在2112,方法2100可包括从主机计算设备的远程订阅分派器接收读请求。在一些
实现中,读请求可以是对由远程订阅管理器作为订阅的结果存储的所有所发布数据的请
求。在一些实现中,读请求可以是自己不知道要读取什么数据的单个命令。这样的配置可降
低主机计算设备与客户端计算设备之间传送的数据的量,这在其中主机计算设备与客户端
计算设备之间的通信链路具有有限传输带宽的实现中是合乎需要的。在一些实现中,读请
求可以在周期性太阳城集团区间上从主机计算设备接收。在一些实现中,读请求可以是包括数据
源的数据源标识符的定向读请求,且该定向读请求可以是对数据源所提供的所发布数据的
请求。

在2114,方法2100可包括响应于接收到来自主机计算设备的远程订阅分派器的读
请求,向主机计算设备发送包括订阅缓冲器中存储的所发布数据的一个或多个数据分组。
在一些实现中,响应于接收到读请求,发送已建立对其的订阅的所有数据源所提供的所发
布数据。在一个示例中,只有每一数据源所提供的所发布数据的最新近发布的版本被发送
给主机计算设备。在另一示例中,订阅缓冲器中存储的每一数据源所提供的所发布数据的
所有版本被发送给主机计算设备。例如,数据分组可包括与多个订阅相对应的数据槽中存
储的所发布数据。在其他实现中,只有存储在订阅缓冲器中且从读请求中标识的数据源提
供的所发布数据可被发送给主机计算设备。

在一些实现中,每一数据分组可包括标识提供了该数据分组中包括的所发布数据
的数据源的数据源标识符。在一些实现中,每一数据分组可包括指示自接收到来自主机计
算设备的远程订阅分派器的最后读请求以来数据源已发布数据的次数的错过样本计数。

图22和23示出用于根据订阅将由客户端计算设备的数据源所提供的所发布数据
分发给主机计算设备的各模块的示例方法2200。例如,方法2100可由远程订阅分派器执行,
诸如图20中所示的主机计算设备2000的远程订阅分派器2020。在一个特定示例中,远程订
阅分派器2020位于具有订阅位于可穿戴计算设备上的各数据源的各模块的智能电话上。远
程订阅分派器2020与可穿戴计算设备的远程订阅管理器2006通信以模拟允许可穿戴计算
设备的数据源所发布的数据由智能电话的订阅方模块接收的推送通信协议。在另一示例
中,方法2200可由图2中示出的主机计算设备A、图13和14中示出的远程计算设备1400、或图
29中示出的计算系统2900执行。在任何情形下,执行方法2100的计算设备充当主机计算设
备。

在2202,方法2200可包括从主机计算设备的多个模块接收用于接收所发布数据的
多个订阅请求。在一些情形下,多个模块中的两者或更多者可以请求订阅以接收来自同一
数据源的相同的所发布数据。

在一些实现中,接收所发布数据的请求可包括显式地标识提供所发布数据的数据
源的数据源标识符。换言之,各模块可以将数据源标识符传递给远程订阅分派器。

在其他实现中,接收所发布数据的请求可不标识提供该所发布数据的特定数据
源。在这样的实现中,在2204,方法2200可任选地可包括对于接收到的来自多个模块的每一
订阅请求,标识客户端计算设备的提供由该订阅请求所指示的所发布数据的数据源。此外,
在2206,方法2200可任选地可包括对于每一订阅请求,将标识该数据源的数据源标识符添
加到该订阅请求。在这样的实现中,远程订阅分派器可以向该模块提供代理功能性以允许
所请求的订阅被满足。

在2208,方法2200可包括对于每一数据源标识符,基于多个订阅请求建立订阅以
接收对应数据源所提供的所发布数据的各模块的列表。各种列表可被用来将每一数据源所
提供的所发布数据分发给适当的订阅方模块。

在2210,方法2200可包括向客户端计算设备的远程订阅管理器发送多个订阅请求
以接收来自客户端计算设备的数据源的所发布数据。每一订阅请求可对应于不同数据源。

在一些实现中,远程订阅分派器可以比较接收到的各订阅请求以标识从不同模块
接收到的对相同数据的冗余请求。相应地,在2212,方法2200可任选地可包括对于每一数据
源,向客户端计算设备的远程订阅管理器发送单个订阅请求以接收该数据源提供的所发布
数据。

在2214,方法2200可包括向客户端计算设备的远程订阅管理器发送对客户端计算
设备的请求了对其的多个订阅的各数据源所发布的数据的读请求。在一些实现中,读请求
可以是对由远程订阅管理器作为订阅的结果存储的所有所发布数据的请求。在一些实现
中,读请求可以是自己不知道要读取什么数据的单个命令。在其他实现中,读请求可以是包
括数据源的数据源标识符的定向读请求,且该定向读请求可以是对数据源所提供的所发布
数据的请求。

在一些实现中,读请求可以被周期性地发送给客户端计算设备的远程订阅管理
器。可以采用任何合适的周期性太阳城集团区间。在一些实现中,周期性太阳城集团区间可以是预定的。
在其他实现中,周期性太阳城集团区间可以被动态地调整。

在2216,方法2200可包括根据多个订阅请求从客户端计算设备的远程订阅管理器
接收包括由客户端计算设备的数据源所发布的数据的一个或多个数据分组。在一些实现
中,该一个或多个数据分组可包括来自已建立对其的订阅的每一数据源的所发布数据。在
一个示例中,所发布数据可以是数据源所提供的所发布数据的最新近实例。在另一示例中,
所发布数据可以是数据源所提供的所发布数据的所有实例。在一些实现中,该一个或多个
分组可包括客户端计算设备的订阅缓冲器中存储的任何所发布数据。

在一些实现中,该一个或多个数据分组中的每一者可包括标识提供了该数据分组
中包括的所发布数据的数据源的数据源标识符。在这样的实现中,在2218,方法2200可任选
地可包括对于该一个或多个数据分组中的每一者,在将该数据分组发送给各模块之前从该
数据分组移除数据源标识符。

在一些实现中,该一个或多个数据分组中的每一者可包括指示自客户端计算设备
接收到最后读请求以来数据源已发布数据的次数的错过样本计数。在这样的实现中,在
2220,方法2200可任选地可包括对于该一个或多个数据分组中的每一者,在将该数据分组
发送给各模块之前从该数据分组移除错过样本计数。

在2222,方法2200可包括将该一个或多个数据分组发送给订阅以接收该一个或多
个数据分组中包括的所发布数据的各模块。

在一些实现中,在2224,方法2200可包括对于该一个或多个数据分组中的每一者,
将该数据分组发送给订阅模块列表上的订阅与该数据分组中的数据源标识符相对应的数
据源的各模块。如此,至少一个数据分组可被发送给请求了对相同的所发布数据的订阅的
两个或更多个模块。

在2226,方法2200可任选地可包括基于一个或多个数据分组的错过样本计数,将
向客户端计算设备的远程订阅管理器发送读请求的周期性太阳城集团区间调整成经更新周期性
太阳城集团区间。例如,如果错过样本计数小于阈值,则周期性太阳城集团区间可被增加。在另一示例中,
如果错过样本计数大于阈值,则周期性太阳城集团区间可被降低。

在2228,方法2200可任选地可包括根据经更新周期性太阳城集团区间向客户端计算设备
的远程订阅管理器周期性地发送读请求。

上述方法可被执行以允许客户端计算设备的数据源所发布的数据以存储资源高
效和传输带宽高效的方式被存储和发送给主机计算设备。在其中主机计算设备发起主机计
算设备与客户端计算设备之间的所有通信的实现中,这些方法可尤其有用,因为客户端计
算设备的数据源可能没有在新数据变得可用时通知主机计算设备的各模块的其他机制。

在其中基于发布者/订阅者的办法被实现在计算设备上的实现中,不同数据源(例
如,硬件组件,诸如传感器或中介模块)可以采用不同类型的订阅。在一个示例中,一模块可
具有指定激活数据源以将所发布数据提供给该模块来满足订阅的主动型订阅。例如,在可
穿戴计算设备的情形下,一模块可主动订阅测量可穿戴计算设备的穿戴者的身体参数的生
物测定传感器,并且生物测定传感器可响应于激活该订阅以将所发布数据提供给该模块来
打开和/或启用身体参数的输出。

在另一示例中,一模块可具有被动型订阅,该被动型订阅指定只有在数据源已被
激活以满足被动订阅以外的功能的情况下数据源将所发布数据提供给该模块。数据源可被
激活以满足任何合适的功能。例如,数据源可被激活以满足不同模块的主动订阅。在另一示
例中,数据源可响应于模式、事件、触发、条件或计算设备的其他操作状态来被激活。

通过采用这些不同类型的订阅,各种数据源可只在必要时被开机和/或启用以将
所发布数据提供给订阅方模块或满足其他功能。换言之,这样的数据源可以在不需要时关
机和/或禁用。相应地,数据源的功耗可被智能地降低。这样的办法可尤其适用于其中电源
受约束的计算设备的实现,诸如在由电池供电的可穿戴计算设备的情形下。

图24示出可采用包括不同类型的订阅和订阅分层结构的发布者/订阅者办法的示
例计算设备2400。在一些实现中,计算设备2400可以是可穿戴计算设备。在一些实现中,计
算设备2400可以是与主机计算设备(诸如图20中所示的主机计算设备2000)通信的客户端
计算设备(诸如图20中所示的客户端计算设备2002)。

计算设备2400包括配置成发布数据的多个硬件组件2402。例如,多个硬件组件
2402中的一者或多者可包括测量身体参数的传感器。在其中计算设备2400是可穿戴计算设
备的一个特定示例中,多个硬件组件2402中的一者或多者包括配置成测量可穿戴计算设备
的穿戴者的身体参数的生物测定传感器。例如,生物测定传感器可包括皮肤电阻传感器、脉
搏率传感器、皮肤温度传感器、加速度计、磁力计、陀螺仪以及全球定位传感器中的一者或
多者。计算设备2400可包括配置成发布任何合适类型的数据的任何合适数目和/或类型的
硬件组件。

在一些实现中,每一硬件组件可以维护该硬件组件的当前订阅的订阅列表2404。
订阅列表2404中的每一条目可包括具有对该硬件组件的订阅的订阅方模块2406。此外,每
一条目可任选地可包括定义该订阅的约束的修饰符2408。

计算系统2400可包括多个模块2410。每一模块可被配置成对一个或多个硬件组件
所提供的所发布数据执行处理、自身发布数据、和/或用于另一目的。多个模块2410中的一
些可具有订阅以接收来自多个硬件组件2402的所发布数据。此外,多个模块2410中的一些
可充当数据源并发布提供给其他订阅方模块的数据。另外,多个模块2410中的一些可充当
接收来自硬件组件或其他模块的所发布数据(例如,第一参数)、对该所发布数据执行处理、
以及随后输出从接收自硬件组件或其他模块的所发布数据导出的不同所发布数据(例如,
第二参数)的中介模块。在一个特定示例中,多个模块2410中的一些可以是提供与可穿戴计
算设备的穿戴者的特定活动相关的太阳城集团或参数的活动模块。

在一些实现中,每一模块可以维护该模块的当前订阅的订阅列表2412。订阅列表
2412中的每一条目可包括具有对该模块的订阅的订阅方模块2414。此外,每一条目可任选
地可包括定义该订阅的约束的修饰符2416。

在其他实现中,代替数据源在个体的基础上管理订阅,订阅管理器(诸如图20中示
出的远程订阅管理器2006)可为计算设备2400的所有模块和硬件组件处置订阅管理。

在一些实现中,订阅可包括定义该订阅的一个或多个约束的一个或多个订阅修饰
符。例如,在一模块创建对数据源的订阅时,该请求可作为函数来传递且修饰符可以是该函
数的参数。在一个示例中,订阅修饰符可包括订阅的类型(例如,主动或被动)。

在另一示例中,订阅修饰符可包括硬件组件或模块产生参数或发布数据的采样频
率。在一个特定示例中,数据源可被配置成以作为由订阅以接收参数的各模块提供作为修
饰符的所有采样频率的最小公倍数的频率来产生参数。在另一示例中,数据源可被配置成
以大于由模块提供作为修饰符的任何一个频率的频率来产生参数以满足所有订阅方模块
的采样需求。

在又一示例中,订阅修饰符可包括数据源被激活以产生参数或发布数据的采样时
段。在一个特定示例中,数据源可以在由订阅以接收参数或所发布数据的各模块提供作为
修饰符的所有采样时段中的最长采样时段期间产生参数或发布数据。相应地,所有订阅方
模块的采样需求可被满足。

在另一示例中,订阅修饰符可包括订阅一模块以接收参数或所发布数据的订阅历
时。例如,订阅历时可被设置成一小时,并且订阅方模块可以接收来自发布方模块的所发布
数据达该一小时历时。在该小时的结束处,订阅结束且先前订阅方模块不再接收由发布方
模块发布的数据直至建立另一订阅。该一小时历时仅仅是示例,且任何合适的历时可被采
用。在另一示例中,订阅修饰符可包括指定响应于模块建立订阅以接收来自数据源的参数
来将该参数的最新近采样版本发送给该模块的即时通知约束。任何合适的约束可被用作订
阅的修饰符。此外,订阅可具有任何合适数目的修饰符。

在一些实现中,订阅可以通过不同模块被链结在一起直至硬件组件级以形成订阅
分层结构。在其最简单的形式中,订阅分层结构可包括通过直接订阅直接订阅硬件组件的
中介模块来间接地订阅该硬件组件的顶层模块。在这一示例中,除非顶层模块创建对中介
模块的主动订阅,中介模块将不创建对硬件组件的主动订阅,并且硬件组件将不打开。

通过采用订阅分层结构,硬件组件和各模块可以按能量高效的方式操作,同时在
改变操作条件期间提供操作灵活性。具体而言,链结在一起的主动和被动订阅的组合可被
采用来机会性地使用由主动数据源发布的数据(在可用时),同时还确保数据在被一模块绝
对需要示变得可用。

图25示出可由包括多个硬件组件2502(诸如脉搏率传感器2504、加速度计2506、以
及全球定位系统(GPS)2508)的可穿戴计算设备2500采用的示例订阅分层结构。脉搏率传感
器2504可被配置成确定可穿戴计算设备2500的穿戴者的脉搏率。加速度计2506可被配置成
测量可穿戴计算设备2500的加速度。GPS可被配置成确定可穿戴计算设备2500的物理位置
或定位。

可穿戴计算设备2500可包括多个模块2510,诸如跑步模块2512、卡路里模块2514、
步数计2516、以及距离模块2518。跑步模块2512可以是配置成向穿戴者提供在穿戴者跑步
时可能有用的太阳城集团的顶层模块。例如,跑步模块2512可以呈现穿戴者的生物测定参数,诸如
穿戴者的脉搏率以及穿戴者在跑步时燃烧的卡路里。此外,跑步模块2512可以呈现其他身
体参数(也被称为穿戴者的活动参数),诸如在跑步时行进的距离以及穿戴者的当前位置。
为向穿戴者呈现这样的太阳城集团,跑步模块2512可以经由主动订阅接收来自硬件组件和中介模
块的参数。具体而言,跑步模块2512可具有主动订阅以接收脉搏率传感器2504所发布的脉
搏率数据、卡路里模块2514所发布的卡路里数据、距离模块2518所发布的距离数据、以及
GPS 2508所发布的位置数据。这些主动订阅指定激活数据源以及订阅分层结构中的较低层
数据源以发布数据来满足跑步模块2512的主动订阅。

卡路里模块2514可被配置成确定穿戴者在给定时段内所燃烧的卡路里数。卡路里
模块2514可以不同地依赖于哪些硬件组件被打开来发布相关数据来导出穿戴者所燃烧的
卡路里数。具体而言,卡路里模块2514可具有被动订阅以接收来自脉搏率传感器2504的脉
搏率数据以及主动订阅以接收步数计2516的步数数据。此外,步数计2516具有主动订阅以
接收来自加速度计2506的加速度数据。

步数计2516可以从接收自加速度计2506的加速度数据导出穿戴者所进行的步数。
因为步数计2516具有对加速度计2506的主动订阅,所以加速度计2506被激活以按步数计
2516的需要向步数计2516提供加速度数据来满足该主动订阅。

如果脉搏率传感器2504被激活以满足另一功能(例如,跑步模块2512是主动的),
则脉搏率传感器2504也可将脉搏率数据发送给卡路里模块2514,并且卡路里模块2514可以
从脉搏率数据导出穿戴者所燃烧的卡路里数。如果脉搏率传感器2504未被激活,则卡路里
模块2514可以使用步数计2516所提供的步数数据来导出穿戴者所燃烧的卡路里数。换言
之,因为卡路里模块2514具有对步数计2516(它具有对加速度计2506的主动订阅)的主动订
阅,所以加速度计2506和步数计2516可被打开以按卡路里模块2514的需要将步数数据提供
给卡路里模块2514来满足主动订阅链。

在卡路里模块2514的情形下,与步数数据相比,脉搏率数据可以提供对所燃烧的
卡路里的更准确确定。如此,在脉搏率可用时,可以从脉搏率导出卡路里。然而,为降低功
耗,如果脉搏率传感器2504出于其他目的不活动,则可作出准确度的让步来利于降低功耗,
并且卡路里可以从步数导出。

距离模块2518可被配置成确定穿戴者在给定时段期间所行进的距离。距离模块
2518可以不同地依赖于哪些硬件组件被打开来发布相关数据来导出穿戴者所行进的距离。
具体而言,距离模块2518可具有被动订阅以接收来自GPS2508的位置数据以及主动订阅以
接收步数计2516的步数数据。

如果GPS 2508被激活以满足另一功能(例如,跑步模块2512是活动的),则GPS
2508也可将位置数据发送给距离模块2518,并且距离模块2518可以从位置数据导出穿戴者
所行进的距离。如果GPS 2508未被激活,则距离模块2518可以使用步数计2516所提供的步
数数据来导出穿戴者所行进的距离。

在距离模块2518的情形下,与步数数据相比,位置数据可以提供对所行进的距离
的更准确确定。如此,在位置数据可用时,可以从位置数据导出距离。然而,为降低可穿戴计
算设备2500的功耗,如果GPS 2508出于其他目的不活动,则可作出准确度的让步来利于降
低功耗,并且距离可以从步数导出。

上述订阅分层结构仅仅是一个示例。订阅分层结构可包括通过不同层模块链结在
一起的任何合适数目的订阅。此外,订阅分层结构可包括主动和被动订阅的任何合适组合。

在一些实现中,订阅可响应于可穿戴计算设备的操作状态的变化、可穿戴计算设
备的穿戴者的状态变化、或响应于另一合适的事件、触发或条件而动态地变化。例如,可通
过改变订阅的修饰符来改变订阅。在一些情形下,新订阅可响应于操作状态的变化或其他
合适的变化而被创建。在一些情形下,订阅可响应于操作状态的变化或其他合适的变化而
结束。此外,订阅分层结构可随太阳城集团在不同订阅被创建、改变类型和/或期满时动态地变化。

图26-28示出触发对订阅的改变的示例场景。图26示出其中订阅响应于可穿戴计
算设备2600的状态变化被修改的示例场景。可穿戴计算设备2600包括各硬件组件,诸如电
池传感器2602和GPS 2604。电池传感器2602可被配置成测量可穿戴计算设备2600的电池的
电流和/或电压。GPS 2604可被配置成确定可穿戴计算设备2600的位置或定位。

此外,可穿戴计算设备2600包括各模块,诸如电池指示符模块2606和距离模块
2608。电池指示符模块2606可被配置成提供可穿戴计算设备2600的电池的电量状态的指
示。距离模块2608可被配置成确定可穿戴计算设备2600的穿戴者所行进的距离。

在第一状态(主动位置)中,电池指示符模块2606具有主动订阅以接收来自电池传
感器2602的电流/电压数据。电池指示符模块2606可以根据从电池传感器2602接收到的电
流/电压数据来确定电池具有高电量状态。例如,高电量状态可以是大于阈值的电量状态。

此外,在第一状态中,距离模块2608具有对电池指示符模块2606的主动订阅以接
收电量数据,在这种情形下,电量数据指示电池的高电量状态。另外,距离模块2608具有对
GPS 2604的主动订阅以接收位置数据。在这一状态中,距离模块2608可以基于随太阳城集团从GPS
2604接收到的的位置的变化来确定穿戴者已行进的距离。

在这一示例中,距离模块2608具有的针对GPS 2604的订阅可基于可穿戴计算设备
2600的电池状态的变化而被动态地修改。具体而言,GPS 2604可在操作期间消耗相对高的
功率量,并且如此,可穿戴计算设备2600可被配置成只有当电池中存在合适电量(例如,高
电量状态)时才激活GPS 2604以用于向距离模块2608提供位置数据的目的。

相应地,在第二状态(被动位置)中,电池指示符模块2606向距离模块2608指示电
池具有低电量状态。例如,低电量状态可以是小于阈值的电量状态。电池状态从高状态到低
状态的改变触发距离模块2608所具有的针对GPS 2604的订阅从主动订阅动态地修改成被
动订阅,如虚线所指示的。响应于订阅的动态修改,距离模块2608可只在GPS被激活以提供
另一功能时使用从GPS接收到的位置数据来确定穿戴者随太阳城集团行进的距离。否则,在这一状
态中,距离模块2608使用除位置以外的参数(诸如,使用从步数计接收到的步数数据)来确
定穿戴者随太阳城集团行进的距离。对应地,如果电池电量状态要从低状态切换到高状态,则距离
模块2608具有的针对GPS 2604的订阅将从被动订阅动态地修改成主动订阅。任何订阅可响
应于可穿戴计算设备2600的任何合适的状态变化而被动态地修改。

图27示出其中订阅响应于可穿戴计算设备2700相对于可穿戴计算设备2700的穿
戴者的状态变化被修改的示例场景。可穿戴计算设备2700包括各硬件组件,诸如皮肤电反
应(GSR)传感器2702和脉搏率传感器2704。GSR传感器2702可被配置成测量可穿戴计算设备
2700的穿戴者的皮肤电导率。脉搏率传感器2704可被配置成确定可穿戴计算设备2700的穿
戴者的脉搏率。

此外,可穿戴计算设备2700包括各模块,诸如穿戴指示符模块2706和卡路里模块
2708。穿戴指示符模块2706可被配置成提供可穿戴计算设备2700当前是否被穿戴者穿戴的
指示。卡路里模块2708可被配置成确定可穿戴计算设备2700的穿戴者在给定时段期间所燃
烧的卡路里数。

在第一状态(主动位置)中,穿戴指示符模块2706具有主动订阅以接收来自GSR传
感器2702的皮肤电导率数据。穿戴指示符模块2706可以基于皮肤电导率数据指示基本上零
皮肤电导率的测量来确定可穿戴计算设备2700当前没有被穿戴者穿戴。

此外,在第一状态中,卡路里模块2708具有对穿戴指示符模块2706的主动订阅以
接收可穿戴计算设备2700当前没有被穿戴的指示。另外,卡路里模块2708具有对脉搏率传
感器2704的被动订阅以接收脉搏率数据。在这一状态中,卡路里模块2708可以只在脉搏率
传感器2704被激活以满足另一功能的情况下才使用脉搏率数据来确定穿戴者在给定时段
期间所燃烧的卡路里数。在另一示例中,在穿戴指示符模块2706提供可穿戴计算设备2700
当前没有被穿戴的指示时,卡路里模块2708可以不确定卡路里数且对脉搏率传感器2704的
订阅可被取消。

在这一示例中,卡路里模块2708具有的针对脉搏率传感器2704的订阅可响应于可
穿戴计算设备2700相对于穿戴者的状态变化而被动态地修改。具体而言,在可穿戴计算设
备2700没有被穿戴时,脉搏率传感器2704和/或卡路里模块2708可被停用以降低功耗。

相应地,在第二状态(被动位置)中,穿戴指示符模块2706向卡路里模块2708指示
可穿戴计算设备2700当前正被穿戴者穿戴。例如,这一指示可以基于GSR传感器2702所提供
的指示皮肤电导率大于阈值的皮肤电导率来确定。可穿戴计算设备2700相对于穿戴者的状
态变化触发卡路里模块2708具有的针对脉搏率传感器2704的订阅从被动订阅动态地修改
成主动订阅,如实线所指示的。响应于订阅的修改,脉搏率传感器2704可以激活以测量穿戴
者的脉搏率并将脉搏率数据提供给卡路里模块2708。此外,卡路里模块2708可以使用脉搏
率数据导出穿戴者在给定时段期间所燃烧的卡路里数。对应地,如果可穿戴计算设备2700
的状态要从被穿戴改变成未被穿戴,则卡路里模块2708具有的针对脉搏率传感器2704的订
阅将从主动订阅动态地修改成被动订阅(或订阅将被结束)。

图28示出其中订阅响应于可穿戴计算设备2800的穿戴者的状态变化被修改的示
例场景。可穿戴计算设备2800包括各硬件组件,诸如加速度计2802和脉搏率传感器2804。加
速度计2802可被配置成测量可穿戴计算设备2800的加速度。脉搏率传感器2804可被配置成
确定可穿戴计算设备2800的穿戴者的脉搏率。

此外,可穿戴计算设备2800包括各模块,诸如速度模块2806和卡路里模块2808。速
度模块2806可被配置成确定可穿戴计算设备2800的速度。卡路里模块2808可被配置成确定
可穿戴计算设备2800的穿戴者在给定时段期间所燃烧的卡路里数。

在第一状态(低采样速率位置)中,速度模块2806具有主动订阅以接收来自加速度
计2802的加速度数据。速度模块2806可从加速度计2802所提供的加速度数据中导出速度。
具体而言,速度模块2806可以确定可穿戴计算设备2800具有小于阈值的速度。例如,阈值可
指示可穿戴计算设备2800的穿戴者可被假定正在跑步的最小速度。

此外,在第一状态中,卡路里模块2808具有对速度模块2806的主动订阅以接收指
示该速度小于阈值的速度数据。另外,卡路里模块2808具有对脉搏率传感器2804的主动订
阅以接收脉搏率数据。主动订阅包括指定脉搏率由脉搏率传感器2804以第一采样速率来采
样的修饰符。在这一状态中,卡路里模块2808可以使用以第一采样速率来采样的脉搏率数
据来确定穿戴者在给定时段期间所燃烧的卡路里数。

在这一示例中,卡路里模块2808具有的针对脉搏率传感器2804的订阅的采样速率
修饰符可响应于速度变得大于阈值而被动态地修改。例如,在第一状态中,穿戴者可能缓慢
地移动,并且相应地,穿戴者的脉搏率可被假定为较低。如此,脉搏率的采样速率可被设置
成相对较慢的采样速率。

在第二状态(高采样速率位置)中,速度模块2806向卡路里模块2808指示可穿戴计
算设备2800的速度大于阈值。可穿戴计算设备2800的状态变化(它是穿戴者的状态变化的
代理)触发卡路里模块2808具有的针对脉搏率传感器2804的订阅的采样速率修饰符的动态
修改。具体而言,订阅的采样速率修饰符可以从第一采样速率更新成大于第一采样速率的
第二采样速率。换言之,在速度变得大于阈值时,假定穿戴者正在跑步,并且跑步将使得脉
搏率增加。如此,采样速率可被动态地增加以准确地测量脉搏率。相应地,如果可穿戴计算
设备2800的速度要变得小于阈值,则卡路里模块2808具有的对脉搏率传感器2804的订阅将
被动态地修改以降低采样速率来降低功耗。

在以上描述的示例中,一模块的输出可以触发对不同数据源的订阅的变化。来自
任何合适数据源的输出可被用来触发订阅的动态变化。此外,数据源的多个输出可被组合
地设想来触发订阅的动态变化。

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

图29示意性地示出了可执行上述方法和过程中的一个或多个的计算系统2900的
非限制性实施例。以简化形式示出了计算系统2900。计算系统2900可采取以下形式:一个或
多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、
移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备。例如,计算系统2900可
以表示服务计算设备、主机计算设备、客户端计算设备、第三方计算设备、连接网络的计算
设备、非连接网络的计算设备、或另一合适的计算设备。在一个示例中,计算系统2900可以
表示图2中示出的客户端计算设备A-N、主机计算设备A和B、服务计算设备202、以及第三方
计算设备210。此外,计算设备2900可以表示本公开中讨论的任何其他计算设备。

计算系统2900包括逻辑机2902和存储机2904。计算系统2900可任选地包括显示子
系统2906、输入子系统2908、通信子系统2910、命令库2912、和/或在图29中未示出的其他组
件。

逻辑机2902包括被配置成执行指令的一个或多个物理设备。例如,逻辑机2902可
被配置成执行作为以下各项的一部分的指令:一个或多个应用、服务、程序、例程、库、对象、
组件、数据结构、或其他逻辑构造。这种指令可被实现以执行任务、实现数据类型、转换一个
或多个部件的状态、实现技术效果、或以其他方式得到期望结果。

逻辑机2902可以包括被配置成执行软件指令的一个或多个处理器。附加地或替换
地,逻辑机2902可以包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。
逻辑机2902的处理器可以是单核的或多核的,其上执行的指令可以被配置用于串行、并行
和/或分布式处理。逻辑机2902的个体组件可任选地分布在两个或更多个分开的设备之间,
所述设备可以位于远程以及/或者被配置用于协同处理。逻辑机2902的各方面可由以云计
算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。

存储机2904包括被配置成保持可由逻辑机2902执行的指令以实现此处描述的方
法和过程的一个或多个物理设备。在实现这些方法和过程时,可以变换存储机2904的状态
(例如,保存不同的数据)。

存储机2904可以包括可移动和/或内置设备。存储机2904可包括光学存储器(例
如,CD、DVD、HD-DVD、蓝光盘)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁存储器
(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM),等等。存储机2904可包括易失性、非易
失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可
寻址设备。

可以理解,存储机2904包括一个或多个物理设备。然而,本文描述的指令的各方面
可另选地通过不由物理设备在有限时长内持有的通信介质(例如,电磁信号、光信号)来传
播。

逻辑机2902和存储机2904的各方面可被一起集成到一个或多个硬件逻辑组件中。
这些硬件逻辑组件可包括例如现场可编程门阵列(FPGA)、程序和应用专用的集成电路
(PASIC/ASIC)、程序和应用专用的标准产品(PSSP/ASSP)、片上系统(SOC)以及复杂可编程
逻辑器件(CPLD)。

术语“模块”、“程序”和“引擎”可用于描述被实现为执行一个特定功能的计算系统
2900的一方面。在某些情况下,可以通过执行由存储机2902所保持的指令的逻辑机2904来
实例化模块、程序或引擎。将理解,可以从同一应用、服务、代码块、对象、库、例程、API或函
数实例化不同的模块、程序和/或引擎。同样,可以由不同的应用程序、服务、代码块、对象、
例程、API或函数来实例化同一模块、程序和/或引擎。术语“模块”、“程序”和“引擎”可涵盖
单个或成组的可执行文件、数据文件、库、驱动程序、脚本或数据库记录。

应该理解,在此使用的“服务”是跨多个用户会话可执行的应用程序。服务可用于
一个或多个系统组件、程序和/或其它服务。在某些实现中,服务可以在一个或多个服务器
计算设备上运行。

在被包括时,显示子系统2906可用于呈现由存储机2904保存的数据的视觉表示。
此视觉表示可采用图形用户界面(GUI)的形式。由于本文所描述的方法和过程改变了由存
储机保持的数据,并由此变换了存储机的状态,因此同样可以转变显示子系统2906的状态
以视觉地表示底层数据的改变。显示子系统2906可包括使用实质上任何类型的技术的一个
或多个显示设备。可将此类显示设备与逻辑机2902和/或存储器机2904组合在共享封装中,
或者此类显示设备可以是外围显示设备。

在包括输入子系统2908时,输入子系统2908包括诸如键盘、鼠标、触摸屏或游戏控
制器之类的一个或多个用户输入设备或者与其对接。在某些实施例中,输入子系统2908可
包括所选的自然用户输入(NUI)部件或者与其对接。这样的部件可以是集成的或外围的,并
且输入动作的转换和/或处理可以在板上或板外被处理。NUI部件的示例可包括用于语言
和/或语音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体显示和/或深度相
机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速计和/或陀螺仪;以及用
于评估脑部活动的电场感测部件。

当包括通信子系统2910时,通信子系统2910可被配置成将计算系统2900与一个或
多个其他计算设备通信地耦合。通信子系统2910可包括与一个或多个不同通信协议兼容的
有线和/或无线通信设备。作为非限制性示例,通信子系统2910可被配置成用于经由无线电
话网络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统可允许
计算系统2900经由诸如因特网这样的网络将消息发送至其他设备以及/或者从其他设备接
收消息。

命令库2912可被提供以允许使用相同协议在不同通信I/O接口上通信。例如,命令
库2912可被提供给通过USB、BT或BTLE传输层与客户端计算设备通信的构建工具。命令库
2912可包括任何合适的命令。

一个示例提供了一种客户端计算设备,包括逻辑机以及存储机,所述存储机保持
能够由所述逻辑机执行以进行以下操作的指令:建立多个订阅以接收由客户端计算设备的
多个数据源发布的数据,每一订阅对应于不同数据源;响应于经由订阅从客户端计算设备
的任何数据源接收所发布数据,将所发布数据存储在订阅缓冲器中;以及响应于根据该多
个订阅从主机计算设备的远程订阅分派器接收到对客户端计算设备的数据源所发布的数
据的读请求,将包括订阅缓冲器中存储的所发布数据的一个或多个数据分组发送给主机计
算设备。在这样的示例中,可任选地响应于从主机计算设备的远程订阅分派器接收到对客
户端数据的读请求来发送已可任选地建立对其的订阅的所有数据源所提供的所发布数据。
在这样的示例中,存储机可任选地进一步保持可由逻辑机执行以进行以下操作的指令:从
主机计算设备的远程订阅分派器接收多个订阅请求,每一订阅请求包括标识客户端计算设
备的数据源的数据源标识符,并且其中该多个订阅是响应于接收到该多个订阅请求来建立
的。在这样的示例中,订阅缓冲器可任选地包括与每一订阅相对应的数据槽,并且存储机可
任选地进一步保持能由逻辑机执行以进行以下操作的指令:响应于经由订阅从数据源接收
到所发布数据,将所发布数据存储在与该订阅相对应的数据槽中。在这样的示例中,该一个
或多个数据分组可任选地包括存储在与该多个订阅相对应的数据槽中的所发布数据。在这
样的示例中,该一个或多个数据分组中的每一者可任选地包括标识提供了该数据分组中包
括的所发布数据的数据源的数据源标识符。在这样的示例中,该一个或多个数据分组可任
选地包括指示自接收到来自主机计算设备的远程订阅分派器的最后读请求以来数据源已
发布数据的次数的错过样本计数。在这样的示例中,客户端计算设备可任选地进一步包括
配置成与主机计算设备通信的有线通信I/O接口、配置成与主机计算设备通信的无线通信
I/O接口,并且其中存储机可任选地保持可由逻辑机执行以进行以下操作的指令:使用主机
中介传输层协议经由有线通信I/O接口和无线通信I/O接口两者与主机计算设备通信,其中
只有远程计算设备发起客户端计算设备与主机计算设备之间的通信。以上描述的示例中的
任何一个或全部可按任何合适的方式被组合在各实现中。

另一示例提供了一种主机计算设备,包括逻辑机以及存储机,所述存储机保持能
够由所述逻辑机执行以进行以下操作的指令:从主机计算设备的多个模块接收多个订阅请
求以接收所发布数据,其中该多个模块中的两者或更多者请求对相同的所发布数据的订
阅;向客户端计算设备的远程订阅管理器发送多个订阅请求以从客户端计算设备的各数据
源接收所发布数据,每一订阅请求对应于不同数据源;向客户端计算设备的远程订阅管理
器发送对客户端计算设备的请求了对其的多个订阅的各数据源所发布的数据的读请求;根
据多个订阅请求从客户端计算设备的远程订阅管理器接收包括由客户端计算设备的数据
源所发布的数据的一个或多个数据分组;以及将该一个或多个数据分组发送给订阅以接收
该一个或多个数据分组中包括的所发布数据的各模块,其中至少一个数据分组被发送给请
求对相同的所发布数据的订阅的两个或更多个模块。在这样的示例中,存储机可任选地保
持可由逻辑机执行以进行以下操作的指令:对于每一数据源,向客户端计算设备的远程订
阅管理器发送单个订阅请求以接收该数据源提供的所发布数据。在这样的示例中,存储机
可任选地保持可由逻辑机执行以进行以下操作的指令:对于每一从多个模块接收到的每一
订阅请求,标识客户端计算设备的提供由该订阅请求指示的所发布数据的数据源;以及对
于每一订阅请求,将标识数据源的数据源标识符添加到该订阅请求。在这样的示例中,该一
个或多个数据分组中的每一者可任选地包括标识提供了该数据分组中包括的所发布数据
的数据源的数据源标识符,并且存储机可任选地保持可由逻辑机执行以进行以下操作的指
令:对于每一数据源标识符,基于多个订阅请求建立订阅以接收对应数据源所提供的所发
布数据的各模块的列表;以及响应于接收到该一个或多个数据分组,对于该一个或多个数
据分组中的每一者,将该数据分组发送给模块列表上的订阅与该数据分组中的数据源标识
符相对应的数据源的各模块,在这样的示例中,存储机可任选地保持可由逻辑机执行以进
行以下操作的指令:对于一个或多个数据分组中的每一者,在将该数据分组发送给各模块
之前从该数据分组移除数据源标识符。在这样的示例中,读请求可任选地根据周期性太阳城集团
区间被周期性地发送给客户端计算设备的远程订阅管理器。在这样的示例中,该一个或多
个数据分组中的每一者可任选地包括指示自客户端计算设备接收到最后读请求以来数据
源已发布数据的次数的错过样本计数,并且存储机可任选地保持可由逻辑机执行以进行以
下操作的指令:基于该一个或多个数据分组的错过样本计数来将周期性太阳城集团区间调整成经
更新周期性太阳城集团区间;以及根据经更新周期性太阳城集团区间向客户端计算设备的远程订阅管理
器周期性地发送对客户端计算设备的数据源所发布的数据的读请求。在这样的示例中,存
储机可任选地保持可由逻辑机执行以进行以下操作的指令:对于一个或多个数据分组中的
每一者,在将该数据分组发送给各模块之前从该数据分组移除错过样本计数。以上描述的
示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

另一示例提供了一种在主机计算设备上的用于订阅所发布数据的方法,该方法包
括:向客户端计算设备的远程订阅管理器发送多个订阅请求以接收由客户端计算设备的各
数据源发布的数据;向客户端计算设备的远程订阅管理器周期性地发送对请求了对其的该
多个订阅的各数据源所发布的数据的读请求,该读请求是根据周期性太阳城集团区间来发送的;
从客户端计算设备的远程订阅管理器接收包括客户端计算设备的请求了对其的该多个订
阅的各数据源所提供的所发布数据的多个数据分组,多个数据分组中的每一者包括数据源
标识符和错过样本计数,数据源标识符标识提供了该数据分组中包括的所发布数据的数据
源,并且错过样本计数指示自客户端计算设备的远程订阅管理器接收到最后读请求以来数
据源已发布数据的次数;基于该多个数据分组的错过样本计数来将周期性太阳城集团区间调整成
经更新周期性太阳城集团区间;以及根据经更新周期性太阳城集团区间将对所发布数据的读请求发送给
客户端计算设备的远程订阅管理器。在这样的示例中,该方法可任选地还包括:从主机计算
设备的多个模块接收多个订阅请求以接收所发布数据;对于请求了对其的订阅的每一数据
源,建立订阅以接收该数据源所发布的数据的各模块的列表;以及响应于从客户端计算设
备的远程订阅管理器接收到多个数据分组,对于该多个数据分组中的每一者,将该数据分
组发送给模块列表上的订阅与该数据分组中的数据源标识符相对应的数据源的各模块。在
这样的示例中,该方法可任选地进一步包括对于多个数据分组中的每一者,在将该数据分
组发送给各模块之前从该数据分组移除数据源标识符和错过样本计数。在这样的示例中,
调整周期性太阳城集团区间可任选地包括如果该多个数据分组中的任一者的错过样本计数大于
阈值则降低周期性太阳城集团区间,并且如果该多个数据分组中的每一者的错过样本计数是零则
增加周期性太阳城集团区间。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在
各实现中。

另一示例提供了一种可穿戴计算设备,包括:配置成确定可穿戴计算设备的穿戴
者的生物测定参数的多个生物测定传感器;以及配置成确定可穿戴计算设备的穿戴者的活
动参数的多个模块,其中该多个模块中的第一模块直接订阅以接收来自多个生物测定传感
器中的第一生物测定传感器的第一生物测定参数,其中第一模块对第一生物测定传感器的
订阅指定激活第一生物测定传感器以将第一生物测定参数提供给第一模块以满足该订阅,
并且其中第一模块被配置成从第一生物测定参数导出第一活动参数,并且其中该多个模块
中的第二模块通过直接订阅以从第一模块接收第一活动参数来间接地订阅第一生物测定
传感器,并且其中第二模块对第一模块的订阅指定激活第一模块以将第一活动参数提供给
第二模块来满足该订阅。在这样的示例中,第二模块可任选地经由被动订阅来直接订阅该
多个生物测定传感器中的第二生物测定传感器,其中该被动订阅指定在第二生物测定传感
器已被激活来满足除该被动订阅以外的功能的情况下第二生物测定传感器向第二模块提
供第二生物测定参数,并且其中第二模块被配置成在第二生物测定传感器被激活的情况下
从第二生物测定参数导出第二活动参数以及在第二生物测定传感器未被激活的情况下从
第一活动参数导出第二活动参数。在这样的示例中,第一模块可任选地被配置成基于第一
生物测定参数确定穿戴者的状态,并且其中第二模块对第二生物测定传感器的被动订阅响
应于第二参数指示穿戴者的状态变化而被修改。在这样的示例中,多个生物测定传感器可
任选地包括皮肤电阻传感器、脉搏率传感器、皮肤温度传感器、加速度计、磁力计、陀螺仪以
及全球定位传感器中的一者或多者。在这样的示例中,该多个活动模块可任选地包括步数
计模块、卡路里计数模块、距离模块、以及跑步模块中的一者或多者。以上描述的示例中的
任何一个或全部可按任何合适的方式被组合在各实现中。

另一示例提供了一种计算设备,包括:多个硬件组件;以及多个模块;其中所述多
个模块中的第一模块直接订阅以接收来自所述多个硬件组件中的第一硬件组件的第一参
数,其中所述第一模块对所述第一硬件组件的订阅指定激活所述第一硬件组件以将所述第
一参数提供给所述第一模块以满足所述订阅,并且其中所述第一模块被配置成从所述第一
参数导出第二参数;以及其中所述多个模块中的第二模块通过直接订阅以从所述第一模块
接收第二参数来间接地订阅所述第一硬件组件,并且其中所述第二模块对所述第一模块的
订阅指定激活所述第一模块以将所述第二参数提供给所述第二模块来满足所述订阅。在这
样的示例中,该计算设备可任选地是可穿戴设备,并且其中第一硬件组件是配置成确定可
穿戴设备的穿戴者的生物测定参数的生物测定传感器。在这样的示例中,第二模块经由被
动订阅来间接地订阅该多个硬件组件中的第二硬件组件,其中该被动订阅指定在第二硬件
组件已经被激活以满足除该被动订阅以外的功能的情况下第二硬件组件向第二模块提供
第三参数,并且其中第二模块被配置成在第二硬件组件被激活的情况下从第三参数导出第
四参数并且在第二硬件组件未被激活的情况下从第二参数导出第四参数。在这样的示例
中,第二模块对第二硬件组件的被动订阅可任选地响应于第二参数指示触发被修改。在这
样的示例中,该订阅可任选地响应于该触发通过调整第二硬件组件产生第三参数的采样频
率被修改。在这样的示例中,该订阅可任选地响应于该触发通过将该被动订阅切换成指定
激活第二硬件组件以将第三参数提供给第二模块来满足该订阅的主动订阅被修改。在这样
的示例中,该计算设备可任选地是可穿戴设备,其中第一硬件组件是配置成确定可穿戴设
备的穿戴者的第一生物测定参数的生物测定传感器,其中第一模块被配置成基于第一生物
测定参数来确定穿戴者的状态,并且其中该触发包括穿戴者的状态的变化。在这样的示例
中,对第一硬件组件的订阅可任选地包括定义该订阅的一个或多个约束的一个或多个订阅
修饰符。在这样的示例中,该一个或多个订阅修饰符可任选地包括第一硬件组件产生第一
参数的采样频率,并且其中第一硬件组件以作为订阅以接收第一参数的各模块所指示的采
样频率的最小公倍数的频率来产生第一参数。在这样的示例中,该一个或多个订阅修饰符
可任选地包括第一硬件组件在其期间被激活产生第一参数的采样时段,并且其中第一硬件
组件在订阅以接收第一参数的各模块所指示的采样时段中的最长采样时段期间产生第一
参数。在这样的示例中,该一个或多个订阅修饰符可任选地包括一模块订阅以接收第一参
数的订阅历时。在这样的示例中,该一个或多个订阅修饰符可任选地包括指定响应于一模
块建立订阅以接收来自第一硬件组件的第一参数来将第一参数的最新近采样版本发送给
该模块的即时通知约束。以上描述的示例中的任何一个或全部可按任何合适的方式被组合
在各实现中。

另一示例提供了一种计算设备,包括:配置成产生第一参数的第一硬件组件;配置
成产生第二参数的第二硬件组件;具有主动订阅以接收来自第一硬件组件的第一参数的第
一模块,该主动订阅需要周期性激活第一硬件组件以将第一参数提供给第一模块,第一模
块被配置成基于第一参数来确定第三参数;以及具有主动订阅以从第一模块接收第三参数
的第二模块,该主动订阅需要周期性激活第一模块以将第三参数提供给第二模块,第二模
块具有被动订阅以接收来自第二硬件组件的第二参数,该被动订阅需要在第二硬件组件已
被激活以满足除该被动订阅以外的功能的情况下第二硬件组件将第二参数提供给第二模
块,第二模块被配置成在第二硬件组件被激活的情况下基于第二参数来确定第四参数以及
在第二硬件组件未被激活的情况下基于第一模块所提供的第三参数来确定第四参数。在这
样的示例中,第二模块对第二硬件组件的被动订阅可任选地响应于第二参数指示触发被修
改。在这样的示例中,对第一硬件组件的订阅可任选地包括定义该订阅的一个或多个约束
的一个或多个订阅修饰符。以上描述的示例中的任何一个或全部可按任何合适的方式被组
合在各实现中。

将会理解,本文描述的配置和/或方式本质是示例性的,这些具体实施例或本文示
例不应被视为限制性的,因为许多变体是可能的。本文描述的具体例程或方法可以表示任
何数量的处理策略中的一个或多个。如此,所示和/或所述的各种动作可以以所示和/或所
述顺序、以其他顺序、并行地执行,或者被省略。同样,上述过程的次序可以改变。

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

关 键 词:
主动 被动 订阅
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:主动和被动链订阅.pdf
链接地址:http://zh228.com/p-6059794.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');