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

文档序号:8926986阅读:431来源:国知局
用于虚拟环境的控制反转组件服务模型的制作方法
【专利说明】
【背景技术】
[0001]在计算领域内,许多场景涉及在设备的虚拟环境内的应用的执行,例如:执行在web浏览器内的web应用;针对计算环境开发的而非由设备提供的代码(例如针对Java虚拟机设计的Java代码);以及隔离虚拟机内的不受信任代码执行。虚拟机内的应用执行而非设备的原生进程可以改进应用在执行期间的兼容性和安全性。
[0002]所述应用通常调用指向设备的硬件或软件组件的请求。例如,图形硬件组件可以提供渲染功能(例如渲染三维场景的图像),该功能可以被设备上的各种应用执行进行调用。所述硬件组件可以对于使用设备的计算环境执行的原生应用可便利地访问,并且可以在更受限的基础上被暴露给在设备的虚拟环境内执行的应用。例如,图形渲染组件可以提供相对低级和广泛的由应用进行的访问,并且可以提供更受限的代表在web浏览器内执行的web应用的渲染功能。所述限制可以被实现为鉴于由虚拟环境提供的较不受信任的代码环境(例如通常认为在web浏览器中运行的代码具有比已被安装在设备上的原生代码更低级别的信任)和/或基于虚拟环境内的组件的抽象(例如,并非提供硬件组件的设备专用功能,虚拟环境可以呈现广泛集合的被许多硬件组件和设备支持的功能)而选择的和/或合适的。最后,许多虚拟环境可以使应用能够调用设备的功能,但可以在直到所述对设备功能的调用完成之前都阻塞应用的执行。

【发明内容】

[0003]提供本
【发明内容】
来以简化形式介绍下面在【具体实施方式】中进一步描述的概念的选集。本
【发明内容】
不旨在标识所要求权利的主题的关键因素或必要特征,其也不旨在用于限制所要求权利的主题的范围。
[0004]虚拟环境内的应用与设备组件进行交互的典型模型可能存在某些缺陷。作为第一示例,所述应用可能不能访问广泛范围的所述组件的功能。作为第二示例,该模型中的组件调用效率可以经由所述设备不能利用组件专用特征或优化技术而降低。作为第三示例,直到所述组件请求完成之前都阻塞所述web应用可以显著损害所述web应用的性能。
[0005]在本文中呈现了这样的技术,所述技术用于以可以解决这些缺陷中的一些和/或实现另外优点的方式完成应用的组件请求。根据这些技术,所述设备可以经由回调机制通过控制反转机制便利对来自虚拟环境内的应用的组件请求进行的处理。在所述虚拟环境内执行的应用可以启动组件请求,所述组件请求涉及所述计算环境的一个或多个组件和/或组件功能,并且指定当所述组件请求完成时被调用的对所述应用的回调。所述设备可以这样来完成该组件请求,其通过存储所述应用、所识别的组件和/或组件功能的关联,并且然后将所述组件请求发送给所述关联的组件。所述设备可以然后恢复所述应用在所述虚拟环境内的执行。当所述设备随后检测到所述组件请求被所述组件完成时,所述设备可以识别关联于所述组件请求的一个或多个回调,并且可以调用所述回调以便对所述组件请求的结果执行处理,和/或向所述应用通知所述组件请求的完成。该模型可以加速对由虚拟环境内的应用发出的组件请求的完成。
[0006]为达到前述和相关目的,下面的说明书和附图阐述了特定示例性方面和实现。这些指示了一个或多个方面可以被使用所采用的各种方式中的仅一些。当结合附图考虑时,本公开的其它方面、优点和新颖特征从下面的详细说明书中将变得显而易见。
【附图说明】
[0007]图1是一种不例性场景的图不,所述场景表现用于完成在虚拟环境内执行的应用的组件请求的第一模型的特征。
[0008]图2是一种不例性场景的图不,所述场景表现用于完成在虚拟环境内执行的应用的组件请求的第二模型的特征。
[0009]图3是一种示例性场景的图示,所述场景表现根据在本文中呈现的技术的、用于完成在虚拟环境内执行的应用的组件请求的模型的特征。
[0010]图4是一种根据在本文中呈现的技术的、完成在虚拟环境内执行的应用的组件请求的示例性方法的流程图。
[0011]图5是一种根据在本文中呈现的技术的、被配置为完成在虚拟环境内执行的应用的组件请求的示例性系统的组件框图。
[0012]图6是一种示例性计算机可读介质的图示,所述计算机可读介质包括被配置为体现在本文中阐述的条款中的一个或多个的处理器可执行指令。
[0013]图7是一种示例性场景的图示,所述场景表现根据在本文中呈现的技术的、计算环境内的组件服务的第一实现的特征。
[0014]图8是一种示例性场景的图示,所述场景表现根据在本文中呈现的技术的、计算环境内的组件服务的第二实现的特征。
[0015]图9是一种示例性场景的图示,所述场景表现两种根据在本文中呈现的技术的、用于完成组件请求产生组件结果的技术的特征。
[0016]图10示出了一种示例性计算环境,其中,在本文中阐述的条款中的一个或多个可以在所述计算环境中实现。
【具体实施方式】
[0017]现在参考附图描述所要求权利的主题,其中,自始至终,相同标号用于指示相同单元。在下面的描述中,为进行解释,阐述了大量特定细节以便提供对所要求权利的主题的彻底理解,然而明显的是,所要求权利的主题可以在没有这些特定细节的情况下实现。在其它情况下,以框图形式示出结构和设备以便帮助描述所要求权利的主题。
[0018]A.引言
在计算领域内,许多场景涉及应用在设备上在虚拟环境内而非在该设备的原生计算环境内执行。作为第一示例,web浏览器可以为执行例如JavaScript和超文本标记语言(HTML)内容的不依赖设备的代码提供标准化平台。作为第二示例,Java虚拟机(JVM)可以在一般化计算设备与代表Java应用的设备原生功能之间提供桥梁(例如,将一般化存储器分配请求翻译为设备的存储器模型)。作为第三示例,针对第一设备的原生环境设计的代码可以通过仿真器在完全第二设备上执行,其中,所述仿真器在第二设备内提供对第一设备的模拟。作为第四示例,不受信任的代码可以在“沙盒”或虚假机器内执行,从而可以将恶意操作隔离到该虚假机器,并且,可以在没有破坏设备的风险的情况下由设备对不受信任代码在虚假设备上的效果进行评估。
[0019]这些和其它场景呈现应用在虚拟环境内的执行。在许多所述场景中,除利用虚拟环境的资源外,应用可以涉及与设备的组件进行交互。作为第一示例,应用可以与设备的相机进行交互,例如以由相机捕获的相片图片开始的相片编辑应用。作为第二示例,位置感知应用可以请求根据设备的全球定位系统(GPS)接收器被通知设备当前位置或设备到达特定位置。作为第三示例,增强现实应用可以利用相机来捕获世界的当前景观以及利用GPS接收器来检测设备的当前位置和观察角度,以便在设备的显示器上叠加与在由相机捕获的图片中成像的物体相关的信息。
[0020]应当认识到,所述场景涉及可能默认不被包括在虚拟环境中的设备功能。例如,web浏览器的典型配置不包括任何用于应用请求来自相机的相片或由GPS接收器检测的位置的功能,即使设备包括表现所述功能的特征的相机和/或GPS接收器。在所述动作超过虚拟环境的默认和标准化功能的情况下,设备可以提供各种机制来使所述应用能够代表设备的组件启动所述请求。
[0021]图1呈现了表现设备102的特征的示例性场景100的图示,其中,设备102由用户104操作,并且被配置为在例如操作系统的计算环境106内执行一个或多个应用。在设备102上执行的应用可以包括直接利用计算环境106的资源的原生应用120和与虚拟环境的资源进行交互的在虚拟环境内执行的应用这两者,并且其中,所述虚拟环境通过代表所驻留的应用利用计算环境106的资源来完成这些请求。在该示例性场景100中,虚拟环境包括驻留web应用110的web浏览器108。设备102可以检索web应用110并启动在web浏览器108内的执行。
[0022]设备102可以还包括一个或多个硬件组件112,例如是相机和陀螺仪,其中,应用请求与所述硬件组件112进行交互。在计算环境106内执行的原生应用120可以例如通过直接向用于组件112的硬件驱动器发出请求来启动直接与组件112进行的交互122。然而,在web浏览器108内执行的web应用110被隔离于与组件112进行直接交互,并且作为代替,与web浏览器108的资源进行交互。另外,web浏览器108可能不被配置为代表web应用110与组件112进行交互(例如,web浏览器108可能不具有任何用于从设备102的相机接收图像的功能),并且由此可能不能代表web应用110利用设备102的组件资源。在许多场景中,未提供任何可替换的交互模型,并且web应用110简单地不能与设备的组件112进行交互或甚至识别设备的组件112。
[0023]然而,将web应用110的功能限于包括web浏览器108的那些可能是不可取的。相反,使在所述虚拟环境内执行的应用能够与设备的组件112进行交互可能是可取的。为此,已设想了各种技术来实现所述访问。
[0024]图1示出了第一种所述技术,其中,提供了调用对组件112的请求的组件代理114。例如,组件代理114可以接受来自web应用110的组件请求116,与指定组件112进行交互,并且向web应用110返回组件结果118。另外,组件代理114可以对组件请求116进行审查(例如,识别诸如注入攻击的恶意代码),并且拒绝任何可能损害设备102的完整性的组件请求 116。
[0025]然而,图1的示例性场景100中所示的模型可能存在某些缺陷。作为第一示例,组件代理114的开发可以增加一些复杂性,例如向web浏览器108的虚拟环境中引入额外组件,和/或提供不同类型的与组件112的交互,该交互与原生应用120与同一组件112之间的交互122不同。作为第二示例,在所述模型中,直到组件请求116被完成之前web应用110都被阻塞(例如为了减少组件112向作为拒绝服务攻击的大量组件请求116的暴露)。作为第三示例,在所述模型中,第一组件112的组件代理114可以与第二组件112的组件代理114不同,或者后一组件112可以简单地不提供任何组件代理114或与之进行交互。
[0026]图2呈现了表现由用户104操作的设备102的特征的第二示例性场景200的图示。该设备102也表现计算环境106的特征,其中,在该计算环境106中提供了用于执行一个或多个web应用110的web浏览器108,并且该计算环境106可以利用设备102的各个组件112。为实现该交互,设备102的一个或多个组件112可以向
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1