TWI478063B - 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體 - Google Patents

於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體 Download PDF

Info

Publication number
TWI478063B
TWI478063B TW100142596A TW100142596A TWI478063B TW I478063 B TWI478063 B TW I478063B TW 100142596 A TW100142596 A TW 100142596A TW 100142596 A TW100142596 A TW 100142596A TW I478063 B TWI478063 B TW I478063B
Authority
TW
Taiwan
Prior art keywords
application
virtual machine
candidate
target application
providing
Prior art date
Application number
TW100142596A
Other languages
English (en)
Other versions
TW201322133A (zh
Inventor
Yuwei Chuang
Fengcheng Lin
Juihao Sun
Original Assignee
Inst Information Industry
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inst Information Industry filed Critical Inst Information Industry
Priority to TW100142596A priority Critical patent/TWI478063B/zh
Priority to US13/437,095 priority patent/US20130132953A1/en
Priority to FR1254026A priority patent/FR2982971A1/fr
Publication of TW201322133A publication Critical patent/TW201322133A/zh
Application granted granted Critical
Publication of TWI478063B publication Critical patent/TWI478063B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Description

於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
本發明是有關於一種提供虛擬機器之系統、方法以及其電腦可讀取記錄媒體,且特別是有關於一種可於虛擬機器提供應用程式之系統、方法以及其電腦可讀取記錄媒體。
在過去許多年中,電腦上的使用者界面已經歷許多變更。早期之字元型使用者界面,例如微軟的DOS界面,提供使用者字元輸入指令以執行應用程式。接下來,發展出圖形使用者界面(Graphical User Interface,GUI),用以藉由圖形化之圖標(icon),提供使用者更為直覺之操作方式。
近年來,虛擬機器的概念開始蓬勃發展。使用者可初始化一台虛擬機器,並將電腦應用程式和資料寄存於一虛擬機器,然後可以隨時隨地在任何電腦上存取所初始化之虛擬機器。如此一來,使用者可在一實體電腦中設置多台虛擬機器,每一台虛擬機器皆可配置不同的作業系統、不同的應用程式、不同的操作環境,甚至儲存不同的資料,如同擁有多台電腦。
當使用者在操作虛擬機器時,多半只能執行已安裝於虛擬機器上之應用程式,當虛擬機器未安裝有所需要的應用程式時,此虛擬機器就必須仿照實體電腦,安裝所需要的應用程式,相當不便。另一種解決方案,是由實體電腦再另外初始化一台已安裝有所需要應用程式的虛擬機器,但此種方式仍有相當多的缺點,例如初始化另一台虛擬機器可能要花費數分鐘以上,或者實體電腦可能未事先具有已安裝有所需要應用程式之虛擬機器的映像檔,又或者是實體電腦可能不具有足夠的資源用來額外初始化一台虛擬機器。
上述問題在雲端系統中將更加嚴重,由於雲端系統經常設置相當多個虛擬機器以提供眾多使用者來使用,雲端系統為了管理方便,多只建置一種或極少的虛擬機器。因為眾多使用者往往有各式各樣的需求,因此,若欲滿足大部分使用者的需求,雲端系統中的虛擬機器即必需安裝相當多的應用程式,如此一來每個虛擬機器將需要相當大的資源,整個雲端系統也將耗費太多硬體資源。
因此,本發明之一態樣是在提供一種於虛擬機器提供應用程式之方法,用以在當客戶端欲開啟應用程式時,可將對應之執行檔掛載(mount)至一虛擬機器,供虛擬機器執行。於虛擬機器提供應用程式之方法包含以下步驟:
(a)自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式。
(b)根據應用程式開啟指令,分配一可用虛擬機器。
(c)自一執行檔儲存池所存有之數個候選應用程式執行檔,尋找對應目標應用程式之一目標應用程式執行檔。
(d)掛載目標應用程式執行檔至可用虛擬機器。
(e)藉由可用虛擬機器執行已掛載之目標應用程式執行檔。
本發明之另一態樣是在提供一種電腦可讀取記錄媒體,儲存一電腦程式,用以執行上述於虛擬機器提供應用程式之方法。方法步驟流程如上所述,在此不再重複贅述。
本發明之另一態樣是在提供一種於虛擬機器提供應用程式之系統,用以在客戶端欲開啟應用程式時,將對應之執行檔掛載至一虛擬機器,供虛擬機器執行。於虛擬機器提供應用程式之系統包含一執行檔儲存池、一指令接收模組、一機器分配模組、一執行檔尋找模組以及一掛載模組。執行檔儲存池儲存數個候選應用程式執行檔。指令接收模組自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式。機器分配模組根據應用程式開啟指令,分配候一可用虛擬機器。執行檔尋找模組自執行檔儲存池所存有之候選應用程式執行檔,尋找對應目標應用程式之一目標應用程式執行檔。掛載模組掛載目標應用程式執行檔至可用虛擬機器,並藉由可用虛擬機器執行已掛載之目標應用程式執行檔。
應用本發明具有下列優點:客戶端之使用者欲透過客戶端執行一應用程式時,可就現有之虛擬機器進行應用程式之執行。也就是說,即使現有之虛擬機器未安裝有欲執行之應用程式,仍可自執行檔儲存池複製並掛載對應之執行檔,而使現有之虛擬機器可執行原先未安裝之應用程式。換言之,上述狀況中,不需為了未安裝之應用程式,另外初始化新的虛擬機器。也就是說,可不需安裝太多應用程式於虛擬機器,減少維持各虛擬機器所需之資源,且可節省初始化新的虛擬機器所需之時間。此外,若有多個客戶端欲使用同樣之應用程式時,可藉由重複複製並掛載多個對應之執行檔,以供多個不同客戶端分別使用。因此,可避免同一應用程式無法同時被多個客戶端使用。
以下將以圖式及詳細描述,清楚說明本發明之精神,任何所屬技術領域中具有通常知識者,在瞭解本發明之較佳實施例後,當可由本發明所教示之技術,加以改變及修飾,然其並不脫離本發明之精神與範圍。
請參照第1圖,其係依照本發明一實施方式的一種於虛擬機器提供應用程式之方法流程圖。於虛擬機器提供應用程式之方法可經由一於虛擬機器提供應用程式之系統來實作,在自客戶端透過虛擬桌面欲開啟應用程式時,可將對應之執行檔掛載至提供虛擬桌面之虛擬機器,供虛擬機器執行。於虛擬機器提供應用程式之方法另一種實作方式是將一電腦程式儲存於一電腦可讀取記錄媒體中,而使電腦讀取此記錄媒體後執行此於虛擬機器提供應用程式之方法。電腦可讀取記錄媒體可為唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或熟悉此技藝者可輕易思及具有相同功能之電腦可讀取記錄媒體。
於虛擬機器提供應用程式之方法100包含以下步驟:在步驟120中,自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式。
在本發明之一實施例中,在客戶端之使用者欲執行一目標應用程式時,客戶端之使用者可經由操作客戶端之一應用程式,產生及傳送該應用程式開啟指令,供步驟120接收。在本發明之另一實施例中,可提供一虛擬桌面至客戶端,藉此使客戶端之使用者可經由操作虛擬桌面,而產生及傳送應用程式開啟指令,供步驟120接收。在本發明之又一實施例中,可提供一網頁至客戶端,藉此使客戶端之使用者可經由操作網頁,產生及傳送應用程式開啟指令。
在一些實施例中,客戶端可經由有線或無線通訊網路,連接到執行本發明方法的系統。在另一些實施例中,客戶端亦可和執行本發明方法的系統設置在同一硬體中。
在步驟130中,根據應用程式開啟指令,分配一可用虛擬機器。
在一實施例中,可用虛擬機器係指仍有資源可提供客戶端服務的虛擬機器,但其可能具有或不具有應用程式開啟指令所對應的應用程式。
在本發明之一實施例中,可提供數個候選虛擬機器,且每一候選虛擬機器具有對應的資源資訊。因此,在步驟130之一實施例中,可依據各候選虛擬機器對應的資源資訊,判斷是否足夠掛載和執行目標應用程式執行檔來進行分配。例如,從數個候選虛擬機器中,找出具有的資源資訊足夠掛載和執行目標應用程式執行檔的一個或數個虛擬機器,選擇其中之一來作為可用虛擬機器。
在本發明之另一實施例中,每一候選虛擬機器更具有對應的已安裝應用程式。於是,在步驟130可進一步依據各候選虛擬機器具有對應的已安裝應用程式是否包含目標應用程式,以及各候選虛擬機器對應的資源資訊是否足夠執行目標應用程式來進行分配。例如,當候選虛擬機器中,已安裝應用程式包含目標應用程式者,若尚有足夠資源可執行目標應用程式,則可優先選擇已安裝有目標應用程式的候選虛擬機器來作為可用虛擬機器。當候選虛擬機器中,已安裝應用程式包含目標應用程式者,皆未有足夠資源可執行目標應用程式時,則可從候選虛擬機器中對應的已安裝應用程式未包含目標應用程式者,依據其對應的資源資訊判斷是否足夠掛載和執行目標應用程式執行檔,而進一步進行分配,亦即找出具有的資源資訊足夠掛載和執行目標應用程式執行檔的一個或數個虛擬機器,選擇其中之一來作為可用虛擬機器。
更進一步時,步驟130可根據應用程式開啟指令,查詢目標應用程式之所需資源資訊,例如所需之運算資源、所需之記憶體空間、所需之指令集或所需之其他類型資源之資訊。於是,可自現有之數個候選虛擬機器中,選擇符合所需資源資訊者,作為可用虛擬機器。
更進一步時,可監控各候選虛擬機器之剩餘資源。因此,在執行步驟130時,可選擇候選虛擬機器中,其剩餘資源符合所需資源資訊者(例如,具有足夠剩餘資源可提供給目標應用程式者),作為可用虛擬機器。
在步驟140中,自一執行檔儲存池所存有之數個候選應用程式執行檔中,尋找對應目標應用程式之一目標應用程式執行檔。較佳的實施例中,執行檔儲存池所存有之候選應用程式執行檔已符合各候選虛擬機器之一虛擬機器系統環境,而不需針對各候選虛擬機器的環境參數重新安裝。
在本發明之一實施例中,執行檔儲存池所存有之候選應用程式執行檔,可於各候選虛擬機器之虛擬機器系統環境中直接執行。在本發明之另一實施例中,執行檔儲存池所存有之候選應用程式執行檔可在即時編譯後,於各候選虛擬機器之虛擬機器系統環境中執行。在本發明之又一實施例中,執行檔儲存池所存有之候選應用程式執行檔可執行於一模擬器(emulator)上,以於各候選虛擬機器之虛擬機器系統環境中直接執行,而不需重新安裝。
在步驟150中,掛載目標應用程式執行檔至步驟130所分配之可用虛擬機器。在步驟150之一實施例中,可自執行檔儲存池鏈結或複製目標應用程式執行檔至一分享空間。接下來,將分享空間中之目標應用程式執行檔掛載至步驟130所分配之可用虛擬機器。
在步驟160中,藉由步驟130所分配之可用虛擬機器執行已掛載之目標應用程式執行檔。如此一來,客戶端之使用者欲執行應用程式時,可就現有之虛擬機器執行應用程式。此外,應用本發明之一實施例,即使現有之虛擬機器未安裝有欲執行之應用程式,仍可自執行檔儲存池複製並掛載對應之執行檔,而使現有之虛擬機器可執行原先未安裝之應用程式。換言之,上述狀況中,不需因為未安裝應用程式,另外初始化新的虛擬機器。也就是說,可不需安裝太多應用程式於虛擬機器中,並減少維持各虛擬機器所需之資源,且可節省初始化新的虛擬機器所需之時間。此外,若有多個客戶端欲使用同樣之應用程式時,可藉由重複複製並掛載多個對應之執行檔,供多個不同客戶端分別使用。因此,可避免同一應用程式無法同時被多個客戶端使用。
於是,在步驟170中,可於客戶端之一顯示器,顯示可用虛擬機器執行目標應用程式執行檔之一執行畫面。
此外,在本發明之一實施例中,可預先掛載部份執行檔至可用虛擬機器。因此,於虛擬機器提供應用程式之方法100更可包含以下步驟:可在初始化可用虛擬機器時,掛載數個預設應用程式執行檔至可用虛擬機器。於是,在步驟150前,可判斷可用虛擬機器上已預先掛載之預設應用程式執行檔中,是否包含目標應用程式執行檔。在已預先掛載之預設應用程式執行檔不包含目標應用程式執行檔時,執行步驟150。在已預先掛載之預設應用程式執行檔包含目標應用程式執行檔時,則跳過步驟150,繼續執行步驟160。如此一來,可藉由預先掛載部份常用程式之執行檔,進一步節省掛載所需之時間。
請參照第2圖,其繪示依照本發明一實施方式的一種於虛擬機器提供應用程式之系統之功能方塊圖。客戶端透過虛擬桌面欲開啟應用程式時,於虛擬機器提供應用程式之系統將對應之執行檔掛載至一虛擬機器,供虛擬機器執行。
於虛擬機器提供應用程式之系統200主要包含一執行檔儲存池210、一指令接收模組250、一機器分配模組260、一執行檔尋找模組270以及一掛載模組280。其中,指令接收模組250、機器分配模組260、執行檔尋找模組270以及掛載模組280,可由相同或相異之伺服器之處理元件所提供。
執行檔儲存池210儲存數個候選應用程式執行檔。系統200更可提供已初始化之數個候選虛擬機器。在本發明之一實施例中,執行檔儲存池210可實作於一伺服器之一儲存元件。在本發明之另一實施例中,執行檔儲存池210可藉由雲端系統之一儲存雲實作。此外,執行檔儲存池210所存有之候選應用程式執行檔,符合各候選虛擬機器之一虛擬機器系統環境,而不需針對各候選虛擬機器的環境參數重新安裝。在本發明之一實施例中,執行檔儲存池210所存有之候選應用程式執行檔,可於各候選虛擬機器之虛擬機器系統環境中直接執行。在本發明之另一實施例中,執行檔儲存池210所存有之候選應用程式執行檔,可在即時編譯後,於各候選虛擬機器之虛擬機器系統環境中執行。在本發明之又一實施例中,執行檔儲存池210所存有之候選應用程式執行檔可執行於一模擬器上,以於各候選虛擬機器之虛擬機器系統環境中直接執行,而不需重新安裝。
在客戶端400之使用者欲執行一目標應用程式時,可藉由操作客戶端400而產生對應之應用程式開啟指令。於是,指令接收模組250自客戶端400接收一應用程式開啟指令,用以開啟目標應用程式。在本發明之一實施例中,客戶端400之使用者可透過客戶端400之一應用程式,而產生及傳送應用程式開啟指令,供指令接收模組250接收。在本發明之另一實施例中,系統200之一虛擬桌面提供模組240可提供一虛擬桌面至客戶端400。於是,客戶端400之使用者可經由操作虛擬桌面,而產生及傳送應用程式開啟指令,供指令接收模組250接收。虛擬桌面提供模組240可與客戶端400於同一電子裝置上執行。此外,虛擬桌面提供模組240亦可透過一網路,提供虛擬桌面至遠端之客戶端400。虛擬桌面提供模組240可使用一虛擬桌面介面(Virtual Desktop Interface,VDI),傳送虛擬桌面之畫面至客戶端400以提供虛擬桌面。於是,客戶端400之使用者即可操作客戶端400上所顯示之虛擬桌面。在本發明之又一實施例中,系統200之一網頁提供模組可提供一網頁至客戶端400。於是,客戶端400之使用者可經由操作網頁,而產生及傳送應用程式開啟指令,供指令接收模組250接收。
機器分配模組260根據應用程式開啟指令,分配一可用虛擬機器。其中,系統200更可包含數個候選虛擬機器。其中,每一候選虛擬機器具有對應的資源資訊。於是,機器分配模組260可依據各候選虛擬機器對應的資源資訊,判斷是否足夠掛載和執行該目標應用程式執行檔來進行分配。進一步來說,每一候選虛擬機器更具有對應的已安裝應用程式。於是,機器分配模組260可依據候選虛擬機器具有對應的已安裝應用程式是否包含目標應用程式,以及各候選虛擬機器對應的資源資訊是否足夠執行目標應用程式來進行分配。當候選虛擬機器中,已安裝應用程式包含目標應用程式者,皆未有足夠資源可執行目標應用程式時,該機器分配模組260從候選虛擬機器具有對應的已安裝應用程式卻未包含目標應用程式者,依據其對應的資源資訊判斷是否足夠掛載和執行目標應用程式執行檔來進行分配。
執行檔尋找模組270自執行檔儲存池210所存有之候選應用程式執行檔,尋找對應目標應用程式之目標應用程式執行檔。
接下來,掛載模組280掛載目標應用程式執行檔至可用虛擬機器。在本發明之一實施例中,掛載模組280可自執行檔儲存池210,鏈結或複製目標應用程式執行檔至一執行檔提供池220之一分享空間,並使可用虛擬機器掛載執行檔提供池220之分享空間。於是,掛載模組280藉由可用虛擬機器執行已掛載之目標應用程式執行檔。執行檔儲存池210與執行檔提供池220可能設置在同一硬體設備中,也可能分別設置在不同的硬體設備中。接下來,系統200可提供可用虛擬機器執行目標應用程式執行檔之一執行畫面至客戶端400,以於客戶端400之顯示器顯示上述執行畫面。如此一來,客戶端400之使用者透過客戶端400欲執行應用程式時,可就現有提供之虛擬機器執行應用程式。此外,應用本發明之一實施例,即使現有之虛擬機器未安裝有欲執行之應用程式,仍可自執行檔儲存池210複製並掛載對應之執行檔,使現有之虛擬機器執行原先未安裝之應用程式。換言之,上述狀況中,不需因為未安裝應用程式,另外初始化新的虛擬機器。也就是說,不需安裝太多應用程式於虛擬機器,並減少維持各虛擬機器所需之資源,且可節省初始化新的虛擬機器所需之時間。此外,若有多個客戶端400欲使用同樣之應用程式時,可藉由複製並掛載多個對應之執行檔,提供多個不同客戶端分別使用,避免同一應用程式無法同時被多個客戶端使用。
請參照第3圖,其繪示依照本發明另一實施方式的一種於虛擬機器提供應用程式之系統之功能方塊圖。應瞭解到,在以下敘述中,已經在上述實施方式中敘述過的內容將不再重複贅述,僅就與更新相關的技術內容加以補充。
於虛擬機器提供應用程式之系統200可根據執行應用程式所需資源資訊,選擇適合之虛擬機器執行。因此,於虛擬機器提供應用程式之系統200更可包含一資訊查詢模組290,用以根據應用程式開啟指令,查詢目標應用程式之一所需資源資訊,例如所需之運算資源、所需之記憶體空間、所需之指令集或所需之其他類型資源之資訊。於是,機器分配模組260可自系統200所提供之候選虛擬機器中,選擇符合所需資源資訊者作為可用虛擬機器。此外,於虛擬機器提供應用程式之系統200更可包含一資源監控模組300,用以監控各候選虛擬機器之一剩餘資源,如剩餘運算資源、剩餘記憶體空間、或其他剩餘資源之資訊。於是,機器分配模組260可選擇候選虛擬機器中,其剩餘資源符合所需資源資訊者,作為可用虛擬機器。
此外,掛載模組280可預先掛載數個預設應用程式執行檔至可用虛擬機器。於是,在掛載目標應用程式執行檔至可用虛擬機器前,掛載模組280之一判斷器280a可判斷已預先掛載於可用虛擬機器之預設應用程式執行檔,是否包含目標應用程式執行檔。在已預先掛載之預設應用程式執行檔不包含目標應用程式執行檔時,掛載模組280掛載目標應用程式執行檔至可用虛擬機器。在已預先掛載之預設應用程式執行檔包含目標應用程式執行檔時,掛載模組280不額外掛載目標應用程式執行檔至可用虛擬機器。如此一來,可藉由預先掛載部份常用程式之執行檔,進一步節省掛載所需之時間。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...於虛擬機器提供應用程式之方法
120~170...步驟
200...於虛擬機器提供應用程式之系統
210...執行檔儲存池
220...執行檔提供池
240...虛擬桌面提供模組
250...指令接收模組
260...機器分配模組
270...執行檔尋找模組
280...掛載模組
280a...判斷器
290...資訊查詢模組
300...資源監控模組
400...客戶端
為讓本發明之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下:
第1圖係依照本發明一實施方式的一種於虛擬機器提供應用程式之方法流程圖。
第2圖繪示依照本發明一實施方式的一種於虛擬機器提供應用程式之系統之功能方塊圖。
第3圖繪示依照本發明另一實施方式的一種於虛擬機器提供應用程式之系統之功能方塊圖。
100...於虛擬機器提供應用程式之方法
120~170...步驟

Claims (20)

  1. 一種於虛擬機器提供應用程式之方法,包含:(a)自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式;(b)根據該應用程式開啟指令,分配一可用虛擬機器;(c)自一執行檔儲存池所存有之複數個候選應用程式執行檔,尋找對應該目標應用程式之一目標應用程式執行檔,該些候選應用程式執行檔符合各候選虛擬機器之一虛擬機器系統環境;(d)掛載該目標應用程式執行檔至該可用虛擬機器;以及(e)藉由該可用虛擬機器執行已掛載之該目標應用程式執行檔。
  2. 如請求項1所述之於虛擬機器提供應用程式之方法,其中該應用程式開啟指令之步驟,係經由該客戶端之一應用程式產生及傳送該應用程式開啟指令、提供一虛擬桌面至該客戶端並經由該虛擬桌面產生及傳送該應用程式開啟指令、以及提供一網頁至該客戶端並經由該網頁產生及傳送該應用程式開啟指令等三者其中之任一。
  3. 如請求項1所述之於虛擬機器提供應用程式之方法,更包括:提供複數個候選虛擬機器,其中每一該些候選虛擬機器具有對應的資源資訊;且其中,該分配可用虛擬機器之 步驟(b),係依據該些候選虛擬機器對應的資源資訊判斷是否足夠掛載和執行該目標應用程式執行檔來進行分配。
  4. 如請求項3所述之於虛擬機器提供應用程式之方法,其中:每一該些候選虛擬機器更包括具有對應的已安裝應用程式;步驟(b)係依據該些候選虛擬機器具有對應的已安裝應用程式是否包含該目標應用程式、以及該些候選虛擬機器對應的資源資訊是否足夠執行該目標應用程式來進行分配;以及當該些候選虛擬機器中,已安裝應用程式包含該目標應用程式者,皆未有足夠資源可執行該目標應用程式時,從該些候選虛擬機器具有對應的已安裝應用程式未包含該目標應用程式者,依據其對應的資源資訊判斷是否足夠掛載和執行該目標應用程式執行檔來進行分配。
  5. 如請求項3所述之於虛擬機器提供應用程式之方法,其中該執行檔儲存池所存有之該些候選應用程式執行檔符合每一該些候選虛擬機器之該虛擬機器系統環境。
  6. 如請求項1所述之於虛擬機器提供應用程式之方法,更包含:於該客戶端之一顯示器,顯示該可用虛擬機器執行該目標應用程式執行檔之一執行畫面。
  7. 如請求項1所述之於虛擬機器提供應用程式之方法,其中步驟(b)包含:根據該應用程式開啟指令,查詢該目標應用程式之一所需資源資訊;以及自複數個候選虛擬機器選擇符合該所需資源資訊者,作為該可用虛擬機器。
  8. 如請求項7所述之於虛擬機器提供應用程式之方法,更包含:監控每一該些候選虛擬機器之一剩餘資源;其中自該些候選虛擬機器選擇符合該所需資源資訊者,作為該可用虛擬機器之步驟包含:選擇該些候選虛擬機器中,其剩餘資源符合該所需資源資訊者,作為該可用虛擬機器。
  9. 如請求項1所述之於虛擬機器提供應用程式之方法,其中步驟(d)包含:自該執行檔儲存池鏈結或複製該目標應用程式執行檔至一分享空間;以及掛載該分享空間中之該目標應用程式執行檔。
  10. 如請求項1所述之於虛擬機器提供應用程式之方法,其中: 步驟(a)之前更包含掛載複數個預設應用程式執行檔至該可用虛擬機器;在步驟(d)前,判斷該些預設應用程式執行檔是否包含該目標應用程式執行檔;在該些預設應用程式執行檔不包含該目標應用程式執行檔時,執行步驟(d);以及在該些預設應用程式執行檔包含該目標應用程式執行檔時,不執行步驟(d)。
  11. 一種於虛擬機器提供應用程式之系統,包含:一執行檔儲存池,儲存複數個候選應用程式執行檔;一指令接收模組,自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式;一機器分配模組,根據該應用程式開啟指令,分配一可用虛擬機器;以及一執行檔尋找模組,自該執行檔儲存池所存有之該些候選應用程式執行檔,尋找對應該目標應用程式之一目標應用程式執行檔,該些候選應用程式執行檔符合各候選虛擬機器之一虛擬機器系統環境;以及一掛載模組,掛載該目標應用程式執行檔至該可用虛擬機器,以供該可用虛擬機器執行已掛載之該目標應用程式執行檔。
  12. 如請求項11所述之於虛擬機器提供應用程式之 系統,其中該應用程式開啟指令係係經由該客戶端之一應用程式產生及傳送該應用程式開啟指令、提供一虛擬桌面至該客戶端並經由該虛擬桌面產生及傳送該應用程式開啟指令、以及提供一網頁至該客戶端並經由該網頁產生及傳送該應用程式開啟指令等三者其中之任一。
  13. 如請求項11所述之於虛擬機器提供應用程式之系統,更包含:複數個候選虛擬機器,其中每一該些候選虛擬機器具有對應的資源資訊;且其中該機器分配模組係依據該些候選虛擬機器對應的資源資訊判斷是否足夠掛載和執行該目標應用程式執行檔來進行分配。
  14. 如請求項13所述之於虛擬機器提供應用程式之系統,其中:每一該些候選虛擬機器更包括具有對應的已安裝應用程式;該機器分配模組係依據該些候選虛擬機器具有對應的已安裝應用程式是否包含該目標應用程式、以及該些候選虛擬機器對應的資源資訊是否足夠執行該目標應用程式來進行分配;以及當該些候選虛擬機器中,已安裝應用程式包含該目標應用程式者,皆未有足夠資源可執行該目標應用程式時,該機器分配模組從該些候選虛擬機器具有對應的已安裝應 用程式未包含該目標應用程式者,依據其對應的資源資訊判斷是否足夠掛載和執行該目標應用程式執行檔來進行分配。
  15. 如請求項11所述之於虛擬機器提供應用程式之系統,其中該掛載模組提供該可用虛擬機器執行該目標應用程式執行檔之一執行畫面至該客戶端,以於該客戶端之一顯示器,顯示該執行畫面。
  16. 如請求項11所述之於虛擬機器提供應用程式之系統,更包含:一資訊查詢模組,根據該應用程式開啟指令,查詢該目標應用程式之一所需資源資訊;且其中該機器分配模組自該些候選虛擬機器選擇符合該所需資源資訊者,作為該可用虛擬機器。
  17. 如請求項16所述之於虛擬機器提供應用程式之系統,更包含:一資源監控模組,監控每一該些候選虛擬機器之一剩餘資源;且其中該機器分配模組選擇該些候選虛擬機器中,其剩餘資源符合該所需資源資訊者,作為該可用虛擬機器。
  18. 如請求項11所述之於虛擬機器提供應用程式之 系統,其中該掛載模組更包含掛載複數個預設應用程式執行檔至該可用虛擬機器,在掛載該目標應用程式執行檔至該可用虛擬機器前,判斷該些預設應用程式執行檔是否包含該目標應用程式執行檔,當該些預設應用程式執行檔不包含該目標應用程式執行檔時,該掛載模組掛載該目標應用程式執行檔至該可用虛擬機器。
  19. 一種電腦可讀取記錄媒體,儲存一電腦程式,用以執行一種於虛擬機器提供應用程式之方法,其中該方法包含:(a)自一客戶端接收一應用程式開啟指令,用以開啟一目標應用程式;(b)根據該應用程式開啟指令,分配一可用虛擬機器;(c)自一執行檔儲存池所存有之複數個候選應用程式執行檔,尋找對應該目標應用程式之一目標應用程式執行檔,該些候選應用程式執行檔符合各候選虛擬機器之一虛擬機器系統環境;(d)掛載該目標應用程式執行檔至該可用虛擬機器;以及(e)藉由該可用虛擬機器執行已掛載之該目標應用程式執行檔。
  20. 如請求項19所述之電腦可讀取記錄媒體,其中該方法更包含:在步驟(a)之前,掛載複數個預設應用程式執行檔至 該可用虛擬機器;在步驟(d)前,判斷該些預設應用程式執行檔是否包含該目標應用程式執行檔;在該些預設應用程式執行檔不包含該目標應用程式執行檔時,執行步驟(d);以及在該些預設應用程式執行檔包含該目標應用程式執行檔時,不執行步驟(d)。
TW100142596A 2011-11-21 2011-11-21 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體 TWI478063B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW100142596A TWI478063B (zh) 2011-11-21 2011-11-21 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US13/437,095 US20130132953A1 (en) 2011-11-21 2012-04-02 Method and System for Providing Application by Virtual Machine and Computer-Readable Storage Medium to Execute the Method
FR1254026A FR2982971A1 (fr) 2011-11-21 2012-05-02 Procede et systeme de fourniture d'une application par une machine virtuelle et support de stockage lisible par ordinateur pour executer le procede

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100142596A TWI478063B (zh) 2011-11-21 2011-11-21 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體

Publications (2)

Publication Number Publication Date
TW201322133A TW201322133A (zh) 2013-06-01
TWI478063B true TWI478063B (zh) 2015-03-21

Family

ID=48222600

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100142596A TWI478063B (zh) 2011-11-21 2011-11-21 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體

Country Status (3)

Country Link
US (1) US20130132953A1 (zh)
FR (1) FR2982971A1 (zh)
TW (1) TWI478063B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243509A (zh) * 2013-06-07 2014-12-24 鸿富锦精密工业(深圳)有限公司 虚拟机画面显示系统及方法
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
TWI648637B (zh) * 2017-11-30 2019-01-21 財團法人工業技術研究院 於平台部署與操作行動作業系統的系統及其方法
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10817331B2 (en) 2018-06-25 2020-10-27 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410803A (zh) * 2006-01-24 2009-04-15 思杰系统有限公司 用于提供对计算环境的访问的方法和系统
TW200943187A (en) * 2008-04-04 2009-10-16 Hewlett Packard Development Co Virtual machine manager system and methods
TW201007574A (en) * 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
CN102204210A (zh) * 2011-05-18 2011-09-28 华为技术有限公司 启动应用的方法、服务器和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795864B2 (en) * 2000-12-28 2004-09-21 Sun Microsystems, Inc. System using lookup service proxy object having code and request rate for managing rate at which client can request for services from server are transmitted
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7669186B2 (en) * 2005-11-16 2010-02-23 Sun Microsystems, Inc. Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7801994B2 (en) * 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8418181B1 (en) * 2009-06-02 2013-04-09 Amazon Technologies, Inc. Managing program execution based on data storage location
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US9477531B2 (en) * 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9342373B2 (en) * 2010-05-20 2016-05-17 International Business Machines Corporation Virtual machine management among networked servers
US20120174096A1 (en) * 2010-12-30 2012-07-05 Matthew Conover Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes
WO2012141996A1 (en) * 2011-04-10 2012-10-18 Requirementslive Llc Portable business language and automated software application development system
US8832239B2 (en) * 2011-09-26 2014-09-09 International Business Machines Corporation System, method and program product for optimizing virtual machine placement and configuration
US8938712B2 (en) * 2011-12-22 2015-01-20 International Business Machines Corporation Cross-platform virtual machine and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410803A (zh) * 2006-01-24 2009-04-15 思杰系统有限公司 用于提供对计算环境的访问的方法和系统
TW200943187A (en) * 2008-04-04 2009-10-16 Hewlett Packard Development Co Virtual machine manager system and methods
TW201007574A (en) * 2008-08-13 2010-02-16 Inventec Corp Internet server system and method of constructing and starting a virtual machine
CN102204210A (zh) * 2011-05-18 2011-09-28 华为技术有限公司 启动应用的方法、服务器和系统

Also Published As

Publication number Publication date
US20130132953A1 (en) 2013-05-23
FR2982971A1 (fr) 2013-05-24
TW201322133A (zh) 2013-06-01

Similar Documents

Publication Publication Date Title
TWI478063B (zh) 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US9069438B2 (en) Allocating virtual machines according to user-specific virtual machine metrics
US20220368773A1 (en) System and method for intent-based service deployment
US8291414B2 (en) Shared resource service provisioning using a virtual machine manager
US9052940B2 (en) System for customized virtual machine for a target hypervisor by copying image file from a library, and increase file and partition size prior to booting
US8387060B2 (en) Virtual machine resource allocation group policy based on workload profile, application utilization and resource utilization
US9104461B2 (en) Hypervisor-based management and migration of services executing within virtual environments based on service dependencies and hardware requirements
US9397953B2 (en) Operation managing method for computer system, computer system and computer-readable storage medium having program thereon
US9766913B2 (en) Method and system for managing peripheral devices for virtual desktops
KR100892417B1 (ko) 이동식 컴퓨팅 체제를 지원하는 이동식 저장 장치 및 이를이용한 이동식 컴퓨팅 체제 시스템
US20130268805A1 (en) Monitoring system and method
WO2021196597A1 (zh) 业务插件加载实现方法、装置和终端设备
US20120210114A1 (en) Log file processing system and method
JP5346405B2 (ja) ネットワークシステム
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
US11876729B2 (en) Method and system for a proactive assignment of virtual network functions in local data systems
AU2015261587B2 (en) Method and system for monitoring usage of computing resources
US20240137380A1 (en) Method and system for virtual desktop service manager placement based on security profiles
US20240134703A1 (en) Method and system for virtual desktop service manager placement based on end-user experience
US20230266990A1 (en) Managing hyper-converged infrastructure (hci) appliance nodes and clusters with dhcp-based resource
KR20110089942A (ko) 포터블 매체를 이용한 소프트웨어 가상화 시스템 제공방법
AU2014240303A1 (en) Method and system for monitoring usage of computing resources