用于不同通信接口的统一命令协议的制作方法

文档序号:11162155阅读:429来源:国知局
用于不同通信接口的统一命令协议的制造方法与工艺

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

附图简述

图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示出示例计算系统。

详细描述

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

在一些实现中,客户端计算设备可能缺少与远程计算设备直接通信(例如,经由因特网)的广域网连接性。然而,客户端计算设备可具有与主机计算设备的局域网连接(例如,经由通用串行总线(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抓取(scrape)经更新信息。在一些情形下,经更新信息可以按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接口来发送或接收。

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

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

计算系统2000包括逻辑机2002和存储机2004。计算系统2000可任选地包括显示子系统2006、输入子系统2008、通信子系统2010、命令库2012、和/或在图2中未示出的其他组件。

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

逻辑机可包括被配置成执行软件指令的一个或多个处理器。作为补充或替换,逻辑机可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机的处理器可以是单核或多核,且在其上执行的指令可被配置为串行、并行和/或分布式处理。逻辑机的各个组件可任选地分布在两个或更多单独设备上,这些设备可以位于远程和/或被配置成进行协同处理。逻辑机的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。

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

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

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

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

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

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

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

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

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

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

一示例提供了一种包括显示器、逻辑机、以及存储机的计算设备,存储机保持可由逻辑机执行以进行以下操作的指令:接收定义图形用户界面(GUI)的视觉布局的用户界面(UI)布局文件,该UI布局文件包括多个UI元素,每一UI元素包括UI元素标识符和UI元素描述符,UI元素标识符将该UI元素与UI布局文件中的每一其他UI元素区分开且UI元素描述符定义经由该UI元素显示的信息的格式化属性;根据UI布局文件经由显示器呈现GUI;接收指定UI布局文件中要被改变的一个或多个UI元素的更新对象,对于要被改变的每一UI元素,该更新对象包括该UI元素的UI元素标识符以及包含要根据该UI元素的UI元素描述符来显示的经更新信息的更新净荷;以及根据更新对象经由显示器改变GUI。在这样的示例中,UI布局文件可任选地可具有二进制机器可读格式且更新对象具有二进制机器可读格式。在这样的示例中,UI布局文件可任选地可具有经平坦化树结构,其中多个UI元素在UI布局文件中根据父-子关系来排序。在这样的示例中,UI布局文件可任选地可包括指示该UI布局文件的版本、根UI元素的紧接子节点的数目、以及该UI布局文件中UI元素的总数的页头部。在这样的示例中,由UI元素描述符定义的属性可任选地可包括UI元素类型、存储器大小、位置、颜色、字体样式、对齐、透明度以及子UI元素的数目中的一者或多者。在这样的示例中,存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:对于更新对象所指定的每一UI元素,基于该UI元素的UI元素标识符来从UI布局文件确定该UI元素的属性。在这样的示例中,UI布局文件和更新对象可任选地可以通过网络连接从服务计算设备接收。在这样的示例中,UI布局文件可任选地可以经由主机计算设备中继来从服务计算设备接收。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

另一示例提供了一种在计算设备上的用于管理图形用户界面(GUI)的呈现的方法,该方法包括:经由数字通信信道接收定义GUI的视觉布局的用户界面(UI)布局文件,该UI布局文件包括多个UI元素,每一UI元素包括UI元素标识符和UI元素描述符,UI元素标识符将该UI元素与UI布局文件中的每一其他UI元素区分开且UI元素描述符定义经由该UI元素显示的信息的属性;根据UI布局文件经由计算设备的显示器呈现GUI;经由数字通信信道接收指定UI布局文件中要被改变的一个或多个UI元素的更新对象,对于要被改变的每一UI元素,该更新对象包括该UI元素的UI元素标识符以及包含要根据该UI元素的UI元素描述符来显示的经更新信息的更新净荷;以及根据更新对象经由显示器改变GUI。在这样的示例中,UI布局文件可任选地可经由二进制机器可读格式且更新对象具有二进制机器可读格式。在这样的示例中,UI布局文件可任选地可具有经平坦化树结构,其中多个UI元素在UI布局文件中根据父-子关系来排序。在这样的示例中,UI布局文件可任选地可包括指示该UI布局文件的版本、根UI元素的紧接子节点的数目、以及该UI布局文件中UI元素的总数的页头部。在这样的示例中,由UI元素描述符定义的属性可任选地可包括UI元素类型、存储器大小、位置、颜色、字体样式、对齐、透明度以及子UI元素的数目中的一者或多者。在这样的示例中,该方法可任选地可包括对于更新对象所指定的每一UI元素,基于该UI元素的UI元素标识符来从UI布局文件确定该UI元素的属性。在这样的示例中,UI布局文件和更新对象可任选地可以通过网络连接从服务计算设备接收。在这样的示例中,UI布局文件可任选地可以经由主机计算设备中继来从服务计算设备接收。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供了一种包括逻辑机和存储机的计算设备,存储机保持可由逻辑机执行以进行以下操作的指令:向多个订阅方计算设备提供针对用户界面(UI)布局文件的订阅,该UI布局文件定义能由该多个计算设备中的每一者显示的图形用户界面(GUI)的视觉布局,该UI布局文件包括多个UI元素,每一UI元素包括UI元素标识符和UI元素描述符,UI元素标识符将该UI元素与UI布局文件中的每一其他UI元素区分开且UI元素描述符定义经由该UI元素显示的信息的属性;将UI布局文件发送给多个订阅方计算设备以根据该UI布局文件显示GUI;生成指定UI布局文件中要被改变的一个或多个UI元素的更新对象,对于要被改变的每一UI元素,该更新对象包括该UI元素的UI元素标识符以及包含要根据该UI元素的UI元素描述符来显示的经更新信息的更新净荷;以及将更新对象发送给该多个订阅方计算设备以根据该更新对象改变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元素事件的日志中跟踪该事件。在这样的示例中,应用标识符可任选地可以是具有第一存储器大小的全局唯一标识符(GUID),并且其中页索引和UI元素标签具有各自小于第一存储器大小的存储器大小。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供一种在计算设备上的用于控制与用户界面(UI)元素的实例相关联的操作的方法,该方法包括:

经由数字通信信道接收事件的通知,该通知包括将UI元素的实例与任何UI元素的每一其他实例区分开的经个别化UI元素标识符,该经个别化UI元素标识符包括设备标识符、应用标识符、页索引以及UI元素标签,设备标识符将客户端计算设备与每一其他计算设备区分开,应用标识符将应用与每一其他应用区分开,页索引将该UI元素的实例位于其上的页与应用中包括的每一其他页区分开,且UI元素标签将该UI元素与该页中包括的每一其他UI元素区分开;基于事件的通知中包括的经个别化UI元素标识符来标识UI元素的实例;响应于标识UI元素的实例,执行与该UI元素的实例相关联的操作。在这样的示例中,该通知可任选地可以经由主机计算设备中继来从客户端计算设备接收。在这样的示例中,与UI元素的实例相关联的操作可任选地可包括向中继该通知的主机计算设备发送用于调整主机计算设备的操作的命令。在这样的示例中,与UI元素的实例相关联的操作可任选地可包括向不同于中继该通知的主机计算设备的连接网络的计算设备发送用于调整该连接网络的计算设备的操作的命令。在这样的示例中,与UI元素的实例相关联的操作可任选地可包括经由主机计算设备中继向客户端计算设备发送用于调整该客户端计算设备的操作的命令。在这样的示例中,用于调整客户端计算设备的操作的命令可任选地可包括更新对象,该更新对象包括所标识的UI元素的实例的经个别化UI元素标识符以及更新净荷,更新净荷包括能经由该UI元素的实例显示的经更新信息。在这样的示例中,该事件可任选地可包括经由对客户端计算设备的用户输入来选择该UI元素的实例,并且执行与该UI元素的实例相关联的操作包括在UI元素事件的日志中跟踪该事件。在这样的示例中,应用标识符可任选地可以是具有第一存储器大小的全局唯一标识符(GUID),并且设备标识符、页索引以及UI元素标签可具有各自小于第一存储器大小的存储器大小。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供了一种包括逻辑机、存储机的计算设备,存储机保持可由逻辑机执行以进行以下操作的指令:从客户端计算设备接收事件的通知,该通知包括将UI元素的实例与能在客户端计算设备的任何应用中显示的每一UI元素的每一其他实例区分开的经本地化UI元素标识符,该经本地化UI元素标识符包括应用标识符、页索引以及UI元素标签,应用标识符将应用与每一其他应用区分开,页索引将该UI元素的实例位于其上的页与应用中包括的每一其他页区分开,且UI元素标签将该UI元素与该页中包括的每一其他UI元素区分开;以及将设备标识符添加到经本地化UI元素标识符以生成经个别化UI元素标识符,设备标识符将客户端计算设备与每一其他计算设备区分开;以及将包括经个别化UI元素标识符的通知中继到服务计算设备。在这样的示例中,包括经本地化UI元素标识符的通知可任选地可以经由第一网络连接从客户端计算设备接收,且包括经个别化UI元素标识符的通知可任选地可以经由不同于第一网络连接的第二网络连接发送给服务计算设备。在这样的示例中,存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:响应于将通知中继到服务计算设备,从服务计算设备接收用于调整该计算设备的操作的命令,该操作与UI元素的实例相关联;以及根据该命令来调整计算设备的操作。在这样的示例中,存储机可任选地保持可由逻辑机执行以进行以下操作的指令:响应于将通知中继到服务计算设备,从服务计算设备接收用于调整客户端计算设备的操作的命令,该操作与UI元素的实例相关联;以及将该命令中继到客户端计算设备。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供了一种包括配置成与主机计算设备通信的有线通信输入/输出(I/O)接口、配置成与主机计算设备通信的无线通信I/O接口、逻辑机、以及存储机的计算设备,存储机保持可由逻辑机执行以进行以下操作的指令:使用相同的三阶段协议经由有线通信I/O接口和无线通信I/O接口两者与主机计算设备通信。在这样的示例中,存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:在三阶段协议的命令阶段期间从主机计算设备接收命令分组,该命令分组包括从有线通信I/O接口和无线通信I/O接口所共享的命令库中选择的命令。在这样的示例中,命令可任选地可包括命令自变量和存储器大小,命令自变量可以从可由计算设备的命令处理程序处理以服务命令的多个命令自变量中选择,并且存储器大小指定在三阶段协议的数据阶段期间传送的数据的总存储器大小。在这样的示例中,存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:如果该命令指定发送一个或多个数据分组,则在数据阶段期间将该一个或多个数据分组发送给主机计算设备;以及如果该命令指定接收一个或多个数据分组,则在数据阶段期间从主机计算设备接收该一个或多个数据分组。在这样的示例中,如果该一个或多个数据分组是经由有线通信I/O接口发送的,则该一个或多个数据分组可任选地可具有与有线通信I/O接口的最大传输单元(MTU)相对应的大小,且如果该一个或多个数据分组是经由无线通信I/O接口发送的,则该一个或多个数据分组具有与无线通信I/O接口的MTU相对应的大小,有线通信I/O接口的MTU不同于无线通信I/O接口的MTU。在这样的示例中,计算设备可任选地可包括配置成保持经由有线通信I/O接口发送的数据分组和经由无线通信I/O接口发送的数据分组的共享缓冲器,如果有线通信I/O接口的MTU大于无线通信I/O接口的MTU,则该共享缓冲器具有与有线通信I/O接口的MTU相对应的大小,并且如果无线通信I/O接口的MTU大于有线通信I/O接口的MTU,则该共享缓冲器具有与无线通信I/O接口的MTU相对应的大小。在这样的示例中,该一个或多个数据分组可任选地可被配置成具有相同二进制分组格式,而不管该一个或多个数据分组是经由有线通信I/O接口还是无线通信I/O接口发送的。在这样的示例中,数据阶段可任选地可在每命令的基础上被配置用于单向通信。在这样的示例中,存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:在状态阶段期间向主机计算设备发送状态码,该状态码指示该命令是否被命令处理程序成功服务。在这样的示例中,如果该命令没有被计算设备成功服务,则状态码可任选地可指示在服务命令时发生的错误的类型。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供了一种包括配置成与主机计算设备通信的有线通信输入/输出(I/O)接口、配置成与主机计算设备通信的无线通信I/O接口、逻辑机、以及存储机的计算设备,存储机保持可由逻辑机执行以进行以下操作的指令:使用相同的三阶段协议经由有线通信I/O接口和无线通信I/O接口两者与主机计算设备通信;在三阶段协议的命令阶段期间从主机计算设备接收命令分组,该命令分组包括命令、命令自变量以及存储器大小,该命令是从有线通信I/O接口和无线通信I/O接口所共享的命令库中选择的,命令自变量是从可由计算设备的命令处理程序处理以服务命令的多个命令自变量中选择的,并且存储器大小指定在三阶段协议的数据阶段期间传送的数据的总存储器大小;如果该命令指定发送一个或多个数据分组,则在数据阶段期间将该一个或多个数据分组发送给主机计算设备;如果该命令指定接收一个或多个数据分组,则在数据阶段期间从主机计算设备接收该一个或多个数据分组;以及在状态阶段期间向主机计算设备发送状态码,该状态码指示该命令是否被命令处理程序成功服务。在这样的示例中,命令分组可任选地可以是经由有线I/O接口接收的第一命令分组,该一个或多个数据分组可任选地可以是经由有线I/O接口发送或接收的第一一个或多个数据分组,并且其中存储机可任选地可保持可由逻辑机执行以进行以下操作的指令:经由无线I/O接口接收第二命令分组;如果来自第二命令分组的命令指定发送第二一个或多个数据分组,则在数据阶段期间经由无线I/O接口将该第二一个或多个数据分组发送给主机计算设备;以及如果来自第二命令分组的命令指定接收第二一个或多个数据分组,则在数据阶段期间经由无线I/O接口从主机计算设备接收该第二一个或多个数据分组。在这样的示例中,如果该一个或多个数据分组是经由有线通信I/O接口发送的,则该一个或多个数据分组可任选地可具有与有线通信I/O接口的最大传输单元(MTU)相对应的大小,且如果该一个或多个数据分组是经由无线通信I/O接口发送的,则该一个或多个数据分组具有与无线通信I/O接口的MTU相对应的大小,有线通信I/O接口的MTU不同于无线通信I/O接口的MTU。在这样的示例中,计算设备可任选地可包括配置成保持经由有线通信I/O接口发送的数据分组和经由无线通信I/O接口发送的数据分组的共享缓冲器,如果有线通信I/O接口的MTU大于无线通信I/O接口的MTU,则该共享缓冲器具有与有线通信I/O接口的MTU相对应的大小,并且如果无线通信I/O接口的MTU大于有线通信I/O接口的MTU,则该共享缓冲器具有与无线通信I/O接口的MTU相对应的大小。在这样的示例中,该一个或多个数据分组可任选地可被配置成具有相同二进制分组格式,而不管该一个或多个数据分组是经由有线通信I/O接口发送的还是经由无线通信I/O接口发送的。在这样的示例中,如果该命令没有被计算设备成功服务,则状态码可任选地可指示在服务命令时发生的错误的类型。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

又一示例提供了一种在计算设备上的用于使用相同的三阶段协议经由有线通信输入/输出(I/O)接口和无线通信I/O接口两者与主机计算设备通信的方法,该方法包括:在三阶段协议的命令阶段期间从主机计算设备接收命令分组,该命令分组包括从有线通信I/O接口和无线通信I/O接口所共享的命令库中选择的命令;如果该命令指定发送一个或多个数据分组,则在三阶段协议的数据阶段期间将该一个或多个数据分组发送给主机计算设备;如果该命令指定接收一个或多个数据分组,则在三阶段协议的数据阶段期间从主机计算设备接收该一个或多个数据分组;以及在三阶段协议的状态阶段期间向主机计算设备发送状态码,该状态码指示该命令是否被成功服务。在这样的示例中,如果该命令没有被计算设备成功服务,则状态码可任选地可指示在服务命令时发生的错误的类型。在这样的示例中,如果该一个或多个数据分组是经由有线通信I/O接口发送的,则该一个或多个数据分组可任选地可具有与有线通信I/O接口的最大传输单元(MTU)相对应的大小,且如果该一个或多个数据分组是经由无线通信I/O接口发送的,则该一个或多个数据分组具有与无线通信I/O接口的MTU相对应的大小,有线通信I/O接口的MTU不同于无线通信I/O接口的MTU。在这样的示例中,该一个或多个数据分组可任选地可被配置成具有相同二进制分组格式,而不管该一个或多个数据分组是经由有线通信I/O接口发送的还是经由无线通信I/O接口发送的。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。

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

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

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