一種應用程式的流式執行方法
2023-06-02 13:54:46 1
一種應用程式的流式執行方法【專利摘要】本發明公開了一種應用程式的流式執行方法,通過將終端的應用程式從本地遷移到遠程伺服器上,終端通過網絡文件系統協議流式加載應用程式內容到本地內存並執行。該方法中終端與伺服器共享存儲空間,終端安裝應用程式的數量不再受限於終端的存儲空間,用戶不需要頻繁升級硬體來滿足存儲需求;通過將應用程式與數據存儲於遠程伺服器端,支持多設備共享應用與數據;應用程式與數據存儲於伺服器端,終端按需流式加載到內存中執行,後臺可對應用程式進行統一管理,具有高度的可管理性,尤其適用於企業的BYOD;流式應用執行簡化了應用的使用流程,免除了應用的下載與安裝過程,縮短了新添應用程式啟動的時間,提升了用戶體驗。【專利說明】一種應用程式的流式執行方法【
技術領域:
】[0001]本發明涉及一種應用程式的流式執行方法。【
背景技術:
】[0002]隨著網際網路技術的發展,應用程式的數量也呈現爆炸式增長,基本上各個領域,都有著各色各樣的應用程式,這些應用程式方便了人們的工作與生活。[0003]隨著移動網際網路的出現,手機應用數量與日俱增。網際網路廠商為了方便用戶查找與使用應用,分別推出了各自的移動應用商店,對應用按照各種不同的特性進行歸類,以期能夠方便人們下載和使用應用。基於移動應用商店的應用使用模式可以歸類為以下幾個步驟:搜索/推送_>下載_>安裝_>使用。隨著手機的使用時間增加,安裝的應用數量增加,經常會出現設備存儲空間不足,需要升級硬體設備的情況。而手機上每天需要使用的高頻應用卻很少,許多應用雖然屬於低頻應用,但是卻需要很大的存儲空間,遊戲類應用便是如此。用戶經常會碰到需要臨時使用某款應用,卻需要下載幾十兆甚至上百兆的應用到本地,然後才能安裝使用,使用完成為了節省設備空間,立刻從手機上卸載。顯然,傳統的應用使用方式不支持應用即點即用,需要將應用程式下載到設備才能使用,並長期佔據設備存儲空間是該矛盾發生的主要原因。【
發明內容】[0004]本發明提出了一種應用程式的流式執行方法,針對現有技術中應用程式的執行方式無法滿足日益增長的使用需求,使得應用程式通過網絡按需流式加載到客戶端內存執行,執行完畢即"流"走,免除了用戶使用應用程式過程中的下載與安裝過程。[0005]-種應用程式的流式執行方法,包括以下幾個步驟:[0006]步驟1:遠程伺服器建立應用程式目錄,應用程式目錄中採用網絡文件系統形式存儲有應用程式文件,並將應用程式的屬性信息和訪問地址存儲於資料庫伺服器中;[0007]所述遠程伺服器和資料庫伺服器之間進行網絡通信;[0008]所述應用程式的屬性信息包括運行環境信息、程序版本號及名稱;[0009]步驟2:終端將其軟硬體配置信息通過網絡上傳到遠程伺服器;[0010]所述終端軟硬體配置信息包括移動終端運行系統類型、系統版本號、CPU型號及內存大小;[0011]步驟3:遠程伺服器基於終端的軟硬體配置信息從資料庫伺服器中搜索與之匹配的應用程式的訪問地址,並在遠程伺服器上為終端創建終端應用目錄;[0012]所述終端應用目錄與終端設備一一對應,存儲終端的網絡應用和數據,終端應用目錄在終端第一次訪問時創建,之後訪問則無需創建;[0013]步驟4:遠程伺服器基於從資料庫伺服器檢索到的應用程式訪問地址,將應用程式文件從遠程伺服器的應用程式目錄同步到終端應用目錄,並返回該終端應用目錄的訪問地址給終端;[0014]所述應用程式文件同步操作是將遠程伺服器的應用程式目錄下的應用程式以拷貝或者軟連結的形式使得應用程式在終端應用目錄下能夠正常訪問;[0015]步驟5:終端在本地磁碟上創建掛載點,所述掛載點為能被系統正常訪問的文件夾;[0016]步驟6:終端基於網絡文件系統協議將獲取到的遠程伺服器終端應用目錄的訪問地址掛載到掛載點上,實現掛載點與遠程伺服器上終端應用目錄的共享與同步,同時根據掛載點內同步的終端應用目錄下應用程式內容,修改系統應用程式列表,並通知系統界面刷新應用程式列表;[0017]所述共享與同步是指存儲空間和應用程式文件的共享和同步;[0018]所述應用程式列表包括應用程式的圖標、名稱及版本號;[0019]步驟7:用戶點擊終端的系統界面上的應用程式圖標,終端根據網絡文件系統協議將產生的系統本地磁碟I/O請求,轉換成網絡I/O請求,並將所需應用程式文件按請求流式加載到終端內存運行;[0020]步驟8:應用程式運行結束時,清理移動終端的系統內存中的緩存。[0021]當所述終端監控到掛載點的終端應用目錄的應用程式內容發生變化時,終端依據變化的應用程式在終端應用目錄中的訪問地址向系統註冊新增的應用信息,並通知系統界面更新應用程式列表。[0022]當遠程伺服器中應用程式目錄的應用數據發生變化時,資料庫伺服器中存儲的信息同步更新,保存應用程式屬性信息與終端軟硬體配置信息之間的映射關係;[0023]所述遠程伺服器目錄的應用數據變化包括應用程式的添加、修改或刪除。[0024]所述遠程伺服器上設有權限認證模塊,當終端與遠程伺服器通信時,調用權限認證模塊認證使用終端的用戶的使用權限。[0025]所述遠程伺服器和資料庫伺服器可以為分離的物理伺服器,也可以為集成式物理伺服器。[0026]有益效果[0027]本發明提供了一種應用程式的流式執行方法,通過將終端的應用程式從本地遷移到遠程伺服器上,終端通過網絡文件系統協議流式加載應用程式內容到本地內存並執行。該方法中終端與伺服器共享存儲空間,終端安裝應用程式的數量不再受限於終端的存儲空間,用戶不需要頻繁升級硬體來滿足存儲需求;通過將應用程式與數據存儲於遠程伺服器端,支持多設備共享應用與數據;應用程式與數據存儲於伺服器端,終端按需流式加載到內存中執行,後臺可對應用程式進行統一管理,具有高度的可管理性,尤其適用於企業的BY0D;流式應用執行簡化了應用的使用流程,免除了應用的下載與安裝過程,縮短了新添應用程式啟動的時間,提升了用戶體驗。【專利附圖】【附圖說明】[0028]圖1為本發明所述方法的流程圖。【具體實施方式】[0029]下面結合附圖對本發明做進一步的詳細說明。[0030]一種應用程式的流式執行方法,包括以下幾個步驟:[0031]步驟1:遠程伺服器建立應用程式目錄,應用程式目錄中採用網絡文件系統形式存儲有應用程式文件,並將應用程式的屬性信息和訪問地址存儲於資料庫伺服器中;[0032]所述遠程伺服器和資料庫伺服器之間進行網絡通信;[0033]所述應用程式的屬性信息包括運行環境信息、程序版本號及名稱;[0034]步驟2:終端將其軟硬體配置信息通過網絡上傳到遠程伺服器;[0035]所述終端軟硬體配置信息包括移動終端運行系統類型、系統版本號、CPU型號及內存大小;[0036]步驟3:遠程伺服器基於終端的軟硬體配置信息從資料庫伺服器中搜索與之匹配的應用程式的訪問地址,並在遠程伺服器上為終端創建終端應用目錄;[0037]所述終端應用目錄與終端設備一一對應,存儲終端的網絡應用和數據,終端應用目錄在終端第一次訪問時創建,之後訪問則無需創建;[0038]步驟4:遠程伺服器基於從資料庫伺服器檢索到的應用程式訪問地址,將應用程式文件從遠程伺服器的應用程式目錄同步到終端應用目錄,並返回該終端應用目錄的訪問地址給終端;[0039]所述應用程式文件同步操作是將遠程伺服器的應用程式目錄下的應用程式以拷貝或者軟連結的形式使得應用程式在終端應用目錄下能夠正常訪問;[0040]步驟5:終端在本地磁碟上創建掛載點,所述掛載點為能被系統正常訪問的文件夾;[0041]步驟6:終端基於網絡文件系統協議將獲取到的遠程伺服器終端應用目錄的訪問地址掛載到掛載點上,實現掛載點與遠程伺服器上終端應用目錄的共享與同步,同時根據掛載點內同步的終端應用目錄下應用程式內容,修改系統應用程式列表,並通知系統界面刷新應用程式列表;[0042]所述共享與同步是指存儲空間和應用程式文件的共享和同步;[0043]所述應用程式列表包括應用程式的圖標、名稱及版本號;[0044]步驟7:用戶點擊終端的系統界面上的應用程式圖標,終端根據網絡文件系統協議將產生的系統本地磁碟I/O請求,轉換成網絡I/O請求,並將所需應用程式文件按請求流式加載到終端內存運行;[0045]步驟8:應用程式運行結束時,清理移動終端的系統內存中的緩存。[0046]當所述終端監控到掛載點的終端應用目錄的應用程式內容發生變化時,終端依據變化的應用程式在終端應用目錄中的訪問地址向系統註冊新增的應用信息,並通知系統界面更新應用程式列表。[0047]當遠程伺服器中應用程式目錄的應用數據發生變化時,資料庫伺服器中存儲的信息同步更新,保存應用程式屬性信息與終端軟硬體配置信息之間的映射關係;[0048]所述遠程伺服器目錄的應用數據變化包括應用程式的添加、修改或刪除。[0049]所述遠程伺服器上設有權限認證模塊,當終端與遠程伺服器通信時,調用權限認證模塊認證使用終端的用戶的使用權限。[0050]在本實施例中,遠程伺服器和資料庫伺服器集成在一臺高性能伺服器中,使用Ubuntul2.04作業系統,資料庫為Mysql5.5;終端為PandaBoardES手機開發板,使用Android4.0作業系統。遠程伺服器和資料庫伺服器均與終端通過現有的HTTP協議來建立連接,並完成數據通信。[0051]在本實施例中,使用現有的NFS(NetworkFileSystem網絡文件系統協議)來實現客戶端與伺服器端程序文件和數據的共享,客戶端可以像訪問本地磁碟內文件一樣訪問伺服器上文件,應用層應用不需要關心文件是否保存在本地,當需要請求網絡文件時,NFS協議會自動將本地磁碟I/O轉換成網絡1/0,自動加載網絡文件到終端內存。[0052]1)遠程伺服器安裝NFS網絡文件協議Server端程序。[0053]2)建立遠程伺服器應用程式目錄/nfsroot/apps,將應用程式文件按應用包名存放到該目錄下,並將應用信息存儲到資料庫中。如應用程式A的包名為com.companyA.app,則應用程式A的內容存放到路徑/nfsroot/apps/com.companyA.app/目錄下。[0054]3)建立終端應用目錄/nfsroot/devices,存儲設備相關的終端應用目錄,如設備A的終端應用目錄為/nfsroot/devices/deviceA。[0055]4)存儲並修改NFS協議配置文件/etc/exports文件內容,添加/nfsroot記錄到配置文件中,然後開啟NFS服務,使得遠程伺服器網絡存儲文件能夠被支持網絡文件協議的終端正常訪問。[0056]5)資料庫主要存儲遠程伺服器中存儲應用程式的屬性信息和對應的訪問地址,便於檢索與設備匹配。其主要欄位包括應用程式的名稱、包名、版本號、應用程式路徑、應用程式狀態(可用、不可用)、所支持的系統等。[0057]伺服器的資料庫存儲模塊主要存儲伺服器端應用程式的信息,便於檢索與設備匹配。其主要欄位包括應用程式的名稱、包名、版本號、應用程式路徑、應用程式狀態(可用、不可用)、所支持的系統等。[0058]伺服器的資料庫存儲模塊搭建如下:[0059]1)首先安裝mysql資料庫服務。[0060]2)執行以下創建資料庫腳本內容,創建應用程式資料庫和應用表。[0061]createdatabaseJnetapp';usenetapp;createtable'app'('id'intnotnullprimarykeyauto-increament,'name'varchar(200)notnull,'packagename'varchar(200)notnull,Jversion,varchar(200),'path'varchar(500)notnull,*state5intdefault0,'system'varchar(1000))[0062]3)將伺服器應用目錄下的應用信息插入到app數據表中,完成應用資料庫的建立。[0063]伺服器請求與處理模塊通過現有的http協議與終端進行數據交互。伺服器請求與處理模塊主要包含接口有一下幾個:[0064]1)設備信息上傳接口[0065]接口格式如下:StringuploadDevicelnfo(Stringinfo)。參數為JS0N格式的設備參數列表,包括設備的運行系統、版本號、CPU、內存、系統架構、網卡地址等。內容格式如下:[0066]{"system":"Android4.0","epu":"omap4460","memory":"lg","arch":"arm","mac":"OU^-SA-15-99-42"}[0067]返回值為終端設備在伺服器上的終端應用目錄網絡訪問地址,如上圖設備的終端應用目錄訪問地址為:192.168.1.100:/nfsroot/devices/00-23-5A-15-99-42。(以設備網卡的MAC地址作為唯一標識符。[0068]2)終端應用目錄獲取接口[0069]終端應用目錄獲取接口以設備的網卡地址作為輸入,判斷伺服器設備應用程式目錄下是否存在該網卡地址目錄,如果不存在則創建,存在則直接返回該目錄地址。[0070]3)應用檢索與匹配接口[0071]設備檢索與匹配模塊以設備的system信息作為輸入,連接資料庫,查詢system欄位包含該設備system信息的app列表。[0072]4)應用分發接口[0073]應用分發模塊以應用檢索與匹配接口的結果集A和終端應用目錄獲取接口的結果B作為輸入,將A中的應用從伺服器應用目錄下的拷貝到B目錄中。[0074]本實施例中,終端包含網絡請求模塊、NFS模塊、監控模塊和刷新模塊。[0075]本實施例中終端網絡請求模塊基於現有的http協議和伺服器通信,上傳終端設備信息,獲取伺服器上的終端應用目錄地址。[0076]本實施例中終端的NFS模塊通過現有的NFS協議掛載伺服器的終端應用目錄,實現掛載點與伺服器終端應用目錄的存儲空間與數據同步,當終端請求掛載點文件時,將本地磁碟1/0轉換成網絡文件1/0,將網絡文件流式加載到終端內存。[0077]本實施例中終端監控模塊基於現有的inotify監控掛載點的文件與目錄變化情況,當伺服器終端應用目錄下發生應用程式變化時,inotify能夠感知到變化情況,並調用終端刷新模塊完成應用列表刷新。[0078]本實施例中終端刷新模塊根據inotify監控模塊發送的應用程式目錄變化信息,將新增的應用程式添加到系統應用程式列表,並刷新系統界面,將新增的應用程式圖標顯示到系統應用圖標列表上。當應用程式被刪除時,則將被刪除的應用從系統應用程式列表中清除,並刷新系統界面的應用程式圖標列表。[0079]在本實施例的場景中,終端開機啟動,程序收集終端的軟硬體配置信息,然後上傳到遠程伺服器,遠程伺服器為終端建立與之一一對應的終端應用目錄,通過檢索資料庫獲取到適合該終端運行的應用程式A、B、C的訪問地址列表,然後根據應用程式訪問地址將列表中的應用程式拷貝到新創建的終端應用目錄,然後伺服器返回該終端應用目錄給終端。終端在磁碟上創建掛載點G,並將返回的終端應用目錄地址掛載到G上,此時終端共享伺服器終端應用目錄的存儲空間與內容,並可以像訪問本地磁碟一樣訪問終端應用目錄。終端監控到掛載點G內文件目錄變化,對掛載點G內容進行掃描,識別出新增了A、B、C三個應用,然後將應用添加到系統應用列表,然後在界面上刷新顯示A、B、C三個應用程式的圖標。用戶點擊A應用,系統通過網絡文件協議將本地I/O轉換成網絡1/0,按需讀取伺服器上存儲的A應用內容來完成啟動,用戶操作應用程式產生的用戶數據也會寫回到伺服器終端應用目錄中。用戶退出A應用,系統清理A應用使用的內存數據。[0080]至此,本實施例的所有實施步驟均已進行了詳細的闡述和說明。本發明並不限於上述實施例,本領域技術人員在不脫離本發明實質性思想的基礎上進行各種修改和改進後得到的技術方案,均視為在本發明的範圍之內。本發明適用的範圍以權利要求書為準進行確定。【權利要求】1.一種應用程式的流式執行方法,其特徵在於,包括以下幾個步驟:步驟1:遠程伺服器建立應用程式目錄,應用程式目錄中採用網絡文件系統形式存儲有應用程式文件,並將應用程式的屬性信息和訪問地址存儲於資料庫伺服器中;所述遠程伺服器和資料庫伺服器之間進行網絡通信;所述應用程式的屬性信息包括運行環境信息、程序版本號及名稱;步驟2:終端將其軟硬體配置信息通過網絡上傳到遠程伺服器;所述終端軟硬體配置信息包括移動終端運行系統類型、系統版本號、CPU型號及內存大小;步驟3:遠程伺服器基於終端的軟硬體配置信息從資料庫伺服器中搜索與之匹配的應用程式的訪問地址,並在遠程伺服器上為終端創建終端應用目錄;所述終端應用目錄與終端設備一一對應,存儲終端的網絡應用和數據,終端應用目錄在終端第一次訪問時創建,之後訪問則無需創建;步驟4:遠程伺服器基於從資料庫伺服器檢索到的應用程式訪問地址,將應用程式文件從遠程伺服器的應用程式目錄同步到終端應用目錄,並返回該終端應用目錄的訪問地址給終端;所述應用程式文件同步操作是將遠程伺服器的應用程式目錄下的應用程式以拷貝或者軟連結的形式使得應用程式在終端應用目錄下能夠正常訪問;步驟5:終端在本地磁碟上創建掛載點,所述掛載點為能被系統正常訪問的文件夾;步驟6:終端基於網絡文件系統協議將獲取到的遠程伺服器終端應用目錄的訪問地址掛載到掛載點上,實現掛載點與遠程伺服器上終端應用目錄的共享與同步,同時根據掛載點內同步的終端應用目錄下應用程式內容,修改系統應用程式列表,並通知系統界面刷新應用程式列表;所述共享與同步是指存儲空間和應用程式文件的共享和同步;所述應用程式列表包括應用程式的圖標、名稱及版本號;步驟7:用戶點擊終端的系統界面上的應用程式圖標,終端根據網絡文件系統協議將產生的系統本地磁碟I/O請求,轉換成網絡I/O請求,並將所需應用程式文件按請求流式加載到終端內存運行;步驟8:應用程式運行結束時,清理移動終端的系統內存中的緩存。2.根據權利要求1所述的應用程式的流式執行方法,其特徵在於,當所述終端監控到掛載點的終端應用目錄的應用程式內容發生變化時,終端依據變化的應用程式在終端應用目錄中的訪問地址向系統註冊新增的應用信息,並通知系統界面更新應用程式列表。3.根據權利要求2所述的應用程式的流式執行方法,其特徵在於,當遠程伺服器中應用程式目錄的應用數據發生變化時,資料庫伺服器中存儲的信息同步更新,保存應用程式屬性信息與終端軟硬體配置信息之間的映射關係;所述遠程伺服器目錄的應用數據變化包括應用程式的添加、修改或刪除。4.根據權利要求1-3任一項所述的應用程式的流式執行方法,其特徵在於,所述遠程伺服器上設有權限認證模塊,當終端與遠程伺服器通信時,調用權限認證模塊認證使用終端的用戶的使用權限。【文檔編號】H04L29/08GK104158886SQ201410414515【公開日】2014年11月19日申請日期:2014年8月21日優先權日:2014年8月21日【發明者】陽旺,鄧彪申請人:中南大學