網絡應用的框架裝置及運行方法
2023-06-16 17:08:11
專利名稱:網絡應用的框架裝置及運行方法
技術領域:
本發明涉及網際網路應用技術領域,尤其涉及一種網絡應用(WebApp)的框架裝置以及WebApp的運行方法。
背景技術:
WebApp是使用網絡(Web)頁面作為基礎,完成某種功能的應用。相對於普通的Web頁面,WebApp更強調功能性,比如郵箱,小遊戲,日程表等。WebApp框架是指WebApp的運行環境,比如採用何種瀏覽器內核,何種編程接口,有哪些接口可以由WebApp調用等。目前已經有很多的WebApp框架,包括谷歌(Google)公司現在有Chrome的WebApp框架,蘋果(Apple)公司的WebApp框架,以及微軟(Microsoft)公司的WebApp框架。但這 些WebApp框架需要運行在瀏覽器上,其能力僅限於瀏覽器內部,從行為上看,仍然屬於一個網頁。Chrome雖然進行了擴展,但也僅限於訪問收藏夾,歷史紀錄等瀏覽器相關的數據,本質上仍然屬於Web的應用。正因為目前WebApp框架運行在瀏覽器上,因此其穩定性、整體性能、安全性都存在著一定的缺陷。具體如下在目前的WebApp框架技術方案中,所有的WebApp容器窗口實質上是一個瀏覽器窗口,窗口內的界面直接使用瀏覽器內核控制項窗口,由瀏覽器內核直接渲染WebApp的界面。這種處理方式的缺點是在瀏覽器內核發生崩潰或者卡住的時候,對應的WebApp容器窗口的子窗口也會崩潰或卡住,導致WebApp的穩定性較差。除了穩定性以外,WebApp頁面還會受到瀏覽器內核性能的影響,以及瀏覽器自身的進程和線程模型的限制。如果所有的瀏覽器頁面都在一個進程的一個線程打開,那麼隨著WebApp的打開和關閉,內存的釋放會有問題;而如果WebApp打開比較多的話,WebApp的整體性能也會存在很大問題。因此目前WebApp框架的整體性能不高。另外,瀏覽器自身非常容易受到惡意攻擊,因而目前WebApp需要運行在瀏覽器上,而此WebApp的安全性也存在很大問題。
發明內容
有鑑於此,本發明的主要目的是提供一種WebApp的框架裝置及運行方法,以提高WebApp的穩定性、整體性能和安全性。本發明的技術方案是這樣實現的一種網絡應用的框架裝置,該框架裝置為一客戶端裝置,包括相互獨立的框架進程和瀏覽器進程;所述框架進程中包括容器窗口和瀏覽器代理對象,所述瀏覽器進程中包括網絡應用對應的瀏覽器內核和存根對象;所述框架進程的瀏覽器代理對象用於將所述容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該存根對象轉發給對應的瀏覽器內核,所述瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給所述框架進程的瀏覽器代理對象;該瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。優選的,在同時運行一個以上網絡應用時,所有網絡應用對應的瀏覽器內核分別運行在不同的瀏覽器進程中,或者其中至少兩個網絡應用對應的瀏覽器內核共享一個瀏覽器進程。優選的,該裝置包括本地組件、自定義對象和腳本引擎,其中所述本地組件用於提供基礎的客戶端功能;所述自定義對象用於封裝本地組件,形成特定的客戶端功能;所述腳本引擎中設置有所述自定義對象對應的腳本對象;
所述瀏覽器內核嵌入了所述腳本對象,並通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶端功能。優選的,所述自定義對象、腳本引擎、以及瀏覽器內核運行在同一瀏覽器進程中,所述本地組件也運行在該瀏覽器進程中,或者所述本地組件運行在與該瀏覽器進程相獨立的進程中。優選的,所述本地組件為本地服務組件,所述自定義對象為服務代理對象。優選的,所述瀏覽器進程中進一步包括沙箱保護單元,用於對瀏覽器進程進行防護。一種網絡應用的運行方法,設置網絡應用客戶端,並包括在網絡應用客戶端中啟動相互獨立的框架進程和瀏覽器進程,所述框架進程中運行容器窗口和瀏覽器代理對象,所述瀏覽器進程中運行瀏覽器內核和存根對象;所述框架進程的瀏覽器代理對象將所述容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該存根對象轉發給對應的瀏覽器內核;所述瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給所述框架進程的瀏覽器代理對象;該瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。優選的,該方法進一步設置可同時打開的最大瀏覽器進程數;當同時運行的網絡應用數小於或等於所述最大瀏覽器進程數時,則每個網絡應用對應的瀏覽器內核分別運行在不同的瀏覽器進程中;否則至少兩個網絡應用對應的瀏覽器內核共享一個瀏覽器進程。優選的,該方法進一步包括封裝本地組件,形成具有特定客戶端功能的自定義對象;在腳本引擎中設置所述自定義對象的腳本對象;在瀏覽器內核嵌入所述腳本對象;當網絡應用運行時,瀏覽器內核通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶端功能。優選的,在網絡應用運行時,在同一瀏覽器進程中運行所述自定義對象、腳本引擎、瀏覽器內核,在與該瀏覽器進程相獨立的進程中運行所述本地組件;或者在同一瀏覽器進程中運行所述本地組件、自定義對象、腳本引擎、以及瀏覽器內核。優選的,所述本地組件為本地服務組件,所述自定義對象為服務代理對象。與現有技術相比,本發明採用客戶端實現WebApp框架,且在該WebApp框架中採用框架進程和瀏覽器進程相獨立的方式,即瀏覽器內核放到一個專門的瀏覽器進程裡,通過跨進程渲染機制進行WebApp界面的展示,從而使瀏覽器內核與框架進程完全獨立,即使瀏覽器內核崩潰也不會影響到框架進程的正常運行,從而提高了 WebApp框架的整體穩定性;同時,由於框架進程所做的邏輯操作非常少並且簡單,不會受到瀏覽器內核和服務進程的性能問題的影響,因此保證了 WebApp界面操作的流暢性,提升了 WebApp框架的整體性能;另外,由於把瀏覽器內核放到一個專門的瀏覽器進程裡,可以防止惡意頁面對WebApp系統的破壞,提升了安全性。進一步地,本發明結合了網絡和客戶端的優點,公開了基於客戶端擴展的WebApp框架,使用內嵌腳本對象的方式提供本地客戶端功能,從而可以把本地服務接入到Web的腳本控制項,讓Web頁面的腳本可以調用到本地的客戶端組件,從而擴展了 WebApp框架的能力,可以設計出更強大的WebApp。同時由於本發明以瀏覽器內核為基礎,因此開發環境為Web,可以利用Web的優勢搭建出豐富多彩的應用界面,並且容易部署和發布,開發門檻低,技術流行、廣泛,且安全性好,不會對本地系統造成破壞。本發明可以實現一種新的應用開發模式,可以將WebApp框架裝置作為一個客戶端軟體,使用瀏覽器進行界面的展現,並提 供相關客戶端服務的擴展,從而獲得Web的開發速度和更新頻率,並具備客戶端的應用能力。
圖I為本發明所述WebApp框架裝置的一種示意圖;圖2為本發明所述跨進程渲染網頁圖像的一種示意圖;圖3a為本發明所述瀏覽器內核獨享瀏覽器進程的示意圖;圖3b為本發明所述瀏覽器內核共享瀏覽器進程的示意圖;圖4a為本發明所述基於客戶端擴展的WebApp框架裝置的示意圖;圖4b為本發明所述基於客戶端擴展的WebApp框架裝置且其本地組件運行於獨立進程的示意圖;圖5a為本發明可實現的一種新服務接入方式的示意圖;圖5b為本發明可實現的一種獨立服務進程的服務接入方式的示意圖;圖6為本發明對瀏覽器進程進行沙箱保護的示意圖;圖7為本發明WebApp運行方法的一種流程圖。
具體實施例方式下面結合附圖及具體實施例對本發明再作進一步詳細的說明。圖I為本發明所述WebApp框架裝置的一種示意圖。參見圖I,本發明所述WebApp的框架裝置為一客戶端軟體裝置,運行在本地客戶端,該框架裝置包括相互獨立的框架進程和瀏覽器進程;所述框架進程(也可稱為界面框架進程,用於WebApp的界面信息展示)中包括容器窗口(由於是在客戶端展現,所以也可稱為客戶端容器窗口)和瀏覽器代理對象,所述瀏覽器進程中包括瀏覽器內核和瀏覽器代理對象對應的存根對象。本發明中,所述框架進程需要調用瀏覽器內核對象,瀏覽器內核對象在另一個進程即瀏覽器進程中,所以在框架進程裡面,有一個瀏覽器內核對象的代理對象即瀏覽器代理對象,接管框架進程的調用,該瀏覽器代理對象收到框架進程調用瀏覽器內核對象的請求以後,把這些調用請求轉換為數據描述,通過跨進程通信傳遞給瀏覽器進程,而瀏覽器進程必須有對象來接收這些信息,這就是存根對象,存根對象收到所述調用請求信息以後,轉換為對瀏覽器內核對象的調用。通過上述過程,可以完成跨進程的對象調用過程。本發明中,一個WebApp窗口容器裡並沒有使用傳統的瀏覽器控制項的窗口,但是在所述容器窗口內指定了一個區域,如圖I中的頁面代理窗口,該頁面代理窗口的繪製由瀏覽器提供的界面圖像來繪製。所述瀏覽器進程的存根對象和框架進程的瀏覽器代理對象之間會有一個通信通道,可以進行數據的傳輸,框架進程的瀏覽器代理對象會向瀏覽器進程中的存根對象告知所述頁面代理窗口的相關信息(例如該頁面代理窗口的大小或者操作指令),瀏覽器進程的存根對象會將這些信息發送給瀏覽器內核。所述瀏覽器內核用於渲染WebApp的界面信息,即決定瀏覽器如何顯示網頁的內容以及頁面的格式信息。當瀏覽器內核收到來自存根對象的信息後,渲染出與所述頁面代理窗口同樣大小的一幅頁面圖像, 這幅頁面圖像再通過存根對象跨進程傳輸到框架進程的瀏覽器代理對象,該瀏覽器代理對象再將所述頁面圖像展示在所述頁面代理窗口。由於本地的數據通信效率很高,所以即使動態的頁面都可以實現實時的圖像更新,用戶看WebApp窗口裡面好像有一個真正的網頁,但其實只是圖像而已。圖2為本發明所述跨進程渲染網頁圖像的一種示意圖。如圖2所示,所述瀏覽器內核渲染的WebApp的界面信息是頁面圖像,當然還可以進一步包括音頻視頻等數據信息,如果WebApp的網頁是動態更新的,則該瀏覽器內核可以實時動態渲染出該動態網頁的界面信息(如界面圖像),並發送給框架進程的瀏覽器代理對象動態更新所述頁面代理窗口內的界面信息,使得用戶看到WebApp的容器窗口內好像是一個動態網頁。當然用戶還需要對網頁進行操作,比如用戶在所述指定區域(如圖I的頁面代理窗口)內進行點擊操作和輸入文字等操作,所述框架進程實時捕捉所述容器窗口指定區域內的操作指令,在捕捉到操作指令後通過本框架進程的瀏覽器代理對象跨進程發送該操作指令到所述瀏覽器進程的存根對象,由該存根對象轉發給對應的瀏覽器內核,瀏覽器內核根據操作指令重新渲染WebApp的界面圖像,通過本瀏覽器進程的存根對象將該界面圖像跨進程發送給所述框架進程的瀏覽器代理對象;該瀏覽器代理對象將收到的界面信息更新到所述頁面代理窗口中。通過這種頁面的刷新方式,使用戶看起來像是在操作真正的網頁。通過跨進程渲染,瀏覽器內核與WebApp框架就完全隔離了,不管頁面是卡住還是崩潰都不會影響到框架本身,而且由於瀏覽器內核在另一個進程,所以框架進程的內存,性能完全不受影響。給用戶非常好的體驗。圖3a為本發明所述瀏覽器內核獨享瀏覽器進程的示意圖。由於瀏覽器內核可能會發生崩潰,如果很多WebApp使用的瀏覽器內核都在同一個進程,一個頁面的崩潰就會導致進程的崩潰,從而導致所有WebApp的崩潰。所以本發明把不同WebApp對應的瀏覽器內核放在不同的進程裡,如果一個瀏覽器內核崩潰就僅會影響到當前的WebApp,從而增強了WebApp框架的穩定性。但是,如果每一個WebApp對應的瀏覽器內核都放在不同的瀏覽器進程裡,則會導致資源的過度消耗。當打開很多個WebApp的時候,會打開多個瀏覽器進程,會導致資源佔用過多,系統性能降低。所以這裡不能簡單的處理,需要使用一個策略來保持穩定性和性能的平衡,對於不同的機器,不同的系統,不同的配置,可以同時打開的瀏覽器進程數是不一樣的。因此本發明進一步設置可同時打開的最大瀏覽器進程數;當同時運行的WebApp數小於或等於所述最大瀏覽器進程數時,則每個WebApp對應的瀏覽器內核分別運行在不同的瀏覽器進程中;否則至少兩個WebApp對應的瀏覽器內核共享一個瀏覽器進程,如圖3b所
/Jn ο為了實現網絡優勢和客戶端優勢相結合,增強web頁面的能力,本發明還在腳本引擎中自定義腳本對象,並對瀏覽器內核進行改造,將自定義的腳本對象嵌入到瀏覽器內核中,便於腳本調用。圖4a為本發明所述基於客戶端擴展的WebApp框架裝置的示意圖。參見圖4a,所述瀏覽器進程中除了瀏覽器內核還包括腳本引擎、自定義對象和本地組件。其中所述本地組件用於提供基礎的客戶端功能;所述自定義對象用於封裝本地組件,形成特定的客戶端功能;所述腳本引擎中設置有所述自定義對象對應的腳本對象;所述瀏覽器內核嵌入了所述腳本對象,並通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶 端功能。下面對圖4a所具體說明。瀏覽器內核裡面可以運行腳本,腳本是由腳本引擎提供運行環境的,對於瀏覽器來說,腳本引擎裡面內置了 window,document等對象,腳本可以對這些對象進行控制,從而可以動態修改頁面。但腳本弓I擎也提供了一些機制,可以嵌入自定義的對象,本發明就是利用腳本引擎的嵌入機制,嵌入自定義的對象。一個自定義對象在腳本引擎裡面映射有一個腳本對象,供給瀏覽器內核的腳本使用,同時這個腳本對象的實現是由本地組件來提供的,即可以將本地組件封裝成自定義對象,每個自定義對象實現的功能由本地組件來實現,這樣就可以讓瀏覽器裡面的腳本訪問到外部的本地組件了,從而使內部腳本可以訪問外部的本地組件,極大的增強了 Web頁面的能力,同時開發門檻低,易於使用,便於擴展。至於具體的向瀏覽器內核嵌入腳本對象的方式,不同的瀏覽器內核,其實現方法也不相同。本發明所述的瀏覽器內核不限於特定的瀏覽器內核,現在流行的瀏覽器內核有IE, Chrome, Firefox,它們都提供了嵌入腳本對象的能力。其中IE是提供了非常明確的機制,IE對於window對象裡面的external成員提供了專門的接口來擴展。IE是基於COM的,所以只要提供相關的COM對象,就非常容易實現external對象的擴展,通過external,可以實現腳本到COM對象的調用。而Chrome和Firefox由於本身是開源的,所以可以直接修改其原始碼嵌入自定義的腳本對象,Chrome和Firefox本身的腳本引擎也都提供了自定義腳本對象的方法。至於具體的腳本引擎嵌入自定義對象的機制,由於不同腳本引擎嵌入自定義對象的機制可能不同,因此在具體嵌入時可以參見該腳本引擎的規範。圖4a所示的本地組件、自定義對象、腳本引擎、以及瀏覽器內核運行在同一瀏覽器進程中。但當一個以上WebApp同時啟動時,一個以上WebApp對應的瀏覽器內核可能佔用一個以上的瀏覽器進程,如果每個瀏覽器進程裡面都有本地組件則是一種資源的浪費,也不便於統一管理,所以在一種優選實施方式中可以把所有本地組件獨立為一個進程。圖4b為本發明所述本地組件運行於獨立進程的示意圖,參見圖4b,在每個瀏覽器進程裡面都會有該本地組件的代理對象即所述自定義對象,該自定義對象用於把本瀏覽器進程的調用組件的請求發送到本地組件所在的獨立進程,然後該獨立進程進行相關的本地組件操作。這樣既節省了資源,又便於管理。在本發明這種基於客戶端擴展的WebApp框架模式下,可以產生一種新的服務接入方式。圖5a為本發明可實現的一種新服務接入方式的示意圖。由於某些服務不適合作為Web服務提供(如基於TCP或UDP的數據服務、視頻、傳文件等客戶端才能實現的服務能力),但若作為客戶端組件,使用客戶端開發方式來使用,技術門檻比較高,使用也不方便。因此本發明把客戶端的本地組件作為本地服務組件,該本地服務組件用於為WebApp提供特定的本地服務功能(如TCP或UDP數據傳輸服務、視頻傳輸服務等服務功能),把這種本地服務組件封裝成自定義對象即圖5a中所示的服務代理對象,腳本引擎中映射有該服務代理對象的腳本對象,該腳本對象又嵌入到瀏覽器內核中。在瀏覽器內核需要特定的客戶端服務時,只需要調用該腳本對象(相當於調用WebApp本地服務的一個接口),通過服務代理對象通知所述本地服務組件實現特定的客戶端服務功能。對於WebApp開發者來說,當需要使用複雜的本地服務時,不必重新開發本地組件,而只需要調用所述服務代理對象的腳本對象即可,本地服務的具體實現都通過所述已經封裝好的本地服務組件來實現,因此大大簡化了 WebApp開發者的開發工作,降低了開發門檻,有助於WebApp框架的推廣。 例如對於傳輸文件的服務,利用HTTP協議的文件傳輸效率是很低的,使用客戶端的多線程和多點下載技術,可以極大的提高傳輸文件的速度,但是在Web頁面裡這種客戶端多線程和多點下載技術是不可能實現的。通過本發明的方案,可以在頁面腳本裡面直接調用傳文件的服務,實現高速文件傳輸。通過這種機制,Web頁面可以利用客戶端的服務來完成複雜的功能,極大的擴展了 WebApp的應用範圍。在圖5a中,所述本地服務組件設置到了與服務代理對象、腳本引擎、以及瀏覽器內核的同一個瀏覽器進程中。當然,為了節省資源和便於管理,在在另一中優選方案中,也可以將本地服務組件單獨設置進一個獨立的服務進程中,如圖5b所示為本發明可實現的一種獨立服務進程的服務接入方式的示意圖,本地服務組件都運行在一個獨立的服務進程中,在瀏覽器內核需要特定的客戶端服務時,通過所述服務代理對象向所述服務進程發出指令,服務進程再調用對應的本地服務組件實施特定的客戶端服務。對於WebApp的安全性,本發明也採取了相應的技術方案。對於WebApp界面框架進程、瀏覽器進程、還有服務進程,最不安全的是瀏覽器進程。因此本發明使用沙箱的技術對瀏覽器進程進行防護,防止不安全的頁面對系統的破壞。圖6為本發明對瀏覽器進程進行沙箱保護的示意圖,如圖6所示,所述瀏覽器進程中進一步包括沙箱保護單元,用於對瀏覽器進程進行防護。至於沙箱保護單元具體的實施方法,可以參考現有技術,本文不再贅述。另外一個安全性問題是數據的安全性,WebApp可能會需要帳號或者用戶信息等機密數據,但不可能要求所有的WebApp都使用HTTPS這樣的加密通道,這裡可以在服務進程這邊實現加密,服務進程與後臺伺服器可以使用加密的協議,服務進程與瀏覽器進程的服務代理可以使用加密傳輸的方式,然後在瀏覽器進程的服務代理這裡解密,然後傳給頁面使用。基於上述對本發明所述WebApp框架裝置的描述,本發明還公開了一種WebApp的運行方法,圖7為本發明WebApp運行方法的一種流程圖,該方法需要設置網絡應用客戶端,並包括在網絡應用客戶端中啟動相互獨立的框架進程和瀏覽器進程,所述框架進程中運行容器窗口和瀏覽器代理對象,所述瀏覽器進程中運行瀏覽器內核和存根對象;所述框架進程的瀏覽器代理對象將所述容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該存根對象轉發給對應的瀏覽器內核;所述瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給所述框架進程的瀏覽器代理對象;該框架進程的瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。基於前述描述,該方法可進一步設置可同時打開的最大瀏覽器進程數;當同時運行的網絡應用數小於或等於所述最大瀏覽器進程數時,則每個網絡應用對應的瀏覽器內核分別運行在不同的瀏覽器進程中;否則至少兩個網絡應用對應的瀏覽器內核共享一個瀏覽器進程。
基於前述描述,為了使WebApp具有客戶端的處理能力,該方法進一步包括封裝本地組件,形成具有特定客戶端功能的自定義對象;在腳本引擎中設置所述自定義對象的腳本對象;在瀏覽器內核嵌入所述腳本對象;當網絡應用運行時,瀏覽器內核通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶端功能。在網絡應用運行時,在同一瀏覽器進程中運行所述自定義對象、腳本引擎、瀏覽器內核,在與該瀏覽器進程相獨立的進程中運行所述本地組件;或者在同一瀏覽器進程中運行所述本地組件、自定義對象、腳本引擎、以及瀏覽器內核。 為了實現一種新服務接入方式,所述本地組件可以為本地服務組件,所述自定義對象為服務代理對象。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
權利要求
1.一種網絡應用的框架裝置,其特徵在於,該框架裝置為一客戶端裝置,包括相互獨立的框架進程和瀏覽器進程;所述框架進程中包括容器窗口和瀏覽器代理對象,所述瀏覽器進程中包括網絡應用對應的瀏覽器內核和存根對象;所述框架進程的瀏覽器代理對象用於將所述容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該存根對象轉發給對應的瀏覽器內核,所述瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給所述框架進程的瀏覽器代理對象;該瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。
2.根據權利要求I所述的框架裝置,其特徵在於,在同時運行一個以上網絡應用時,所有網絡應用對應的瀏覽器內核分別運行在不同的瀏覽器進程中,或者其中至少兩個網絡應用對應的瀏覽器內核共享一個瀏覽器進程。
3.根據權利要求I所述的框架裝置,其特徵在於,該裝置包括本地組件、自定義對象和腳本引擎,其中 所述本地組件用於提供基礎的客戶端功能; 所述自定義對象用於封裝本地組件,形成特定的客戶端功能; 所述腳本引擎中設置有所述自定義對象對應的腳本對象; 所述瀏覽器內核嵌入了所述腳本對象,並通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶端功能。
4.根據權利要求3所述的框架裝置,其特徵在於,所述自定義對象、腳本引擎、以及瀏覽器內核運行在同一瀏覽器進程中,所述本地組件也運行在該瀏覽器進程中,或者所述本地組件運行在與該瀏覽器進程相獨立的進程中。
5.根據權利要求3或4所述的框架裝置,其特徵在於,所述本地組件為本地服務組件,所述自定義對象為服務代理對象。
6.根據權利要求I所述的框架裝置,其特徵在於,所述瀏覽器進程中進一步包括沙箱保護單元,用於對瀏覽器進程進行防護。
7.—種網絡應用的運行方法,其特徵在於,設置網絡應用客戶端,並包括 在網絡應用客戶端中啟動相互獨立的框架進程和瀏覽器進程,所述框架進程中運行容器窗口和瀏覽器代理對象,所述瀏覽器進程中運行瀏覽器內核和存根對象; 所述框架進程的瀏覽器代理對象將所述容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該存根對象轉發給對應的瀏覽器內核; 所述瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給所述框架進程的瀏覽器代理對象;該瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。
8.根據權利要求7所述的方法,其特徵在於,該方法進一步設置可同時打開的最大瀏覽器進程數;當同時運行的網絡應用數小於或等於所述最大瀏覽器進程數時,則每個網絡應用對應的瀏覽器內核分別運行在不同的瀏覽器進程中;否則至少兩個網絡應用對應的瀏覽器內核共享一個瀏覽器進程。
9.根據權利要求7所述的方法,其特徵在於,該方法進一步包括 封裝本地組件,形成具有特定客戶端功能的自定義對象; 在腳本引擎中設置所述自定義對象的腳本對象;在瀏覽器內核嵌入所述腳本對象; 當網絡應用運行時,瀏覽器內核通過運行腳本調用所嵌入的腳本對象,運行所述自定義對象的特定的客戶端功能。
10.根據權利要求9所述 的方法,其特徵在於,在網絡應用運行時,在同一瀏覽器進程中運行所述自定義對象、腳本引擎、瀏覽器內核,在與該瀏覽器進程相獨立的進程中運行所述本地組件;或者在同一瀏覽器進程中運行所述本地組件、自定義對象、腳本引擎、以及瀏覽器內核。
11.根據權利要求9或10所述的方法,其特徵在於,所述本地組件為本地服務組件,所述自定義對象為服務代理對象。
全文摘要
本發明公開了一種網絡應用的框架裝置和運行方法,該裝置為一客戶端,包括相互獨立的框架進程和瀏覽器進程;框架進程中包括容器窗口和瀏覽器代理對象,瀏覽器進程中包括瀏覽器內核和存根對象。方法包括框架進程的瀏覽器代理對象將容器窗口內指定區域的相關信息發送給瀏覽器進程的存根對象,並由該瀏覽器進程的存根對象轉發給對應的瀏覽器內核,瀏覽器內核根據收到的信息渲染網絡應用的界面信息,並通過本瀏覽器進程的存根對象將該界面信息跨進程發送給框架進程的瀏覽器代理對象;該框架進程的瀏覽器代理對象將收到的界面信息展示在所述容器窗口的指定區域。利用本發明,可以提高網絡應用的穩定性、整體性能和安全性。
文檔編號H04L29/08GK102843394SQ20111016931
公開日2012年12月26日 申請日期2011年6月22日 優先權日2011年6月22日
發明者黃奎, 魏亞民, 謝昕虯, 劉紅傑 申請人:騰訊科技(深圳)有限公司