两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于云計算的html5應用的打包、安裝、卸載、運行方法及系統(tǒng)的制作方法

文檔序號:6510882閱讀:331來源:國知局
基于云計算的html5應用的打包、安裝、卸載、運行方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明的一種基于云計算的HTML5應用的打包、安裝、卸載、運行方法及系統(tǒng),所述系統(tǒng)包括服務端、及與所述服務端進行交互的多個客戶端;所述客戶端包括收發(fā)模塊、程序文件上傳模塊、應用配置模塊、應用調(diào)用模塊、程序文件加載模塊、控件創(chuàng)建模塊、API接口模塊和API及運行空間設置模塊;所述服務端包括通信接口、數(shù)據(jù)中心、客戶端代碼存儲模塊、應用包解析模塊、應用包創(chuàng)建模塊、用戶識別模塊。具有功能包括創(chuàng)建應用包、安裝應用到遠程服務器上、卸載在遠程服務器上的應用、在客戶端中加載并運行應用、關閉在客戶端運行的應用。本發(fā)明解決了讓用戶可將應用安裝在遠程服務器上,使用時立即加載到本地運行,即節(jié)省了本地空間又起到一次安裝到處可用的作用。
【專利說明】基于云計算的HTML5應用的打包、安裝、卸載、運行方法及 系統(tǒng)

【技術領域】
[0001] 本發(fā)明涉及一種基于云計算的HTML5應用的打包、安裝、卸載、運行方法及系統(tǒng), 尤其涉及一種應用基于瀏覽器或其他HTML5環(huán)境下的虛擬操作系統(tǒng)中的HTML5應用的打 包、安裝、卸載、運行、關閉。

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


【發(fā)明內(nèi)容】

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

【專利附圖】

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

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