用于使用本機代碼模塊執(zhí)行應用的方法和系統(tǒng)的制作方法
【專利說明】用于使用本機代碼模塊執(zhí)行應用的方法和系統(tǒng)
[0001]相關串請交叉引用
[0002]本申請是國際申請?zhí)枮镻CT/US2009/049679、國際申請日為2009年07月06日、國家申請?zhí)枮?00980127703.8的發(fā)明專利申請的分案申請。
技術領域
[0003]本發(fā)明的實施方式涉及用于在計算機系統(tǒng)上執(zhí)行應用的技術。更為具體地,本發(fā)明的實施方式涉及用于使用本機代碼模塊執(zhí)行web應用的方法和系統(tǒng)。
【背景技術】
[0004]計算機系統(tǒng)可以包括需要可觀的處理資源來執(zhí)行的多個本機應用。這種應用可以執(zhí)行例如圖像處理、音頻和視頻解碼與混合、數學建模,和/或仿真之類的任務。為了高效運行,這些應用經常是使用通用編程語言(例如,C或C++)與低級語言(例如匯編語言)的結合編寫的。因此,應用可能會受限于特定平臺,具有較長的安裝過程,并且可能給安裝這些應用的計算機系統(tǒng)造成安全風險。
[0005]另一方面,近年來越發(fā)流行的web應用通常以腳本語言編寫,其更為安全并且不需要安裝。然而,web應用可能會缺乏本機應用的執(zhí)行能力。特別地,web應用的運行可能比本機應用慢一個或兩個量級。因此,web應用目前無法實現(xiàn)在本機應用中可獲得的計算密集型特征。
【發(fā)明內容】
[0006]本發(fā)明的一些實施方式提供一種執(zhí)行web應用的系統(tǒng)。在操作期間,該系統(tǒng)在web瀏覽器中加載web應用,并且將與web應用相關聯(lián)的本機代碼模塊加載到安全運行時(runtime)環(huán)境中。接下來,系統(tǒng)向本機代碼模塊提供與web應用相關聯(lián)的輸入數據,并且使用本機代碼模塊來處理輸入數據以獲得輸出數據。最后,該系統(tǒng)向web應用提供輸出數據以供該web應用使用。
[0007]在一些實施方式中,該系統(tǒng)還在將本機代碼模塊加載到安全運行時環(huán)境中之前驗證本機代碼模塊。
[0008]在一些實施方式中,輸出數據被提供給與web瀏覽器相關聯(lián)的受信插件,以供該受信插件使用。
[0009]在一些實施方式中,受信插件使用輸出數據來為web應用繪制圖形。
[0010]在一些實施方式中,本機代碼模塊為web應用提供以下至少一個:仿真、信號處理、人工智能、建模以及分析。
[0011]在一些實施方式中,安全運行時環(huán)境由與web瀏覽器相關聯(lián)的插件實現(xiàn)。
[0012]在一些實施方式中,web應用和本機代碼模塊是平臺無關的。
[0013]在一些實施方式中,使用第一模塊間通信(頂0緩沖區(qū)將輸入數據提供給本機代碼模塊,并且使用第二 MC緩沖區(qū)將輸出數據提供給web應用。
[0014]在一些實施方式中,處理輸入數據包括使用輸入數據執(zhí)行一系列數學計算。
【附圖說明】
[0015]圖1示出了系統(tǒng)的實施方式的示意圖。
[0016]圖2示出了根據系統(tǒng)實施方式的本機代碼模塊對模塊間通信(頂0緩沖區(qū)的使用。
[0017]圖3示出了用于為web應用繪制圖形的系統(tǒng)。
[0018]圖4示出了說明執(zhí)行web應用的過程的流程圖。
【具體實施方式】
[0019]提供下文描述是為了使任何本領域技術人員能夠制造和使用所公開的實施方式,并且下述描述是在特定應用及其要求的上下文中提供的。對于本領域技術人員來說,對所公開的實施方式的各種修改是顯而易見的,并且在這里所定義的一般原理也可以應用于其他實施方式和應用,而不會背離所公開的實施方式的精神和范圍。因此,系統(tǒng)并不限制于所示出的實施方式,而是符合與在這里所公開的原理和特征相一致的最寬泛的范圍。
[0020]此詳細描述中所描述的數據結構和代碼通常存儲在計算機可讀存儲介質中,其可以是能夠存儲可供計算機系統(tǒng)使用的代碼和/或數據的任何設備或介質。計算機可讀存儲介質包括但不限于:易失性存儲器,非易失性存儲器,例如盤驅動、磁帶、CD (光盤)、DVD (數字通用光盤或數字視頻光盤)的磁存儲器和光存儲器,或目前已知的或以后開發(fā)出的能夠存儲計算機可讀介質的其他介質。
[0021]在詳細描述部分所描述的方法和過程可以實現(xiàn)為代碼和/或數據,其可以存儲在如上所述的計算機可讀存儲介質中。當計算機系統(tǒng)讀取并執(zhí)行存儲在計算機可讀存儲介質上的代碼和/或數據時,該計算機系統(tǒng)執(zhí)行實現(xiàn)為數據結構和代碼并存儲在計算機可讀存儲介質中的方法和過程。
[0022]此外,以下描述的方法和過程可以被包括在硬件模塊中。例如,硬件模塊可以包括但不限于專用集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)以及其他目前已知的或以后開發(fā)出的可編程邏輯設備。當硬件模塊被激活時,該硬件模塊執(zhí)行包括在硬件模塊中的方法和過程。
[0023]系統(tǒng)的實施方式提供了用于執(zhí)行web應用的方法和系統(tǒng)。web應用可以被加載到web瀏覽器中并且在計算系統(tǒng)上執(zhí)行,其中計算系統(tǒng)例如個人計算機(PC)、移動電話、個人數字助理(PDA)、圖形計算器、便攜式媒體播放器、全球定位系統(tǒng)(GPS)接收器,和/或其他電子計算設備。計算系統(tǒng)可以使用與服務器的網絡連接從服務器獲得web應用。例如,web應用可以通過因特網而從web站點下載。
[0024]更具體地,本技術的實施方式提供了用于使用本機代碼模塊來執(zhí)行web應用的方法和系統(tǒng)。本機代碼模塊可以包含在安全運行時環(huán)境中執(zhí)行的本機代碼。此外,本機代碼模塊可以用來為web應用處理數據,以提供與仿真、信號處理、人工智能和/或建模等計算密集型任務相關聯(lián)的功能。因此,系統(tǒng)的實施方式可以提供一種框架,用于將web應用的便攜性和安全性與二進制代碼的本機執(zhí)行相結合。
[0025]圖1示出了一個系統(tǒng)的示意圖。該系統(tǒng)包括計算系統(tǒng)102和一組服務器(例如,月艮務器1 104,服務器X 106)。計算系統(tǒng)102包括在web瀏覽器110中運行的web應用116,以及插件108。這些組件中的每一個將在下文詳述。
[0026]計算系統(tǒng)102可以對應于向用戶提供一個或多個服務或功能的電子設備。例如,計算系統(tǒng)102可以作為移動電話、個人計算機(PC)、全球定位系統(tǒng)(GPS)接收器、便攜式媒體播放器、個人數字助理(PDA)和/或圖形計算器來進行操作。此外,計算系統(tǒng)102可以包括:操作系統(tǒng)(未示出),其協(xié)調計算系統(tǒng)102上硬件和軟件資源的使用;以及為用戶執(zhí)行專門任務的一個或多個應用(例如,web瀏覽器110、web應用116)。例如,計算系統(tǒng)102可以包括諸如電子郵件客戶端、地址薄、文檔編輯器、web瀏覽器110和/或媒體播放器等應用。為了為用戶執(zhí)行任務,如下所述,應用可以從操作系統(tǒng)獲得對計算系統(tǒng)102上的硬件資源(例如,處理器、存儲器、I/O組件、無線發(fā)射器等)的使用,以及通過操作系統(tǒng)所提供的硬件和/或軟件框架與用戶進行互動。
[0027]本領域技術人員將會理解,計算系統(tǒng)102可以包括執(zhí)行本機應用和非本機應用二者的功能。換言之,計算系統(tǒng)102可以包括例如web瀏覽器110的本機應用,其本地安裝在計算系統(tǒng)102上,并且特定于操作系統(tǒng)和/或計算系統(tǒng)102上的一個或多個硬件設備。這樣的應用可以被編譯為本機代碼(例如,機器代碼),其直接在計算系統(tǒng)102的一個或多個中央處理單元(CPU)上執(zhí)行。應用中的代碼執(zhí)行還可以通過以下方式來優(yōu)化:使用通用編程語言(例如,C,C++等)和匯編語言的結合來編寫應用,以及利用向應用提供硬件加速(例如,圖形硬件加速)的庫。然而,本機應用的安裝可能會危害計算系統(tǒng)102和存儲在計算系統(tǒng)102上的私有數據。
[0028]計算系統(tǒng)102還可以包括執(zhí)行平臺無關的非本