主机和移动设备之间的任务的双向动态卸载的制作方法

文档序号:6476373阅读:109来源:国知局
专利名称:主机和移动设备之间的任务的双向动态卸载的制作方法
主机和移动设备之间的任务的双向动态卸载祖旦 冃尔当今的移动设备通常拥有先进的处理能力和专用电路。这类专用电路的示例包括移动电话中的数字信号处理器(DSP)。移动设备可以连接到诸如个人 计算机等主机,以在移动设备和主机之间交换数据。然而,现有的设计无法始 终允许主机工作流由连接的移动设备的计算资源来执行,并且在传统上受约束 的设备(比如闪存驱动器)的情况下使得这样的执行几乎是不可能的。概述下面提供本发明的简化概要以便为读者提供基本的理解。本概要不是本发 明的详尽概观,并且既不标识本发明的关键/决定性要素也不描绘本发明的范 围。其唯一目的是以简化形式提供在此公开一些概念作为稍后提供的更详细描 述的序言。本发明的各实施例提供了主机和移动设备间的任务的卸载。在一个实施例 中,主机可使用移动设备的功能来执行主机任务分配。连接的移动设备的处理 能力和专用电路可以被主机系统充分利用来优化主机系统的工作流。在另一个 实施例中,移动设备可以将设备任务分配卸载到主机。许多附带特征将随着参考下面的详细描述并结合附图进行理解而得到更 好的认识。附图简述附图中使用相同的附图标记来指代相同的部分。

图1是根据本发明的一个实施例的连接到移动设备的主机的框图。 图2是根据本发明的一个实施例的移动设备的框图。 图3是示出根据本发明的一个实施例的主机将任务卸载到移动设备的逻 辑与操作的流程图。图4是根据本发明的一个实施例的展示设备功能的框图。 图5是根据本发明的一个实施例的展示设备功能的框图。图6是根据本发明的一个实施例的展示设备功能的框图。 图7是根据本发明的一个实施例的用于展示设备功能的数组。 图8是示出根据本发明的一个实施例的移动设备将设备任务卸载到主机 的逻辑与操作的流程图。图9是用于实现本发明的各实施例的示例计算设备的框图。详细描述下面结合附图提供的详细描述旨在作为对本发明各示例的描述,而非表示 用于解释或利用本发明各示例的唯一形式。本说明书阐述各示例的功能以及用 于构造和操作各示例的步骤序列。然而,相同或等价的功能与序列可由不同的 示例来实现。图1及以下讨论旨在提供对实现本发明的各实施例的合适的计算环境的 简要概括描述。图1的操作环境只是合适的操作环境的一个示例,并不旨在对 该操作环境的使用范围或功能提出任何局限。尽管并非必需,但本发明的各实 施例将在由一个或多个计算设备执行的"计算机可读指令"的一般上下文中描 述。计算机可读指令可通过计算机可读介质来分发。计算机可读指令可被实现 为执行特定任务或实现特定抽象数据类型的程序模块,如函数、对象、应用程 序编程接口 (API)、数据结构等等。通常,计算机可读指令的功能可按需在各个环境中组合或分布。图1示出了通过连接108连接到移动设备110的主机102。主机102可以 包括任何计算设备,诸如台式机、膝上型计算机等等。主机102可以包括其它计 算设备,诸如照相机、媒体播放器、移动电话等等。在一个实施例中,移动设 备IIO可以包括独立式移动设备,诸如移动电话、媒体播放器等等。在另一实 施例中,移动设备110可以包括依赖主机的移动设备,诸如通用串行总线(USB) 闪速驱动器、存储卡、安全卡等等。如此处所使用的,"依赖主机的"指的是 除非连接到主机否则就无法使用的移动设备如此处所使用的,"主机"指的是 管理另一计算设备的计算设备。"主机"所控制的计算设备被称为设备。这一主机/设备的关系也可以被称为主/从关系。本发明的各实施例可被用于按需调用的短寿命任务。在一个示例中,个人 计算机(主机)可以将复杂的密码学计算卸载到具有密码学专用电路的存储设备。
一般而言,密码学在硬件中可以比由处理器执行的软件指令执行得更快。 此外,用专用电路执行的密码学通常比软件指令更安全,并且可能需要专用电 路来使用某些密码学算法(比如政府用)。在另一示例中,个人计算机(主机)可以将数字权限管理计算或媒体内容 加水印卸载到连接的设备(比如数字照相机)。数字照相机可以包括能比个人 计算机更高效地执行这些媒体相关任务的专用电路或特殊例程。连接108可以包括在接口 107处的主机102和在接口 116处的移动设备 110之间的有线或无线连接。在一个实施例中,主机102和移动设备IIO作为 用户的个人区域网(PAN)的一部分彼此非常接近。连接108的示例包括USB (有线或无线)、火线(正EE-1394)、射频(例如,蓝牙、Wi-Fi等等)、红外线等等。在一个实施例中,移动设备在某些情形中可以有主机能力充当主机。例如, 移动电话可以担当连接到担当主机102的膝上型计算机计算机的移动设备 110。在另一示例中,同一移动电话可以担当连接到担当移动设备110的存储 卡的主机102。在该示例中,存储卡是依赖主机的移动设备。主机102可以包括处理单元104和存储器106。主机102还包括用于从主 机102输入/输出数据的接口 107。主机102还可以包括存储设备,比如硬盘驱 动器或闪存(未示出)。移动设备110可以包括耦合到存储114的控制器112。控制器112可以管 理存储114上数据的读/写以及执行其它功能。存储114可以包括磁盘驱动器、光驱、诸如闪存等非易失性存储等等。从主机102的观点来看,移动设备110被认作是瞬时设备。移动设备110 可以在不警告主机102的情况下从主机102上连接/断开连接。应该理解,移动 设备110可以在不重启主机102的情况下从主机102上连接/断开连接。在此, 移动设备110的瞬时本质导致了此处的各实施例的动态方面。主机102可以在 移动设备110存在时利用移动设备110的处理能力,但是当移动设备IIO被断开连接时,主机102只需注意到设备对于完成主机任务的不可用性。在移动设备IIO在完成卸载的任务前就从主机102上断开连接情况下的故障切换处理在 下文中讨论。同样,在某些实施例中,移动设备110的任务可以卸载到主机102 来完成。因此,主机102和移动设备110之间的任务的卸载可以是双向的。转向图2,示出了移动设备110的一个实施例。移动设备110可以包括智 能存储设备,比如USB闪速设备(UFD)、存储卡等等。在一个实施例中, 智能存储设备依赖于主机来进行操作。移动设备IIO还可以包括独立式设备, 诸如媒体播放器、移动电话、个人数字助理(PDA)等等。控制器112可以包括处理单元206和非易失性存储(NVS) 210。处理单 元206可以包括一般的处理器,比如32位精简指令集计算(RSIC)处理器。 尽管示出了单个处理单元206,但移动设备110的各实施例可以包括多个处理 单元,比如多个处理器、多个核等等。在一个实施例中,NVS 210存储了可以由处理单元206执行的固件212。 固件212可以包括用于移动设备110的操作系统(比如实时操作系统(RTOS))、 一个或多个应用程序等等。固件212还可以包括用于执行本发明的各实施例的 指令。在图2的实施例中,控制器112包括专用电路208。专用电路208包括可 以执行专门的操作的硬件。专用电路208的示例包括专用集成电路(ASIC)、 现场可编程逻辑阵列(FPLA)、现场可编程门阵列(FPGA)等等。专用电路 208所执行的功能可以包括密码学、数字信号处理、数字权限管理等等。此处 的实施例使主机102能使用专用电路208的功能来更高效地完成主机工作流。转向图3,流程图300示出了根据本发明的一个实施例的将任务从主机卸 载到移动设备的逻辑与操作。图8的流程图800 (将在下文讨论)示出了其中 设备任务被卸载到主机以供主机完成的实施例。应该理解,流程图300和800 的逻辑中的至少某一些可以同时发生。换言之,在某些情况下,主机102可以 将任务卸载到移动设备110,而同时移动设备110也将任务卸载到主机102。 因此,主机102和移动设备IIO之间的任务的卸载可以是双向的。在一个实施例中,流程图300的逻辑在移动设备被连接到主机的会话期间 发生。单个会话在移动设备被连接到主机时开始,并在移动设备从主机上断开连接时结束。从主机的角度来看,移动设备是瞬时的,并且移动设备的存在是 不可预测的。此外,与移动设备的任何会话的长度是不可预测的,并且会话之 间的时间也是不可预测的。如下面所讨论的,本发明的各实施例在卸载主机任 务时能应付移动设备的瞬时本质。从框302开始,移动设备连接到主机。该连接可以通过有线连接或无线连 接。在本发明的一个实施例中,主机不需要关于移动设备或任务卸载的先验知 识来实现本发明的各实施例。这可以是主机第一次看见移动设备。移动设备可 以向主机提供用于将任务卸载到移动设备的手段。在一个实施例中,设置连接 可以包括建立主机与移动设备之间的安全通信会话。在一个示例中,移动设备可以与如电话亭处的公用计算机等公用主机一起 使用。例如,用户希望使用机场的公用计算机来检査用户的公司网络上的电子 邮件。然而,该连接需要该公用计算机不支持的某种特定密码学算法,或可能花费太长时间来由公用计算机的有限处理能力执行。用户可以将其USB闪速 驱动器(UFD)(含有专用密码学电路)连接到公用计算机上。采用此处的实 施例,该公用计算机可以使用UFD的专用密码学电路来连接用户的公司网络。 在该示例中,与公用主机的会话的所有痕迹可在会话结束时被移除。前进到框304,移动设备将其功能展示给主机。在一个实施例中,移动设 备功能被展示为可以被主机使用的接口。例如,移动设备可以展示将为主机加 密数据的加密(ENCRYPT)接口。展示设备功能的各实施例在下文中结合图 4-7来讨论。继续到框306,移动设备将主机策略上传到主机来卸载主机任务。在一个 实施例中,这可以是主机与移动设备之间的第一次连接,并且主机可能未存储 主机策略。同样的,通过向主机提供默认主机策略,不需要主机关于任务卸载 的先验知识来实施本发明的各实施例。继续到框308,主机应用主机策略。在一个实施例中,主机如框306所述 从移动设备处接收到策略。在另一实施例中,主机可以已经存储了主机策略, 或者从与移动设备的上一次会话中存储了主机策略。在又一实施例中,主机可 以从受管网络中的中央服务器获取主机策略(并且之后将其与已存储在主机上 的任何策略合并)。例如,受管网络可能想将同一策略推送到所有受管主机(或其分组)。或者,中央服务器处存储的策略可以为每一特定主机定制。同样的, 在中央服务器位置处更新策略的能力会方便管制网络的系统管理。如此处所使用到的,"主机任务"指的是要由主机执行的计算任务。当连 接了移动设备时,主机策略判断主机任务的执行是否可以由移动设备所展示的 功能来进行。通常,可以使用一个或多个设备功能来完成主机任务。例如,主机任务可以是使用加密算法A来加密500KB的文本文档。移动 设备已经展示了采用专用电路,使用加密算法A来加密100KB数据块的功能。 主机可以通过5次调用该设备功能以完成主机任务,来完成加密文本文档的主 机任务分配。在一个实施例中,可以使用移动设备可执行的脚本语言来以批的形式调用 多个功能。移动设备会具有批语言的知识,并且能够执行批语言来执行多个功 能。主机策略控制任务向移动设备的卸载。例如,主机策略可以是"如果有具 备加密算法A的设备存在,那么将算法A加密任务卸载到该设备。"主机策 略可以由用户或系统管理员来修改。在一个实施例中,主机策略可以与诸如安 全性等管理策略相关联。例如,主机不可以卸载任务,直到移动设备能够被认 证为止。在另一实施例,主机策略可以与主机性能问题相关联。例如,任务将在期 望性能有显著提高(例如超过某一阈值)时卸载。在另一示例中,被接下去一 长串任务所依赖的任务可以不需要卸载。这是由于移动设备的预期的瞬时本质。如果移动设备在其仍在执行任务时被断开连接,则主机不会接收到卸载的 任务的结果。在这种情况下,主机可能不得不从头开始自己执行任务,并且因 此浪费时间。在另一实施例,主机策略可以监视移动设备的健康状况。主机可以监视移 动设备的性能要素,比如处理器负载、可用存储器空间等等。另一个移动设备 健康状况指标可以包括卸载的任务的执行时间。主机策略可以挂起主机任务卸 载,直到移动设备健康状况改善。前进到流程图300的框310,主机通过调用如框304所述的一个或多个所 展示的移动设备功能来将任务卸载到移动设备。如下文中进一步讨论的,在一个实施例中,这些功能可以被展示为诸如API等对应用程序和操作系统的接 □。在一替换实施例中,主机可以通过将可执行映像或中间语言下载到移动设 备上来卸载任务。例如,被卸载的任务可以包括以平台中立语言编写的可执行 例程。移动设备可以在连接握手期间通告对该平台中立语言的支持。主机上的 设备驱动程序可以在需要时(即,在进行中)将该可执行例程下载到移动设备。 完成的任务的返回也可以由设备驱动程序来处理。在另一示例中,中间语言可 以包括可以使用主机上的解释器或移动设备上的兼容解释器来运行的解释语尽管流程图300示出了从主机卸载一个任务的实施例,但应该理解, 一个 以上的任务可以同时被卸载到移动设备。还应该理解, 一个或多个任务可以在 不同时刻卸载到移动设备,而不用考虑任务结果于何时被返回给主机。这些实 施例(以及其它实施例)可以通过主机策略来实现。例如,任务A可以在T1 时刻卸载,而任务B可以在T2时刻卸载。任务A和任务B的执行可以不考虑 对方就开始。同样的,任务A和任务B甚至可以互相不关联。例如,任务A 可以与加密数据以存储在移动设备上有关,而任务B可以与移动设备的DSP 对Wi-Fi信号的信号处理有关。继续到框312,移动设备按照移动设备策略来执行功能。移动设备的策略 可以和安全性、管理性项目等等有关。例如,移动设备在执行任何卸载的任务 请求前,可能需要认证主机。在另一示例,UFD可以包括供政府机构使用的密 码硬件。主机可以请求使用密码硬件来加密从用户的个人非政府电子邮件(例 如,Hotmail帐户)发送的电子邮件。因为加密算法被分类,所以移动设备可 以具有只加密从政府电子邮件地址发送(或发往该地址)的电子邮件的策略。由于该策略,移动设备可以拒绝为用户的个人电子邮件执行加密。在一个实施 例中,设备策略可以在连接到诸如管理性主机等主机时更新。经更新的设备策 略然后可由设备在将来从当前连接的主机或其它主机卸载任务时实施。移动设备策略还可以指示同特定移动设备活动是否优先于主机任务卸载。 例如,如果设备是移动电话,则当一呼叫到达该移动电话时,主机的任何DSP 活动都被挂起,直到对该移动电话的电话呼叫完成为止。继续到框314,主机从移动设备接收功能的结果。结果可以是任何合适的 形式,比如布尔数、整数、浮点整数、串等等。例如,移动设备可以展示具有 以下两个参数的加密功能需要加密的100KB数据块和密钥。移动设备执行 加密并将加密的数据块返回给主机。主机然后可以如希望的那样使用该加密的 数据块(例如,在本地存储上保存、发送到网络存储、作为电子邮件发送等等)。前进到判定框316,流程图300的逻辑判断移动设备是否断开了连接。在 一个实施例中,在移动设备使用公知方式被移除时,主机OS提醒流程图300 的逻辑。如果对判定框316的回答是"否",则该逻辑返回到框308以将另一 任务从主机卸载到移动设备。流程图300可以通过框308到316重复循环将任 务从主机卸载到移动设备,直到移动设备从主机上断开连接为止。如果对判定框316的回答是"是",则逻辑继续到判定框318。在判定框 318,该逻辑判断主机是否接收到来自所有调用的功能到结果。因为移动设备 的本质是瞬时的,所以移动设备可以在主机仍在运行的任何时间被移除。因此, 移动设备可以在主机仍然在等待卸载的任务的结果的时候被移除。如果对判定框318的回答是"是",则流程图300结束。如果对判定框 318的回答是"否",则该逻辑前进到框320来由主机执行故障切换处理。在 一个实施例中,主机盘点在移动设备断开连接前未完成的任务。与这些未完成 任务相关联的功能接着由主机来完成。这些任务可以由主机重新启动并执行, 或者可以卸载到连接到主机并支持此处所述的任务卸载的移动设备。在框320 后,流程图300结束。转向图4,示出了移动设备向主机展示功能的一个实施例。在图4中,主 机402连接到移动设备401。为了展示其可用的功能,移动设备404将储存在 移动设备404上的软件模块406 (可在主机上执行)发送给主机402。在一个实施例中。软件模块406包括诸如API等一个或多个可以被主机 402使用的接口。在一个实施例中,该API可以作为组件对象模型(COM)对 象库来展示给主机402公开,以供主机402上的应用程序和/或OS使用。使用 移动设备来执行该API对该应用程序和/或操作系统可以是透明的。该API会 将计算转移到移动设备。在其它实施例中,软件模块406可以包括语言中立对 象,诸如Java⑧对象、公共语言运行时环境(CLR)对象等等。在一个实施例中,当移动设备404从主机402断开连接时,软件模块406 的API被标记为不可从主机402获得。以此方式,在主机402上执行的软件将 不会试图调用因移动设备404断开连接而不再可用的API。在替换实施例中, 在移动设备404断开连接后,上传的软件模块406从主机402上被清除。
在一个实施例中,主机402可以认证软件模块406。这类认证技术可以包 括使用整数、签名等等。在其它实施例中,根据主机策略,软件模块406可能 需要数字地签署以便被识别和加载。
图5示出了认证软件模块406的一个实施例。在图5中,主机402可以通 过网络502来联系更新管理器504。更新管理器504可以认证软件模块406并 将对软件模块406的更新提供给主机402。在一个实施例中,主机402接收到 的对软件模块406的更新还可以用于更新移动设备404上储存的软件模块406。 在一个实施例中,更新管理器504可以包括微软Windows⑧更新。
转向图6,示出了移动设备展示功能的另一实施例。图6示出连接到主机 402的移动设备404。主机402包括OS 604所支持的应用程序602。 OS 604包 括用于与移动设备404通信的设备驱动程序606。移动设备404可以向驱动程 序606报告,移动设备404具有可用功能。这些功能可以使用自描述语言来表 达。设备驱动程序606知晓自描述语言。例如,可应用web服务描述语言 (WSDL)的概念来将功能展示给主机驱动程序栈中的驱动程序606。 NV608 可以已经存储了使用自描述语言提供给驱动程序606的一组接口 610 (与移动 设备功能相对应)。驱动程序606可以接口来请求移动设备404执行相应功能。 在该示例中,移动设备所支持的具体接口不需要事先(即,在移动设备的连接 之前)被主机OS或主机应用程序知道。这些接口可以在移动设备连接时被发 现,然后绑定到主机。该示例与其它实现的不同之处在于主机或者必须拥有与 移动设备兼容的预加载的库,或者在连接到移动设备时上传整个库(比如在图 4一5中所讨论的那样)。
在一个实施例中,主机402和移动设备404可以扩展公知协议来展示和调 用设备功能。例如,在存储设备的情况下,可以为此处的实施例扩展小型计算 机系统接口 (SCSI)协议。可以扩展该SCSI协议以使移动设备能使用自描述 语言来将功能描述符报告给主机。可以扩展SCSI主机驱动程序来理解这些功能描述符。扩展的SCSI主机驱动程序将使用自描述语言来将这些能力展示给
主机OS和主机应用程序,从而使其能使用设备功能。扩展的SCSI主机驱动 程序将连接的移动设备报告给OS 604,并且将可用功能展示给OS 604和应用 程序602。当一个功能被OS 604或应用程序602请求时,则SCSI主机驱动程 序可以管理移动设备上该功能的调用。
可以由移动设备404提供的描述符数组700的一个实施例在图7中示出。 数组700包括功能名702、输入自变量704、和返回值706。例如,功能加密—1 (ENCRYPT—1)使用所提供的128位密钥来加密从OKB到100KB的数据块。 该功能返回0到100 KB数据块中的加密形式的数据。
应该理解,在图6和图7的实施例中,功能的执行代码不被插入到主机系 统中。功能的代码被保存在移动设备上并在移动设备上执行。同样的,功能的 调用和返回被保存在主机402的驱动程序层。
还应该理解,主机设备驱动程序不必被更新来使用移动设备的功能。扩展 的主机设备驱动程序可以向移动设备査询其功能。因为移动设备功能是用自描 述语言来表达的,因此扩展的主机设备驱动程序不需要关于移动设备功能的先 验知识来使用这些移动设备功能。该自描述特征可以将本发明的各实施例与当 今需要在主机上加载新驱动程序来使用移动设备的移动设备区别开来。
本发明的各实施例也可与即插即用(PNP)相区别。在PnP中,主机OS 必须在本地存储或者网络存储中找到匹配的设备驱动程序来充分使用移动设 备。在此处的各实施例中,移动设备向主机提供了使用移动设备的功能的能力。 不要求主机为移动设备功能提供专门的设备驱动程序。
转向图8,流程图800示出了根据本发明的一个实施例的将任务从移动设 备卸载到主机的逻辑与操作。与流程图300类似,流程图800示出了单个任务 的卸载,但是得益于本说明书的本领域技术人员会理解,可以同时从移动设备 卸载一个以上的任务到主机。同样的,多个移动设备任务不一定要在同时卸载。 此外,多个设备任务可以由主机使用批程序设计来执行。
从框802开始,移动设备连接到主机。继续到框804,移动设备应用设备 策略。移动设备可以包括关于哪些任务可以卸载以及何时可以卸载任务的可修 改策略。例如,设备策略可以要求移动设备在将任何任务卸载到主机之前先认证主机。在另一示例中,设备策略可允许在主机满足比如主机处理器速度等特 定性能阈值时卸载设备任务。
前进到框806,移动设备将设备任务卸载到主机。在一个实施例中,移动 设备在主机存储器中加载可执行代码以在主机处理器上执行。主机可执行映像 可被储存在移动设备上。主机要进行操作的任何数据也可以被卸载到主机。
在一个实施例中,如果被卸载的任务是先前卸载的设备任务的延续,则被 卸载的设备任务可以从由所保存的状态信息指示的位置处继续(在下文中进一 步讨论)。
接着,在框808中,主机执行设备任务。例如,移动设备可以已经存储了 多个需要索引的音乐文件。尽管移动设备可以具有自行索引音乐文件的能力, 但如果主机具有更快的处理器,则移动设备可以利用主机的处理能力。在该示 例中,该移动设备可以包括媒体播放器、具有媒体播放器能力的移动电话等等。 在另一示例中,移动设备可以使用主机来对储存在移动设备上的媒体内容进行 译码。通常,译码(即,重新格式化媒体内容以便与各种应用程序和平台一起 使用)是一种计算上昂贵的操作。有了此处的实施例,移动设备可以在连接到 主机时使用主机的计算能力来进行译码。
在框810中,移动设备可以周期性地存储正由主机执行的设备任务的状 态。因为移动设备的本质是瞬时的,因此移动设备保存任务状态以使任务可以 被卸载并在与主机(或另一主机)的后续会话中继续。在一替换实施例中,移 动设备能够通过从所保存的任务状态继续而在无主机的情况下完成任务。
前进到框812,移动设备从主机接收任务的结果。在判定框814,该逻辑 判断移动设备是否断开连接。如果对判定框814的回答是"否",则该逻辑返 回到框804以卸载另一任务。如果对判定框的回答是"是",则该逻辑继续到 判定框816。
在判定框816,该逻辑确定移动设备是否接收到所有卸载的任务的结果。 如果对判定框816的回答是"是",则流程图800结束。如果对判定框816的 回答是"否",则该逻辑继续到框818,在那里移动设备执行故障切换处理。 在一个实施例中,移动设备可以保留所保存的任务状态,以便下次该移动设备 连接到主机时,该移动设备可以卸载该任务来完成。在另一实施例中,移动设自行完成该任务。在又 一实施例中,移动设备可以忽略所保存的任务状态。在该实施例中,任务可以 在下次移动设备连接到主机时从头开始重新启动。
本发明的各实施例允许在主机和移动设备之间卸载任务。在一个实施例 中,当连接到主机时,移动设备向主机展示主机可以利用的功能。以此方式, 主机可以利用移动设备的处理能力和/或专门硬件来更高效地完成主机工作流。 类似地,移动设备可以将任务卸载到主机以供主机执行。
图9示出了用于实现本发明的一个或多个实施例的计算设备900的示例。
例如,主机102或者移动设备110可以是计算设备900的实现。在一种配置中, 计算设备900包括至少一个处理单元902和存储器904。取决于计算设备的确 切配置和类型,存储器904可以是易失性的(如RAM)、非易失性的(如ROM、 闪存等)或是两者的某种组合。该配置在图9中由虚线906来例示。
在其它实施例中,设备900可以包括附加特征和/或功能。例如,设备900 还可以包括附加存储(例如,可移动和/或不可移动),其中包括但不限于磁存 储、光存储等等。这样的附加存储在图9中由存储908示出。在一个实施例中, 用于实现本发明各实施例的计算机可读指令可以储存在存储908中。存储908 还可以储存实现操作系统,应用程序等的其它计算机可读指令。
此处所使用的术语"计算机可读介质"包括计算机存储介质。计算机存储 介质包括以用于存储诸如计算机可读指令或其它数据这样的信息的任何方法 或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器904和存 储908都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD) 或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储 所需信息并且可由设备900访问的任何其它介质。任何这样的计算机存储介质 都可以是设备900的一部分。
设备900还可包括允许该设备900与其它设备进行通信的通信连接912。 通信连接912可以包括但不限于,调制解调器、网络接口卡(NIC)、或其它 用于将计算设备900连接到其它计算设备的接口 。通信连接912可以包括有线 连接或无线连接。通信连接912可以发送和/或接收通信媒体。
16术语"计算机可读介质"可以包括通信介质。通信介质通常以诸如载波或 其它传输机制等"已调制数据信号"来体现计算机可读指令或其它数据,并包 括任何信息传送介质。术语"已调制数据信号"指的是其一个或多个特征以在 信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包 括有线介质,如有线网络或直接线连接,以及无线介质,如声学、射频、红外、
近场通信(NFC)和其它无线介质。
设备卯0可以包括输入设备914,诸如键盘、鼠标、笔、语音输入设备、 触摸输入设备、红外照相机、视频输入设备和/或任何其它输入设备。还可以在 设备900中包括诸如一个或更多显示器、扬声器、打印机、和/或任何其它输出 设备等的输出设备916。输入设备914和输出设备916可以通过有线连接、无 线连接或其任何组合来连接到设备900。在一个实施例中,来自另一计算设备 的输入设备或输出设备可被用作计算设备卯0的输入设备914或输出设备916。
计算设备900的组件可以通过诸如总线的各种互连来连接。这类互连可以 包括诸如快速PCI(PCI Express)等外围部件互连(PCI)、通用串行总线(USB)、 火线(正EE 1394)、光学总线结构等等。在另一实施例中,计算设备900的 组件可以通过网络互连。例如,存储器904可以由位于通过网络互连的不同物 理位置的多个物理存储单元组成。
本领域技术人员会认识到,用于存储计算机可读指令的存储设备可分布在 网络上。例如,可以通过网络920访问的计算设备930可以储存实现本发明的 一个或多个实施例的计算机可读指令。计算设备900可以访问计算设备930并 下载部分或全部计算机可读指令来执行。或者,计算设备900可以按需下载计 算机可读指令的片断,或者某些指令可以在计算设备900处执行而某些则在计 算设备930处执行。本领域的技术人员还可认识到,所有或部分计算机可读指 令可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等专用电路来实现。
此处描述了本发明各实施例的各种操作。在一个实施例中,所描述的操作 中的一个或多个可以组成储存在一个或更多计算机可读介质上的计算机可读 指令,这些指令如果被计算设备执行则使得计算设备执行所描述的操作。描述 一些或全部操作的顺序不应被解释为暗示了这些操作必须要依赖于顺序。从本 说明书获益的本领域技术人员应理解替换的排序。此外,应该理解并非所有的操作都必须存在于本发明的每一实施例中。
本发明各实施例的以上描述,包括在摘要中所描述的内容,不旨在是穷举 将各实施例限于所公开的精确形式。尽管本发明的具体实施例和示例此处是为 了说明的目的而描述的,但如相关领域的技术人员鉴于以上详细描述所能认识 到的,各种等效技术方案和修改都是可能的。在所附权利要求书中所使用的术 语不应被解释为将本发明限于说明书中所公开的具体实施例。相反,所附权利 要求书应该根据所确立的权利要求解释原则来解释。
权利要求
1.一种方法,包括由移动设备向连接到所述移动设备的主机展示一个或多个功能(304);响应于来自所述主机的请求在所述移动设备处执行所述一个或多个功能中的一个功能,其中所述功能与一主机任务相关联(312);以及将所述功能的结果返回给所述主机(314)。
2. 如权利要求1所述的方法,其特征在于,展示所述一个或多个功能包 括将来自所述移动设备的软件模块上传到所述主机,其中所述软件模块包括用 于调用所述一个或多个功能的接口。
3. 如权利要求2所述的方法,其特征在于,还包括由所述主机认证所述 软件模块。
4. 如权利要求1所述的方法,其特征在于,展示所述一个或多个功能包 括向所述主机提供对应于所述一个或多个功能的一个或多个功能描述符,其中 所述一个或多个功能描述符是自描述的,从而使所述主机可以在没有关于所述 一个或多个功能的先验知识的情况下使用所述一个或多个功能。
5. 如权利要求1所述的方法,其特征在于,还包括 由所述移动设备应用关于执行所述功能的移动设备策略;以及 当执行所述功能被所述移动设备策略禁止时,所述移动设备不执行所述功能。
6. 如权利要求1所述的方法,其特征在于,还包括由所述主机应用关于将所述主机任务卸载到所述移动设备的主机策略;以及当卸载所述主机任务被所述主机策略禁止时,不将所述主机任务卸载到所述移动设备。
7. 如权利要求1所述的方法,其特征在于,还包括当所述移动设备在所述移动设备向所述主机发送了所述功能的结果之前从所述主机断开连接时,由 所述主机来完成所述主机任务。
8. 如权利要求1所述的方法,其特征在于,所述移动设备通过以下的至少一个来执行所述功能执行与所述功能相关联的指令的处理单元,或执行与所述功能相关联的逻辑的专用电路。
9. 一种或多种其上包含在被执行时实现如权利要求1所述的方法的计算机可读指令的计算机可读介质。
10. —种方法,包括将移动设备的移动设备任务卸载到连接到索书号移动设备的主机(806);以及从所述主机接收所卸载的移动设备任务的结果(812)。
11. 如权利要求io所述的方法,其特征在于,卸载所述移动设备任务包括将储存在所述移动设备上的主机可执行映像发送到所述主机,其中所述主机可执行映像与所述移动设备任务相关联。
12. 如权利要求10所述的方法,其特征在于,卸载所述移动设备任务包括从保存在所述移动设备处的任务状态信息所指示的状态开始所述移动设备任务,其中所述任务状态信息是来自所述移动设备任务的先前未完成的执行。
13. 如权利要求10所述的方法,其特征在于,还包括在所述主机处执行所述移动设备任务期间周期性地在所述移动设备处保存所述移动设备任务的状态。
14. 如权利要求13所述的方法,其特征在于,还包括当所述移动设备从所述主机断开连接时由所述移动设备完成所述移动设备任务的执行,其中所述移动设备从最后保存的任务状态开始完成所述移动设备任务。
15. 如权利要求13所述的方法,其特征在于,还包括当所述移动设备从所述主机断开连接时,所述移动设备等待完成所述移动设备任务,直到所述移动设备连接到一主机。
16. 如权利要求IO所述的方法,其特征在于,还包括由所述移动设备应用关于卸载所述移动设备任务的移动设备策略;以及当卸载所述移动设备任务被所述移动设备策略禁止时,不将所述移动设备任务卸载到所述主机。
17. —种或多种其上包含在被执行时实现如权利要求10所述的方法的计算机可读指令的计算机可读介质。
18. —种系统,包括连接到主机(102)的移动设备(110),其中所述移动设备执行以下操作向所述主机展示一个或多个功能(304);响应于来自所述主机的请求执行所述一个或多个功能中的一个功兽g,其中所述功能与一主机任务相关联(312);将所述功能的结果返回给所述主机(314);将所述移动设备的移动设备任务卸载到所述主机(806);以及从所述主机接收所卸载的移动设备任务的结果(812)。
19. 如权利要求18所述的系统,其特征在于,展示所述一个或多个功能包括向所述主机提供对应于所述一个或多个功能的一个或多个功能描述符,其中所述一个或多个功能描述符是自描述的,从而使所述主机可以在没有关于所述一个或多个功能的先验知识的情况下使用所述一个或多个功能。
20. 如权利要求18所述的系统,其特征在于,在所述主机上执行的主机操作系统不知道所述主机任务的至少一部分是在所述移动设备上执行的。
全文摘要
移动设备向连接到该移动设备的主机展示一个或多个功能。响应于来自主机的请求,在移动设备处执行一个或多个功能中的一个功能,其中该功能与一主机任务相关联。该功能的结果被返回给主机。
文档编号G06F15/16GK101601028SQ200880003900
公开日2009年12月9日 申请日期2008年1月11日 优先权日2007年2月2日
发明者R·A·亚历山大, V·萨多弗斯基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1