用于虚拟环境的控制反转组件服务模型的制作方法_4

文档序号:8926986阅读:来源:国知局
备功能请求时,组件服务310可以将设备功能请求翻译为组件请求,其中,该组件请求指定具有由该设备功能请求指定的组件功能的组件112(例如,将所述物理方向请求翻译为对生成所请求信息的陀螺仪组件的函数调用请求)。
[0052]作为该第三方面的第三变型,设备102可以提供各种安全机制,所述安全机制适用于组件服务310与代表应用304的组件112之间的交互。所述安全机制例如在应用304可以包括不受信任代码的情况下可以是可取的,其中,所述不受信任代码诸如是偶然从各种网站检索到的web应用或从不受信任用户接收到的移动代理。虚拟环境302其自身可以包括隔离结构,例如不受信任应用304可以在不干扰设备102的计算环境106的运转的情况下进行破坏的虚拟机。在所述场景中,使应用304能够通过组件服务310启动与组件112的组件请求306可以代表安全弱点,该安全弱点可以通过各种安全措施来减轻。作为第一个所述示例,如果认为应用304具有特定信任级别和/或许可集合,则可以认为组件服务310和/或组件请求306具有相同信任级别和/或许可集合,以避免使应用304的特权逐步升级。作为第二个所述示例,组件服务310可以对组件请求306和/或组件结果312进行针对安全问题的仔细检查,例如包括恶意代码或者对私有用户信息的访问或泄露。作为第三个所述示例,组件服务310可以将用户104牵涉到信任确定中;例如,在组件请求306指定组件112的组件功能的情况下,组件服务310可以向用户104呈现对启动标识由应用304请求的组件功能的组件请求306的提议(例如,“该应用正请求对陀螺仪传感器的访问”),并且可以仅在从用户104接收到对该提议的接受之后启动组件请求306。
[0053]作为该第三方面的第四变型,在组件112完成组件请求306之后,组件服务310可以通过各种方式代表应用304完成组件请求306。作为第一个所述示例,关联于组件请求306的回调308可以在虚拟环境302内(例如在web浏览器内被执行的客户端Javascript)、在虚拟环境302外(例如在计算环境106内执行的原生指令)、和/或在另一虚拟机内(例如作为利用Node, js服务器端Javascript模块并且被web浏览器执行的服务器端Javascript)被组件服务310调用。
[0054]作为该第三方面的该第四变型的第二示例,如果对组件112的组件请求306产生组件结果312,则组件服务310可以通过各种方式将组件结果312传递给回调308和/或应用304。图9呈现了表现组件结果312向应用304的传递方面的两个变型的特征的示例性场景900。在该示例性场景900中,设备502提供在虚拟环境302内执行的应用304,以及应用304向其发出组件请求306的一套组件112。例如,设备502可以包括能够检测玮度和经度坐标的GPS接收器组件,以及能够捕获相片906的相机组件。设备502可以包括用于向应用304提供组件服务310的、图5中所示的示例性系统506的变体,例如,被配置为代表应用304启动与组件112的交互的组件请求启动组件508,以及被配置为对组件请求306中由应用304指定的回调308进行调用的回调调用组件510。此外,组件服务310可以通过各种方式处理组件112的组件结果312。作为第一个所述示例,GPS接收器组件可以包括组件结果312的过度详细或“聊天式”的集合,例如频繁的坐标流。然而,应用304可能仅偶尔使用所述坐标(并且可能仅一次),以及,针对每个组件结果312对回调308进行调用可能是不可取的。作为代替,组件服务310可以生成具有比未压缩组件结果312小的尺寸的已压缩组件结果,例如在扩展的时间段内对由GPS接收器报告的坐标的已聚合集合。可替换地或另外,应用304可以指定所请求的结果类型(例如对应用304有用的来自组件112的数据的类型),并且已压缩的组件结果可以排除与由应用304标识的所请求结果类型不相关的、至少一个组件结果312的至少一部分(例如,如果GPS接收器报告每分钟三十个坐标,并且应用304仅使用每分钟一个坐标,则组件服务310可以排除每分钟所接收坐标中的29个)。在某些所述场景中,压缩可以是用户可选择的;例如,用户104可以具有对报告给应用304的数据的压缩偏好(例如,提供某些个人信息,以及拒绝其它个人信息),并且,组件服务310可以根据用户104的压缩偏好生成已压缩组件结果。
[0055]图9的示例性场景900中所示的另一变型涉及使用存储器缓冲器来将组件结果312呈现给应用304和/或回调308。例如,在某些场景中,设备服务310可以直接将由组件112生成的数据返回给应用304或回调308,但在其它场景中,这可能是不可取的(例如在数据量大的情况下)。因此,组件服务310可以将组件结果312存储在对应用304和/或回调308可访问的存储器区域904中(例如由相机生成的相片906可以被存储于的存储器块),并且可以简单地向应用304和/或回调308通知存储器区域904的存储器地址,从而,如果需要,则应用304和/或回调308可以访问组件结果312。
[0056]作为该第三方面的第五变型,组件服务310可以通过许多通信机制与应用304和/或回调308进行通信。作为一个所述示例,组件服务310可以间歇地与应用304和/或回调308进行通信,或者可以贯穿组件请求306的生命周期维持通信信道。例如,在图8的示例性场景800中,本地服务器组件806可以被配置为:在由在虚拟环境302内执行的应用304启动的通信会话期间接收组件请求306 (例如,通过web服务器启动的超文本传输协议(HTTP)会话);可以直到组件请求306完成之前都维持该通信会话;以及,可以在终止与应用304的通信会话之前经由该通信会话向应用304通知组件请求306的完成。此外,可以允许应用304向服务器查询关于组件请求306的状态更新、递送请求以中止组件请求306等。
[0057]作为该第三方面的第六变型,除为在虚拟环境302内执行的应用304提供服务之夕卜,组件服务310可以代表其它进程启动与设备102的组件112的交互。作为第一个所述示例,组件服务310可以,当从设备102上在虚拟环境302之外执行的应用304接收到组件请求306时,存储关联于组件请求306和应用304的回调308,以及,代表应用304将组件请求306发送给组件112。(例如,如图3的示例性场景300中所示,并非直接与组件112进行交互316,原生应用120可以选择通过组件服务310与组件112进行交互318,并且组件服务310可以与由在虚拟环境302内执行的应用304启动的那些等价地接受和处理所述组件请求306)。
[0058]作为该第三方面的该第六变型的第二示例,组件服务310可以还代表远程进程调用对设备102的组件112的组件请求306。例如,当从在第二设备上执行的远程进程接收到组件请求306时,组件服务310可以存储关联于组件请求306和该远程应用的回调308,并且将组件请求306发送给组件112 ;以及,当检测到关联于远程进程的组件请求306完成时,组件服务310可以代表该远程应用对回调308进行调用。此外,远程应用的回调308可以在虚拟环境302内被调用(例如作为沙盒隔离结构)。可替换地或另外,远程应用可以代表在虚拟环境302内执行的应用304调用组件请求306 ;即,并非将组件请求306直接提交给组件服务310,应用304可以与远程服务器上的云服务进行交互,并且该云服务可以与组件服务310进行联系以代表在虚拟环境302内执行的应用304启动组件请求306。在某些所述场景中,组件服务310可以仅代表受信任的远程进程接受和处理请求。例如,应用304可以包括至少一个证书(例如用户名和密码),并且从远程进程接收的组件请求306包括至少一个代表应用304对组件请求306进行认证的证书;以及,组件服务310可以,在将组件请求306发送给组件112之前,对组件请求306的证书进行认证。本领域的普通技术人员可以将许多所述特征包括在本文中提供的技术的实现中。
[0059]E.计算环境
图10和下面的讨论提供对用于实现本文中阐述的条款中的一个或多个的实施例的合适计算环境的简明、一般描述。图10的运行环境是合适运行环境的仅一个示例,并且不旨在关于运行环境的使用范围或功能建议任何限制。示例性计算设备包括但不限于个人计算机、服务器计算机、手持或膝上设备、移动设备(例如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子、迷你计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。
[0060]尽管不是必需,但是在被一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述了实施例。计算机可读指令可以经由计算机可读介质(在下面讨论)来分布。计算机可读指令可以被实现为诸如函数、对象、应用编程接口(API)、数据结构等的、执行特定任务或实现特定抽象数据类型的程序模块。通常,计算机可读指令的功能在各种环境中可以根据需要被合并或分布。
[0061]图10示出了系统1000的示例,该系统1000包括被配置为实现本文中提供的一个或多个实施例的计算设备1002 O在一种配置中,计算设备1002包括至少一个处理单元1006和存储器1008。取决于计算设备的准确配置和类型,存储器1008可以是易失性的(例如像RAM)、非易失性的(例如像R0M、闪存器等)或这两者的某种组合。该配置在图10中由虚线1004示出。
[0062]在其它实施例中,设备1002可以包括另外的特征和/或功能。例如,设备1002可以还包括另外的存储(例如可移除的和/或不可移除的),所述另外的存储包括但不限于磁存储、光存储等。所述另外的存储在图10中由存储1010示出。在一个实施例中,用于实现本文中提供的一个或多个实施例的计算机可读指令可以是在存储1010中。存储1010可以还存储用于实现操作系统、应用程序等的其它计算机可读指令。计算机可读指令例如可以被加载到存储器1008中以便由处理单元1006进行执行。
[0063]术语“计算机可读介质”当用在本文中时包括计算机存储介质。计算机存储介质包括使用任意这样的方法或技术实现的易失性和非易失性的、可移除和不可移除的介质,其中,所述方法或技术用于存储诸如计算机可读指令或其它数据的信息。存储器1008和存储1010是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、R0M、EEPR0M、闪存器或其它存储器技术,CD-ROM、数字光盘(DVD)或其它光存储,卡式磁带、磁带、磁盘存储或
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1