普及计算的系统与方法

文档序号:7914108阅读:165来源:国知局
专利名称:普及计算的系统与方法
技术领域
本申请所述系统通常与计算机应用程序相关,更具体来说,普及计算的系统与方法。
背景技术
用户被越来越多的计算机和电子设备所包围。用户通常家里和公司都有多台计算机,还有多台显示屏、各式手机、便携电脑、音乐播放器、电视、游戏操作台、照相机和阅读设备。控制设备的最新开发方法包括多点触摸手机或平面、语音指令、运动传感控制器 (例如Wii遥控器)、人体跟踪系统(例如Natal项目)、视线跟踪,和类似于游戏控制台的控制器。现有的用户界面假定用户一次仅使用一台计算机或移动设备。图形用户界面范式仍然是桌面式。在鼠标和键盘之外的多设备和新用户界面功能的新世界中,桌面式图形用户界面和传统单机操作系统运转的不顺利。计算设备都加载有多个软件应用程序,其中大部分根本不用。应用程序与特定的硬件机相绑定,无法移动,维护和升级很难,且代价高昂。拥有多台设备的用户不能将一台设备的功能(如iPhone多点触摸功能)结合到其他设备上使用(如大屏幕等离子电视)。尽管计算机和设备在数以十万计的专用本地网络或部分的互联网内相连接,但各设备基本上不相联系。在设备间传输和同步数据(如照片)往往是一项长期而艰巨的任务。现有的Web应用程序旨在解决其中一些问题。与传统的软件应用程序类似,Web应用程序能通过写入指令提供功能,而无需安装应用程序,减缓计算机的物理内存。经构建的 Web应用程序也能从所有用户设备访问服务器上存储的数据,从而无需进行数据同步。然而,Web应用程序和基于浏览器的模型有一定的局限性,其中包括HTML/JavaScript构建的用户体验是基础性的,并且受限制。Flash/Silverlight中没有多线程模型,也不允许构建全功能的应用程序。不能用Web应用程序模型或RIA模型来有效地构建通信/协作软件。最近开发的多机计算环境,用于针对软件部署、配置、管理/或运行数据中心(云计算操作系统、思杰云中心、亚马逊弹性计算云、微软云计算和其他)的企业需求。然而,上述这些计算环境都未假定客户/多设备的情形,也未提供用户界面(用于运行含Web应用程序的虚拟机或桌面操作系统的环境)。本申请公开了普及计算的方法和系统。根据一个实施例,计算机实施的方法包括 在云计算环境中服务器与第一设备进行通信,其中第一设备能检测周围设备;由服务器执行的应用程序,其中该应用程序由第一设备控制,且服务器执行该应用程序的输出是由该服务器指向第一设备检测到的设备之一。
本申请要求优先权,优先权申请为2009年8月27日提出的申请号61/237,611, 名禾尔“Operating Environment and User Interface for Pervasive Computing,,白勺美国临时专利申请;本申请参考引用并入了如上所述申请的全部内容。


本申请所附绘图为本说明书的一部分,举例说明了先优选的实施例,与如上所述的一般描述和如下所述优选实施例的详细描述一起,共同用于解释和教导本发明的原则。图1依据一个实施例,展示了使用本系统的示例计算机体系结构。图2依据一个实施例,展示了普及计算环境的系统级示例图。图3A依据一个实施例,展示了使用单一服务器的普及计算环境的系统级示例图。图;3B依据一个实施例,展示了使用多个服务器的普及计算环境的系统级示例图。图4A依据一个实施例,展示了普及计算环境中示例的设备通信图。图4B和4C依据一个实施例,展示了普及计算环境中在传输一应用程序之前和之后示例的设备通信图。图5依据一个实施例,展示了普及计算环境中使用的客户端结构示例图。图6A依据一个实施例,展示了普及计算环境中使用的简单输出设备结构示例图。图6B依据一个实施例,展示了普及计算环境中使用的设备控制器结构示例图。图6C依据一个实施例,展示了普及计算环境中使用的性能计算设备结构示例图。图6D依据一个实施例,展示了普及计算环境中使用的上网本类设备结构示例图。图6E依据一个实施例,展示了普及计算环境中使用的简单操作系统结构设备示例图。图7依据一个实施例,展示了普及计算环境中使用的云体系结构示例图。图8A-8C依据一个实施例,展示了普及计算环境的示例情形,其中任一用户能使用任一计算机。图9A-9C依据一个实施例,展示了普及计算环境的示例情形,其中一个应用程序追随一个用户。图10A-10C依据一个实施例,展示了普及计算环境的示例情形,其中软件应用程序独立于硬件设备。图11A-11E依据一个实施例,展示了普及计算环境的示例情形,其中将应用程序从电子报纸移至表格台面。图12依据一个实施例,展示了普及计算环境的示例情形,其中一个控制器设备控制其他设备和应用程序。图13A-13D依据一个实施例,展示了普及计算环境的示例情形,其中一设备响应一个控制器设备的输入。图14A-14B依据另一实施例,展示了普及计算环境的示例情形,其中一设备响应控制器设备的输入。发明详述本申请公开了普及计算的方法和系统。根据一个实施例,计算机实施的方法包括 在云计算环境中服务器与第一设备进行通信,其中第一设备能检测周围设备;可由服务器执行的应用程序,其中该应用程序由第一设备控制,且服务器执行该应用程序的输出是有服务器指向第一设备检测到的设备之一。本申请的方法和系统整合了 2009年9月四日提出的申请号为12/569,876的美国专利申请所描述的传输协议,本申请参考引用并入了如上所述申请的全部内容。整个文件中所使用术语和相应的定义包括设备任何具备输入,输出,或计算功能的电子,生物电子或纳米电子设备。设备实例包括但不限于便携式电脑、服务器、个人电脑、上网本、移动设备、智能电话、投影仪和电视机。应用程序客户端所使用的软件。应用程序实例包括但不限于=Microsoft Office 的应用程序、图像剪辑软件和媒体播放器。输入功能设备从个人、设备或其他应用程序接收输入信息的能力。输入功能的实例包括但不限于人类语音、视频数据、运动检测、加速度传感器、温度传感器、压力传感器 (例如空气压力或触摸压力)、眼球运动、键盘、鼠标、数据文件和从其他应用程序接收的数据流。输出功能设备向其他设备或应用程序传输数据作为输出或由人能理解的方式呈现输出的能力。输出功能实例是通过大或小屏幕、三维显示屏、音响的显示能力。计算功能设备通过执行以编程语言编写的程序,进行计算的能力。I/0/C图输入、输出和计算功能图。该图是用户在任何给定时间内所使用的所有设备及其相互关系的逻辑表示形式。ι/0/c图指明给定用户所使用的设备为何。该图还指明哪些设备提供计算功能、哪些设备提供输入和输出的功能,以及这些设备之间如何发送输入和输出信息(而且也可能重复输入和输出流)。ι/0/c图是每个用户每次在使用普及操作环境时,系统的生成图。I/0/C管理员设备与之通信的实体。设备将功能与管理员交流,且管理员对每一个用户来说都是特别的。管理员维护和协调每个用户在给定时间使用普及操作环境的I/O/ C图。I/0/C管理员维护每个用户对数据、应用程序和设备的访问。名称服务给用户提供将固定名称与设备相关联的能力,以将设备从物理网络地址(如IP地址)中抽象出来。设备代理商本系统内所使用各设备的普及计算代理商。数据提供商负责与数据存储供应商进行通信,以获取用户数据的实体。数据存储供应商远程用户数据存储的服务。认证和安全网关认证用户的实体。虚拟计算设备提供商因系统其他组件的请求,如用户的I/0/C管理员,负责提供虚拟计算设备的实体。应用程序流利用应用程序流媒体技术,负责将应用程序部署至虚拟或物理计算设备的实体。应用程序图像存储器利用应用程序流媒体技术存储应用程序的图像,其将被部署在物理或虚拟计算设备上。或者,应用程序图像存储可能包含封装式应用程序,通过标准的软件安装流程在给定的操作系统内将其安装在虚拟或物理计算设备上。虚拟机提供商根据请求负责提供虚拟机的实体。
输入编码器能够对所接收的输入进行编码的实体。输入解码器能够对所接收的输入进行解码的实体。输入队列接收输入的缓冲区。输出捕获器能够捕获输出的实体。输出呈现器能够正确呈现输出的实体。输出编码器能够将输出传输进行编码的实体。输出解码器能够将输出传输进行解码的实体。网络堆栈普及计算环境中进行设备通信的实体。网络堆栈应该启用高性能和低延迟的数据传输。用户界面(UI)壳设备上用户与普及计算环境互动的用户界面。设备采集每个设备能够发现和采集周边设备(或不,取决于用户的期望)。若采集,则将设备置于用户的个人普及计算环境中。本系统的普及计算能够使设备运行应用程序,而不受其操作系统和硬件的限制。 用户可以从任何设备访问他们的数据、应用程序和虚拟机,并可以支持多种计算设备。应用程序几乎可以在设备间瞬间迁移(即从几百毫秒到几秒钟的很短时间,取决于网络条件和其它因素)。普及计算系统内的个人计算环境提供了用于管理数据、应用程序、虚拟和物理设备的用户界面(UI)壳。设备能发现彼此,并使用驻留在其他设备的功能。组合使用" 热"虚拟机和应用程序流媒体技术,能够最小化在就绪状态所需的虚拟装置数量(即虚拟机运行的具体应用程序)。本普及计算环境可以运行多个输入、输出和计算设备,以及机器人设备。该设备可以是物理或虚拟的,设备实例包括但不限于笔记本电脑、电脑(mac和pc)、电视、可折叠电子屏、机器人设备、移动设备、手机、iPhone、平板电脑、跟踪摄像机、运动传感器、内置到太阳镜的增强现实显示器、头盔或隐形眼镜、加速传感器、运动跟踪系统、多点触屏、3D显示系统(全息或非全息)、附计算单位的投影表和投影墙、RFID读取器和标记。依据本系统,用户在其计算环境中可以有不限数量的设备。依据一个实施例,本系统的用户界面,支持动作感应,人体跟踪,多点触摸,语音和视线输入功能,以及传统的输入功能。用户数据和应用程序可从任何设备访问,并且可以在显示屏、计算机和设备间迁移。应用程序可以在多个用户间共享-即任何用户均可同时查看和使用应用程序。这能允许无缝协作;例如在演示文稿的同时进行视频聊天;其他实例包括在语音聊天的同时进行文本聊天。设备能发现彼此和彼此的显示,输入和计算功能。设备能分享彼此的输入功能和显示功能。本系统支持多个操作系统,甚至支持没有操作系统的设备。本系统还支持多个数据存储提供商和计算提供商。用户基于地理、成本、带宽和其他因素,为其个人普及计算环境选择计算提供商。应该能够理解,上文所述的实施例中接收器可以是隐形眼镜显示器。隐形眼镜显示器在2009年9月《IEEE Spectrum》的〃隐形眼镜中的增强现实〃 一文中予以讨论,本申请参考引用并入了上述文章内容。这种隐形眼镜能向佩戴者显示信息,并通过无线设备进行通信。这些设备能起到上文所述接收器的作用,并通过覆盖佩戴者视野中的图形增强用户的现实感。作为紧致设备,这些设备在功能上受到限制,例如,仅能呈现图形命令和文本。 当佩戴者聚焦其环境中的对象时,该设备的一个实施例能显示相应文本。应该能够理解,上文所述的实施例中输出图形可以是3D图形。3D图形可以是由多个摄像机拍摄的特殊图形,然后合并在一起创建全息图或其他3D图形。上述系统能轻松地支持此类3D图形3D图形经服务器适当压缩,并传输至接收器用于呈现。假定接收器有适当的计算资源和呈现功能,就能向用户呈现该3D图形。3D图形在2009年9月5日“经济学人-技术季刊”22页的“3D技术一近在咫尺”中予以讨论,本申请参考引用并入了上述文章内容。在如下说明中,为解释之目的,为全面说明本申请所公开的各项发明理念,设置了特定的术语。然而,对于本领域技术人员来说,很显然在实践本申请所公开的各发明理念时,并非必然需要这些具体细节。下文详细说明的某些部分以算法术语和计算机内存中数据位的操作符号来表示。 这些算法的说明和陈述是数据处理领域技术人员所熟练使用的,是最有效地向其他领域技术人员传达其工作实质内容的方法。此处的方法,一般来说,被认为是自相容的,能产生预想结果的过程。该过程涉及物理量的物理操作。这些量通常,但不必然,采取能够被存储、 传输、联合、比较或其他操作的电气或磁信号的形式。它经证明有时很方便,主要原因是习惯性用法,将这些信号称为位、值、元素、符号、字符、术语、数字或其他类似词。然而,必须牢记所有这些和类似的术语要与适当的物理量相关联,并非仅出于方便在这些量上贴标签。除非在下文中作具体声明,整个说明所使用的术语,诸如"处理"、“计算(computing)“、“计算(calculating)“、“确定〃、“显示〃或类似术语,指的是计算机系统或类似电子计算设备的行动和处理,能操作和转变以计算机系统寄存器和内存的物理(电子)量的数据代表为其它数据,被代表为计算机内存、寄存器或其他,诸如信息存储、传输或显示设备内的物理量。本方法与系统还涉及了执行本申请中操作的装置。该装置可能为所要求之目的而特别构成,或可能包含由存储在计算机内的计算机程序有选择地激活或重新配置的通用型计算机。该计算机程序可存储在计算机可读存储介质,例如,但不限于各类型的磁盘,包括软盘、光盘、光盘驱动器、磁光盘、只读存储器(“ROMs")、随机存储器(“RAMs")、 EPR0Ms、EEPR0Ms、磁或光卡或适用于存储电子指令的任何类型的介质,且各自耦合至计算机系统总线。本申请中所呈现的算法和显示并不固有关联到任何特定的计算机或其他设备。依据本申请的教导,各种通用系统都可能与程序一起使用,或为执行需要的方法步骤,可以方便地构建具体装置。这些系统所需的结构将出现在如下说明中。此外,本发明并未根据任何特定的编程语言加以描述。应该能够理解,多种编程语言均可用于实现本申请所述教导的方法与系统。图1依据一个实施例,展示了使用本系统的示例计算机体系结构。实施例之一的体系结构100包括用于信息通信的系统总线120和用于处理信息,耦合至总线120的处理器110。体系结构100还包含用于存储信息和处理器110所执行的指令,耦合至总线120 的随机存取器(RAM)或其他动态存储设备125(本申请称为“主存储器”)。主存储器125也可用于存储处理器110执行指令期间的临时变量或其他中间信息。体系结构100还可包含用于存储静态信息和处理器110所执行的指令,耦合至总线120的只读存储器(ROM)和 /或其他静态存储设备126。数据存储设备127,如磁盘或光盘和其相应的驱动器也能耦合至计算机系统100, 用于存储信息和指令。体系结构100还能通过I/O接口 130,耦合至第二 I/O总线150。多个I/O设备能耦合至I/O总线150,包括显示设备143、输入设备(例如字母数字输入设备 142和/或光标控制设备141)。通信设备140允许其它计算机(服务器或客户端)通过网络进行访问。通信设备 140可能包括一或多个调制解调器、网络接口卡、无线网络接口或其他通用的接口设备,如用于耦合以太网、令牌环,或其他类型的网络。图2依据一个实施例,展示了系统级普及计算环境的示例图。普及计算系统200 包含一通过互联网207与数据中心(“云”)208通信的客户端209。客户端209包含运行用户引擎202的设备201,该设备在未安装在设备201的应用程序204上显示。208包含运行云引擎205和应用程序204的服务器203。云还能访问未存储在服务器203或设备201 上的用户数据206。图3A依据一个实施例,展示了使用单一服务器的系统级普及计算环境的示例图。 普及计算环境300包含311和一或多台设备(设备_1 301、设备_2 302、设备_N 30 。设备_1 301包含输入功能304、输出功能305、计算功能306、输入编码和解码器307、输出编码和解码器308、设备代理商309和网络堆栈310。依据一个实施例,设备能包含上述组件的任意组合,且不要求包含所有组件。311包含管理员313 (指I/0/C管理员,用于输入、输出和计算)、名称服务312、与存储提供商(316,317)通信的数据提供商314,及认证和安全网关315。图;3B依据一个实施例,展示了使用多个服务器的系统级普及计算环境的示例图。 普及计算环境340包含3 和一或多台设备(设备_1 318,设备_2 319,设备_N 320)。设备_1 318包含输入功能321、输出功能322、计算功能323、输入编码和解码器324、输出编码和解码器325、设备代理商3 和网络堆栈327。依据一个实施例,设备能包含上述组件的任意组合,且不要求包含所有组件。3 包含管理员329(指I/0/C管理员,用于输入、输出和计算)、名称服务330、与存储提供商(336,337)通信的数据提供商331,及认证和安全网关335。328还包含与虚拟机管理器333通信的虚拟计算设备提供商332和应用程序流 334。虚拟机管理器333在与虚拟机(VM)供应商338进行通信,且应用程序流334在与应用程序图像存储器339进行通信。图4A依据一个实施例,展示了普及计算环境中示例的设备通信图。输入/输出/ 计算管理员401(本申请称为“管理员”)在与其毗邻的所有设备(402,403,404,405,406, 407)进行通信。设备具有输入、输出,和/或计算功能。设备能发现彼此,并且选择性地采集彼此,以利用其它设备的现有功能。设备4 402是未被采集的输出设备。设备1 406是已被采集的输入设备。设备2 407也是已被采集的输入设备。设备3 405是已被采集的计算设备。设备5 407是已被采集的输出设备。设备6 404是已被采集的输入、输出设备。设备1能使用的示例输入设备可以是具有输入编码器的苹果iPhone。设备2能使用的示例输入设备可以是具有输入解码器的全身动作传感摄像机。设备3能使用的示例计算设备可以是具有8核CPU和强大的图形处理器,其包含输出和输入编码器的服务器。设备4能使用的示例输出设备可以是含投影仪和输出解码器的投影面。设备5能使用的示例输出设备可以是含输出解码器的电视机。设备6能使用的示例输入、输出设备可以是含输入编码器和输出解码器的台式多点触屏。图4B和4C依据一个实施例,前者展示了普及计算环境中在一应用程序被传输之前和之后的示例的设备通信图。如图4B所示,管理员408在与已被采集的四台设备(409, 410,411,412)进行通信。输入设备设备1 409(如Apple的iPhone)在输入/输出设备 设备2 410(如笔记本电脑)的毗邻处。计算设备设备4 412(如含8核CPU和强大的图形处理器的服务器)在运行应用程序,与设备2 410进行流交互。输入和输出设备(如笔记本电脑)设备3 411,被采集,但未显示有活跃的应用程序。图4C还包含管理员408,与已被采集的四台设备009,410,411,412)进行通信。 然而,设备1 409提出将在设备2 410上显示的应用程序传输至设备3 411上显示的请求。 设备4 412在与设备3 411进行流交互。图5依据一个实施例,展示了普及计算环境中使用的客户端结构示例图。设备501 含设备代理商516和网络堆栈517。设备501还至少包含输入捕获器508、输入编码器512、 输入解码器513、输入队列509、输出捕获器510、输出呈现器511、输出编码器514、输出解码器515,和计算组件(502、503、504、505)。设备501可选有用户界面(UI)壳506和应用程序 507。图6A依据一个实施例,展示了普及计算环境中使用的简单输出设备结构示例图。 简单输出设备601包含设备代理商604和网络堆栈605。简单输出设备也至少包含输出解码器603和输出呈现器602中之一。图6B依据一个实施例,展示了普及计算环境中使用的设备控制器结构示例图。设备控制器606包含设备代理商610和网络堆栈611。设备控制器606也至少包含输入捕捉器607和输入编码器608中之一。设备控制器可选有用户界面(UI)壳609。图6C依据一个实施例,展示了普及计算环境中使用的性能计算设备结示例构图。 性能计算设备(或云服务器)612包含设备代理商620和网络堆栈621。性能计算设备至少包含CPTO13、GPTO14、输入解码器616、输入队列618、输出捕获器617和输出编码器619中之一。性能计算设备612可选有应用程序615。图6D依据一个实施例,展示了普及计算环境中使用的上网本类设备结构示例图。 上网本类设备622包含设备代理商6 和网络堆栈630。上网本类设备622也至少包含输出解码器627、输入编码器624、CPTO25、图形6 和输出呈现器623中之一。上网本类设备 622可选有用户界面(UI)壳628。图6E依据一个实施例,展示了普及计算环境中使用的简单操作系统结构设备示例图。简单操作系统631包含设备代理商634和网络堆栈633。简单的操作系统631包含视频编解码器632,和可选的用户界面(UI)壳635。图7依据一个实施例,展示了普及计算环境中使用的云体系结构示例图。云体系结构700包含管理员701和名称服务702。云体系结构700包含与存储提供商(705,707) 通信的数据提供商706和虚拟计算设备提供商710。虚拟计算设备提供商710与虚拟机管理器709和应用程序流711进行通信。虚拟机管理器709与虚拟机提供商708进行通信,且应用程序流711与应用程序图像存储器712进行通信。云体系结构700包含认证和安全网关713。依据一个实施例,云体系结构700还包含支付引擎703和许可管理引擎704。支付引擎703协调客户支付的服务费,许可管理引擎704管理许可协议和普及计算环境中所使用的应用程序要求。图8A-8C依据一个实施例,展示了普及计算环境的示例情形,其中用户能使用任意计算机。计算机给用户提供可以管理数据、应用程序、虚拟和实体计算设备和机器人的用户界面外壳。用户完成任务,取消认证,计算机则隐藏用户的个人计算环境。后续用户便能够访问计算机,通过身份验证,访问他或她的数据、应用程序、虚拟计算机以及本地和公共设备。云操作环境和上述引用的协议都能启用这一方案。计算机存储所有用户的数据,保证其应用程序的可用性是不可能的。示例的普及计算环境800包含具有认证设备802的计算机1 801。计算机1 801 利用无线网络适配器803连接到网络。示例的普及计算环境810包含具有认证设备802的计算机1 801,计算机1 801利用无线网络适配器803连接到网络。环境810包含具有认证设备805的用户1804。用户1 804将认证设备805放置在与认证设备802适当的毗邻处, 且将用户1 804的数据引入计算机1 801。结果环境811包含显示的用户1数据、应用程序和计算机1 801的设备806。当用户1 804不再处于毗邻处时(更具体而言,当用户1 804 的认证设备805不再处于认证设备802的毗邻处),计算机1 801上不再显示和访问用户1 804的数据,同时该环境回到800所示状态。示例计算环境812中,用户2 807则能访问计算机1 801。示例计算环境812包含具有认证设备802的计算机1 801,计算机1 801利用无线网络适配器803连接到网络。 环境810包含具有认证设备808的用户2 807。用户2 807将认证设备808放置在与认证设备802适当的毗邻处,且将用户2 807的数据引入计算机1 801。结果环境813包含显示的用户2数据、应用程序和计算机1 801上的设备809。当用户2 807不再处于毗邻处时(更具体而言,当用户2 807的认证设备808不再处于认证设备802的毗邻处),计算机 1 801上不再显示和访问用户2 807的数据,同时该环境回到800所示状态。图9A-9C依据一个实施例,展示了普及计算环境的示例情形,其中一个应用程序跟随一个用户。用户登录至笔记本电脑上他或她的个人计算环境,运行应用程序。该应用程序实际在云操作环境中运行,且可以是任何操作系统或应用程序。用户离开其笔记本电脑,连接到电视(RFID阅读器能感应到用户及用户认证连接的电脑),则该应用程序立即移到电视上。示例普及计算环境900包含具有认证设备905的用户1 904。用户1 904通过认证设备906被认证(将认证设备905放置于认证设备906适当的毗邻处),并运行计算机 1 901上应用程序1 902。计算机1 901利用无线网络适配器903连接到网络。用户1 904在普及计算环境907中离开计算机1 901,转向计算机2 908。计算机 1 908利用无线网络适配器903连接到网络。用户1 904通过将认证设备905放置于认证设备911适当的毗邻处被认证,且应用程序1 902以用户1 904离开前该应用程序在计算机1 901上同一状态,自动传输至计算机1 908。用户1 904还能转向另一环境909,该环境包含利用无线网络适配器903连接到网络的HDTV 910。HDTV 910包含认证设备912,且当用户1的904认证设备进入到毗邻处时,用户1 904被认证。一旦用户1 904被认证,应用程序1 902以用户1 904离开前该应用程序在计算机2 908上的同一状态,显示在HDTV 910上。图10A-10C依据一个实施例,展示了普及计算环境的示例情形,其中软件应用程序独立于硬件设备。笔记本电脑能“运行”应用程序,当关闭笔记本时,该应用程序仍在运行。示例普及计算环境1000包含控制器设备1004(如iPhone或Wii mote)、计算机1 1001 和计算机2 1003。计算机1 1001在“运行”应用程序1 1002。控制器设备1004能提供输入,例如通过向计算机2 1003的摇摆动作,该环境转移至1005所示的环境。环境1005包含计算机1 1001、控制器设备1004和计算机2 1003,但计算机2 1003在“运行”应用程序 1 1002。应用程序1 1002的显示/运行保持在其离开计算机1 1001时的同一状态。另一示例环境1006包含计算机1 1001、计算机2 1003和控制器设备1004。计算机1 1001可以被关闭,其时应用程序1 1002仍能在计算机2 1003上运行。图11A-11E依据一个实施例,展示了普及计算环境的示例情形,其中将应用程序从电子报纸移至表格台面。用户进入其个人计算环境,并恢复保存在云操作环境休眠状态的应用程序(演示文稿)。这是遗留的应用程序,因为缺乏相应的遗留操作系统,柔性显示屏通常不能运行该应用程序。然而,它能直观地从云计算操作环境中流式传输,且利用电子报纸的内置解码器显示。用户界面(UI)壳启用本地拖动和调整屏幕上对象的大小,响应降低运行远程应用程序的延时效应。用户将应用程序拖至确定的公共投影设备(其中附有计算单元,该单元含网络连接)。云操作环境能识别此点,并开始将应用程序流式传输至新设备。示例环境1100包含用户1 1102,柔性显示屏1101(例如电子报纸)和无线网络适配器1103。示例环境1104中,用户1的1102的数据1105利用上述引用的协议和云操作环境流式传输至柔性显示屏1101。如示例环境1106所示,用户11102包含流式传输至柔性显示屏1101的应用程序1109。另一示例环境1110和1114包含附加的投影仪1107和投影面1108。用户1能将应用程序1 1109拖至投影面1108,且云操作环境利用上述引用的协议开始将应用程序流至投影设备1108。用户1 1102能向控制器设备1111提供输入1112,应用程序流式传输至投影面1108,以响应1113。图12依据一个实施例,展示了普及计算环境的示例情形,其中控制器设备控制其他设备和应用程序。控制器设备的实例可能是iPhone。投影表上,一个应用程序正在运行。用户设置iPhone作为应用程序的输入设备和用户调用iPhone的键盘键入应用程序内。 IPhone的输入重定向到云操作环境,到虚拟机,然后到应用程序代码中,显示为新的指令和语言。这一新视觉信息被截获并传输到投影设备。连接到投影仪的计算设备上的解码器对该视觉信息进行解码,显示在表上。示例普及环境1200包含使用控制器设备1 1201的用户1 1202,该控制器设备含输入方式(如键盘),并利用无线网络适配器1203连接到无线网络。同时利用无线网络适配器1203连接到无线网络的还有投影仪1207和投影面1205。 用户1 1202向控制器设备1 1201的输入1204显示1206在投影面1205上。图13A-13D依据一个实施例,展示了普及计算环境的示例情形,其中设备响应控制器设备的输入。示例普及计算环境1300包含利用控制器设备1 1301的用户11302,该控制器设备利用无线网络适配器1303连接到无线网络。HDTV 1304也连接到无线网络1303。另一示例环境1307包含键入输入1 1305至控制器设备1 1301的用户1 1302,和呈现在 HDTV 1304上显示的输入1 1306。另一示例环境1312中、包含键入输入2 1310至控制器设备2 1310的用户1 1302 (如ffii-mote)。控制设备跟踪器1308能跟踪控制器设备2 1310的行动,和呈现在 HDTV 1304上显示的输入2 1311。又一示例环境包含键入输入3 1315至控制器设备3 1314 的用户1 1302和对输入3 1316的响应,显示在HDTV 1304上。利用iPhone的示例特征, 即多点触摸,输入3 1316的实例能调整应用程序的框架尺寸。图14A-14B依据另一实施例,展示了普及计算环境的示例情形,其中设备响应控制器设备的输入。示例普及计算环境1400包含利用控制器设备1 1401的用户1 1402,该控制器设备利用无线网络适配器连接到无线网络。用户1 1402能利用控制器设备1 1401 控制设备2 1404,设备2 1404利用无线网络适配器1403连接到无线网络。示例环境1405 中,用户1 1402向控制器设备1 1401提供输入1 1406,且设备2响应输入1 1407。该设备示例情形包含iPhone和Roomba。用户晃动iPhone或摆个姿势,Roomba则会随之移动。 利用上述引用的协议和云操作环境能完成这一情形。下文是依据本系统多个实施例的示例情形。本领域技术人员能理解虽然本发明利用两个示例实施例进行描述,基于本发明所公开的内容,还存在其他情形。例如,依据本发明原则,各组件的角色和其关系能互换和延伸。示例的术语和定义包括<id>_具有持续属性的对象。[id]-当前在系统中某处运行的已命名代理商。输出=[发送方]= > [接收方](args)-[发送方]代理商发送信息至[接收方], 且[接收方]代理商以输出为响应。情形1:参与方〇具有id<user>的用户和其管理者[supervisor];〇具有id<phone>的iPhone和在其上运行的代理商[phone];〇设备<dev>和在其上运行的代理商[dev];〇虚拟机管理器[VMManager];〇应用程序,id<app> ;〇运行应用程序的虚拟装置< va>。方案 用户启动iWione,并进入用户认证;· iPhone W id<phone>, Mi^W id<user> ;· iPhone连接到访问点,并发送至用户的管理员请求;· [phone] = > [supervisor]( ‘获取’,{设备:<phone>}) 管理员操作 返回获取值- phone ;· iPhone发送“获取〈user〉当前状态”的请求至管理员; 状态=[phone] = >[supervisor]( “获取状态”); 管理员操作
返回获取状态值();· iPhone显示用户已知的所有设备列表,其中包括一些在线且可用的;· iPhone使用上述获取的状态信息; 用户选择当前可用的设备并选择“启动应用程序”。 所选择的设备含id<dev> ;· iPhone发送请求“设备<dev>上能启动的应用程序列表”;· apps = [phone] = > [supervisor]( ‘获取应用程序,,{设备<dev>}); 管理员操作 功能=<dev>.功能[‘消耗,,‘输出,]; 应用程序列表=[supervisor] = >[VMManager]( ‘可兼容的应用程序’,功能) 返回应用程序列表· iPhone显示该设备上能启动的可用应用程序列表;· iPhone使用上述获取的应用程序; 用户选择并启动应用程序; 所选择的应用程序含id<app> ;· iPhone要求管理员“在<dev>上启动<app>,,;· [phone] = > [supervisor]( ‘启动,,{应用程序:<app>,设备:<dev>}); 管理员要求虚拟机管理器代表〈user〉利用秘密通信短语启动<app> 获取(<dev>);· <va> = [supervisor] = >[VMManager]( ‘启动,,{应用程序为 <app>,用户为 <user>}); 获取(<va>); 返回 0k; 管理员指示<dev> “连接到<va>,,; 连接(‘输出,,<va>,<dev>); 应用程序出现在设备显示屏上;· iPhone的输入重定向至设备,且最终到应用程序; 管理员指示<phone>重定向输入至<dev> ; 连接(‘输入,,<phone>,<dev>);· <dev>的设备代理商向系统传达接收的输入,并通过HVTP远程调控应用设备。情形2:参与方 具有id<user>的用户和其管理者[supervisor]; 具有id<phone>的iPhone和在其上运行的代理商[phone]; 具有id<mac>的Mac和代理商<mac>,显示远程应用程序并控制iPhone的输入; 具有id<pc>的计算机和代理商[pc]。方案 用户在设备(Mac)上有应用程序在运行,iPhone输入也被重定向至该设备; 用户有id<user>及相关联的管理员[supervisor];0175] 设备的id为<maC>,代理商的id为[mac];
0176]· iPhone<phone> 及代理商 fchone];
0177] 应用程序在虚拟装置<va>上运行;
0178] 用户向另一设备(PC)走近,并利用其RFID卡在设备上认证;
0179] 设备的id为<pc>,其上有代理商在运行[pc];
0180]· RFID硬件发送包含用户id<user>的信号至[pc];
0181]· [pc]通知管理员,该用户已靠近计算机;
0182] 状态=[pc] = > [supervisor]( ‘获取,,{设备为 <pc>});
0183] …(与“启动iPhone上应用程序”的步骤相同);
0184]· PC能显示所有用户设备的当前状态;
0185] 应用程序从Mac迁移至PC ;
0186]· PC要求管理员将所有输出移至其自身;
0187]· [pc] = >[supervisor]( “重定向所有”,{键入‘输出,,设备:<pc>});
0188] 管理员将所有包含设备的输出重定向至PC ;
0189] 重定向所有(‘输出,,<pc>);
0190]· iPhone的输入正在重定向至PC ;
0191]· PC要求管理员获取所有拥有的设备的输入;
0192]· [pc] = > [supervisor]( “重定向所有”,{键入‘输入,,设备:<pc>});
0193] 管理员要求所有输入设备连接到PC ;
0194] 重定向所有(‘输入,,<pc>。
0195]根据一个实施例,管理员能使用如下功能,包括但不限于
0196] 获取(设备)
0197]眷〈设备>.在线=真;
0198]· <设备>.当前所有者=<user> ;
0199]· <user>.拥有的设备.附加(< 设备>);
0200] 返回 0k。
0201] 释放(设备)
0202] 如果〈设备>.当前所有者不等于<user> 返回0k。
0203]· <设备>.当前所有者=无人;
0204]· <user>.拥有的设备.删除(< 设备>);
0205] 返回 0k。
0206] 获取状态()
0207] 设备=<user>.已知设备;
0208] 输出为空;
0209] 对于设备中的每 < 设备> 输出.附加({id <设备>,地点<设备>.地点,
0210]名称〈设备>.名称,
0211]可用
0212]〈设备>.在线和〈设备>.当前所有者==无人,···})
0213] 返回输出。
连接(类型,生产商,用户) 秘密=随机字符串() 如果〈生产商>·角色[类型]==Both,且〈消费者>·角色[类型]== Both 服务器= < 生产商 >,客户端= < 消费者> ; 如果〈生产商>·角色[类型]==Both,且〈消费者>·角色[类型]==被动服务器= < 消费者 >,客户端= < 生产商> ; 如果〈生产商>·角色[类型]==Both,且〈消费者>·角色[类型]==主动服务器= < 生产商 >,客户端= < 消费者> ; … 如果〈生产商 >.角色[类型]=〈消费者· [supervisor]= > [服务器](‘接受连接密});· [supervisor]= >[客户端](‘创建连接密});· <user>.连接.附加({类型类型,生产商 返回 Ok。 断开连接(类型,生产商,消费者)· [supervisor]= >[生产商](‘断开连接消费者>});· [supervisor]= >[消费者](‘断开连接生产商>});· <user>.连接.删除({类型类型,生产商 返回 0k。 重定向所有(类型,消费者) 对每一 {conType, conProducer, conConsumer},其中〈user〉·连接如果conType ==类型,和conConsumer不等于消费者断幵连接{conType, conProducer, conConsumer};连接{conType, conProducer, conConsumer}。本申请公开了普及计算的方法和系统。本申请中所述实施例出于说明之目的,不应理解为限制当前实施例的主题,敬请理解。不偏离当前发明范围或精神的各种修正、使用、替换、重组、改进和产品方式对本领域技术人员是显而易见的。
>.角色[类型]返回错误。 ’,{类型类型,从客户端,秘密秘
’,{类型类型,至服务器,秘密秘〈生产商〉,消费者〈消费者>});
’,{角色生产商,类型类型,与< ’,{角色消费者,类型类型,与< 〈生产商〉,消费者〈消费者>});
权利要求
1.一系统,包含服务器,在云计算环境中与第一设备进行通信,其中第一设备能检测毗邻设备;和服务器执行的应用程序,其中该应用程序由第一设备控制,且该应用程序的输出由服务器传送至第一设备所检测的设备之一。
2.如权利要求1所述的系统,其中应用程序的输出被传送至第一设备。
3.如权利要求1所述的系统,其中毗邻设备能检测其他的毗邻设备。
4.如权利要求1所述的系统,其中云计算环境包含 管理员;数据提供商; 认证网关;和名称服务。
5.如权利要求4所述的系统,其中云计算环境进一步包含虚拟计算的设备提供商。
6.如权利要求4所述的系统,其中云计算环境更进一步包含支付引擎和许可管理引擎。
7.如权利要求1所述的系统,其中设备包含设备代理商和网络堆栈。
8.如权利要求7所述的系统,其中设备进一步包含一或多种输入功能、输出功能、计算功能、输入队列、输入捕获器、输入编码器、输入解码器、输出呈现器、输出编码器,和输出解码器。
9.如权利要求7所述的系统,其中设备更进一步包含用户界面壳。
10.如权利要求1所述的系统,其中设备能控制毗邻设备。
11.如权利要求1所述的系统,其中该应用程序的输出被传送至一设备,与设备的硬件和软件功能无关。
12.如权利要求1所述的系统,其中该应用程序的输出由服务器同时传送至第一设备所检测的两个或更多的设备。
13.如权利要求1所述的系统,其中该应用程序的输出由服务器从设备端无缝传送至第一设备所检测的其他设备,其中应用程序的输出表示其状态与之前在设备上显示的状态一致。
14.如权利要求4所述的系统,其中该数据提供商能向用户和公用数据提供协同访问。
15.一计算机实施方法,包含与运行在云计算环境的第一设备进行通信,其中第一设备能检测毗邻设备,且其中该第一设备控制应用程序;和将应用程序的输出传送至第一设备所检测的设备之一。
16.如权利要求15所述的计算机实施方法,其中该应用程序的输出被传送至第一设备。
17.如权利要求15所述的计算机实施方法,其中毗邻设备能检测其他的毗邻设备。
18.如权利要求12所述的计算机实施方法,其中云计算环境包含 管理员;数据提供商; 认证网关;和名称服务。
19.如权利要求18所述的计算机实施方法,其中云计算环境进一步包含虚拟计算的设备提供商。
20.如权利要求18所述的计算机实施方法,其中云计算环境更进一步包含支付引擎和许可管理引擎。
21.如权利要求15所述的计算机实施方法,其中设备包含设备代理商和网络堆栈。
22.如权利要求21所述的计算机实施方法,其中设备进一步包含一或多种输入功能、 输出功能、计算功能、输入队列、输入捕获器、输入编码器、输入解码器、输出呈现器、输出编码器,和输出解码器。
23.如权利要求21所述的计算机实施方法,其中设备更进一步包含用户界面壳。
24.如权利要求15所述的计算机实施方法,其中设备能控制毗邻设备。
25.如权利要求15所述的计算机实施方法,其中该应用程序的输出被传送至一设备, 与设备的硬件和软件功能无关。
26.如权利要求15所述的系统,其中该应用程序的输出由服务器同时传送至第一设备所检测的两个或更多的设备。
27.如权利要求15所述的系统,其中该应用程序的输出由服务器从设备无缝传送至第一设备所检测的其他设备,其中应用程序的输出表示其状态与之前在设备上显示的状态一致。
28.如权利要求18所述的系统,其中该数据提供商能向用户和公用数据提供协同访问。
全文摘要
本发明公开了普及计算的方法和系统。根据一个实施例,计算机实施的方法包括在云计算环境中服务器与第一设备进行通信,其中第一设备能检测周围设备;可由服务器执行的应用程序,其中该应用程序由第一设备控制,且服务器执行该应用程序的输出是针对第一设备检测的设备之一。
文档编号H04L12/28GK102577251SQ201080047067
公开日2012年7月11日 申请日期2010年8月27日 优先权日2009年8月27日
发明者塔拉·莱米, 尼古拉·苏林, 斯坦尼斯拉夫·沃纳戈, 瓦迪姆·斯塔尤拉 申请人:网能和光公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1