TWI526931B - 用於虛擬機器之繼承產品啟動 - Google Patents

用於虛擬機器之繼承產品啟動 Download PDF

Info

Publication number
TWI526931B
TWI526931B TW100135047A TW100135047A TWI526931B TW I526931 B TWI526931 B TW I526931B TW 100135047 A TW100135047 A TW 100135047A TW 100135047 A TW100135047 A TW 100135047A TW I526931 B TWI526931 B TW I526931B
Authority
TW
Taiwan
Prior art keywords
information
partition
client
software application
virtual machine
Prior art date
Application number
TW100135047A
Other languages
English (en)
Other versions
TW201218081A (en
Inventor
史密斯亞倫J
巴拉西歐泰倫M
比哈亞傑
高其平
巴克哈柏艾麥容
侯羅麥可P
Original Assignee
微軟技術授權有限責任公司
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 微軟技術授權有限責任公司 filed Critical 微軟技術授權有限責任公司
Publication of TW201218081A publication Critical patent/TW201218081A/zh
Application granted granted Critical
Publication of TWI526931B publication Critical patent/TWI526931B/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)

Description

用於虛擬機器之繼承產品啟動
本揭示案係關於用於虛擬機器之繼承產品啟動。
虛擬化允許建立完全出自軟體之完全配置的電腦。舉例而言,當客戶端電腦系統在主機電腦系統上仿真時,該客戶端電腦系統稱為「虛擬機器」,因為該客戶端電腦系統作為操作一個特定硬體架構之軟體表示而存在於該主機電腦系統中。在虛擬機器內,作業系統可正如該作業系統在實體硬體上一般被安裝。
虛擬機器可使用應用啟動機制之軟體應用程式。舉例而言,一些應用程式可應用授權機制,該授權機制允許使用者在一或更多虛擬機器上使用遵循某些條款及條件的應用程式。在此上下文中「產品啟動」描述滿足授權機制要求之動作,從而允許使用該軟體。在虛擬機器上下文中,存在針對應用軟體產品啟動機制之獨特的挑戰。
軟體反盜版解決方案常常藉由將軟體許可證連結至個別電腦硬體來操作,該連結係藉由為電腦建立基於硬體之ID或指印來執行。由於該硬體為虛擬化的,故虛擬化使得此等解決方案不可靠。該指印可經編輯或複製,因此該指印可用來略過產品啟動並複製或竊用該軟體。此外,典型的伺服器虛擬化情況按需要將虛擬機器自一個主機移動至另一主機。此合法使用可中斷連結至硬體指印之軟體授權解決方案。
本文揭示了繼承啟動機制開啟自主機作業系統(operating system;OS)至客OS之安全通訊路徑之方法及系統。主機上軟體之許可證狀態經由此通道進行傳遞,且安裝在客戶端(guest)中之軟體使用此資訊通知軟體自身的產品啟動過程。當滿足主機之許可證要求時,該虛擬化的軟體可隨後在沒有任何外部通訊的情況下啟動。
上文為概述,且因此上文必然含有細節之簡化、一般化及省略。熟習此項技術者將瞭解,該概述僅為說明性的且並非意欲以任何方式進行限制。
總體計算環境
在以下描述及圖中闡述了某些特定細節,以提供對本發明之各種實施例之透徹理解。在以下揭示案中未闡述通常與計算及軟體技術相關聯之某些熟知細節,以避免不必要地模糊了本發明之各種實施例。此外,一般技術者應理解,一般技術者可在無一或更多以下所述細節的情況下實踐本發明之其他實施例。最後,儘管參閱以下揭示案中之步驟及順序描述了各種方法,但該描述因而提供了本發明之實施例之清晰的實施,且不應認為必須執行該等步驟及該等步驟之順序才能實踐本發明。
應理解,本文所描述的各種技術可結合硬體或軟體,或在適當情況下結合硬體與軟體之組合來實施。因此,本發明之方法及設備或本發明之某些態樣或部分可採取實施於有形媒體中之程式碼(亦即,指令)的形式,該等有形媒體諸如軟碟、CD-ROM、硬驅動機或任何其他機器可讀取儲存媒體,其中當程式碼經載入諸如電腦之機器且由該機器執行時,該機器變成用於實踐本發明之設備。在程式碼執行於可程式電腦上的情況下,計算裝置通常包括處理器、可由處理器(包括揮發性記憶體及非揮發性記憶體及/或儲存元件)讀取之儲存媒體、至少一個輸入裝置及至少一個輸出裝置。例如,經由使用應用程式介面(application programming interface;API)、可重複使用的控制或上述類似物,一或更多程式可實施或利用與本發明相關之所述過程。此等程式在高階程序程式設計語言或物件導向程式設計語言中較好實施,以與電腦系統進行通訊。然而,程式可在需要時以組合語言或機器語言來實施。在任何情況下,該語言可為編譯語言或解譯語言,且該語言可與硬體實施進行組合。
遠端桌面系統為維護應用程式之電腦系統,該等應用程式可由用戶端電腦系統以遠端方式執行。輸入在用戶端電腦系統處進入,且該輸入經由網路(例如,使用基於國際電信聯盟(International Telecommunications Union;ITU) T.120協定家族的協定,諸如遠端桌面協定(Remote Desktop Protocol;RDP))傳送至終端伺服器上之應用程式。該應用程式處理該輸入,如同該輸入是在終端伺服器處進入的。該應用程式回應於所接收的輸入而產生輸出,且該輸出經由網路傳送至用戶端。
實施例可在一或更多電腦上執行。第1圖及第2圖及以下論述意欲提供可實施本揭示案之適合計算環境之簡要的一般描述。熟習此項技術者可瞭解,電腦系統200、300可具有關於第1圖及第2圖之電腦100所描述的組件中之一些或全部。
貫穿本揭示案所使用的術語”電路系統”可包括硬體組件,諸如,硬體中斷控制器、硬驅動機、網路配接器、圖形處理器、基於硬體之視訊/音訊編碼解碼器及用以操作此硬體之韌體/軟體。該術語”電路系統”亦可包括微處理器,該等微處理器經配置以藉由韌體或藉由以某一方式設定的交換機或一或更多邏輯處理器(例如,多核心通用處理單元之一或更多核心)來執行功能。此實例中之邏輯處理器可由軟體指令來配置,該等軟體指令實施可操作以執行功能之邏輯,自記憶體(例如,RAM、ROM、韌體及/或虛擬記憶體)載入該等功能。在電路系統包括硬體與軟體之組合的示例性實施例中,實施者可編寫實施邏輯之原始碼,該邏輯隨後編譯成機器可讀取程式碼,該機器可讀取程式碼可由邏輯處理器來執行。由於熟習此項技術者可瞭解,目前最佳技術已發展至硬體、軟體或硬體/軟體之組合之間幾乎不存在差異的狀況,故為實現功能而進行之硬體對軟體之選擇僅為設計之選擇。因此,由於熟習此項技術者可瞭解,軟體處理可轉變成等效的硬體結構,且硬體結構本身可轉變成等效的軟體處理,故硬體實施對於軟體實施之選擇並不重要且留給實施者處理。
第1圖圖示計算系統之實例,該計算系統經配置以具有本揭示案之態樣。該計算系統可包括電腦20或電腦20之類似物,電腦20包括處理單元21、系統記憶體22及系統匯流排23,系統匯流排23將包括系統記憶體之各種系統組件耦接至處理單元21。系統匯流排23可為若干類型之匯流排結構中之任一種匯流排結構,該若干類型之匯流排結構包括記憶體匯流排或記憶體控制器、周邊匯流排及使用各種匯流排架構中之任一種匯流排架構的區域匯流排。該系統記憶體包括唯讀記憶體(read only memory;ROM) 24及隨機存取記憶體(random access memory;RAM) 25。基本輸入/輸出系統26(basic input/output system;BIOS)含有諸如在啟動期間幫助在電腦20內的元件之間傳送資訊的基本常式,該BIOS儲存於ROM 24中。電腦20可進一步包括硬碟機27,硬碟機27用於自硬碟(未圖示)讀取及寫入硬碟;磁碟機28,磁碟機28用於自抽取式磁碟29讀取或寫入抽取式磁碟29;以及光碟機30,光碟機30用於自抽取式光碟31讀取或寫入抽取式光碟31,諸如,CD ROM或其他光學媒體。在一些示例性實施例中,實施本揭示案之態樣的電腦可執行指令可儲存於ROM 24、硬碟(未圖示)、RAM 25、抽取式磁碟29、光碟31及/或處理單元21之快取記憶體中。分別藉由硬碟機介面32、磁碟機介面33及光學驅動機介面34,將硬碟機27、磁碟機28及光碟機30連接至系統匯流排23。該等驅動機及該等驅動機相關聯之電腦可讀取媒體為電腦20提供電腦非揮發性儲存,該非揮發性儲存係為儲存可讀取指令、資料結構、程式模組及其他資料。儘管本文所描述的環境採用硬碟、抽取式磁碟29及抽取式光碟31,但熟習此項技術者應瞭解,可儲存可由電腦存取的資料之其他類型的電腦可讀取媒體(諸如,卡式磁帶、快閃記憶卡、數位視訊碟片、柏努利(Bernoulli)匣、隨機存取記憶體(RAMs)、唯讀記憶體(ROMs)等等)亦可用於作業環境中。
數個程式模組可儲存於硬碟、磁碟29、光碟31、ROM 24或RAM 25上,該數個程式模組包括作業系統35、一或更多應用程式36、其他程式模組37及程式資料38。使用者可經由輸入裝置(諸如,鍵盤40及指標裝置42)將命令及資訊輸入至電腦20中。其他輸入裝置(未圖示)可包括麥克風、操縱桿、遊戲板、衛星天碟、掃描器或上述類似物。此等及其他輸入裝置常常經由串列埠介面46連接至處理單元21,串列埠介面46耦接至系統匯流排,但此等及其他輸入裝置可由其他介面連接,諸如,平行埠、遊戲埠或通用串列匯流排(universal serial bus;USB)。顯示器47或其他類型的顯示裝置亦可經由諸如視訊配接器48之介面連接至系統匯流排23。除顯示器47之外,電腦通常包括其他周邊輸出裝置(未圖示),諸如,揚聲器及列印機。第1圖之系統亦包括主機配接器55、小型電腦系統介面(Small Computer System Interface;SCSI)匯流排56及連接至SCSI匯流排56之外部儲存裝置62。
電腦20可在使用與一或更多遠端電腦(諸如,遠端電腦49)之邏輯連接的網路環境中操作。儘管在第1圖中僅圖示了記憶體儲存裝置50,但遠端電腦49可為另一電腦、伺服器、路由器、網路PC、同級點裝置或其他共用網路節點、虛擬機器,且遠端電腦49通常可包括上文關於電腦20所述元件中之許多或全部元件。第1圖中所示之邏輯連接可包括區域網路(local area network;LAN) 51及廣域網路(wide area network;WAN) 52。此等網路環境常見於辦公室、企業範圍的電腦網路、內部網路及網際網路中。
當電腦20用於LAN網路環境時,電腦20可經由網路介面或配接器53連接至LAN 51。當電腦20用於WAN網路環境時,電腦20通常可包括數據機54或用於經由廣域網路52(諸如,網際網路)建立通訊的其他構件。數據機54可為內部的或外部的,數據機54可經由串列埠介面46連接至系統匯流排23。在網路環境中,關於電腦20或電腦20之部分所圖示的程式模組可儲存於遠端記憶體儲存裝置中。應瞭解,所示網路連接為實例,且可使用建立電腦之間的通訊鏈路的其他構件。此外,儘管設想本揭示案之眾多實施例尤其適用於電腦系統,但此文件中任何內容皆不意欲將本揭示案限於此等實施例。
現參閱第2圖,圖示示例性計算系統100之另一實施例。電腦系統100可包括邏輯處理器102,例如,執行核心。儘管圖示了一個邏輯處理器102,但在其他實施例中,電腦系統100可具有多個邏輯處理器,例如,每個處理器基板多個執行核心及/或可各自具有多個執行核心之多個處理器基板。如圖所示,各種電腦可讀取儲存媒體110可由一或更多系統匯流排互連,該一或更多系統匯流排將各種系統組件耦接至邏輯處理器102。系統匯流排可為若干類型之匯流排結構中之任一種匯流排結構,該若干類型之匯流排結構包括記憶體匯流排或記憶體控制器、周邊匯流排及使用各種匯流排架構中之任一種匯流排結構的區域匯流排。在示例性實施例中,電腦可讀取儲存媒體110可包括例如隨機存取記憶體(RAM) 104、儲存裝置106(例如,機電硬驅動機、固態硬驅動機,等等)、韌體108(例如,FLASH RAM或ROM)及抽取式儲存裝置118(諸如,CD-ROM、軟碟、DVD、快閃驅動器、外部儲存裝置,等等)。熟習此項技術者應瞭解,可使用其他類型的電腦可讀取儲存媒體,諸如,卡式磁帶、快閃記憶卡、數位視訊碟片、Bernoulli匣。
電腦可讀取儲存媒體為電腦100提供非揮發性儲存,該非揮發性儲存係為儲存處理器可執行指令122、資料結構、程式模組及其他資料。基本輸入/輸出系統(BIOS) 120含有諸如在啟動期間幫助在電腦系統100內的元件之間傳送資訊的基本常式,該BIOS可儲存於韌體108中。數個程式可儲存於韌體108、儲存裝置106、RAM 104及/或抽取式儲存裝置118上,且該等程式可由邏輯處理器102執行,邏輯處理器102包括作業系統及/或應用程式。
命令及資訊可藉由電腦100經由輸入裝置116接收,輸入裝置116可包括(但不限於)鍵盤及指標裝置。其他輸入裝置可包括麥克風、操縱桿、遊戲板、掃描器或上述類似物。此等及其他輸入裝置常常經由串列埠介面連接至邏輯處理器102,該串列埠介面耦接至系統匯流排,但此等及其他輸入裝置可由其他介面連接,諸如,平行埠、遊戲埠或通用串列匯流排(USB)。顯示器或其他類型的顯示裝置亦可經由諸如視訊配接器之介面連接至系統匯流排,該視訊配接器可為圖形處理器112之部分或連接至圖形處理器112。除顯示器之外,電腦通常包括其他周邊輸出裝置(未圖示),諸如,揚聲器及列印機。第1圖之示例性系統亦可包括主機配接器、小型電腦系統介面(SCSI)匯流排及連接至SCSI匯流排之外部儲存裝置。
電腦系統100可在使用與一或更多遠端電腦(諸如,遠端電腦)之邏輯連接的網路環境中操作。該遠端電腦可為另一電腦、伺服器、路由器、網路PC、同級點裝置或其他共用網路節點,且該遠端電腦通常可包括上文關於電腦系統100所述元件中之許多或全部元件。
當電腦系統100用於LAN或WAN網路環境時,電腦系統100可經由網路介面卡114連接至該LAN或WAN。NIC 114可為內部的或外部的網路介面卡,NIC 114可連接至系統匯流排。在網路環境中,關於電腦系統100或電腦系統100之部分所圖示的程式模組可儲存於遠端記憶體儲存裝置中。應瞭解,此處所描述的網路連接為示例性的,且可使用建立電腦之間的通訊鏈路的其他構件。此外,儘管設想本揭示案之眾多實施例尤其適用於電腦化系統,但此文件中任何內容皆不意欲將本揭示案限於此等實施例。
遠端桌面系統為維護應用程式之電腦系統,該等應用程式可由用戶端電腦系統以遠端方式執行。輸入在用戶端電腦系統處進入,且該輸入經由網路(例如,使用基於國際電信聯盟(ITU) T.120協定家族的協定,諸如,遠端桌面協定(RDP))傳送至終端伺服器上之應用程式。該應用程式處理該輸入,如同該輸入是在終端伺服器處進入的。該應用程式回應於所接收的輸入而產生輸出,且該輸出經由網路傳送至用戶端電腦系統。該用戶端電腦系統呈現輸出資料。因此,在用戶端電腦系統處接收輸入且呈現輸出,而處理實際上在終端伺服器處發生。通信期可包括視窗框架(shell)及諸如桌面之使用者介面、追蹤桌面內滑鼠移動之子系統、將滑鼠點擊圖標轉化為實現程式之實例的命令之子系統,等等。在另一示例性實施例中,該通信期可包括應用程式。在此實例中,儘管呈現應用程式,但桌面環境仍可能經產生且向使用者隱藏。應理解,以上論述為示例性的,且本文所揭示之標的可在各種用戶端/伺服器環境中實施,而並非局限於特定的終端服務產品。
在大多數(若並非全部)遠端桌面環境中,(在用戶端電腦系統處輸入的)輸入資料通常包括提供命令至應用程式之滑鼠及鍵盤資料,且(在終端伺服器處由應用程式產生的)輸出資料通常包括顯示於視訊輸出裝置上的視訊資料。許多遠端桌面環境亦包括擴展至傳送其他類型資料的功能性。
通訊通道可用以藉由允許外掛程式經由RDP連接傳送資料來擴展該RDP協定。存在許多此等擴展。諸如列印機重定向、剪輯板重定向、通訊埠重定向等等之特徵使用通訊通道技術。因此,除輸入資料及輸出資料之外,可能存在許多需要傳送資料之通訊通道。因此,可能存在傳送輸出資料之偶然請求及爭奪可用網路頻寬之傳送其他資料的一或更多通道請求。
轉向第3圖,圖示示例性虛擬機器伺服器,該示例性虛擬機器伺服器可用以產生虛擬機器。在此實施例中,管理程序(Hypervisor)微核心(microkernel)302可經配置以控制且仲裁對電腦系統300之硬體的存取。管理程序微核心302可將一個分區中之處理與存取另一分區的資源隔離開。舉例而言,管理程序微核心302可產生稱為分區(諸如,子分區1至子分區N(其中N為大於1之整數))的執行環境。在此實施例中,子分區為由管理程序微核心302支援的隔離之基本單位。每一子分區可映射至在管理程序微核心302控制之下的硬體資源之集合,例如,記憶體、裝置、邏輯處理器週期,等等。在實施例中,管理程序微核心302可為獨立軟體產品、作業系統之一部分、母板之內嵌韌體、專用積體電路或上述之組合。
管理程序微核心302可藉由將客作業系統的記憶體視窗限制於實體電腦系統中來執行分割。當管理程序微核心302樣例化(instantiates)虛擬機器時,管理程序微核心302可將系統實體記憶體(system physical memory;SPM)之頁面(例如,具有開始位址及結束位址之記憶體的定長塊(fixed length blocks))作為客戶端的實體記憶體(guest physical memory;GPM)分配至虛擬機器。在此實施例中,客戶端的系統記憶體之受限視窗受到管理程序微核心302的控制。術語”客戶端的實體記憶體”為以虛擬機器之觀點描述記憶體之頁面的簡略表達方法,且術語”系統實體記憶體”為以實體系統之觀點描述記憶體之頁面的簡略表達方法。因此,分配至虛擬機器之記憶體之頁面將具有客戶端的實體位址(由虛擬機器使用的位址)及系統實體位址(頁面之實際位址)。
客作業系統可虛擬化客戶端的實體記憶體。虛擬記憶體為管理技術,該管理技術允許作業系統超額允入(over commit)記憶體並提供應用程式獨佔存取連續的工作記憶體。在虛擬化環境中,客作業系統可使用一或更多頁表(page table)來轉化虛擬位置,如我們所知的,將虛擬客戶端位址轉化成客戶端實體位址。在此實例中,記憶體位址可具有客戶端虛擬位址、客戶端實體位址及系統實體位址。
在所示實例中,父分區(parent partition)組件亦可認為與Xen的開放原始碼管理程序之域0(domain 0)相似,該父分區組件可包括主機304。主機304可為作業系統(或配置公用程式之集合),且主機304可經配置以將資源提供至客作業系統,該等客作業系統在子分區1-N中藉由使用虛擬化服務提供者(virtualization service providers;VSPs) 328來執行。VPS 328通常在開放原始碼社群中稱為後端驅動程式,VPS 328可用以藉由虛擬化服務用戶端(virtualization service clients;VSCs)(通常在開放原始碼社群或半虛擬化裝置中稱為前端驅動程式)將介面多工至硬體資源。如圖所示,虛擬化服務用戶端在客作業系統之上下文內執行。然而,此等驅動程式不同於客戶端中之其餘驅動程式,不同之處在於,此等驅動程式可具備管理程序而非具備客戶端。在示例性實施例中,用以藉由虛擬化服務提供者328與虛擬化服務用戶端316及318通訊之路徑可認為是虛擬化路徑。
如圖所示,仿真器334(例如,虛擬化IDE裝置、虛擬化視訊配接器、虛擬化NIC,等等)可經配置以在主機304內操作,且仿真器334附接至可用於客作業系統320及322之資源。舉例而言,當客OS觸控記憶體位置時,該記憶體位置映射至裝置之暫存器將映射至裝置或記憶體映射至裝置的位置,微核心管理程序302可截取請求且將客戶端嘗試寫入的值傳遞至相關聯仿真器。此實例中之資源可認為是虛擬裝置所處的位置。以此方式使用仿真器可視為仿真路徑。該仿真路徑比該虛擬化路徑效率低,因為該仿真路徑需要比該仿真路徑在VSP與VSC之間傳遞訊息所需要的CPU資源更多的CPU資源來仿真裝置。舉例而言,需要將記憶體映射至暫存器之數百個動作可簡化為單一訊息,該單一訊息在虛擬化路徑中自VSC被傳遞至VSP,而該需要將記憶體映射至暫存器係為了經由仿真路徑將值寫入磁碟。
每一子分區可包括一或更多虛擬處理器(330及332),客作業系統(320及322)可管理且排程在該一或更多虛擬處理器上執行的執行緒。通常,虛擬處理器為可執行指令及相關聯狀態資訊,該等可執行指令及相關聯狀態資訊提供具有特定架構之實體處理器之表示。舉例而言,一個虛擬機器可具有虛擬處理器,該虛擬處理器具有Intel x86處理器之特性,而另一虛擬處理器可具有PowerPC處理器之特性。此實例中之虛擬處理器可映射至電腦系統之邏輯處理器,以使得實現虛擬處理器之指令將由邏輯處理器傳回。因此,在包括多個邏輯處理器之實施例中,虛擬處理器可由邏輯處理器同時執行(例如其他邏輯處理器執行管理程序指令時)。在分區中虛擬處理器與記憶體之組合可視為虛擬機器。
客作業系統(320及322)可為任何作業系統,諸如,來自Microsoft、Apple、開放原始碼社群等等的作業系統。客作業系統可包括操作之使用者/核心模式,且客作業系統可具有可包括排程器、記憶體管理器等等之核心。大體而言,核心模式可包括邏輯處理器中之執行模式,該邏輯處理器之執行模式允許對於至少具有特權的處理器指令的存取。每一客作業系統可具有相關聯檔案系統,該等相關聯檔案系統可具有儲存於該等檔案系統上的應用程式(諸如終端伺服器、電子商務伺服器、電子郵件伺服器等等)及客作業系統本身。客作業系統可排程在虛擬處理器上執行的執行緒,且此等應用程式之實例可得以實現。
現參閱第4圖,圖示基於替代性架構之虛擬機器伺服器。第4圖圖示與第3圖之組件相似的組件;然而,在此示例性實施例中,管理程序402可包括微核心組件及與第3圖之主機304中的組件相似的組件,該等相似組件諸如虛擬化服務提供者328及裝置驅動程式324,而管理作業系統404可含有例如用以配置管理程序402之配置公用程式。在此架構中,管理程序402可執行與第3圖之管理程序微核心302相同或相似的功能;然而,在此架構中,管理程序404可經配置以提供資源至在子分區中執行的客作業系統。第4圖之管理程序402可為獨立軟體產品、作業系統之一部分、母板之內嵌韌體,或管理程序402之一部分可由專用積體電路來實現。
現轉向第5圖,圖示虛擬桌面伺服器500之高階方塊圖。在實施例中,虛擬桌面伺服器500可經配置以將虛擬桌面通信期(virtual desktop session;VDS)部署至用戶端,例如,諸如智慧型電話之行動裝置、具有與第1圖中所示組件相似的組件的電腦系統,等等。簡而言之,虛擬桌面技術允許使用者以遠端方式與在虛擬機器中執行的客作業系統互動。不同於遠端桌面通信期,在虛擬桌面通信期中,僅一個使用者登入客作業系統中,且僅一個使用者可完全控制該客作業系統,例如,該使用者可作為管理者執行且可對該客戶端具有完全的權利。在所示實例中,虛擬桌面伺服器500可具有與第3圖之電腦系統300或第4圖之電腦系統400相似的組件。在所示實例中,虛擬化平臺502為上文在第3圖及第4圖中所述之虛擬化基礎建設組件之邏輯抽象。在以下部分中描述為「內」虛擬化平臺502的功能性可在第3圖或第4圖中所示之一或更多元件中實施。舉例而言,虛擬桌面管理器530可在第3圖之主機304中實施。更具體言之,虛擬桌面管理器530可在執行於父分區中的主機作業系統中實施。
開始虛擬桌面通信期需要在虛擬機器內樣例化客作業系統。在示例性實施例中,虛擬桌面管理器530(例如,處理器可執行指令之模組)可回應於請求而啟動虛擬機器514(以及客作業系統528)。虛擬桌面管理器530可在邏輯處理器上執行且指示虛擬化平臺502(例如,微核心管理程序202),以針對分區來分配記憶體。虛擬化平臺502可在虛擬機器514內執行,且虛擬化平臺502可將虛擬裝置設定在虛擬機器514內,且虛擬化平臺502可將啟動載入器程式載入虛擬機器記憶體中。該啟動載入器程式可在虛擬處理器上執行,且該啟動載入器程式可載入客作業系統528。舉例而言,通信期管理器508可被載入,此舉可樣例化環境子系統,諸如,執行時間子系統526,執行時間子系統526可包括核心模式部件,諸如,作業系統核心510。舉例而言,實施例中之環境子系統可經配置以將服務之子集暴露至應用程式,且環境子系統可向核心520提供存取點。當客作業系統528經載入時,啟動載入器程式可退出且將對虛擬機器之控制移交給客作業系統528。客作業系統528可執行第5圖中所示之各種模組,且客作業系統528將本身配置成代管虛擬桌面通信期。舉例而言,客作業系統528可包括登錄值,該等登錄值使得遠端顯示引擎506及/或配置服務534在啟動之後開啟。
虛擬桌面通信期可在客作業系統528自用戶端經由網路接收連接請求時開始。連接請求可首先由遠端顯示引擎506來處理。遠端顯示引擎506可經配置以收聽連接訊息且將該等連接訊息轉送至通信期管理器508。如第3圖所示,當產生通信期時,遠端顯示引擎506可執行該通信期之協定堆疊實例。通常,該協定堆疊實例可經配置以將使用者介面輸出路由至相關聯用戶端並將自相關聯用戶端接收的使用者輸入路由至作業系統核心510。簡而言之,作業系統核心510可經配置以管理螢幕輸出;自鍵盤、滑鼠及其他裝置收集輸入。
使用者身份碼(例如,使用者名稱/通行碼組合)可由遠端顯示引擎506接收及傳遞至通信期管理器508。通信期管理器508可將該身份碼傳遞至登入程序,該登入程序可將該身份碼路由至認證引擎524,以進行驗證。認證引擎524可產生系統符記,只要使用者嘗試執行行程(process),以決定該使用者是否具有安全身份碼以執行該行程或執行緒時,就可使用該系統符記。舉例而言,當行程或執行緒嘗試獲得存取(例如,開啟、關閉、刪除及/或修改物件(例如,檔案、設定或應用程式))時,該執行緒或行程可由安全子系統522認證。安全子系統522可依照與物件相關聯的存取控制列表來檢驗系統符記且基於系統符記及存取控制列表中之資訊比較決定該執行緒是否具有許可。若安全子系統522決定該執行緒係經授權,則可允許該執行緒存取物件。
繼續描述第5圖,在實施例中,作業系統核心510可包括圖形顯示介面(graphics display interface;GDI) 516及輸入子系統512。示例性實施例中之輸入子系統512可經配置以自用戶端經由虛擬桌面通信期之協定堆疊實例接收使用者輸入且將該輸入發送至作業系統核心510。該使用者輸入可在一些實施例中包括指示絕對的及/或相對的滑鼠移動命令、滑鼠座標、滑鼠點擊、鍵盤信號、操縱桿移動信號等等的信號。使用者輸入(例如,滑鼠雙擊圖標)可由作業系統核心510接收,且輸入子系統512可經配置以決定圖標位於與該雙擊相關聯的座標處。輸入子系統512可隨後經配置以將通知發送至執行時間子系統526,執行時間子系統526可執行與該圖標相關聯之應用程式之行程。
可自應用程式及/或桌面接收描繪命令,且該等描繪命令可由GDI 516處理。GDI 516通常可包括可產生圖形物件描繪命令之行程。此示例性實施例中之GDI 516可經配置以將命令傳遞至遠端顯示子系統518,遠端顯示子系統518可樣例化該通信期之顯示驅動程式。在示例性實施例中,遠端顯示子系統518可經配置以包括虛擬顯示驅動程式,該等虛擬顯示驅動程式可經配置以接收描繪命令且將該等描繪命令發送至用戶端。
在第5圖中亦圖示配置服務534。在示例性實施例中,配置服務534可用以將客作業系統528設定成在由用戶端連接之前執行虛擬桌面通信期。舉例而言,配置服務534可在客作業系統528內執行,且配置服務534可在客作業系統528啟動時執行。由於某些配置設定需要管理特權,故配置服務534可經配置以作為具有系統範圍的特權的行程來執行。配置服務534可採取的示例性動作中之一些包括(但不限於)以下動作:向客作業系統528之管理使用者之列表添加使用者的帳戶識別符;向經授權虛擬桌面使用者之列表添加帳戶識別符;設定登錄值;開啟客作業系統防火牆;以及開啟埠,遠端顯示引擎506在該埠上等待(listen)連接。在以下段落中更詳細地描述配置服務534。
在示例性實施例中,可在虛擬化平臺502與客作業系統528之間建立通訊通道,以配置且控制客作業系統528。由於遠端使用者可完全控制虛擬機器514,故需要適當的安全性,以確保用以配置且控制客作業系統528之任何通道亦不可用以攻擊虛擬化平臺502或連接至內部網路的其他電腦系統。傳統地,網路通訊通道用以設定且控制客作業系統528。然而,當客作業系統528不在與虛擬化平臺502相同的網路網域中時,網路通道難以部署,且虛擬化平臺502經配置以拒絕來自網域外的進入連接請求。
在示例性實施例中,分區間通訊通道504可用以與配置伺服器534通訊,以配置及/或管理虛擬桌面通信期。分區間通訊通道504可經配置以隱含地受到虛擬機器514信任而非受到虛擬化平臺502信任。在此實例中,資訊(例如,資料及/或命令)可易於路由至客作業系統528,而不需要對該資訊進行任何驗證。另一方面,自虛擬機器514接收的資料可在虛擬化平臺502採取動作之前進行驗證且認證。此外,因為分區間通訊通道504不使用網路連接,所以客作業系統528可不接近內部網路。
因為僅虛擬化平臺502可產生分區間通訊通道504,所以分區間通訊通道504可隱含地受到虛擬機器514信任,亦即,經由該通道接收的資訊經固有地認證/驗證。舉例而言,在實施例中,分區間通訊通道504可至少部分地作為在虛擬機器514與虛擬化平臺502之間共享的記憶體之區域來實施。虛擬化平臺502可使指示環形緩衝區或環形緩衝區之類似物的資料結構建立於共享記憶體之區域中,該共享記憶體可用作虛擬化平臺502與虛擬機器514之間的全雙工通訊通道。在示例性實施例中,該分區間通訊通道可包括在標題為「Partition bus」的美國專利第7,689,800號中所描述的特徵,該專利之內容以引用之方式全部併入本文。
虛擬化平臺502可將資訊寫入分區間通訊通道504,該資訊可由虛擬機器514讀取。在示例性實施例中,分區間通訊通道504可以訊息為基礎。亦即,虛擬化平臺502及虛擬機器514可經配置以將資料封包寫入分區間通訊通道504。在相同或另一示例性實施例中,分區間通訊通道504可經事件驅動。在此配置中,當資訊經寫入通道時,可指示接收器自分區間通訊通道504由例如第3圖之管理程序302讀取該資訊。
現轉向第6圖,圖示資料中心之高階方塊圖,該資料中心包括虛擬桌面伺服器500、虛擬桌面伺服器602、授權伺服器604、仲介伺服器608、閘道612及用戶端614。該資料中心可經配置以將虛擬桌面通信期部署至用戶端。在所示實例中,虛擬化平臺502、虛擬桌面伺服器602、授權伺服器604、仲介伺服器608及閘道612可為內部網路之部分,且用以登入此等電腦之使用者身份碼可為相同域之成員,亦即,基礎建設領域520。將基礎建設領域520以虛線圖示,該等虛線將虛擬桌面伺服器500分割成兩半,以圖示在示例性實施例中,虛擬機器514可為不同域之部分或不為任何域之部分。
該資料中心可包括內部網路,該內部網路耦接複數個虛擬桌面伺服器(602及500),該複數個虛擬桌面伺服器可包括與第3圖或第4圖所示之組件、仲介伺服器608及授權伺服器604相似的組件。如熟習此項技術者可瞭解的,儘管圖示了兩個虛擬桌面伺服器,但該資料中心可具有更多虛擬桌面伺服器。又,儘管虛擬桌面伺服器500圖示為執行一個虛擬機器(514),但每一虛擬桌面伺服器可同時代管許多虛擬機器。或換言之,該資料中心可具有M個(其中M為大於1之整數)虛擬桌面伺服器,且M個虛擬化主機中之每一主機可代管N個(其中N亦為大於1之整數)虛擬機器。
仲介伺服器608可充當與用戶端614之內部網路的介面。簡而言之,仲介伺服器608可包括與關於第2圖所描述的組件相似的組件。仲介伺服器608可具有一網路配接器及另一網路配接器,該網路配接器將仲介伺服器608介面連接至公眾網路(諸如,網際網路),該另一網路配接器將仲介伺服器608介面連接至內部網路(亦即,企業內部網路)。在此實例中,仲介伺服器608可充當內部網路之閘道,藉此允許虛擬桌面伺服器及授權伺服器604不接近公眾網路。
當用戶端614之使用者需要虛擬桌面通信期時,該使用者可點擊圖標,且用戶端614可將一或更多資訊封包發送至仲介伺服器608。仲介伺服器608可包括軟體指令之模組,該軟體指令之模組在執行之後使得邏輯處理器選擇適合的虛擬化主機,以樣例化虛擬機器來代管該虛擬桌面通信期。使用者身份碼(例如,使用者名稱及通行碼組合)可經收集,且仲介伺服器608可檢驗通信期資料庫610,以決定資料中心是否包括任何斷開的與使用者身份碼(諸如,使用者名稱/通行碼組合)相關聯的虛擬桌面通信期。若通信期資料庫610包括斷開的與使用者身份碼相關聯的虛擬桌面通信期,則仲介伺服器608可發送信號至虛擬化主機,該虛擬化主機具有斷開的通信期且指示該斷開的通信期執行該虛擬機器。若通信期資料庫610不具有指示該使用者之斷開通信期的資訊,則仲介伺服器608可選擇適合的虛擬桌面伺服器,例如,具有可用於樣例化虛擬機器來代管虛擬桌面通信期之資源的虛擬桌面伺服器。
虛擬化平臺502可樣例化虛擬機器514且在虛擬處理器上執行客作業系統528。返回參閱第5圖,客作業系統528可執行遠端顯示引擎506;將虛擬NIC 616之網際網路協定(internet protocol;IP)位址傳回至仲介伺服器608;以及等待來自用戶端614之連接。仲介伺服器608可將虛擬NIC 616之IP位址以資訊封包之形式傳回至用戶端614,該資訊封包使得用戶端614之邏輯處理器將用戶端重定向至虛擬機器514之IP位址。閘道612可接收連接請求且將該連接請求轉送至虛擬NIC 616。
在至少一個示例性實施例中,通信期管理器508可經配置以查核用戶端614在開始虛擬桌面通信期之前是否與有效的許可證相關聯。遠端顯示引擎506可自用戶端614接收許可證(或與許可證相關聯的資訊)且將該資訊發送至虛擬化平臺502,虛擬化平臺502可將該許可證(或與許可證相關聯的資訊)發送至授權伺服器604。授權伺服器604可包括許可證驗證引擎606,許可證驗證引擎606可經配置以決定與用戶端614相關聯的許可證是否有效。若該許可證有效,則許可證驗證引擎606可將信號發送回至虛擬桌面伺服器500,且可開始虛擬桌面通信期。此時,遠端顯示引擎506可將指示客作業系統528之圖形使用者介面的一或更多資訊封包串流至用戶端614,且遠端顯示引擎506可接收指示來自用戶端614之使用者輸入的一或更多資訊封包。
在示例性實施例中,當虛擬化平臺502自仲介伺服器608接收樣例化虛擬機器的請求時,虛擬桌面管理器530可執行命令及/或資訊且將命令及/或資訊經由分區間通訊通道504發送至虛擬機器514,以使得客作業系統528經配置以執行虛擬桌面通信期。配置服務534可接收該等命令及/或資訊且相應地配置客作業系統528。舉例而言,虛擬桌面管理器530可發送嘗試連接的使用者之識別、保護客作業系統528的防火牆之所要設定、登錄值、允許使用者操作的應用程式之列表、啟用虛擬桌面通信期的命令及向經授權虛擬桌面使用者之列表添加使用者之識別的命令,等等。配置服務534可在虛擬處理器上執行且改變適當設定。
一旦執行虛擬桌面通信期,則虛擬桌面管理器530可經由分區間通訊通道504管理正在執行的虛擬桌面通信期。舉例而言,虛擬桌面管理器530可向虛擬機器514發出命令,諸如,引起客作業系統528關閉的命令、斷開使用者的命令、重設客作業系統528的命令,等等。在相同或另一實施例中,虛擬桌面管理器530可管理虛擬桌面通信期接收虛擬機器514之狀態資訊、來自遠端顯示引擎506之狀態資訊,及/或虛擬桌面管理器530可將控制該虛擬桌面通信期之命令發送至配置服務534。舉例而言,虛擬桌面管理器530可接收虛擬機器514之狀態資訊,該狀態資訊指示虛擬機器514是否正在執行、暫停、就緒、啟動,且虛擬桌面管理器530可接收IP位址之列表,該IP位址之列表可發送至用戶端。此外,虛擬桌面管理器530可接收客作業系統528之狀態資訊(諸如,用於登入虛擬桌面通信期之使用者之識別),且虛擬桌面管理器530可將此資訊中之一些或全部傳達至仲介伺服器608。
第7圖圖示示例性系統,其中用戶端具有工作區,該工作區包含遠端通信期,該等遠端通信期具有複數個伺服器。
第7圖中所示之電腦可與第1圖中所示之電腦相似。在第7圖中,用戶端702與部署700通訊,部署700包含認證伺服器704、連接仲介706、閘道708、遠端應用程式伺服器群714(遠端應用程式伺服器群714又包含兩個同質(homogenously)配置的伺服器,亦即遠端應用程式伺服器716a與716b)及VM伺服器群710(VM伺服器群710又包含兩個同質配置的VM,即VM 712a與712b)。
用戶端702具有工作區,該工作區包含多個遠端資源,該多個遠端資源由一或更多遠端應用程式伺服器716及VM 712提供。用戶端702可經由認證伺服器704登入用戶端702之工作區。一旦用戶端連接至用戶端之工作區的請求經認證,則將該請求自認證伺服器704傳輸至連接仲介706。連接仲介706經配置以作為用戶端702與應用程式伺服器716及VM 712之間的連接仲介,該等應用程式伺服器716及VM 712將提供遠端資源給用戶端702,且為實現此目的,連接仲介706經配置以與應用程式伺服器716及VM 712通訊,以決定應用程式伺服器716及VM 712目前提供哪些資源(包括用戶端702之使用者之斷開的遠端資源)。
用戶端702可具有工作區,該工作區包含多個遠端資源--包含來自遠端應用程式伺服器716a之遠端應用程式的遠端資源,及包含來自VM 712a之VM的遠端資源。如所圖示的,用戶端702不具有帶有遠端應用程式伺服器716b或VM 712b之遠端資源。遠端應用程式伺服器716及VM 712可各自提供不同的應用程式或桌面、應用程式之版本或其他排列。例如,遠端應用程式伺服器716a可提供遠端文字處理器應用程式給用戶端702,而VM 712可提供遠端桌面給用戶端702。
如經由此描述可見,當使用者希望重新連回至使用者之工作區時,該使用者可能希望經由一個命令而非經由執行三次的一個命令重接至遠端應用程式伺服器716a及VM 712a兩者之遠端資源。該使用者可自用戶端702或自另一用戶端電腦(諸如,其中用戶端702為使用者工作時的電腦,且該使用者希望自週末在家時的電腦重接)執行此重接操作。
第8圖圖示針對用戶端重接至工作區之遠端資源的示例性通訊流程。
第8圖圖示系統中之示例性通訊流程,其中用戶端重接工作區,該工作區包含遠端通信期,該等遠端通信期具有複數個伺服器。此通訊流程可在系統(諸如,第7圖中所示之電腦系統)中實現。亦即,第8圖之遠端部署800、用戶端802、認證伺服器804、連接仲介806、閘道808、VM群810及VM 812a可分別與第7圖之遠端部署700、用戶端702、認證伺服器704、連接仲介706、閘道708、VM群710及VM 712a相似。
用戶端802之使用者先前已具有遠端伺服器群800之工作區,遠端伺服器群800涉及存取來自VM 812a之遠端資源,且現斷開此工作區。甚至在用戶端802嘗試重接至部署800之前,認證伺服器804將文件(經由通訊(1))發佈至用戶端802,用戶端802識別關於部署800之資訊,用戶端802可使用此資訊來存取部署800之遠端資源。用戶端802隨後藉由將通訊(2)發送至認證伺服器804來重接。認證伺服器804驗證使用者及/或用戶端之身份碼(諸如,登入及通行碼)。在身份碼經驗證的情況下,認證伺服器804與連接仲介806通訊,以決定當用戶端802重接用戶端802之工作區時,用戶端802應重接哪些遠端資源(此處為VM 812a)。認證伺服器804藉由以下操作來作此決定:將通訊(3)發送至連接仲介806,且作為回應,在通訊(4)中接收回伺服器群(此處為VM群810)之列表,以供用戶端802重接時使用。在通訊(4)中指示的此資訊由認證伺服器804傳遞至通訊(5)中之用戶端802。
當用戶端802具有自認證伺服器804被重接的伺服器之列表時,用戶端802重建與彼等伺服器群中之每一伺服器群的通訊。如第8圖中所示,該伺服器群為VM群810。用戶端802與閘道808通訊(6),以存取此等伺服器群之遠端資源。閘道808處理通訊(6)且又與連接仲介806通訊(7),以傳送相似資訊。連接仲介806自通訊(7)對伺服器群進行識別,且自通訊(7),連接仲介806識別群810內的機器(VM 812a),該機器具有斷開的遠端資源。連接仲介806將通訊(8)發送至VM 812a,從而指示VM 812a將遠端資源重接至用戶端802。VM 812a藉由以下操作來與用戶端802重接:將指示相同資訊的通訊(9)發送至閘道808,閘道808又將指示相同資訊的通訊(10)發送至用戶端802。
可能瞭解,此圖為強調本發明之簡圖,且更多或更少的伺服器群可存在及/或被重接,且可更多地涉及到所傳遞的通訊(例如,結果顯示,通訊(9)及通訊(10)建立VM 812a與用戶端802之間的重接,其中此舉亦可涉及自用戶端802經由閘道808發送至VM 812a的通訊)。
用於實施以上所提及的虛擬機器之所有此等變化僅為示例性實施,且本文任何內容皆不應解釋為將本揭示案限於任何特定的虛擬化態樣。
繼承產品啟動
軟體反盜版解決方案通常藉由將軟體許可證連結至個別電腦硬體來操作,該連結係藉由為電腦建立硬體ID或指印來執行。由於該硬體為虛擬化的,故虛擬化使得此等解決方案不可靠。該指印可經編輯或複製,因此該指印可用來複製或竊用軟體。舉例而言,用以啟動軟體應用程式之硬體設定檔快照可經複製且用以非法地授權額外的複本。此外,典型的伺服器虛擬化情況按需要將虛擬機器自一個主機移動至另一主機。此舉可中斷連結至硬體指印之軟體授權解決方案。
本文揭示了繼承啟動機制可用以開啟自主機作業系統(OS)至客OS之安全通訊路徑之方法及系統。主機上軟體之許可證狀態可經由此通道進行傳遞,且安裝在客戶端中之軟體可使用此資訊通知軟體自身的產品啟動過程。當滿足主機之許可證要求時,該虛擬化的(客戶端)軟體可隨後在沒有任何外部通訊的情況下啟動。此種機制可用以在虛擬化環境中之端點之間以受信任的方式交換啟動資訊。
啟動大體而言可代表基於購買證明或某一其他事件或動作來改變軟體之功能性的技術。在實施例中,繼承啟動機制可開啟自主機OS至一或更多虛擬機器之安全通訊路徑。授權資訊包括安裝於主機上的軟體之SKU、許可證狀態及其他資料,該授權資訊可經由此通道進行傳遞,且客戶端可使用此資料通知客戶端自身的產品啟動過程。舉例而言,當安裝在客戶端中的OS受到所安裝的許可證允許時,該OS在接收到主機OS已被啟動的證明時,可在沒有任何外部通訊或使用者互動的情況下啟動。此外,藉由繼承主機OS之啟動狀態,只要主機系統經適當啟動,則客OS即使在主機之間進行移動時亦可保持啟動。
此種繼承啟動機制可例如向代管提供者及雲端計算供應商提供益處。利用繼承啟動機制,實體主機電腦可使用任何區域基礎建設或其他用於產品啟動的方法。在此等主機上執行的虛擬客戶端可繼承啟動資料,但該等虛擬客戶端將不需要任何可見度或對由該等主機使用的啟動基礎建設的存取。敏感資料(諸如,產品密鑰)不需要被共享,且客戶資產可受到保護。
在一個實施例中,主機OS可經配置以支援繼承啟動機制。主機OS可為OS本身及為任何解決方案知覺軟體收集或維護許可證資料。此資料可由主機OS保護,且此資料可用於經由虛擬化引擎執行客戶端環境。此通訊可實施為自客戶端查詢且自主機回應。然而,該繼承啟動機制不限於此種通訊模型。該繼承啟動機制亦可支援許可證資料,自主機將該許可證資料推入(未作出請求)至客戶端,該資料表現為用於無線通訊(ad hoc)存取及其他通訊模型的可讀取表或其他資料儲存。該主機亦可使用繼承啟動通訊通道來將策略資訊傳遞至虛擬機器。
該繼承啟動機制不限於虛擬機器中之啟動軟體應用程式。該機制通常可用以啟動軟體應用程式之虛擬實例,無論該應用程式是否在客戶端虛擬機器分區之上下文中執行。舉例而言,網路伺服器可代管應用程式X之虛擬化的通信期。應用程式X亦可局部地經安裝且適當啟動。當應用程式X之虛擬化的實例藉由繼承主機上應用程式X之許可證狀態而產生時,應用程式X之虛擬化的實例將保持啟動。
當正在被通訊的資料可經保護以變得值得信任時,該繼承啟動機制不需要特定的驗證或加密方法。雖然用於交換啟動資訊之通訊路徑可使用安全的方法(諸如,PKI或單向雜湊),但只要啟動資訊針對軟體出版商之需要充分地值得信任,便可採用任何機制。在一些實施例中,若應用程式出版商不需要安全機制,則通訊路徑可不採用安全機制。通訊路徑之安全性可為基於應用程式及應用程式出版商之需要提出的設計決策。
如上所述,虛擬化引擎為在主機OS之上的軟體,虛擬環境執行於該主機OS中。在一個實施例中,該虛擬引擎可提供用於在主機OS與任何執行客戶端環境之間進行通訊的安全通道。在客戶端環境內,客OS可經配置以支援該虛擬化引擎之繼承啟動功能性。此客OS可經配置以對任何支援繼承啟動的軟體,允許經由虛擬化引擎存取啟動資訊。此支援繼承啟動的軟體可包括OS本身以及其他應用程式。
針對主機上支援繼承啟動的軟體(包括OS及其他應用程式),可收集許可證的特定資料。軟體之出版商可決定收集哪些資料、如何儲存及保護該資料及如何在客戶端上接收且評估該資料。
可經收集的資料之實例可包括:
軟體識別符(模型或SKU ID、應用程式ID,等等)
序列號
版本標號
許可證狀態
來自主機許可證(諸如,策略、限制、許可證,等等)之值
來自有效客戶端之資料可經收集,諸如
安裝的軟體資料(SKU資料、許可證狀態,等等)
客戶端之數目
庫存計量單位(stock-keeping unit;SKU)為用於任何可經追蹤的不同的產品或服務之唯一識別符。
在典型的軟體啟動情況下,資訊可經收集且與嵌入XrML許可證或其他受信任的文件中的規則集相比較。此等規則集建立證明該軟體是否經適當授權的條件。傳統上,此等條件可包括(但不限於)產品密鑰、與受信任的主機之連接、秘密資訊之所有權、與密碼裝置之實體連接,等等。藉由引入系統在虛擬機器(客戶端)內執行且存在滿足授權要求的特定條件的要求,可將該繼承啟動機制添加至此等規則之範疇。當此等條件得到滿足時,軟體可啟動。
諸如軟體開始、系統啟動、登入事件或計時器之事件皆可開始該過程。為防止盜竊,可頻繁地更新啟動。用於任何啟動或再啟動之頻率、持續時間及觸發器可由軟體出版商決定。
在一個實施例中,啟動資訊可包括繼承啟動之存放期。舉例而言,該資訊可包括時間及日期戳,該時間及日期戳建立針對啟動之期滿。藉由使用此期滿,由於受時間限制的啟動,所以啟動資訊之未經授權的複本將具有受限的公用程式。使用受信任的繼承啟動之虛擬機器可繼續經由安全通道接收更新的存放期資訊,因此只要虛擬機器經授權繼續使用該啟動軟體,則該虛擬機器即可繼續使用該啟動軟體。
在實施例中,主機可使用資產管理之交換資訊。舉例而言,該主機可自虛擬機器收集SKU資料,且該主機使用該資訊來追蹤應用程式或服務之使用者的數目。此資訊可用以管理及限制啟動之總數目。
在第9圖中所示之繼承啟動機制之一個說明性實例中,虛擬機器主機900可實施每一虛擬機器客戶端實例之虛擬服務提供者(VSP) 925及工作者行程935。VSP 925可在啟動之後藉由利用VMBus基礎建設920來提供與虛擬機器客戶端之連接。VMBus基礎建設920可暴露API設定,以允許在根分區與虛擬機器客戶端之間進行通訊。主機VSP 925可等待虛擬機器客戶端910連接,且在連接之後,主機VSP 925可使用VMbus管道/處理(pipe/handle)920將資料寫入虛擬機器客戶端910及自虛擬機器客戶端910讀取資料。VSP 925不解譯自虛擬機器客戶端910讀取的安全資料,而是VSP 925將此資料中繼至執行於主機上的授權應用程式940。基於自虛擬機器客戶端910讀取的資訊以及主機機器上之授權狀態,主機授權服務建立返回至VSP 925之安全的授權狀態封包。VSP 925經由VMBus管道920將此資料寫回至虛擬機器客戶端910。
繼承啟動機制之客戶端虛擬組件可在虛擬機器客戶端上的授權應用程式之實例內經代管。用戶端組件使用VMBus基礎建設,以自匹配某一標準的主機列舉連接,該標準允許VMBus基礎建設找尋且開啟與主機VSP的連接。此連接作為合成裝置暴露於客戶端虛擬機器中之應用程式。藉由使用API,資料可經由該合成裝置自主機讀取及寫入主機,以交換與授權相關的資訊。執行於客戶端虛擬機器上的許可證應用程式使用授權狀態封包以決定該客戶端虛擬機器是否經適當地授權,該許可證應用程式經由主機VSP間接地獲得該授權狀態封包。
在一個實施例中,該繼承啟動機制可巢套於虛擬機器架構內。舉例而言,主機虛擬機器可將繼承啟動資訊發送至客戶端虛擬機器。客戶端虛擬機器可又產生一或更多額外的虛擬機器,該一或更多額外的虛擬機器中之每一者又可繼承該啟動資訊,等等。在其他實施例中,該繼承啟動機制可經配置以僅用一個主機操作,以便不允許啟動資訊之巢套。
本文所揭示的原理不限於以上所述的實施例。經繼承的啟動不必限於客戶端虛擬機器。該繼承啟動可用以將啟動產品之第二虛擬化的實例啟動。
第10圖圖示用於在虛擬化計算環境中啟動軟體產品的示例性操作程序,該示例性操作程序包括操作1000、1002、1004及1006。參閱第10圖,操作1000開始操作程序,且操作1002圖示在虛擬化計算環境中第一父分區上啟動軟體產品的第一實例,其中該啟動步驟係基於至少部分地在該第一父分區之配置上導出的資訊。操作1004圖示擷取該資訊。操作1006圖示使用該資訊來啟動該軟體產品之第二實例。
第11圖圖示用於在虛擬化計算環境中啟動軟體產品的示例性系統及操作程序。參閱第11圖,系統1100包含處理器1110及記憶體1120。記憶體1120進一步包含電腦指令,該等電腦指令經配置以在虛擬化計算環境中啟動軟體產品。方塊1122圖示啟動主機虛擬機器上之軟體產品之第一實例。方塊1124圖示產生指示該軟體產品在主機虛擬機器上經啟動之資訊。方塊1126圖示使用該資訊來啟動該軟體產品之第二實例。
以上所提及的態樣中之任一態樣可在方法、系統、電腦可讀取媒體或任何類型的製造中實施。舉例而言,電腦可讀取儲存媒體可儲存該儲存媒體上的電腦可執行指令,該等電腦可執行指令係用於在虛擬化計算環境中啟動軟體產品。此等媒體可包含:指令之第一子集,該指令之第一子集用於在虛擬化計算環境中第一父分區上啟動第一軟體產品,其中該啟動係基於至少部分地在該第一父分區之配置上導出的資訊;指令之第二子集,該指令之第二子集用於擷取該資訊;以及指令之第三子集,該指令之第三子集用於使用該資訊來啟動該第一父分區之子分區中的第二軟體產品。熟習此項技術者將瞭解,指令之額外的集合可用以擷取本文所揭示的各種其他態樣,且根據本揭示案目前所揭示的指令之子集可在細節上有所不同。
上文的詳細描述已經由實例及/或操作圖闡述了系統及/或過程之各種實施例。在此等方塊圖及/或實例含有一或更多功能及/或操作的情況下,熟習此項技術者將理解,此等方塊圖或實例內的每一功能及/或操作可由各種硬體、軟體、韌體或實際上硬體、軟體、韌體之任何組合來個別地及/或共同地實施。
應理解,本文所描述的各種技術可結合硬體或軟體,或在適當情況下結合硬體與軟體之組合來實施。因此,本揭示案之方法及設備或本揭示案之某些態樣或部分可採取實施於有形媒體中的程式碼(亦即,指令)的形式,該等有形媒體諸如軟碟、CD-ROM、硬驅動機或任何其他機器可讀取儲存媒體,其中當程式碼經載入諸如電腦之機器且由該機器執行時,該機器變成用於實踐本揭示案之設備。在程式碼執行於可程式電腦上的情況下,計算裝置通常包括處理器、可由處理器(包括揮發性記憶體及非揮發性記憶體及/或儲存元件)讀取之儲存媒體、至少一個輸入裝置及至少一個輸出裝置。例如,經由使用應用程式介面(API)、可重複使用的控制或上述類似物,一或更多程式可實施或利用結合本揭示案所描述的過程。此等程式在高階程序程式設計語言或物件導向程式設計語言中較好實施,以與電腦系統進行通訊。然而,程式可在需要時以組合語言或機器語言來實施。在任何情況下,該語言可為編譯語言或解譯語言,且該語言可與硬體實施進行組合。
儘管已參閱本發明之較佳實施例特定圖示且描述了本發明,但熟習此項技術者將理解,在不脫離以下申請專利範圍中所闡述之本發明之範疇的情況下,可進行各種形式及細節上的改變。此外,儘管本發明之元件可以單數形式描述或主張,但除非明確敍述對單數形式的限制,否則可預期複數形式。
20...電腦
21...處理單元
22...系統記憶體
23...系統匯流排
24...唯讀記憶體
25...隨機存取記憶體
26...基本輸入/輸出系統
27...硬碟機
28...磁碟機/軟碟機
29...抽取式磁碟/抽取式儲存器
30...光碟機
31...抽取式光碟
32...硬碟機介面
33...磁碟機介面
34...光學驅動機介面
35...作業系統
36...應用程式
37...其他程式模組
38...程式資料
40...鍵盤
42...指標裝置/滑鼠
46...串列埠介面
47...顯示器
48...視訊配接器
49...遠端電腦
50...記憶體儲存裝置/軟碟機
51...區域網路
52...廣域網路
53...網路介面/配接器
54...數據機
55...主機配接器
56...小型電腦系統介面匯流排
62...儲存裝置
100...計算系統/電腦系統/電腦
102...邏輯處理器
104...隨機存取記憶體
106...儲存裝置
108...韌體
110...電腦可讀取儲存媒體
112...圖形處理器
114...網路介面卡
116...輸入裝置
118...抽取式儲存裝置
120...基本輸入/輸出系統
122...處理器可執行指令
300...電腦系統
302...管理程序(Hypervisor)微核心(microkernel)
304...主機
316...虛擬化服務用戶端
318...虛擬化服務用戶端
320...客作業系統
322...客作業系統
324...裝置驅動程式
328...虛擬化服務提供者
330...虛擬處理器
332...虛擬處理器
334...仿真器
400...電腦系統
402...管理程序
404...管理作業系統/管理程序
500...虛擬桌面伺服器
502...虛擬化平臺
504...分區間通訊通道
506...遠端顯示引擎
508...通信期管理器
510...作業系統核心
512...輸入子系統
514...虛擬機器
516...圖形顯示介面
518...遠端顯示子系統
520...核心/基礎建設領域
522...安全子系統
524...認證引擎
526...執行時間子系統
528...客作業系統
530...虛擬桌面管理器
534...配置服務
602...虛擬桌面伺服器
604...授權伺服器
606...許可證驗證引擎
608...仲介伺服器
610...通信期資料庫
612...閘道
614...用戶端
616...虛擬NIC
700...部署
702...用戶端
704...認證伺服器
706...連接仲介
708...閘道
710...VM伺服器群
712a...VM
712b...VM
714...遠端應用程式伺服器群
716a...遠端應用程式伺服器
716b...遠端應用程式伺服器
800...遠端部署
802...用戶端
804...認證伺服器
806...連接仲介
808...閘道
810...VM群
812a...VM
900...虛擬機器主機
910...虛擬機器客戶端
920...VMbus管道/處理/VMBus基礎建設
925...虛擬服務提供者
935...工作者行程(process)
940...授權應用程式
1000...操作
1002...操作
1004...操作
1006...操作
1100...系統
1110...處理器
1120...記憶體
1122...方塊
1124...方塊
1126...方塊
第1圖及第2圖圖示示例性電腦系統,其中可實施本揭示案之態樣。
第3圖圖示用於實踐本揭示案之態樣之作業環境。
第4圖圖示用於實踐本揭示案之態樣之作業環境。
第5圖圖示電腦系統,該電腦系統包括用於實現遠端桌面服務之電路系統。
第6圖圖示用於實踐本揭示案之態樣之作業環境。
第7圖圖示用於實踐本揭示案之態樣之作業環境。
第8圖圖示用於實踐本揭示案之態樣之作業環境。
第9圖圖示用於實踐本揭示案之態樣之示例性作業程序。
第10圖圖示用於實踐本揭示案之態樣之示例性作業程序。
第11圖圖示用於實踐本揭示案之態樣之示例性系統及作業程序。
900...虛擬機器主機
910...虛擬機器客戶端
920...VMbus管道/處理/VMBus基礎建設
925...虛擬服務提供者
935...工作者行程
940...授權應用程式

Claims (13)

  1. 一種用於在一虛擬化計算環境中啟動(activate)一軟體應用程式之方法,該方法包含以下步驟:在該虛擬化計算環境中一第一父分區上啟動該軟體應用程式的一第一實例,其中該啟動步驟包含符合針對該軟體應用程式的一授權機制;在該第一父分區和一子分區之間建立一安全通訊通道;將與該啟動步驟和該授權機制有關的資訊經由該安全通訊通道發送至該子分區;使用該資訊來啟動在該子分區中的該軟體應用程式之一第二實例,其中該資訊指示出針對啟動該第二實例的一預定期滿時間;以及將經更新期滿資訊經由該安全通訊通道發送至該子分區,該經更新期滿資訊允許繼續啟動該第二實例超過該預定期滿時間。
  2. 如請求項1所述之方法,該方法進一步包含以下步驟:將該資訊發送至該子分區,其中該資訊受到該子分區信任。
  3. 如請求項2所述之方法,該方法進一步包含以下步驟:自該子分區接收一請求,以啟動該第二實例,其中該發送步驟係回應於接收該請求之步驟。
  4. 如請求項1所述之方法,其中該第二實例為一虛擬化實例。
  5. 如請求項1所述之方法,該方法進一步包含以下步驟:將該子分區遷移至有啟動該軟體應用程式之一第二父分區,其中在該遷移步驟之後,在該子分區中保持啟動該第二實例。
  6. 如請求項1所述之方法,該方法進一步包含以下步驟:當該子分區被遷移至未啟動該軟體應用程式之一第二父分區時,撤消(deactivate)該第二實例。
  7. 如請求項1所述之方法,該方法進一步包含以下步驟:使用該資訊來啟動該軟體應用程式之多個實例。
  8. 如請求項7所述之方法,該方法進一步包含以下步驟:追蹤該軟體應用程式之一數目的經啟動實例且限制該數目的經啟動實例。
  9. 一種用於在一虛擬化計算環境中啟動一軟體應用程式之系統,該系統包含:一處理器;以及一記憶體,該記憶體被通訊地耦接至該處理器,該記憶體 載有處理器可執行指令,當在該處理器上執行該等處理器可執行指令時,將使該處理器執行包含以下步驟之操作:在一主機虛擬機器上啟動該軟體應用程式之一第一實例,其中該啟動步驟包含符合針對該軟體應用程式的一授權機制;在該主機虛擬機器和一客戶端虛擬機器之間建立一安全通訊通道;將與該啟動步驟和該授權機制有關的資訊經由該安全通訊通道發送至該客戶端虛擬機器;使用該資訊來啟動在該客戶端虛擬機器中的該軟體應用程式之一第二實例,其中該資訊指示出針對啟動該第二實例的一預定期滿時間;以及將經更新期滿資訊經由該安全通訊通道發送至該客戶端虛擬機器,該經更新期滿資訊允許繼續啟動該第二實例超過該預定期滿時間。
  10. 如請求項9所述之系統,該等操作進一步包含以下步驟:將該資訊發送至該客戶端虛擬機器,其中該資訊受到該客戶端虛擬機器信任。
  11. 如請求項9所述之系統,其中啟動該第二實例最多達該預定期滿時間,在該預定期滿時間之後撤消該第二實例。
  12. 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體排除暫時性訊號,該電腦可讀取儲存媒體於其上儲存有電腦可執行指令,該等電腦可執行指令係用於在一虛擬化計算環境中啟動一軟體應用程式,該電腦可讀取媒體包含用於以下步驟之指令:在該虛擬化計算環境中一第一父分區上啟動一第一軟體應用程式,其中該啟動步驟包含符合針對該第一軟體應用程式的一授權機制;在該第一父分區和一子分區之間建立一安全通訊通道;將與該啟動步驟和該授權機制有關的資訊經由該安全通訊通道從該第一父分區發送至該子分區;使用該資訊來啟動在該子分區中的一第二軟體應用程式,其中該資訊指示出針對啟動該第二軟體應用程式的一預定期滿時間;以及將經更新期滿資訊經由該安全通訊通道發送至該子分區,該經更新期滿資訊允許繼續啟動該第二軟體應用程式超過該預定期滿時間。
  13. 如請求項12所述之電腦可讀取儲存媒體,其中該第一軟體應用程式與該第二軟體應用程式為相同應用程式。
TW100135047A 2010-10-29 2011-09-28 用於虛擬機器之繼承產品啟動 TWI526931B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/916,093 US8832686B2 (en) 2010-10-29 2010-10-29 Inherited product activation for virtual machines

Publications (2)

Publication Number Publication Date
TW201218081A TW201218081A (en) 2012-05-01
TWI526931B true TWI526931B (zh) 2016-03-21

Family

ID=45913764

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100135047A TWI526931B (zh) 2010-10-29 2011-09-28 用於虛擬機器之繼承產品啟動

Country Status (6)

Country Link
US (2) US8832686B2 (zh)
CN (1) CN102411693B (zh)
AU (1) AU2011320582B2 (zh)
CA (1) CA2814982C (zh)
TW (1) TWI526931B (zh)
WO (1) WO2012058190A2 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9392078B2 (en) * 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
CA2764362A1 (en) * 2012-01-16 2013-07-16 Giovanni J. Morelli Rdp session monitor/control system and application
CA2764354A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Host-emulator bridge system and method
CA2764283A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Mobile device control application for improved security and diagnostics
TWI470550B (zh) * 2012-06-26 2015-01-21 Wistron Corp 虛擬機器的通信方法以及伺服端系統
US9043786B1 (en) * 2012-06-29 2015-05-26 Emc Corporation Blueprint-driven environment template creation in a virtual infrastructure
CN102868728B (zh) * 2012-08-23 2015-07-22 福建升腾资讯有限公司 在vdi环境下基于虚拟通道的网络代理方法
CN103906068B (zh) * 2012-12-26 2017-07-21 华为技术有限公司 虚拟基站创建方法及装置
US9436814B2 (en) 2013-01-22 2016-09-06 Empire Technology Development Llc Fail-safe licensing for software applications
US20170003993A1 (en) * 2013-03-06 2017-01-05 Siemens Aktiengesellschaft File Based License Management System in Virtualization Environment
EP2979181A4 (en) 2013-03-28 2016-08-24 Sphere 3D Inc SYSTEMS AND METHODS FOR PLACING AN EMULATOR
US9124569B2 (en) * 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment
US9483639B2 (en) * 2014-03-13 2016-11-01 Unisys Corporation Service partition virtualization system and method having a secure application
US9507921B2 (en) 2014-04-07 2016-11-29 Microsoft Technology Licensing, Llc User-specific application activation for remote sessions
FR3020160B1 (fr) * 2014-04-16 2017-08-11 Commissariat Energie Atomique Systeme d'execution de code avec mecanisme d'hypervision en aveugle
CN105282095A (zh) * 2014-06-18 2016-01-27 中兴通讯股份有限公司 虚拟桌面登录验证方法和装置
US9565190B1 (en) * 2014-11-07 2017-02-07 Amazon Technologies, Inc. Domain join and managed directory support for virtual computing environments
US9305147B1 (en) * 2015-06-08 2016-04-05 Flexera Software Llc Preventing license exploitation using virtual namespace devices
US10430220B1 (en) * 2015-09-24 2019-10-01 EMC IP Holding Company LLC Virtual devices as protocol neutral communications mediators
US10616311B2 (en) 2016-06-03 2020-04-07 At&T Intellectual Property I, L.P. Facilitating management of communications systems
CN108206760B (zh) * 2016-12-16 2020-11-17 南京联成科技发展股份有限公司 一种工业控制系统的安全运维架构
US20180260539A1 (en) * 2017-03-08 2018-09-13 Microsoft Technology Licensing, Llc Device specific identity linked to user account
US10579277B1 (en) * 2017-10-27 2020-03-03 EMC IP Holding Company LLC Non-disruptive insertion of virtualized storage appliance
CN108037931B (zh) * 2017-12-06 2021-02-02 广州路派电子科技有限公司 一种对微处理器存储单元进行文件烧写的方法
US10795974B2 (en) * 2018-05-31 2020-10-06 Microsoft Technology Licensing, Llc Memory assignment for guest operating systems
US11200300B2 (en) 2018-06-20 2021-12-14 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems
CN109547450A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 运行安全执行域的方法、装置、电子设备及计算机介质
CN109543460B (zh) * 2018-11-29 2021-02-23 北京元心科技有限公司 基于微内核对数据进行加解密的方法、装置及电子设备
RU2724796C1 (ru) 2019-02-07 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ защиты автоматизированных систем при помощи шлюза
RU2746105C2 (ru) 2019-02-07 2021-04-07 Акционерное общество "Лаборатория Касперского" Система и способ конфигурирования шлюза для защиты автоматизированных систем
FR3131490A1 (fr) * 2021-12-29 2023-06-30 Thales Procédé et système d'accès encadré d'au moins un opérateur externe à un ensemble d'opérations d'une infrastructure de calcul
CN114969670A (zh) * 2022-04-19 2022-08-30 北京月新时代科技股份有限公司 一种软件许可资源的管理方法、系统及计算机设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3882321B2 (ja) 1998-03-13 2007-02-14 株式会社日立製作所 オペレーティングシステムのモジュールプログラムを備えた計算機
EP1194840B1 (en) 1999-07-13 2005-02-09 Sun Microsystems, Inc. Digital television receiver for managing execution of an application according to an application lifecycle
DE10307408B3 (de) 2003-02-20 2004-09-02 Radioplan Gmbh Verfahren zur Ablaufsteuerung von sequentiellen objektorientierten Systemsimulationen der Kommunikation in Mobilfunknetzen
CN101241735B (zh) 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
US20060004667A1 (en) 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US7689800B2 (en) 2005-05-12 2010-03-30 Microsoft Corporation Partition bus
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7757214B1 (en) 2005-11-10 2010-07-13 Symantec Operating Coporation Automated concurrency configuration of multi-threaded programs
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20080183626A1 (en) 2007-01-31 2008-07-31 Francisco Romero Software license agreement management based on temporary usage
US20080201455A1 (en) 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
CA2680315A1 (en) 2007-03-09 2008-09-18 Objective Interface Systems, Inc. Optimized code generation through elimination of unused virtual functions
US8479194B2 (en) 2007-04-25 2013-07-02 Microsoft Corporation Virtual machine migration
US8875266B2 (en) 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
JP4907482B2 (ja) 2007-09-27 2012-03-28 株式会社日立製作所 計算機システム及びファイル管理方法
JP2009169864A (ja) 2008-01-18 2009-07-30 Panasonic Corp コンパイル方法およびコンパイルプログラム
CN101960464B (zh) * 2008-02-25 2013-01-16 松下电器产业株式会社 信息处理装置
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US9286448B2 (en) * 2010-06-09 2016-03-15 Grant Philip Cushion Enhanced software license management
US20120035942A1 (en) * 2010-08-06 2012-02-09 Sven Graupner Managing business relationships using a third-party service
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines

Also Published As

Publication number Publication date
AU2011320582A1 (en) 2013-05-02
US20140373014A1 (en) 2014-12-18
CN102411693A (zh) 2012-04-11
US20120110571A1 (en) 2012-05-03
CA2814982C (en) 2018-06-12
AU2011320582B2 (en) 2015-01-15
TW201218081A (en) 2012-05-01
WO2012058190A3 (en) 2012-06-28
US9830430B2 (en) 2017-11-28
CA2814982A1 (en) 2012-05-03
CN102411693B (zh) 2015-05-13
WO2012058190A2 (en) 2012-05-03
US8832686B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
TWI526931B (zh) 用於虛擬機器之繼承產品啟動
EP2622459B1 (en) Virtual desktop configuration and operation techniques
US10642634B2 (en) Method, apparatus and system for transparent unification of virtual machines
CN102420846B (zh) 企业用户对主存的虚拟机的远程访问
US8505083B2 (en) Remote resources single sign on
US9710297B2 (en) Dynamic allocation and assignment of virtual environment
US20120331032A1 (en) Remote Presentation Session Connectionless Oriented Channel Broker
US20090319806A1 (en) Extensible pre-boot authentication
US8813252B2 (en) Request based license mode selection
JP2013540323A (ja) 動的アプリケーション環境において証明可能なアイデンティティのセキュアな展開
CN111083166A (zh) 云数据库设置白名单的方法、装置及计算机存储介质
EP3516841B1 (en) Remote computing system providing malicious file detection and mitigation features for virtual machines
KR101498965B1 (ko) 가상화 기술을 이용한 내외부망 격리 시스템 및 방법
US20120079393A1 (en) Adaptable License Platform for Remote Sessions
US9411980B2 (en) Preventing modifications to code or data based on the states of a master latch and one or more hardware latches in a hosting architecture
US9032197B1 (en) Management of components in a hosting architecture
Banga et al. Trustworthy computing for the cloud-mobile era: A leap forward in systems architecture
WO2023041025A1 (zh) 基于云技术的计算节点及基于云技术的实例管理方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees