新四季網

基於雲計算的html5應用的打包、安裝、卸載、運行方法及系統的製作方法

2023-07-19 08:36:56 1

基於雲計算的html5應用的打包、安裝、卸載、運行方法及系統的製作方法
【專利摘要】本發明的一種基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統,所述系統包括服務端、及與所述服務端進行交互的多個客戶端;所述客戶端包括收發模塊、程序文件上傳模塊、應用配置模塊、應用調用模塊、程序文件加載模塊、控制項創建模塊、API接口模塊和API及運行空間設置模塊;所述服務端包括通信接口、數據中心、客戶端代碼存儲模塊、應用包解析模塊、應用包創建模塊、用戶識別模塊。具有功能包括創建應用包、安裝應用到遠程伺服器上、卸載在遠程伺服器上的應用、在客戶端中加載並運行應用、關閉在客戶端運行的應用。本發明解決了讓用戶可將應用安裝在遠程伺服器上,使用時立即加載到本地運行,即節省了本地空間又起到一次安裝到處可用的作用。
【專利說明】基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統

【技術領域】
[0001] 本發明涉及一種基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統, 尤其涉及一種應用基於瀏覽器或其他HTML5環境下的虛擬作業系統中的HTML5應用的打 包、安裝、卸載、運行、關閉。

【背景技術】
[0002] 隨著網際網路的飛速發展,瀏覽器不再僅僅用來表示Web內容,隨著HTML5的技術 的問世,Web進入了一個成熟的應用平臺,在HTML 5平臺上,視頻,音頻,圖像,動畫,以及人 機交互和人網交互都被標準化,這讓具有無需安裝、開發成本低、跨平臺和跨終端、迭代更 新容易等優勢的HTML5應用使其有很大的可能性成為未來的天下。然而遺憾的是,必須有 伺服器在雲端提供服務才能讓HTML5應用優勢得以充分體現,這便導致了我們在使用各種 在線應用的同時,還要登陸不同網絡平臺。此外,對於更多的個人開發者,昂貴伺服器成本 讓人望而卻步。
[0003] 針對目前網絡平臺只能保存數據和文件卻不能自由安裝、定製第三方應用等不 足,研發一種基於雲計算的HTML5應用的打包、安裝與卸載、運行與關閉的方法及系統,讓 開發者(尤其對於個人開發者)可以通過打包應用後以安裝包文件的形式派發給用戶,既降 低技術難度,又減少了伺服器成本;讓用戶把應用安裝在雲端伺服器上,使用時立即加載到 本地運行,不僅可以節省了本地硬碟的空間,還能起到一次安裝,到處可用的作用。此外,還 可讓用戶在一個網絡平臺上統一管理和使用各種HTML5應用,滿足不同用戶各種需求,也 減少了因為使用不同的應用而登錄不同的平臺而導致的麻煩。


【發明內容】

[0004] 為了迎合網際網路技術及雲計算領域的發展需求,針對目前網絡平臺只能保存數據 和文件卻不能自由安裝、定製第三方應用等不足,提供一種基於雲計算的HTML5應用(以下 簡稱應用)的打包、安裝與卸載、運行與關閉的方法及系統,使應用由本地移到雲端,實現讓 用戶在基於雲計算的作業系統或者同一網絡平臺上通過簡單、便捷的方法對應用進行管理 與運行,讓應用起到一次安裝,到處可用的作用。本發明是通過以下技術方案來實現的: 一種基於雲計算的HTML5應用的打包、安裝、卸載、運行、關閉的方法及系統,該系統包 括服務端,及與所述服務端進行交互的一個以上的客戶端。
[0005] 進一步地,所述客戶端包括:收發模塊,用於與伺服器進行通訊和指令派發;應用 包管理中心,用於對應用包信息進行管理和監控接收用戶操作指令;程序文件上傳模塊,用 於在創建應用包或安裝應用時,上傳程序文件;應用配置模塊,用於在創建應用包或安裝應 用對應用進行常規設置;應用調用模塊,用於根據應用包信息並調用相關模塊實現應用在 客戶端運行;程序文件加載模塊,用於應用在運行時加載主頁或主程序代碼,並通過密令生 成一個讓應用程式能夠自行加載擴展的應用程式文件的url路徑;控制項創建模塊,用於在 應用運行時創建如窗口、任務欄等相關交互界面控制項。
[0006] 為了讓應用程式不受其他程序的Javascript代碼或CSS樣式幹擾,以及讓應用可 以調用客戶端系統的方法和加強應用功能,所述客戶端還包括API及運行空間設置模塊, 用於通過創建iframe元素讓應用能獨立運行的運行空間,並在運行空間中設置一系列的 全局函數或對象,使應用在運行時得以調用客戶端的API方法。
[0007] 所述系統不僅可以作為一個獨立的系統來運行,還能作為一個組件應用到其他 Web應用或系統中,所述客戶端還應包括API接口模塊,用於提供為第三方應用或系統提供 一系列API接口命令來操作,進行應用的安裝、卸載、運行、關閉以及應用包的生成。
[0008] 進一步地,所述服務端包括:通信接口,用於與客戶端進行連接通信、建立會話 機制和指令派發;數據中心,用於對應用包信息及其程序文件進行管理,也用於處理來 自所述通信接口的各種請求並返回請求結果;客戶端代碼存儲模塊,用於存儲客戶端的 Javascript和CSS代碼文件,並在客戶端在瀏覽器運行時通過通信接口把客戶端程序代碼 傳輸到瀏覽器中運行;應用包解析模塊,用於對應用包進行解壓,分析配置文件,檢測程序 文件,解密Javascript代碼;應用包創建模塊,用於根據接收到的程序文件及應用包配置 信息進行創建應用包的臨時文件。
[0009] 所述服務端包括用戶識別模塊,用於對根據會話信息進行用戶識別,並返回用戶 編號,讓所述數據中心得以根據用戶編號對應用進行區分;用戶識別模塊還提供API接口, 使所述應用系統可以作為一個組件並與其它系統組合運行。
[0010] 所述服務端的運行環境還包括:資料庫,存儲用戶應用包的基本信息、配置信息, 運行信息;文件系統,用於對應用程式文件進行儲存、管理及讀寫。
[0011] 進一步地,該運行方法包括:創建應用包、安裝應用到遠程伺服器上、卸載在遠程 伺服器上的應用、在客戶端中加載並運行應用,關閉在客戶端運行的應用。
[0012] 進一步地,所述創建應用包的實施過程包括以下步驟:(1)用戶提交應用包創建 指令到所述應用包管理模塊;(2)所述應用包管理模塊調用所述應用程式上傳模塊向用戶 展示上傳應用程式文件的交互界面,用戶選擇並上傳應用程式文件;(3)所述通信接口將 接收的到程序文件傳遞給所述應用包創建模塊,所述應用包創建模塊進行解壓並遍歷上傳 的應用文件,所述應用包創建模塊通過所述通信接口向客戶和所述收發模塊向所述應用配 置模塊向用戶發起進行應用配置的請求,並通過交互界面要求用戶填寫應用配置信息,然 後所述應用配置模塊通過所述收發模塊和所述通信接口向所述應用包創建模塊發送應用 配置信息;(4)所述應用包創建模塊進行應用配置文件的創建,Javascript文件代碼的加 密以及臨時應用包的創建;(5)所述應用包創建模塊通過所述通信接口和所述收發模塊向 所述應用包管理模塊返回應用包信息;(6)述應用包管理模塊向用戶展示下載應用包的交 互界面並向用戶指示進行應用包的下載。
[0013] 所述Javascript代碼的加密方式包括:無密匙加密、有密匙加密和不加密三種方 式;其加密算法不對第三方公開,通過Javascript代碼加密後的應用包,僅限在所述系統 中運行。
[0014] 所述配置文件包括以下應用包信息:發行商、命名空間、應用類型、默認運行方式、 應用圖標文件路徑、應用描述、界面設置信息、應用程式版本、應用包版本等,其文件格式為 XML 或 JS0N。
[0015] 所述創建的應用包文件只在所述服務端保存一段有限時間(如:24小時),逾期後 將被系統自動刪除; 所述應用包為由HTML、CSS、JS、XML、JS0N、圖片文件、音頻文件、視頻文件、瀏覽插件文 件等文件通過ZIP、RAR、7Z等格式進行壓縮的壓縮文檔;在所述壓縮文檔中,必須包含一個 主頁或主程序文件包配置文件。
[0016] 進一步地,所述安裝應用到遠程伺服器上的實施過程包括以下步驟:(1)用戶 提交應用包創建指令到所述應用包管理模塊;(2)所述應用包管理模塊調用所述應用程式 上傳模塊向用戶展示上傳應用程式文件的交互界面,用戶選擇並上傳應用程式文件;(3) 所述通信接口調用所述用戶登錄管理模塊通過SESSION會話機制進行服務端的用戶識別; (4)所述應用包分析模塊解壓應用包,然後進行分析及解密;(5)向客戶端返回請求並調用 所述應用配置模塊與用戶交互完善配置信息,然後將配置信息通過所述收發模塊和通信接 口提交到所述數據中心;(6)所述數據中心利用數據保存應用包信息和利用文件系統存儲 程序文件;(7)所述數據中心通過通信接口向客戶端返回新的應用信息;(8)所述應用包管 理模塊通過交互界面向用戶提示應用包安裝完成信息。
[0017] 除上述由所述系統創建的應用包以外,所述系統還支持安裝由用戶自行創建的未 對Javascript文件進行加密的應用包。
[0018] 進一步地,所述卸載在遠程伺服器上的應用的實施過程包括以下步驟:(1)用戶 提交應用包卸載指令到所述應用包管理模塊;(2)所述應用包管理模塊通過所述收發模塊 向服務端發送要卸載的應用包APP ID和應用包卸載請求;(3)所述通信接口調用所述用 戶登錄管理模塊通過SESSION會話機制進行服務端的用戶識別;(4)所述數據中心刪除數 據庫中相應的應用包信息以及程序文件;(5)所述數據中心通過通信接口向客戶端返回應 用包卸載結果信息;(6)所述應用包管理模塊通過交互界面向用戶提示應用包卸載結果信 肩、。
[0019] 進一步地,所述在客戶端中加載並運行應用的實施過程包括以下步驟:(1)用戶 提交應用運行指令和要運行應用的命名空間到所述應用包管理模塊;(2)所述應用包管理 模塊根據命名空間獲取應用包信息;(3)所述應用包管理模塊通過所述收發模塊向服務端 發送要運行應用的APP ID和應用運行請求;(4)所述通信接口調用所述用戶登錄管理模 塊通過SESSION會話機制進行服務端的用戶識別;(5)所述數據中心根據APP ID從數據 庫中檢索出相應的應用包信息並進行檢測;(6)所述數據中心創建應用程式文件加載密令 及程序文件加載任務記錄;(7)所述數據中心讀取返回主頁/程序代碼的代碼內容並將其 與加載密令通過所述通信接口返回到客戶端;(8)所述應用調用模塊調用所述控制項創建模 塊進行創建支持應用運行的相關控制項;(9)所述應用調用模塊調用所述API及運行空間設 置模塊進行創建運行空間並設置系統API ;(10)所述應用調用模塊將主業/程序代碼通過 document, write的方法將代碼寫入到運行空間中的文檔內進行運行解析主頁代碼或運行 主程序;(11)應用在HTML5環境下運行時將自動想服務端發起加載擴展文件的請求,所述 通信接口通過URL分析然後讀取相應的程序文件內容並向客戶端返回;(12)運行HTML5應 用。
[0020] 在所述客戶端中運行應用的實施過程中,為了方便用戶對應用的識別與調用,除 通過APP ID以外還可採用命名空間作為程序運行的標識。
[0021] 所述加載密令的作用為進行客戶端識別以及加強應用原始碼的保護。
[0022] 進一步地,所述運行空間用於避免應用中的Javascript代碼和CSS樣式與其他應 用或客戶端程序的Javascript代碼和CSS樣式出現衝突而造成錯誤;減少應用不必要的權 限以提高安全性;使應用在運行過程中,能夠在HTML5環境下自行加裝擴展的程序文件。 通過〈iframe〉元素下contentWindow模擬,對contentWindow下的原有全局變量進行重新 設置,以提高安全性。然後通過設置〈iframe〉元素 src值為以http://域名/package/密 令/命名空間/格式的URL,並以其作為HTML5應用的BaseURL ;在HTML5的環境下,應用 可根據BaseURL+與應用主頁的相對文件路徑(如:http://域名/package/密令/命名空 間/xxx. js)進行程序文件的加載。
[0023] 進一步地,所述關閉在客戶端運行的應用的實施過程包括以下步驟:(1)用戶提 交關閉運行指令和要關閉應用的命名空間到所述應用包管理模塊;(2)所述應用程式調用 模塊通過API向應用程式觸發關閉事件,讓應用程式執行關閉前的處理;(3)所述應用程式 調用模塊分別所述API及運行空間和調用所述控制項創建模塊對運行空間及相關控制項進行 刪除。
[0024] 本發明的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統,該系統 包括服務端,及與所述服務端進行交互的一個以上的客戶端;所述服務端包括通信接口、數 據中心、客戶端代碼存儲模塊、應用包解析模塊、應用包創建模塊、用戶識別模塊、資料庫、 臨時應用程式文件和應用程式文件;所述客戶端包括收發模塊、程序文件上傳模塊、應用配 置模塊、應用調用模塊、程序文件加載模塊、控制項創建模塊、API接口模塊和API及運行空 間設置模塊。本發明解決了目前網絡平臺只能保存數據和文件卻不能自由安裝、定製第三 方應用等不足,讓開發者(尤其對於個人開發者)可以通過打包應用後以安裝包文件的形式 派發給用戶,降低技術難度,減少伺服器成本;讓用戶可把應用安裝在遠程伺服器上,使用 時立即加載到本地運行,不僅可以節省了本地硬碟的空間,還能起到一次安裝,到處可用的 作用,實現讓用戶在基於雲計算的作業系統或者同一網絡平臺上通過簡單、便捷的方法對 HTML5應用進行管理與運行。

【專利附圖】

【附圖說明】
[0025] 為了易於說明,本發明由下述的較佳實施例及附圖作以詳細描述。
[0026] 圖1為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的系 統結構示意圖。
[0027] 圖2為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施客戶端初始化的流程示意圖。
[0028] 圖3為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施創建應用包的流程示意圖。
[0029] 圖4為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施應用包安裝的流程示意圖。
[0030] 圖5為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施應用包卸載的流程示意圖。
[0031] 圖6為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施在客戶端中運行應用的流程示意圖。
[0032] 圖7為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統的實 施關閉在客戶端運行的應用的流程示意圖。

【具體實施方式】
[0033] 本實施例中,參照圖1所示,一種基於雲計算的HTML5應用的打包、安裝、卸載、運 行方法及系統,該系統包括服務端、及與所述服務端進行交互的一個以上的客戶端。
[0034] 所述客戶端包括:收發模塊、應用包管理中心、程序文件上傳模塊、應用配置模塊、 應用調用模塊、程序文件加載模塊、控制項創建模塊、API和運行空間設置模塊、API接口模 塊。
[0035] 所述收發模塊,用於與伺服器進行通訊和指令派發。其功能實施方法為當接收到 其他模塊的通信請求時,所述收發模塊將請求命令和用戶會話信息一起通過Ajax技術向 服務端發送相關請求,並將接收到的反饋信息其通信請求模塊。當接收到來自服務端的反 饋信息時,根據指令將請求傳遞到不同的模塊中處理。信息傳遞格式為JS0N或XML。
[0036] 所述應用包管理模塊,用於監控接收用戶操作指令及對應用包信息進行管理。其 功能實施方法為在系統初始化時,通過所述收發模塊向服務端發起已安裝的應用包信息加 載請求,然後將應用包信息存於內存中。所述應用包管理模塊還提交一個圖形交互界面,以 便用戶管理或運行應用,此外,也能接收通過所述API接口模塊輸入的操作指令,當接收到 操作指令時,便根據指令對應用包信息進行檢測,然後配合其他模塊或服務端進行處理。 [0037] 所述程序文件上傳模塊,用於在創建應用包時,上傳程序文件。其功能實施方法 有兩種方案:方案一為通過設置一個由於選擇本地文件的〈input〉文件控 件,並對該控制項設置文件選取的事件監控,然後以HTML5的File API讀取文件內容後通過 所述收發模塊將文件內容上傳到服務端。方案二為通過設置一個用於輸入遠程文件地址的 〈input>地址控制項和一個用於提交地址的〈button〉按鈕控制項,並對〈button〉 按鈕控制項設置點擊的事件監控,然後讀取〈input >地址控制項的內容後通過所 述收發模塊發送到服務端。上述遠程文件地址為HTTP協議或FTP協議的URL。
[0038] 所述應用配置模塊,用於在創建應用包或安裝應用對應用進行常規設置。其功能 實施方法為通過在圖形交互界面中顯示應用包信息設置表單,並指引用戶按要求輸入。當 用戶提交表單時,對提交的信息進行檢查,若輸入錯誤,則提示錯誤信息;若輸入正確,則通 過所述收發模塊將應用包設置信息發送到服務端。
[0039] 所述應用調用模塊,用於根據應用包信息並調用相關模塊實現應用在客戶端運 行。其功能實施方法為當接收到來自所述應用包管理模塊的應用包信息及運行請求時,根 據應用包信息的命名空間判斷要運行的應用是否在運行中,若要運行的應用已經在運行, 則切換到該應用的交互界面上,並完成應用的運行。若要運行的應用沒有在運行,則依次調 用所述程序文件加載模塊、所述控制項創建模塊、所述API和運行空間設置模塊為應用創建 運行的各種環境,然後通過document, write的方法將從所述程序文件加載模塊中返回的 主頁或主程序代輸入到由所述API和運行空間設置模塊創建的運行空間中並運行。
[0040] 所述程序文件加載模塊,用於應用在運行時加載主頁或主程序代碼,並通過密令 創建一個讓應用程式能夠自行加載擴展的應用程式文件的url路徑;其功能實施方法為首 先通過所述收發模塊向服務端發起加載主頁或主程序代碼和一個用於加載擴展應用程式 文件的密令,根據返回的密令,創建一個符合服務端解析並且包含應用命名空間和密令的 url路徑(如:http://域名/package/密令/命名空間/),然後將主頁或主程序代碼和url 路徑返回給所述應用調用模塊。
[0041] 所述控制項創建模塊,用於在應用運行時創建如窗口、任務欄等相關交互界面控制項。 其功能實施方法為通過Javascript對D0M的控制,創建控制項的相關元素並利用CSS設置樣 式,然後通過對相關元素設置事件(Events)進行用戶輸入的監控,使用戶可以通過操作相 關控制項進行對應用進行切換、退出等操作。
[0042] 所述API及運行空間設置模塊,用於設置應用運行空間以及為應用設置一些運行 空間內的全局對象及方法,使應用可以調用本發明的方法以及其他系統的提供的方法。其 功能實施方法為通過創建一個〈iframe〉元素,並且讓應用代碼在〈iframe〉元素內運行, 這樣可使應用程式中的Javascript變量和CSS樣式不受其他應用幹擾。然後在該運行 空間(〈iframe〉元素的contentWindow)下設置一些可以對其他系統及應用進行操作的 Javascript全局變量、對象和方法,應用運行過程中,可直接對這些變量、對象和方法進行 訪問與操作,實現對其他系統及應用進行操作的功能。
[0043] 所述API接口模塊,用於提供為第三方應用或系統提供一系列API接口命令來操 作本發明進行應用的安裝、卸載、運行、關閉以及應用包生成。其功能實施方法為在客戶端 初始化,所述API接口模塊在Javascript作用域中創建一個全局對象,並在該對象中設置 一系列的公共方法。使在相同Javascript作用域下的第三方應用或系統通過調用所述全 局對象執行本發明安裝、卸載、運行、關閉以及應用包生成等操作。
[0044] 所述服務端包括:通信接口、數據中心、客戶端代碼存儲模塊、應用包解析模塊、應 用包創建模塊、用戶識別模塊。
[0045] 所述通信接口,用於與客戶端進行連接通信、建立會話機制和指令派發;其功能實 施方法為通過Nginx或Apache等HTTP/HTTPS代理伺服器實現與客戶端進行HTTP/HTTPS協 議的通信。通信時建立SESSION會話機制,向客戶端派發SESSION ID (唯一的會話編碼), 用於其它模塊進行客戶端或用戶識別。當接收到請求時,根據指令將請求傳遞到不同的模 塊中處理。
[0046] 所述數據中心,用於對應用包信息及其程序文件進行管理,也用於處理來自所述 通信接口的各種請求並返回請求結果。其功能實施方法為通過資料庫和文件系統對應用包 信息和程序文件進行存儲、更新、刪除等操作來實現對應用包進行管理。每一條應用包信息 記錄中,都有一個用戶編號的欄位,用於進行用戶識別。
[0047] 所述客戶端代碼存儲模塊,客戶端代碼存儲模塊,用於存儲客戶端的Javascript 和CSS代碼文件,並在客戶端在瀏覽器運行時通過通信接口傳輸到瀏覽器中運行;其功能 實施方法為在需運行客戶端的應用的HTML頁面中,添加〈script〉和〈link〉標籤,讓瀏覽 器進行加載,或者通過Ajax的方式加載代碼文本,並使用evel函數運行javascript代碼, 通過創建〈style〉元素,應用CSS樣式。在加載時,所述客戶端代碼存儲模塊會根據請求來 源和信息進行分析,返回不同版本的客戶端代碼,如適用於PC的客戶端或適用於智慧型手機 的客戶端。若加載請求中沒有指定要加載的版本,則通過HTTP_USER_AGENT對瀏覽器進行 判斷,自動分配最合適的版本。
[0048] 所述應用包創建模塊,用於根據接收到的程序文件及應用包配置信息進行創建應 用包的臨時文件。其功能實施方法為根據應用包配置信息,創建一個應用配置文件,其文件 格式為XML或JS0N,如:package, xml、package, json。然後加密程序文件中的Javascript 代碼。最後講配置文件和程序文件打包成一個臨時壓縮文件,並將該文件路徑信息通過所 述通信接口返回到客戶端中。
[0049] 所述應用包解析模塊,用於對應用包進行解壓,分析配置文件,檢測程序文件,解 密Javascript代碼。其功能實施方法為嘗試對應用包進行解壓,並將解壓所得的文件放在 臨時文件夾中後刪除應用包。然後分析配置文件,若配置文件不存在或信息不完善,則通過 所述通信接口向客戶端返回完善應用包配置信息的請求。然後將配置信息及解壓所得的臨 時文件夾目錄路徑傳遞給所述數據中心進行處理。
[0050] 所述用戶識別模塊,用於對根據會話信息進行用戶識別,並返回用戶編號。其功能 實施方法為通過SESSION ID (唯一的會話編號)作為標識創建一個有效時間為30分鐘(有 效時間可按需求設置)的用戶登錄狀態的信息記錄,此信息記錄保存了用戶信息和用戶登 錄狀態。每次客戶端與服務端進行通信時,所述用戶識別模塊通過SESSION ID檢索相應的 用戶登錄狀態的信息記錄,通過判斷其是否存在和信息內容實現客戶端與服務端通信時保 持用戶登陸狀態。此外,所述用戶識別模塊還提供API接口,使本發明可以作為一個組件並 與其它系統組合運行。
[0051] 參照圖2所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中所述客戶端初始化的流程示意圖,通過以下步驟進行實施: 步驟一:加載客戶端的Javascript和CSS代碼並運行,可通過以下兩種方法實現: 1、在需運行客戶端的應用的HTML頁面中,添加〈script〉和〈link〉標籤,讓瀏覽器進 行加載。
[0052] 2、通過Ajax的方式加載代碼文本,並使用evel函數運行javascript代碼,通過 創建〈style〉元素,應用CSS樣式。
[0053] 在以上過程中,所述客戶端代碼存儲模塊會根據請求來源和信息進行分析,返回 不同版本的客戶端代碼,如適用於PC的客戶端或適用於智慧型手機的客戶端。若加載請求中 沒有指定要加載的版本,則通過HTTP_USER_AGENT對瀏覽器進行判斷,自動分配最合適的 版本。
[0054] 若客戶端運行在基於HTML5的Native應用中(如智慧型手機中通過安裝的本地應 用),此忽略次步驟。
[0055] 步驟二:加載應用包信息,此步驟又分成以下幾個小步驟進行: 1、所述應用包管理模塊通過所述收發模塊向服務端發起加載應用包信息的請求。
[0056] 2、所述通信接口在接收到請求後,進行SESSION會話的檢測,然後傳遞SESSION ID (唯一的會話編號)到所述用戶識別模塊中進行用戶識別,並返回用戶編號。
[0057] 3、所述通信接口將由所述用戶識別模塊返回的用戶編號和獲取應用包信息指令 一起發送到所述數據中心。
[0058] 4、所述數據中心在接收到請求後,從資料庫中讀取該用戶編號下的所有應用包信 息,並按需求將其轉換成JS0N或XML格式。然後將數據通過所述通信接口返回客戶端中。
[0059] 5、所述收發模塊在接收到返回的數據後,傳遞給應用包管理中心並保存。
[0060] 步驟三:創建圖形交互界面和API接口,此步驟又分成以下幾個小步驟進行: 1、通過所述應用包管理模塊創建圖形交互界面的相關HTML元素及控制項,並對其設置 事件(Events)進行用戶輸入的監控。
[0061] 2、通過所述API接口模塊在Javascript作用域中創建一個全局對象,並在該對象 中設置一系列的公共方法。
[0062] 結束。
[0063] 參照圖3所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中創建應用包的流程示意圖,通過以下步驟進行實施: 準備工作:用戶須將所有程序文件以及應用圖標文件打包到一個壓縮文檔中,並且在 壓縮文檔中保留程序的文件的相對目錄和路徑,支持ZIP、RAR、7Z等主流的壓縮格式。
[0064] 步驟一:收到創建應用包指令,可通過以下兩種方式接收: 1、用戶通過由所述應用包管理模塊創建的圖形交互界面中直接輸入創建應用包指令。
[0065] 2、用戶對第三方應用或系統進行操作,第三方應用或系統通過所述API接口模塊 向所述應用包管理中發起創建應用包指令。
[0066] 步驟二:選擇並上傳應用程式文件,此步驟有兩種方案可供選擇。
[0067] 方案一:上傳本地程序文件,通過以下幾個小步驟進行: 1、應用包管理中心向所述程序文件上傳模塊發出上傳應用程式文件的指令,使其向用 戶展示上傳本地應用程式文件的交互界面。
[0068] 2、用戶通過點擊"選擇文件"的按鈕進行選擇在本地計算機上應用程式文件的壓 縮文檔。
[0069] 3、所述程序文件上傳模塊通過HTML5的File API讀取所選壓縮文檔內容,並將文 檔內容和創建應用包指令通過所述收發模塊上傳到服務端。
[0070] 4、所述通信接口將接收到的應用程式文件壓縮文檔的內容傳遞給所述應用包創 建模塊進行處理。
[0071] 5、所述應用包創建模塊首先新建一個空白文件,然後將接收到的應用程式文件壓 縮文檔的內容寫入到該空白文件中。
[0072] 方案二:上傳遠程程序文件,通過以下幾個小步驟進行: 1、應用包管理中心向所述程序文件上傳模塊發出上傳遠程應用程式文件的指令,使其 向用戶展示遠程應用程式文件的交互界面。
[0073] 2、用戶通過輸入遠程文件的HTTP或FTP地址:可直接在地址控制項中輸入,然後點 擊按鈕控制項進行下一步操作;也可以通過選擇網盤中的文件(存儲於雲端伺服器上的文件, 可以通過API接口模塊設置,在選擇文件時調用,返回網盤文件的地址並自動輸入到地址 控制項中)進行輸入,然後點擊按鈕控制項進行下一步操作。
[0074] 3、所述程序文件從地址控制項中讀取地址信息,然後將地址信息和創建應用包指令 通過所述收發模塊上傳到服務端。
[0075] 4、所述通信接口將接收到的遠程應用程式文件地址傳遞給所述應用包創建模塊 進行處理。
[0076] 5、所述應用包創建模塊通過HTTP協議或FTP協議將遠程程序文件下載在到服務 器中。
[0077] 步驟三:遍歷分析上傳的程序文件,此步驟又分成以下幾個小步驟進行: 1、所述應用包創建模塊對上傳將應用程式文件壓縮文檔解壓到臨時文件夾後刪除。
[0078] 2、所述應用包創建模塊對上述臨時文件夾進行遍歷,讀取其所有子文件信息和子 文件夾信息。
[0079] 3、所述應用包創建模塊從上述遍歷結果中,對主頁(default, html)或主程序 (default, js)文件進行檢測,若不存在則通過通信接口向客戶端返回錯誤信息。
[0080] 4、所述應用包創建模塊創建一個以SESSION ID作為客戶端識別標識的應用包創 建任務記錄,用於保存當前任務狀態以及應用包的相關信息。
[0081] 5、所述應用包創建模塊將讀取的文件、文件夾信息按要求轉為為XML或JS0N格式 並通過通信接口返回到客戶端中。
[0082] 步驟四:與用戶交互完善應用包配置信息,此步驟又分成以下幾個小步驟進行: 1、所述收發模塊將返回的信息傳遞給所述應用包管理模塊。
[0083] 2、所述應用包管理模塊調用所述應用設置模塊向用戶展示應用配置輸入表單的 交互界面。
[0084] 3、所述應用設置模塊根據返回壓縮包結構和文件、文件夾信息向用戶展示應用包 結構的樹狀列表,並指示用戶從中選出圖標文件。
[0085] 4、所述應用設置模塊通過交互界面向用戶展示表單填寫指引並指導用戶填寫配 置信息。
[0086] 5、所述應用設置模塊將用戶填寫的應用包配置信息通過所述收發模塊發送到服 務端。
[0087] 6、所述通信接口將接收到的應用包配置信息傳遞給所述應用包創建模塊進行處 理。
[0088] 7、所述應用包創建模塊根據SESSION ID從應用包安裝任務記錄中檢索出相應的 記錄,通過記錄信息使客戶端和服務端的應用包創建操作在不同的通信之間得以持續。
[0089] 步驟五:倉ll建配置文件和加密Javascript代碼,此步驟又分成以下幾個小步驟進 行: 1、所述應用包創建模塊據根據應用包配置信息創建一個應用配置文件。
[0090] 2、所述應用包創建模根據設置要求在程序文件中提取Javascript文件(.js後綴 的文件)並讀取其代碼內容,加密代碼並替換原代碼,以達到保護程序源碼的效果。
[0091] 步驟六:生成臨時應用包和清除相關文件,此步驟又分成以下2個小步驟進行: 1、所述應用包創建模塊創建一個壓縮文檔,然後將上述存放程序文件的臨時文件中的 所有文件和目錄和所述生成配置文件添加到壓縮文檔中。
[0092] 2、所述應用包創建模塊清除在應用包創建過程中生成的臨時文件。
[0093] 步驟七:向客戶端返回新建應用包信息,此步驟又分成以下幾個小步驟進行: 1、所述應用包創建模塊將應用包創建成功信息和新的應用包信息(如:文件名稱,文件 大小,路徑,下載地址等)通過所述通信接口返回到客戶端中。
[0094] 2、所述收發模塊在收到由服務端返回的信息後,提交到應用包管理中心。
[0095] 3、所述收發模塊通過圖形交互界面向用戶展示應用包創建成功信息、生成的應用 包的相關信息和應用包"下載"按鈕。
[0096] 步驟八:用戶通過點擊圖形界面中的"下載"按鈕進行應用包文件下載。
[0097]結束。
[0098] 在上述創建應用包實施流程中,所生成的文件有效期為1天(默認情況下,也可按 需求調整有效期),逾期後將被系統自動刪除; 在上述創建應用包實施流程中,所述Javascript代碼的加密方式包括:無密匙加密、 有密匙加密和不加密三種方式。其加密算法不對第三方公開,通過加密後的應用包,僅限在 本發明中運行。
[0099] 在上述創建應用包實施流程中,所述配置文件中,包括以下應用包信息:發行商、 命名空間、應用類型、默認運行方式、應用圖標文件路徑(相對於應用包)、應用描述、界面 設置信息、應用程式版本、應用包版本等。其文件格式為XML或JS0N,如:package, xml、 package, json〇
[0100] 在上述創建應用包實施流程中,所述應用包為由HTML、CSS、JS、XML、JSON、圖片 文件(GIF、PNG、JPG、BMP)、音頻文件(OGG、MP3、WAV)、視頻文件(OGG、MPEG4、FLV)、瀏覽插 件文件(SWF、XAP)等文件通過ZIP、RAR、7Z等格式進行壓縮的壓縮文檔。在所述壓縮文檔 中,必須包含一個主頁(default, html)或主程序文件(default, js)和圖標文件(PNG格式, 包括 16X16、32X32、48X48、57X57、72X72、92X92、114X114、256X256 等多個尺寸,建 議將所有圖標文件放在一個文件夾中,如:icons/)和所述應用包配置文件(package, xml、 package, json),同時保留程序目錄結構。在程序中的相關文件調用,應使用相對路徑。
[0101] 在本發明中,默認採用ZIP格式對應用程式進行壓縮並以ZAP (Zipped Application Package)作為應用包的後綴,默認對Javascript進行無密匙加密,默認以 XML格式作為配置文件的格式。
[0102] 參照圖4所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中安裝應用到遠程伺服器上的流程示意圖,通過以下步驟進行實施: 步驟一:收到安裝應用包指令,可通過以下兩種方式接收: 1、用戶通過由所述應用包管理模塊創建的圖形交互界面中直接輸入安裝應用包指令。
[0103] 2、用戶對第三方應用或系統進行操作,第三方應用或系統通過所述API接口模塊 向所述應用包管理中發起安裝應用包指令。
[0104] 步驟二:選擇並上傳應用包文件,此步驟有兩種方案可供選擇。
[0105] 方案一:上傳本地應用包文件,通過以下幾個小步驟進行: 1、應用包管理中心向所述程序文件上傳模塊發出上傳應用包文件的指令,使其向用戶 展示上傳本地應用包文件的交互界面。
[0106] 2、用戶通過點擊"選擇文件"的按鈕進行選擇在本地計算機上應用包。
[0107] 3、所述程序文件上傳模塊通過HTML5的File API讀取所選應用包文件內容,並將 文件內容和創建應用包指令通過所述收發模塊上傳到服務端。
[0108] 方案二:上傳遠程應用包文件,通過以下幾個小步驟進行: 1、應用包管理中心向所述程序文件上傳模塊發出上傳應用程式文件的指令,使其向用 戶展示遠程應用程式文件的交互界面。
[0109] 2、用戶通過輸入遠程文件的HTTP或FTP地址:可直接在地址控制項中輸入,然後點 擊按鈕控制項進行下一步操作;也可以通過選擇網盤中的文件(存儲於雲端伺服器上的文件, 可以通過API接口模塊設置,在選擇文件時調用,返回網盤文件的地址並自動輸入到地址 控制項中)進行輸入,然後點擊按鈕控制項進行下一步操作。
[0110] 3、所述程序文件從地址控制項中讀取地址信息,然後將地址信息和創建應用包指令 通過所述收發模塊上傳到服務端。
[0111] 步驟三:在服務端中進行用戶識別,此步驟又分成以下幾個小步驟進行: 1、所述通信接口在應用安裝的收請時,將SESSION ID傳遞給所述用戶識別模塊進行用 戶識別。
[0112] 2、所述用戶識別模塊根據SESSION ID用戶登錄狀態的信息記錄中檢索出相應的 信息,若存在記錄並且信息記錄中的登陸狀態標記為已登陸,則讀取其User ID (用戶編 號)。
[0113] 3、所述用戶識別模塊將User ID返回給所述通信接口。
[0114] 步驟四:接收並保存應用包文件,所述通信接口將接收到的應用包文件的內容/ 地址和應用包安裝指令以及由所述用戶識別模塊返回的User ID傳遞給所述應用包解析模 塊,此時,按照步驟二中選擇的方案進行操作: 若步驟二中選擇了方案一,所述應用包解析模塊新建一個空白文件,然後將接收到的 應用包文件的內容寫入到該空白文件中。
[0115] 若步驟二中選擇了方案二,所述應用包解析模塊根據接收到的遠程應用包文件地 址通過HTTP協議或FTP協議將遠程應用包文件下載到伺服器中。
[0116] 步驟五:解析應用包,此步驟又分成以下幾個小步驟進行: 1、所述應用包解析模塊解壓應用包文件並將解壓所得的文件保存到一個臨時文件夾 中。
[0117] 2、所述應用包解析模塊刪除應用包文件。
[0118] 3、所述應用包解析模塊遍歷臨時文件夾中下的子文件與子文件夾,檢測符合以下 要求: (1)是否存在配置文件(package, xml 或 package, j son )。
[0119] (2)是否存在主頁或主程序文件(default, html或default, js)。
[0120] 4、所述應用包解析模塊讀取並分析配置文件,檢測其信息是按規定設置在以下必 要信息:命名空間、應用類型、發行商、應用描述、應用程式版本。
[0121] 5、通過所述應用包解析模塊從配置文件中得出Javascript文件是否被加密,若 被加密則從程序文件中提取Javascript文件(.js後綴的文件)並讀取其代碼內容,解碼代 碼並替換原代碼。
[0122] 若應用包不符合上述3、4中的規定,則停止執行並清除安裝過程中產生的文件, 然後返回錯誤信息。
[0123] 7、所述應用包解析模塊將檢測結果和從配置文件中讀取的應用包配置信息傳遞 給所述數據中心,然後進行下一步驟。
[0124] 步驟六:與用戶交互完善配置信息(非必要步驟),用於在安裝過程中進行對應用 環境進行重新設置,若忽略此步驟,則默認方式進行,此步驟又分成以下幾個小步驟進行: 1、所述數據中心創建一個以SESSION ID作為客戶端識別標識的應用包安裝任務記錄, 用於保存任務狀態、應用包配置信息、由應用包解壓所得的程序文件信息。
[0125] 2、所述數據中心通過收發接口向客戶端返回進行應用包配置的請求。
[0126] 3、所述收發模塊將返回的信息傳遞給所述應用包管理模塊。
[0127] 4、所述應用包管理模塊調用所述應用設置模塊向用戶展示應用配置輸入表單的 交互界面。
[0128] 5、所述應用設置模塊通過交互界面向用戶展示表單填寫指引並指導用戶填寫配 置信息。
[0129] 6、所述應用設置模塊將用戶填寫的應用包配置信息通過所述收發模塊發送到服 務端。
[0130] 7、通過步驟三的方法重新進行用戶識別。
[0131] 8、所述通信接口將接收到的應用包配置信息傳遞給所述數據中心進行處理。
[0132] 9、所述數據中心根據SESSION ID從應用包安裝任務記錄中檢索出相應的記錄,通 過記錄信息使客戶端和服務端的應用包安裝操作在不同的通信之間得以持續。
[0133] 步驟七:保存應用包信息及程序文件,此步驟又分成以下幾個小步驟進行: 1、所述數據中心根據由配置文件所得的命名空間對資料庫進行檢索,若已經存在該命 名空間下的應用,則刪除原有的資料庫信息以及程序文件。
[0134] 2、所述數據中心為當前安裝的應用註冊一個唯一的APP ID,用於日後對應用進行 管理與運行時進行識別。
[0135] 3、所述數據中心將由所述步驟五中由應用包解壓所的文件移至保存程序文件的 目錄下。
[0136] 4、所述數據中心將應用包的基本信息、應用包配置信息和程序文件信息保存到數 據庫中。
[0137] 步驟八:向客戶端返回新的應用信息,此步驟又分成以下幾個小步驟進行: 1、所述數據中心將新的應用包信息通過通信接口返回到客戶端中。
[0138] 2、所述收發模塊將返回的新應用包信息傳遞給所述應用包管理模塊。
[0139] 4、所述應用包管理模塊將新應用包信息保存,並更新圖形交互界面中的應用管理 列表。
[0140] 步驟九:所述應用包管理模塊通過圖形交互界面向用戶提示應用包安裝結果信 肩、。
[0141] 結束。
[0142] 在上述創建應用包實施流程中,除上述由本發明創建的應用包以外,本發明還支 持安裝由用戶自行創建的未對Javascript文件進行加密的應用包。在創建時,必須遵守以 下規則: 1、採用ZIP、RAR、7Z格式對程序文件進行打包壓縮。
[0143] 2、程序文件中必須包含主頁(default, html)或主程序文件(default, js)。
[0144] 3、應用包中必須包含採用標準格式的應用包配置文件(package, xml、package, json),存於應用包的主目錄下,文件中必須設置以下項內容:發行商、命名空間、應用類型、 應用描述、應用程式版本。
[0145] 4、應用包可包含中應用的圖標,由多個尺寸的PNG格式的圖標文件組成並存放在 icons/ (相對路徑)目錄中,同時以尺寸作為圖標文件名稱,如:16.png,32.png等。
[0146] 參照圖5所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中卸載在遠程伺服器上的應用包的流程示意圖,通過以下步驟進行實施: 步驟一:收到卸載應用包指令,可通過以下兩種方式接收: 1、用戶通過由所述應用包管理模塊創建的圖形交互界面中直接輸入卸載應用包指令。
[0147] 2、用戶對第三方應用或系統進行操作,第三方應用或系統通過所述API接口模塊 向所述應用包管理中發起卸載應用包指令。
[0148] 步驟二:向服務端發出卸載應用的請求,由所述應用包管理模塊通過所述收發模 塊向服務端發送要卸載的應用包APP ID和應用包卸載的請求。
[0149] 步驟三:在服務端中進行用戶識別,此步驟又分成以下幾個小步驟進行: 1、所述通信接口在應用安裝的收請時,將SESSION ID傳遞給所述用戶識別模塊進行用 戶識別。
[0150] 2、所述用戶識別模塊根據SESSION ID用戶登錄狀態的信息記錄中檢索出相應的 信息,若存在記錄並且信息記錄中的登陸狀態標記為已登陸,則讀取其User ID (用戶編 號)。
[0151] 3、所述用戶識別模塊將User ID返回給所述通信接口。
[0152] 步驟四:刪除應用配置信息及程序文件,此步驟又分成以下幾個小步驟進行: 1、所述通信接口將接收到的APP ID和應用包卸載指令以及由所述用戶識別模塊返回 User ID傳遞給所述數據中心。
[0153] 2、所述數據中心通過以APP ID作為標識從資料庫中檢索相關的應用包信息,然後 判斷該應用包信息中的User ID是否與從所述用戶識別模塊中所得的User ID -致。若沒 有檢索出結果或User ID不一致,則通過所述通信接口向返回錯誤信息。
[0154] 3、所述數據中心根據由資料庫中讀取的應用包信息中獲取當前應用下的所有應 用程序文件路徑,並根據文件路徑刪除當前應用下的所有應用程式。
[0155] 4、所述數據中心通過以APP ID作為標識刪除資料庫的應用包信息。
[0156] 步驟五:向客戶端返回應用卸載結果信息,此步驟又分成以下幾個小步驟進行: 1、所述數據中心將應用卸載結果信息通過通信接口返回到客戶端中。
[0157] 2、所述收發模塊將返回的應用卸載結果信息傳遞給所述應用包管理模塊。
[0158] 3、所述應用包管理模塊對應用卸載結果信息進行判斷,若卸載成功,根據APP ID 從保存的應用包信息中刪除相關記錄,並更新圖形交互界面中的應用管理列表。
[0159] 步驟六:所述應用包管理模塊通過圖形交互界面向用戶提示應用包卸載結果信 肩、。
[0160] 結束。
[0161] 參照圖6所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中在客戶端中加載並運行應用的流程示意圖,通過以下步驟進行實施: 步驟一:收到運行應用指令,可通過以下兩種方式接收: 1、用戶通過由所述應用包管理模塊創建的圖形交互界面中直接輸入運行應用指令和 要運行的應用的命名空間。
[0162] 2、用戶對第三方應用或系統進行操作,第三方應用或系統通過所述API接口模塊 向所述應用包管理中發起運行應用指令和要運行的應用的命名空間。
[0163] 步驟二:據命名空間獲取應用包信息,所述應用包管理模塊對存儲的應用包信息 數組進行遍歷並對比命名空間,若不存在相應的應用包信息,則表示該命名空間下的應用 未安裝。若存在相應的應用包信息,則讀取其信息並進入下一步。
[0164] 步驟三:所述應用包管理模塊通過所述收發模塊向服務端發送APP ID和應用運 行指令。
[0165] 步驟四:在服務端中進行用戶識別,此步驟又分成以下幾個小步驟進行: 1、所述通信接口在應用安裝的收請時,將SESSION ID傳遞給所述用戶識別模塊進行用 戶識別。
[0166] 2、所述用戶識別模塊根據SESSION ID用戶登錄狀態的信息記錄中檢索出相應的 信息,若存在記錄並且信息記錄中的登陸狀態標記為已登陸,則讀取其User ID (用戶編 號)。
[0167] 3、所述用戶識別模塊將User ID返回給所述通信接口。
[0168] 步驟五:服務端應用信息檢測,此步驟又分成以下幾個小步驟進行: 1、所述通信接口將接收到的APP ID和程序文件加載指令以及由所述用戶識別模塊返 回User ID傳遞給所述數據中心。
[0169] 2、所述數據中心通過以APP ID作為標識從資料庫中檢索相關的應用包信息,然後 判斷該應用包信息中的User ID是否與從所述用戶識別模塊中所得的User ID -致。若沒 有檢索出結果或User ID不一致,則通過所述通信接口向返回錯誤信息。
[0170] 3、所述數據中心通從資料庫中讀取相應的應用包信息。
[0171] 步驟六:創建應用程式文件加載密令,此步驟又分成以下2個小步驟進行: 1、所述數據中心隨機生成一個由英文字母與數字組成的16位字符串並將其作為密 令。
[0172] 2、所述數據中心創建一個以密令作為客戶端識別標識的應用程式加載任務記錄, 用於應用命名空間以及應用包信息。
[0173] 步驟七:返回加載密令以及主頁/程序代碼,此步驟又分成以下2個小步驟進行: 1、所述數據中心根據由資料庫中讀取的應用包信息中,獲取應用中應用主頁/程序文 件的保存路徑,然後根據路徑讀取主頁/程序文件的代碼內容。
[0174] 2、所述數據中心將主頁/程序文件的代碼內容和加載密令通過通信接口返回到 客戶端。
[0175] 3、所述收發模塊將返回的信息傳遞給所述應用包管理模塊。
[0176] 步驟八:根創建支持應用運行的相關控制項,此步驟又分成以下2個小步驟進行: 1、所述應用包管理模塊向所述應用調用模塊傳遞應用包信息並發起應用運行的請求。
[0177] 2、所述應用調用模塊從應用包信息中提取應用界面設置信息,然後根據界面設置 調用所述控制項創建模塊進行包括應用窗口(必要)、任務欄按鈕(選要)、通知圖標(選要)、應 用控制菜單(選要)等控制項的創建。
[0178] 步驟九:創建運行空間並設置系統API,此步驟又分成以下幾個小步驟進行: 1、所述API及運行空間設置模塊通過D0M創建一個〈iframe〉兀素並通過sandbox屬 性控制其權限,然後將其作為子元素添加到由步驟八創建的窗口控制項下。
[0179] 2、設置當前應用的BaseURL,通過所述API及運行空間設置所述 〈iframe〉元素的 src值為http://當前域名/package/密令/命名空間/。
[0180] 3、所述API及運行空間設置模塊在該運行空間(〈iframe〉元素的contentWindow) 下設置一些可以對其他系統及應用進行操作的Javascript全局變量、對象和方法。
[0181] 步驟十:解析主頁代碼或運行主程序,所述應用調用模塊將主業/程序代碼通過 document, write的方法將代碼寫入到運行空間(〈iframe〉元素的contentWindow)中的文 檔內即可運行解析主頁代碼或運行主程序。
[0182] 步驟十一:通過加載密令加載擴展文件,此步驟又分成以下幾個小步驟進行: 1、當應用主業或主程序運行後,HTML5環境會根據程序設計自動對其他程序文件進行 加載,被加載的程序文件URL為BaseURL+程序文件與應用包的相對,如:http://當前域名 /package/密令/命名空間/xxx. js。
[0183] 2、所述通信接口,通過rewrite技術,以正則識別所有http://當前域名/ package/密令/命名空間/文件名格式的URL,然後分析該URL並提取密令、命名空間和 文件名。
[0184] 3、所述通信接口將分析URL所得的密令、命名空間和文件名傳遞給所述數據中 心。
[0185] 4、所述數據中心以密令作為標識,從應用程式加載任務記錄中檢索出相應的記 錄,若無記錄或記錄中的命名空間與URL分析中提取的命名空間不一致,則通過所述通信 接口返回錯誤信息。
[0186] 5、所述數據中心從應用程式加載任務記錄中檢索出於從URL分析所得的文件名 一致應用程式文件信息,然後根據該應用程式文件信息中的文件實際保存路徑去讀取該文 件的內容。
[0187] 6、所述數據中心通過所述通信接口將讀取的程序文件內容返回到客戶端中。
[0188] 步驟十二:運行HTML5應用。此步驟由應用程式在HTML5環境下自行進行。
[0189] 結束。
[0190] 在上述運行應用實施流程中,為了方便用戶對應用的識別與調用,除通過APP ID 以外,本發明亦可採用命名空間作為程序運行的標識。
[0191] 在上述運行應用實施流程中,所述加載密令的作用為進行客戶端識別以及加強應 用原始碼的保護。儘管通過SESSION ID也能起到客戶端識別的作用,但由於SESSION ID是 保存在瀏覽器或運行本發明應用的COOKIE中,因此也能被在同一域名下運行的應用訪問, 這就導致在客戶端運行的應用可以輕易地偽裝客戶端去下載其他應用的程序文件。
[0192] 參照圖7所示,為本發明基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統中關閉在客戶端運行的應用流程示的意圖,通過以下步驟進行實施: 步驟一:收到關閉應用指令,可通過三種方式接收: 1、用戶通過由所述應用包管理模塊創建的圖形交互界面中直接輸入關閉應用指令。
[0193] 2、用戶對第三方應用或系統進行操作,第三方應用或系統通過所述API接口模塊 向所述應用包管理中發起關閉應用指令。
[0194] 3、用戶通過對支持應用運行的相關控制項進行操作實現輸入關閉應用指令,如:點 擊應用窗口的關閉按鈕。
[0195] 步驟二:觸發應用程式的關閉事件,所述應用程式調用模塊通過API向應用程式 觸發關閉事件,讓應用程式執行關閉前的處理。
[0196] 步驟三:銷毀應用運行空間及相關控制項,此步驟又分成以下幾個小步驟進行: 1、所述應用程式調用模塊調用所述API及運行空間設置模塊對〈iframe〉元素的 contentWindow下的所有變量、方法和對象進行刪除或將其設為null,然後刪除〈iframe〉 元素。
[0197] 2、所述應用程式調用模塊調用所述控制項創建模塊對相關控制項的HMTL元素進行刪 除,然後刪除相關的控制項對象或將其設置為null。
[0198] 結束。
[0199] 本發明的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統,該系統 包括服務端,及與所述服務端進行交互的一個以上的客戶端;所述服務端包括通信接口、數 據中心、客戶端代碼存儲模塊、應用包解析模塊、應用包創建模塊、用戶識別模塊、資料庫、 臨時應用程式文件和應用程式文件;所述客戶端包括收發模塊、程序文件上傳模塊、應用配 置模塊、應用調用模塊、程序文件加載模塊、控制項創建模塊、API接口模塊和API及運行空 間設置模塊。本發明解決了目前網絡平臺只能保存數據和文件卻不能自由安裝、定製第三 方應用等不足,讓開發者(尤其對於個人開發者)可以通過打包應用後以安裝包文件的形式 派發給用戶,降低技術難度,減少伺服器成本;讓用戶可把應用安裝在雲端伺服器上,使用 時立即加載到本地運行,不僅可以節省了本地硬碟的空間,還能起到一次安裝,到處可用的 作用,實現讓用戶在基於雲計算的作業系統或者同一網絡平臺上通過簡單、便捷的方法對 HTML5應用進行管理與運行。
[0200] 上述實施例,只是本發明的一個實例,並不是用來限制本發明的實施與權利範圍, 凡與本發明權利要求所述內容相同或等同的技術方案,均應包括在本發明保護範圍內。
【權利要求】
1. 一種基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系統,其特徵在於:該 系統包括服務端,及與所述服務端進行交互的一個以上的客戶端。
2. 根據權利要求1所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及 系統,其特徵在於:所述客戶端包括:收發模塊,用於與伺服器進行通訊和指令派發;應用 包管理中心,用於對應用包信息進行管理和監控接收用戶操作指令;程序文件上傳模塊,用 於在創建應用包時,上傳程序文件;應用配置模塊,用於在創建應用包或安裝應用對應用進 行常規設置;應用調用模塊,用於根據應用包信息並調用相關模塊實現應用在客戶端運行; 程序文件加載模塊,用於應用在運行時加載主頁或主程序代碼,並通過密令創建一個讓應 用程序能夠自行加載擴展的應用程式文件的url路徑;控制項創建模塊,用於在應用運行時 創建如窗口、任務欄相關交互界面控制項; 所述客戶端還包括API及運行空間設置模塊,用於通過iframe元素創建讓應用能獨立 運行的運行空間,並在運行空間中設置一系列的全局函數或對象,使應用在運行時得以調 用客戶端預算的API方法; 所述系統不僅可以作為一個獨立的系統來運行,還能作為一個組件應用到其他Web應 用或系統中,所述客戶端還應包括API接口模塊,用於提供為第三方應用或系統提供一系 列API接口命令來操作,進行應用的安裝、卸載、運行、關閉以及應用包的生成。
3. 根據權利要求1所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述服務端包括:通信接口,用於與客戶端進行連接通信、建立會話機制 和指令派發;數據中心,用於對應用包信息及其程序文件進行管理,也用於處理來自所述通 信接口的各種請求並返回請求結果;客戶端代碼存儲模塊,用於存儲客戶端的Javascript 和CSS代碼文件,並在客戶端在瀏覽器運行時通過通信接口傳輸到瀏覽器中運行;應用包 解析模塊,用於對應用包進行解壓,分析配置文件,檢測程序文件,解密Javascript代碼; 應用包創建模塊,用於根據接收到的程序文件及應用包配置信息進行創建應用包的臨時文 件; 所述服務端包括用戶識別模塊,用於對根據會話信息進行用戶識別,並返回用戶編號, 讓所述應用包管理模塊得以根據用戶編號對應用進行區分;用戶識別模塊還提供API接 口,使所述應用系統可以作為一個組件並與其它系統組合運行; 所述服務端的運行環境還包括:資料庫,用戶存儲應用包的基本信息、配置信息、運行 信息;文件系統,用於對應用程式文件進行儲存、管理及讀寫。
4. 根據權利要求1所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:該運行方法包括:創建應用包、安裝應用到遠程伺服器上、卸載在遠程服 務器上的應用、在客戶端中加載並運行應用、關閉在客戶端運行的應用。
5. 根據權利要求4所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述創建應用包的實施過程包括以下步驟:(1)用戶提交應用包創建指令 到所述應用包管理模塊;(2)所述應用包管理模塊調用所述應用程式上傳模塊向用戶展示 上傳應用程式文件的交互界面,用戶選擇並上傳應用程式文件;(3)所述通信接口將接收 的到程序文件傳遞給所述應用包創建模塊,所述應用包創建模塊進行解壓並遍歷上傳的應 用文件,所述應用包創建模塊通過所述通信接口向客戶和所述收發模塊向所述應用配置模 塊向用戶發起進行應用配置的請求,並通過交互界面要求用戶填寫應用配置信息,然後所 述應用配置模塊通過所述收發模塊和所述通信接口向所述應用包創建模塊發送應用配置 信息;(4)所述應用包創建模塊進行應用配置文件的創建,Javascript文件代碼的加密以 及臨時應用包的創建;(5)所述應用包創建模塊通過所述通信接口和所述收發模塊向所述 應用包管理模塊返回應用包信息;(6)所述應用包管理模塊向用戶展示下載應用包的交互 界面並向用戶指示進行應用包的下載; 所述Javascript代碼的加密方式包括:無密匙加密、有密匙加密和不加密三種方式; 其加密算法不對第三方公開,通過Javascript代碼加密後的應用包,僅限在所述系統中運 行; 所述配置文件包括以下應用包信息:發行商、命名空間、應用類型、默認運行方式、應用 圖標文件路徑、應用描述、界面設置信息、應用程式版本、應用包版本,其文件格式為XML或 JSON; 所述創建的應用包文件只在所述服務端保存一段有限時間(如:24小時),逾期後將被 系統自動刪除; 所述應用包為由HTML、CSS、JS、XML、JSON、圖片文件、音頻文件、視頻文件、瀏覽插件文 件通過ZIP、RAR、7Z格式進行壓縮的壓縮文檔;在所述壓縮文檔中,必須包含一個主頁或主 程序文件包配置文件。
6. 根據權利要求4所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述安裝應用到遠程伺服器上的實施過程包括以下步驟:(1)用戶提交應 用包創建指令到所述應用包管理模塊;(2)所述應用包管理模塊調用所述應用程式上傳模 塊向用戶展示上傳應用程式文件的交互界面,用戶選擇並上傳應用程式文件;(3)所述通 信接口調用所述用戶登錄管理模塊通過SESSION會話機制進行服務端的用戶識別;(4)所 述應用包分析模塊解壓應用包,然後進行分析及解密;(5)向客戶端返回請求並調用所述 應用配置模塊與用戶交互完善配置信息,然後將配置信息通過所述收發模塊和通信接口提 交到所述數據中心;(6)所述數據中心利用數據保存應用包信息和利用文件系統存儲程序 文件;(7)所述數據中心通過通信接口向客戶端返回新的應用信息;(8)所述應用包管理模 塊通過交互界面向用戶提示應用包安裝完成信息; 所述系統還支持安裝由用戶自行創建的未對Javascript文件進行加密的應用包。
7. 根據權利要求4所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述卸載在遠程伺服器上的應用的實施過程包括以下步驟:(1)用戶提交 應用包卸載指令到所述應用包管理模塊;(2)所述應用包管理模塊通過所述收發模塊向服 務端發送要卸載的應用包APP ID和應用包卸載請求;(3)所述通信接口調用所述用戶登錄 管理模塊通過SESSION會話機制進行服務端的用戶識別;(4)所述數據中心刪除資料庫中 相應的應用包信息以及程序文件;(5)所述數據中心通過通信接口向客戶端返回應用包卸 載結果信息;(6)所述應用包管理模塊通過交互界面向用戶提示應用包卸載結果信息。
8. 根據權利要求4所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述客戶端中運行應用的實施過程包括以下步驟:(1)用戶提交應用運行 指令和要運行應用的命名空間到所述應用包管理模塊;(2)所述應用包管理模塊根據命名 空間獲取應用包信息;(3)所述應用包管理模塊通過所述收發模塊向服務端發送要運行應 用的APP ID和應用運行請求;(4)所述通信接口調用所述用戶登錄管理模塊通過SESSION 會話機制進行服務端的用戶識別;(5)所述數據中心根據APP ID從資料庫中檢索出相應的 應用包信息並進行檢測;(6)所述數據中心創建應用程式文件加載密令及程序文件加載任 務記錄;(7)所述數據中心讀取返回主頁/程序代碼的代碼內容並將其與加載密令通過所 述通信接口返回到客戶端;(8)所述應用調用模塊調用所述控制項創建模塊進行創建支持應 用運行的相關控制項;(9)所述應用調用模塊調用所述API及運行空間設置模塊進行創建運 行空間並設置系統API ;(10)所述應用調用模塊將主業/程序代碼通過document, write的 方法將代碼寫入到運行空間中的文檔內進行運行解析主頁代碼或運行主程序;(11)應用 在HTML5環境下運行時將自動想服務端發起加載擴展文件的請求,所述通信接口通過URL 分析然後讀取相應的程序文件內容並向客戶端返回;(12)運行HTML5應用; 所述客戶端中運行應用的實施過程中,為了方便用戶對應用的識別與調用,除通過APP ID以外還可採用命名空間作為程序運行的標識; 所述加載密令的作用為進行客戶端識別以及加強應用原始碼的保護。
9. 根據權利要求8所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:所述運行空間用於避免應用中的Javascript代碼和CSS樣式與其他應用 或客戶端程序的Javascript代碼和CSS樣式出現衝突而造成錯誤;減少應用不必要的權限 以提高安全性;使應用在運行過程中,能夠在HTML5環境下自行加裝擴展的程序文件;通 過〈iframe〉元素下contentWindow模擬,對contentWindow下的原有全局變量進行重新設 置,以提高安全性,然後通過設置〈iframe〉元素 src值為以http://域名/package/密令 /命名空間/格式的URL,並以其作為HTML5應用的BaseURL ;在HTML5的環境下,應用可根 據BaseURL+與應用主頁的相對文件路徑(如:http://域名/package/密令/命名空間/ XXX. js)進行程序文件的加載。
10. 根據權利要求4所述的基於雲計算的HTML5應用的打包、安裝、卸載、運行方法及系 統,其特徵在於:關閉在所述客戶端運行的應用的實施過程包括以下步驟:(1)用戶提交關 閉運行指令和要關閉應用的命名空間到所述應用包管理模塊;(2)所述應用程式調用模塊 通過API向應用程式觸發關閉事件,讓應用程式執行關閉前的處理;(3)所述應用程式調用 模塊分別所述API及運行空間和調用所述控制項創建模塊對運行空間及相關控制項進行刪除。
【文檔編號】G06F9/445GK104216700SQ201310407905
【公開日】2014年12月17日 申請日期:2013年9月10日 優先權日:2013年9月10日
【發明者】侯金濤 申請人:侯金濤

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀