用于使用本机代码模块执行应用的方法和系统的制作方法
【专利说明】用于使用本机代码模块执行应用的方法和系统
[0001]相关串请交叉引用
[0002]本申请是国际申请号为PCT/US2009/049679、国际申请日为2009年07月06日、国家申请号为200980127703.8的发明专利申请的分案申请。
技术领域
[0003]本发明的实施方式涉及用于在计算机系统上执行应用的技术。更为具体地,本发明的实施方式涉及用于使用本机代码模块执行web应用的方法和系统。
【背景技术】
[0004]计算机系统可以包括需要可观的处理资源来执行的多个本机应用。这种应用可以执行例如图像处理、音频和视频解码与混合、数学建模,和/或仿真之类的任务。为了高效运行,这些应用经常是使用通用编程语言(例如,C或C++)与低级语言(例如汇编语言)的结合编写的。因此,应用可能会受限于特定平台,具有较长的安装过程,并且可能给安装这些应用的计算机系统造成安全风险。
[0005]另一方面,近年来越发流行的web应用通常以脚本语言编写,其更为安全并且不需要安装。然而,web应用可能会缺乏本机应用的执行能力。特别地,web应用的运行可能比本机应用慢一个或两个量级。因此,web应用目前无法实现在本机应用中可获得的计算密集型特征。
【发明内容】
[0006]本发明的一些实施方式提供一种执行web应用的系统。在操作期间,该系统在web浏览器中加载web应用,并且将与web应用相关联的本机代码模块加载到安全运行时(runtime)环境中。接下来,系统向本机代码模块提供与web应用相关联的输入数据,并且使用本机代码模块来处理输入数据以获得输出数据。最后,该系统向web应用提供输出数据以供该web应用使用。
[0007]在一些实施方式中,该系统还在将本机代码模块加载到安全运行时环境中之前验证本机代码模块。
[0008]在一些实施方式中,输出数据被提供给与web浏览器相关联的受信插件,以供该受信插件使用。
[0009]在一些实施方式中,受信插件使用输出数据来为web应用绘制图形。
[0010]在一些实施方式中,本机代码模块为web应用提供以下至少一个:仿真、信号处理、人工智能、建模以及分析。
[0011]在一些实施方式中,安全运行时环境由与web浏览器相关联的插件实现。
[0012]在一些实施方式中,web应用和本机代码模块是平台无关的。
[0013]在一些实施方式中,使用第一模块间通信(頂0缓冲区将输入数据提供给本机代码模块,并且使用第二 MC缓冲区将输出数据提供给web应用。
[0014]在一些实施方式中,处理输入数据包括使用输入数据执行一系列数学计算。
【附图说明】
[0015]图1示出了系统的实施方式的示意图。
[0016]图2示出了根据系统实施方式的本机代码模块对模块间通信(頂0缓冲区的使用。
[0017]图3示出了用于为web应用绘制图形的系统。
[0018]图4示出了说明执行web应用的过程的流程图。
【具体实施方式】
[0019]提供下文描述是为了使任何本领域技术人员能够制造和使用所公开的实施方式,并且下述描述是在特定应用及其要求的上下文中提供的。对于本领域技术人员来说,对所公开的实施方式的各种修改是显而易见的,并且在这里所定义的一般原理也可以应用于其他实施方式和应用,而不会背离所公开的实施方式的精神和范围。因此,系统并不限制于所示出的实施方式,而是符合与在这里所公开的原理和特征相一致的最宽泛的范围。
[0020]此详细描述中所描述的数据结构和代码通常存储在计算机可读存储介质中,其可以是能够存储可供计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括但不限于:易失性存储器,非易失性存储器,例如盘驱动、磁带、CD (光盘)、DVD (数字通用光盘或数字视频光盘)的磁存储器和光存储器,或目前已知的或以后开发出的能够存储计算机可读介质的其他介质。
[0021]在详细描述部分所描述的方法和过程可以实现为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,该计算机系统执行实现为数据结构和代码并存储在计算机可读存储介质中的方法和过程。
[0022]此外,以下描述的方法和过程可以被包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及其他目前已知的或以后开发出的可编程逻辑设备。当硬件模块被激活时,该硬件模块执行包括在硬件模块中的方法和过程。
[0023]系统的实施方式提供了用于执行web应用的方法和系统。web应用可以被加载到web浏览器中并且在计算系统上执行,其中计算系统例如个人计算机(PC)、移动电话、个人数字助理(PDA)、图形计算器、便携式媒体播放器、全球定位系统(GPS)接收器,和/或其他电子计算设备。计算系统可以使用与服务器的网络连接从服务器获得web应用。例如,web应用可以通过因特网而从web站点下载。
[0024]更具体地,本技术的实施方式提供了用于使用本机代码模块来执行web应用的方法和系统。本机代码模块可以包含在安全运行时环境中执行的本机代码。此外,本机代码模块可以用来为web应用处理数据,以提供与仿真、信号处理、人工智能和/或建模等计算密集型任务相关联的功能。因此,系统的实施方式可以提供一种框架,用于将web应用的便携性和安全性与二进制代码的本机执行相结合。
[0025]图1示出了一个系统的示意图。该系统包括计算系统102和一组服务器(例如,月艮务器1 104,服务器X 106)。计算系统102包括在web浏览器110中运行的web应用116,以及插件108。这些组件中的每一个将在下文详述。
[0026]计算系统102可以对应于向用户提供一个或多个服务或功能的电子设备。例如,计算系统102可以作为移动电话、个人计算机(PC)、全球定位系统(GPS)接收器、便携式媒体播放器、个人数字助理(PDA)和/或图形计算器来进行操作。此外,计算系统102可以包括:操作系统(未示出),其协调计算系统102上硬件和软件资源的使用;以及为用户执行专门任务的一个或多个应用(例如,web浏览器110、web应用116)。例如,计算系统102可以包括诸如电子邮件客户端、地址薄、文档编辑器、web浏览器110和/或媒体播放器等应用。为了为用户执行任务,如下所述,应用可以从操作系统获得对计算系统102上的硬件资源(例如,处理器、存储器、I/O组件、无线发射器等)的使用,以及通过操作系统所提供的硬件和/或软件框架与用户进行互动。
[0027]本领域技术人员将会理解,计算系统102可以包括执行本机应用和非本机应用二者的功能。换言之,计算系统102可以包括例如web浏览器110的本机应用,其本地安装在计算系统102上,并且特定于操作系统和/或计算系统102上的一个或多个硬件设备。这样的应用可以被编译为本机代码(例如,机器代码),其直接在计算系统102的一个或多个中央处理单元(CPU)上执行。应用中的代码执行还可以通过以下方式来优化:使用通用编程语言(例如,C,C++等)和汇编语言的结合来编写应用,以及利用向应用提供硬件加速(例如,图形硬件加速)的库。然而,本机应用的安装可能会危害计算系统102和存储在计算系统102上的私有数据。
[0028]计算系统102还可以包括执行平台无关的非本