TWI559153B - 分散式計算架構 - Google Patents

分散式計算架構 Download PDF

Info

Publication number
TWI559153B
TWI559153B TW101111851A TW101111851A TWI559153B TW I559153 B TWI559153 B TW I559153B TW 101111851 A TW101111851 A TW 101111851A TW 101111851 A TW101111851 A TW 101111851A TW I559153 B TWI559153 B TW I559153B
Authority
TW
Taiwan
Prior art keywords
processing
work
computer system
computing device
mobile computing
Prior art date
Application number
TW101111851A
Other languages
English (en)
Other versions
TW201303613A (zh
Inventor
甘漢尼瑞吉里希古瑪
范海寧肯尼士
劉勁浩
拉森凱爾艾倫
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 TW201303613A publication Critical patent/TW201303613A/zh
Application granted granted Critical
Publication of TWI559153B publication Critical patent/TWI559153B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

分散式計算架構
本發明係關於分散式計算架構。
在勞動力中、在家庭裏、在行動裝置中及許多其他地方,電腦已經變得高度整合。電腦可快速及有效地處理大量資訊。設計為在電腦系統上執行之軟體應用程式允許使用者執行包括商業應用程式、課業、娛樂及更多者在內之多種功能。軟體應用程式經常設計為執行具體工作,諸如用於起草文件之文字處理器應用程式、用於發送、接收及組織電子郵件之電子郵件程式。
該等軟體應用程式正越來越多地在諸如行動電話、小筆電及平板電腦之較小、降低效能之計算裝置上執行。該等較小更多行動裝置經常在該等行動裝置處理能力方面受到較小中央處理單元(CPUs)、較少記憶體及電池壽命問題限制。因此,CPU密集軟體應用程式通常不在該等裝置上實施,及保留用於較大、通常固定之裝置。所以,降低效能之裝置之應用程式開發者限制開發者在開發者之應用程式中所包含之特徵結構。
此處所描述之實施例係針對將來自降低效能之(行動)電腦系統之處理工作分散至主電腦系統、處理自降低效 能之電腦系統接收之分散式工作及建立用於測試分散式計算架構功能性之模擬環境。在一個實施例中,降低效能之電腦系統監視計算工作以決定每一工作之處理資源使用位準。計算工作為軟體應用程式之部分,該軟體應用程式在降低效能之電腦系統上執行。降低效能之電腦系統決定受監視之工作中之一者正在使用超過指定臨限位準之處理資源。降低效能之電腦系統將工作發送至另一電腦系統,該另一電腦系統接收、處理及返回工作結果至降低效能之電腦系統。降低效能之電腦系統將自另一電腦系統接收之處理之結果呈現在執行軟體應用程式內部。
在另一實施例中,主電腦系統接收來自降低效能之電腦系統之待處理之各種軟體應用程式工作。主電腦系統建立用於處理接收之工作之虛擬執行環境。虛擬執行環境在隔離邊界中操作,該隔離邊界與電腦系統之其餘者隔離。主電腦系統在建立的虛擬執行環境中處理接收之工作,及將處理之工作結果發送至降低效能之電腦系統。
在又一實施例中,電腦系統建立模擬環境,該模擬環境允許分散式應用程式之測試。模擬環境允許開發者在部署應用程式之前在開發者自己的電腦系統上測試開發者之應用程式。電腦系統啟動主電腦系統及降低效能之電腦系統之模擬,及在模擬環境中執行以下動作:監視降低效能之電腦系統上之計算工作以決定每一工作之處理資源使用位準;決定受監視之工作中之至少一者正在 使用超過指定臨限位準之處理資源;發送決定之工作至不同電腦系統,該不同電腦系統在虛擬執行環境中接收及處理工作及返回工作結果至降低效能之電腦系統;及將處理之結果呈現在執行軟體應用程式內部。
提供此發明內容係以簡化形式介紹概念之選擇,在以下實施方式中將進一步描述該等概念。此發明內容並非意欲識別所主張標的之關鍵特徵結構或基本特徵結構,亦不意欲用於幫助決定所主張標的之範圍。
將在隨後之描述中闡明附加特徵結構及優點,及根據描述,附加特徵結構及優點將部分地變得顯而易見,或可藉由此處教示之實踐瞭解附加特徵及優點。本發明之特徵結構及優點可藉由在隨附申請專利範圍中特定指出之工具及組合實現及獲得。本發明之特徵結構將根據以下描述及隨附申請專利範圍變得更為完全顯而易見,或可藉由以下闡明之本發明之實踐瞭解本發明之特徵結構。
此處所描述之實施例係針對將來自降低效能之(行動)電腦系統之處理工作分散至主電腦系統、處理自降低效能之電腦系統接收之分散式工作及建立用於測試分散式計算架構功能性之模擬環境。在一個實施例中,降低效能之電腦系統監視計算工作以決定每一工作之處理資源使用位準。計算工作為軟體應用程式之部分,該軟體應 用程式在降低效能之電腦系統上執行。降低效能之電腦系統決定受監視之工作中之一者正在使用超過指定臨限位準之處理資源。降低效能之電腦系統將工作發送至另一電腦系統,該另一電腦系統接收、處理及返回工作結果至降低效能之電腦系統。降低效能之電腦系統將自另一電腦系統接收之處理之結果呈現在執行軟體應用程式內部。
在另一實施例中,主電腦系統接收來自降低效能之電腦系統之待處理之各種軟體應用程式工作。主電腦系統建立用於處理接收之工作之虛擬執行環境。虛擬執行環境在隔離邊界中操作,該隔離邊界與電腦系統之其餘者隔離。主電腦系統在建立的虛擬執行環境中處理接收之工作及將處理之工作結果發送至降低效能之電腦系統。
在又一實施例中,電腦系統建立模擬環境,該模擬環境允許分散式應用程式之測試。電腦系統啟動主電腦系統及降低效能之電腦系統之模擬,及在模擬環境中執行以下動作:監視降低效能之電腦系統上之計算工作以決定每一工作之處理資源使用位準;決定受監視之工作中之至少一者正在使用超過指定臨限位準之處理資源;發送決定之工作至不同電腦系統,該不同電腦系統在虛擬執行環境中接收及處理工作及返回工作結果至降低效能之電腦系統;及將處理之結果呈現在執行軟體應用程式內部。
以下論述現在指的是可執行之許多方法及方法的動 作。應注意,儘管當方法的動作以特定順序出現時可按照某一順序論述或在流程圖中圖示方法的動作,但是不必要要求特定排序除非有明確說明,或因為在執行動作前該動作取決於完成另一動作故要求特定排序。
本發明之實施例可包含或使用專用或通用電腦,該專用或通用電腦包括諸如一或更多個處理器及系統記憶體之電腦硬體,如下文更詳細論述。本發明範圍內之實施例亦包括用於傳送或儲存電腦可執行指令及/或資料結構之實體及其他電腦可讀取媒體。此等電腦可讀取媒體可為任何可用媒體,該任何可用媒體可由通用或專用電腦系統存取。以資料之形式儲存電腦可執行指令之電腦可讀取媒體為電腦儲存媒體。傳送電腦可執行指令之電腦可讀取媒體為傳輸媒體。因此,舉例而言而非限制,本發明之實施例可包含至少兩個明顯不同類之電腦可讀取媒體:電腦儲存媒體及傳輸媒體。
電腦儲存媒體包括RAM、ROM、EEPROM、CD-ROM、基於RAM之固態驅動機(SSDs)、快閃記憶體、相變記憶體(PCM),或其他類型記憶體,或其他光碟儲存裝置、磁碟儲存裝置或其他磁性儲存裝置,或可用於以電腦可執行指令、資料或資料結構形式儲存所欲程式碼構件及可由通用或專用電腦存取之任何其他媒體。
「網路」定義為一或更多個資料鏈路及/或資料開關,該一或更多個資料鏈路及/或資料開關賦能在電腦系統及/或模組及/或其他電子裝置之間之電子資料之傳輸。 當在網路(固線式、無線,或固線式或無線之組合)上傳遞或提供資訊至電腦時,電腦適當地將連接視為傳輸媒體。傳輸媒體可包括網路,該網路可用於傳送資料或以電腦可執行指令形式或以資料結構形式之所欲程式碼構件及可由通用或專用電腦存取。上述之組合應亦包括在電腦可讀取媒體範圍內。
進一步而言,以電腦可執行指令或資料結構形式之程式碼構件在到達各種電腦系統組件後可自動自傳輸媒體傳遞至電腦儲存媒體(或反之亦然)。舉例而言,在網路或資料鏈路上接收之電腦可執行指令或資料結構可在網路介面模組(例如,網路介面卡或「NIC」)內部之RAM中受到緩衝,及隨後最終傳遞至電腦系統RAM及/或至在電腦系統處之揮發性較少電腦儲存媒體。因此,應理解,電腦儲存媒體可包括在電腦系統組件內,該等電腦系統組件亦(或甚至主要地)使用傳輸媒體。
電腦可執行(或電腦可解譯)指令包含(例如)引起通用電腦、專用電腦或專用處理裝置執行某一功能或某組功能之指令。電腦可執行指令可為(例如)二進制、諸如組合語言之中間格式指令,或甚至原始碼。儘管已特定於結構性特徵結構及/或方法的動作之語言描述標的,但是應理解,在隨附申請專利範圍中界定之標的並非必要地受限於所述特徵結構或上述動作。確切而言,所述特徵結構及動作揭示為實施申請專利範圍之示例性形式。
彼等熟習此項技術者將理解本發明可在具有多種類型電腦系統配置之網路計算環境中實踐,該網路計算環境包括個人電腦、桌上型電腦、膝上型電腦、訊息處理器、掌上型裝置、多處理器系統、基於微處理器或可程式消費者電子設備、網路PC、小型電腦、大型電腦、行動電話、PDA、尋呼機、路由器、交換機及類似者。本發明亦可在分散式系統環境中實踐,在該等分散式系統環境中經由網路鏈接(或者藉由固線式資料鏈路、無線資料鏈路,或者藉由固線式及無線資料鏈路之組合)之本端及遠端電腦系統之每一者執行工作(例如,雲端計算、雲端服務及類似者)。在分散式系統環境中,程式模組可位於本端記憶體儲存裝置及遠端記憶體儲存裝置兩者中。
第1圖圖示電腦架構100,在該電腦架構100中可採用本發明之原理。電腦架構100包括兩個不同電腦系統。降低效能之電腦系統110可為任何類型小筆電、平板電腦、智慧電話或其他行動或電池操作之電腦系統,該降低效能之電腦系統110由於一個原因或另一原因比典型的桌上型電腦或膝上型電腦系統具有較小處理能力。此等降低效能之裝置具有處理資源,該等處理資源受到諸如大小、電池壽命、成本、熱量或其他考慮之各種約束之限制。熟習此項技術者將辨別降低效能之電腦系統與正常桌上型、膝上型或企業電腦系統之間之差異。主電腦系統125為正常或高效能電腦系統(或電腦 系統群集)。主電腦系統125可為家庭桌上型或膝上型電腦系統、企業工作站乃至後端資料伺服器。具有可用處理資源之實質上任何計算系統可用於主電腦系統125。
圖示於第1圖中之電腦系統兩者可包括用於完成具體工作之各種模組。舉例而言,工作監視模組115可用來監視正在執行或經排程用於執行之各種工作118,該各種工作118為軟體應用程式117之部分。工作傳遞模組120可自降低效能之電腦系統傳遞該等工作至主電腦系統。當資源使用位準116過高時可傳遞工作。舉例而言,若已經設定處理資源臨限位準(例如,119),及若正超過彼臨限位準,則可傳遞一或更多個工作(例如,傳遞之工作121)至電腦系統125之工作接收模組130。環境建立模組135可建立虛擬執行環境145(VEE),該虛擬執行環境145具有自己的用於執行功能之模組。
VEE可使用主電腦系統125上存在的計算資源。VEE提供用於處理接收之工作之隔離之環境(例如,隔離邊界141)。此外,VEE包括節流模組160,該節流模組160允許電腦系統節流該電腦系統之能力及當該電腦系統閒置時僅有助於分散式工作負載。VEE可建立在實質上任何電腦系統上,及可處理來自實質上任何類型軟體應用程式之工作。在一些情況下,VEE可為虛擬機。
虛擬執行環境為輕量環境,該環境提供邏輯上下文及創建與主機作業系統(OS)分離之安全域。可在VEE內部執行自降低效能之電腦系統接收之工作。VEE可提供與 主機OS之分離及完全隔離。因此,在關閉VEE後,在主電腦系統上沒有留下實質上任何蹤跡。在VEE之隔離邊界141內部執行對應於工作之二進制及父程式、子程式或孤兒程式;因此,當主機作業系統之本機操作開始時,或當主電腦系統不參與時,易於清除及僅停止或移除VEE。
VEE可與外部網資源處理資料通訊及提供執行之結果156至裝置110。在許多情況下,主電腦系統比行動裝置具有更高的網路頻寬。在此等情況下,可將軟體應用程式之網路訊務推至VEE。舉例而言,若使用者需要在使用者的行動裝置上閱讀大文件,則可將文件下載至VEE上,而不用將整個文件下載至行動裝置上。VEE可隨後每次向行動裝置提供一個熒幕的內容,此舉可節省磁碟空間及電池,及可導致更快的整體下載時間。
在降低效能之電腦系統110能夠執行虛擬化軟體之情況下,環境建立模組135可建立虛擬機以處理接收之工作。隨後藉由虛擬機處理任何接收之工作。以此方式,可以隔離之方式處理工作,而不影響基本主機OS。
工作執行運行時間(TER)可在主電腦系統上執行。TER可設置為偵測主機OS之處理能力。舉例而言,在TER可決定是否主電腦系統具有虛擬化能力之一些情況下,及若主電腦系統具有虛擬化能力,(及若使用者105選擇該主電腦系統),則隨後在虛擬機(VM)內部執行分散式工作。或者,TER可決定主電腦系統具有至少一些閒置 或其他處理資源,該至少一些閒置或其他處理資源可用於處理分散式工作。TER可使用該等處理資源以建立虛擬執行環境,包括隔離邊界將分散式工作執行與主電腦系統自己的操作分離。TER可管理主電腦系統上之工作執行。TER可偵測本機工作及分散式工作之CPU及其他處理資源的使用。隨後TER可相应地藉由虛擬機或VEE節流資源使用以使任何副效應最小化。舉例而言,若主電腦系統開始處理另一本端工作,則TER可節流分散式工作的處理。
可在降低效能之電腦系統上實施類似運行時間環境。可實施工作啟動運行時間環境(TIRE),該工作啟動運行時間環境可使用不同模組來執行具體工作。TIRE組件可專門設計為用於行動裝置及其他降低效能之裝置。TIRE組件因此可為輕量的及可整合入行動裝置的OS的核心。TIRE組件可執行工作排程及可基於TIRE組件的當前容量分配工作至TER。當TIRE解譯二進制碼及進行工作分配時,TIRE可允許管理者在運行時間輸入二進制碼。
在一些情況下,可提供軟體開發套件(SDK),該軟體開發套件允許開發者開發應用程式,該等應用程式在降低效能之電腦系統上執行,同時卸載大部分處理至主電腦系統。SDK可包括或提供一組方法,該組方法經由宣告性、習知程式設計允許工作並行執行。可提供使用SDK、動態排程及調節工作排程。在一些實施例中,可 提供模擬環境,在該模擬環境中開發者可在部署應用程式之前,測試該等針對上述計算環境建立之應用程式。以下將參閱第2圖、第3圖及第4圖之方法200、300及400以更為詳細地解釋此概念及上述其他概念。
鑒於上述系統及架構,參閱第2圖及第3圖之流程圖將更好地理解可根據揭示之標的實施之方法。出於簡單解釋之目的,將方法圖示及描述為一系列方塊。然而,應瞭解及理解,由於一些方塊可以不同於本文所描繪及描述之順序存在及/或與其他方塊同時存在,故所主張之標的並非受限於方塊順序。此外,並非要求所有圖示之方塊實施以下描述之方法。
第2圖圖示方法200之流程圖,該方法200用於將來自降低效能之電腦系統之處理工作分散至至少一個其他電腦系統。現將頻繁參閱環境100之組件及資料描述方法200。
方法200包括以下動作:監視在降低效能之電腦系統上之一或更多個計算工作以決定每一工作之處理資源使用位準,其中計算工作為在降低效能之電腦系統上執行之軟體應用程式之部分(動作210)。舉例而言,作為工作啟動運行時間環境(TIRE)之部分,工作監視模組115可監視工作118,該等工作118為軟體應用程式117之部分。軟體應用程式可為任何類型軟體功能、服務、應用程式或軟體功能性之其他部分。軟體應用程式可執行許多分立的工作。在此環境(100)中,可將應用程式之工 作中之一或更多者發送至另一電腦系統用於處理。
工作監視模組可決定降低效能之電腦系統110之資源使用位準116。資源使用位準可指示正在使用多少處理資源及處理資源之使用處於何種位準或百分比。舉例而言,資源使用位準可指示CPU使用百分比、RAM使用百分比、網路使用百分比、電池使用百分比或任何其他處理組件之使用。
方法200包括以下動作:決定受監視之工作中之至少一者正在使用超過指定臨限位準之處理資源(動作220)。舉例而言,工作監視模組115可決定受監視之工作中之一或更多者正在使用大部分處理資源。若彼部分超過指定臨限位準(例如,持續某一時段CPU使用率在80%以上),則可使用工作傳遞模組120發送決定之工作至主電腦系統125(動作230)。主電腦系統可設置為接收、處理及返回工作結果至降低效能之電腦系統(將在以下第3圖中解釋此舉)。工作傳遞模組可將工作劃分為多個不同部分用於在虛擬執行環境中處理。各部分之大小可基於各種考慮動態地調整,該等各種考慮包括行動裝置網路訊號之當前強度、待處理工作之大小或工作之優先等級。因此,例如,若行動裝置當前具有高訊號強度,則針對彼訊號強度可使用最佳封包大小以傳遞最大資料量。
在一些情況下,以無縫方式傳遞、處理及返回工作部分。在此等情況下,工作看起來似乎已經在降低效能之 電腦系統上經過處理。在該等情況下,使用者可能不知道一些應用程式工作在不同電腦系統上得到處理。因此,例如,使用者可能正在降低效能之電腦系統上玩遊戲。玩遊戲期間,有選擇地發送遊戲之單獨工作至另一電腦系統,該等單獨工作經處理及返回至降低效能之電腦系統。工作處理之結果無縫地併入遊戲中。因此,由於大部分處理發生在另一電腦系統上,故可以玩原本由於處理資源限制通常無法在降低效能之電腦系統進行的遊戲(或其他應用程式)。
舉例而言,若使用者正在下棋,及弈棋程式想要分析棋子移動,可發送「最佳移動」計算至資料中心、至使用者家庭桌上型電腦乃至不相關之使用者家庭桌上型電腦。此外,在一些情況下,可分割計算及發送計算至大量降低效能之裝置。針對一些問題,諸如棋子「最佳移動」實例,可將計算分割成數千個非常簡單的問題,單一裝置可將問題推出至其他裝置及隨後容易結合結果以選擇答案。在電池壽命成為關切問題的情況下,可藉由將該等分割之工作之接受限制於僅裝置正自充電器接收功率之時來減少電池使用。此舉具有使得大量插入式降低效能之裝置作為超級電腦有效地動作而不影響彼等裝置之電池壽命之效果。
在一些實施例中,自降低效能之電腦系統傳遞至主電腦系統之工作數量為動態地可調整的。傳遞之工作數量中之調整可基於主電腦系統125之當前處理情況。因 此,若主電腦系統當前使用大部分計算資源,則降低效能之電腦系統可發送較少工作至主電腦系統(及可能發送工作至另一主電腦系統)。如上所述,降低效能之電腦系統可將自主電腦系統接收之處理之結果呈現在執行軟體應用程式內部(動作240)。可無縫地執行此動作以使得使用者105不知道軟體應用程式之部分正在別處處理。
為了進一步使用上述系統,可提供一般應用程式開發架構。一般應用程式開發架構可允許開發者開發軟體應用程式,該等軟體應用程式在降低效能之電腦系統上操作及傳遞軟體應用程式工作至一或更多個其他電腦系統。一般應用程式開發架構可與一或更多個存在的應用程式開發程式整合。因此,開發者將存在的應用程式開發程式(即,整合開發環境(IDEs))連同一般應用程式開發架構一起使用,可開發應用程式,該等應用程式在降低效能之電腦系統(例如,行動電話或平板電腦)上執行及傳遞大部分應用程式處理至能夠更好應付處理負載之其他電腦系統。在主電腦系統上發生之動作將在如下關於第3圖描述。
第3圖圖示方法300之流程圖,該方法300用於在主電腦系統處處理自降低效能之電腦系統接收之分散式工作。現將頻繁參閱環境100之組件及資料描述方法300。
方法300包括以下動作:自降低效能之電腦系統接收待處理之一或更多個軟體應用程式工作(動作310)。舉 例而言,工作接收模組130可自降低效能之電腦系統110接收待在主電腦系統125上處理之工作121。許多此等工作可由工作接收模組接收及緩衝。可單獨或作為群組接收工作。在一些情況下,工作可串流傳輸至主電腦系統。處理之結果156可同樣串流傳輸回到降低效能之電腦系統。工作可分解為子工作,及甚至進一步分解子工作。此工作劃分可用於降低效能之電腦系統具有低訊號強度或連接至窄頻寬網路之情況下。
方法300亦包括以下動作:建立用於處理接收之工作之虛擬執行環境,其中虛擬執行環境在隔離邊界中操作,該隔離邊界與主電腦系統之其餘者隔離(動作320)。舉例而言,環境建立模組135可在隔離邊界141中建立虛擬執行環境(VEE)145。如上所述,隔離邊界可為虛擬邊界,在該隔離邊界中執行工作處理。工作處理模組150完全在隔離邊界內處理工作;工作處理模組無法存取邊界以外儲存之資料。以此方式,由於VEE無法存取儲存在主電腦系統上之檔案,故可在實質上任何電腦系統上安全地建立VEE。此外,隔離邊界防止在VEE中之工作執行影響作業系統或在主電腦系統上執行之其他程式。因此,禁止病毒及其他有毒軟體對主機系統程式引起任何破壞。因此,VEE為主機系統之其他軟體應用程式不可存取之安全隔離環境。
在一些情況下,VEE可為虛擬機。一些主機系統可設置為尤其與虛擬機一起良好工作。在此等系統中,可由 模組135建立多個虛擬機以處理進入的工作。可建立每一虛擬機以處理與某些應用程式相關之工作。一旦在降低效能之電腦系統上關閉應用程式,或一旦已到了排程時間(例如,作為處理排程之部分),自主電腦系統移除虛擬機(或正常虛擬執行環境),不留下虛擬機存在之記錄。因為在隔離邊界中建立VEE,所以主機系統之其他程式一直尚未與VEE互動,及清理僅為移除組成VEE之檔案及資料結構之問題。
方法300進一步包括以下動作:在建立的虛擬執行環境中處理接收之工作(動作330)。舉例而言,工作處理模組150可在VEE 145內部處理進入的工作121。在一些例子中可限制或節流處理。舉例而言,節流模組160可偵測主電腦系統正處理某一類型工作(例如,關鍵的或極重要的工作),或主電腦系統正另外使用主電腦系統的大部分處理資源。作為回應,節流模組160可推遲自降低效能之電腦系統接收之工作之處理直到關鍵工作已結束處理或直到處理資源處於可接受位準處。VEE可進一步通知降低效能之電腦系統已經暫時推遲工作處理,及可能需要將工作發送至另一VEE或至另一電腦系統。
在一些實施例中,VEE可設置為監視主電腦系統之處理資源及動態地節流接收之工作之處理。在一些情況下,此動態節流可能不會發生直到VEE決定主機系統正在使用超過指定臨限位準之主機系統處理資源。因此,一旦達到彼位準,推遲經排程用於在VEE中處理之工作 或將工作移動至另一電腦系統。在由於節流暫停或另外推遲工作之情況下,在VEE已偵測到主電腦系統具有足夠處理資源後恢復該等工作。
可將VEE的工作處理結果156發送至降低效能之電腦系統110(動作340)。在處理後可實質上立即發送結果。以此方式,可將結果呈現給使用者105作為使用者之應用程式之部分。因此,使用者可在使用者的行動裝置或平板裝置上開啟應用程式(例如,使用輸入106),使得在使用者的家庭電腦系統上(實質上)執行應用程式處理,及仿佛降低效能之電腦系統已經完成全部處理般查看應用程式117中之結果。結果可串流傳輸至行動裝置110及無縫地併入使用者正在使用的應用程式中。
在一些情況下,當VEE正在處理第一應用程式之部分之工作時,VEE可在處理第一工作之同時接收在VEE處待處理之第二工作。主電腦系統可決定第二接收之工作為與第一接收之工作相同之軟體程式之部分及可在相同虛擬執行環境中處理第二工作。在其他情況下,VEE可正處理第一應用程式之部分之工作,及VEE隨後可在處理第一工作之同時接收待在VEE處處理之第二工作。主電腦系統可決定第二接收之工作為不同於第一接收之工作之軟體程式之部分及可建立第二不同VEE以處理第二接收之工作。因此,可建立多個不同虛擬執行環境以處理自不同軟體應用程式接收之工作。
第4圖圖示方法400之流程圖,該方法400用於建立 用於測試分散式計算架構功能性之模擬環境。現將分別頻繁參閱第1圖及第4圖之環境100及400之組件及資料描述方法400。
方法400包括以下動作:建立設置為允許分散式應用程式測試之模擬環境(動作410)。舉例而言,環境建立模組435可建立模擬環境420,該模擬環境420允許分散式應用程式之測試。開發者415可因此編寫設計為在降低效能之電腦系統110上操作之應用程式416及在電腦系統405上之虛擬環境中測試該等應用程式。如上所述之應用程式117為分散式應用程式,該等分散式應用程式可將分散式應用程式的一些工作118卸載至其他電腦系統。模擬環境可定製為模擬公司或企業環境、家庭環境或其他計算環境。在一些情況下,模擬環境可允許建立多個虛擬執行環境及同時執行該多個虛擬執行環境以處理來自多個不同軟體應用程式之工作。在一些情況下,模擬環境可在同一機器(405)上提供應用程式執行加上VEE(或VM)、TER及/或TIRE使得可開發及測試上述分散式應用程式。在已選擇環境數量及類型後,環境建立模組可啟動模擬(動作420)。
方法400進一步包括以下動作:在建立的模擬環境中執行各種步驟(動作430),該動作包括以下一或更多者:監視降低效能之電腦系統110上之計算工作118以決定每一工作之處理資源使用位準116,其中工作為在降低效能之(行動)系統上執行之軟體應用程式117之 部分;決定受監視之工作中之至少一者正在使用超過指定臨限位準119之處理資源;發送決定之工作121至主電腦系統125,該主電腦系統125在虛擬執行環境145中接收及處理工作,及返回工作結果156/421至降低效能之電腦系統;及將自主電腦系統接收之處理之結果呈現在執行軟體應用程式內部。在隔離之環境中安全地處理工作及返回工作至使用者之應用程式,無需使用者知道。模擬環境因此可允許開發者在實際部署應用程式前模擬及測試應用程式。
因此,提供方法、系統及電腦程式產品,該等方法、系統及電腦程式產品將應用程式工作自降低效能之(行動)電腦系統分散至主電腦系統。此外,提供方法、系統及電腦程式產品,該等方法、系統及電腦程式產品在主電腦系統處處理自降低效能之電腦系統接收之分散式工作及建立用於測試分散式應用程式功能性之模擬環境。
本發明可體現在其他具體形式中而不背離本發明之精神或基本特徵。在所有態樣中所描述之實施例將僅視為說明性的而非限制性的。本發明之範圍因此由隨附申請專利範圍而非前文的描述來指明。落入申請專利範圍之等效物之含義及範圍內之所有變化將包括在申請專利範圍內。
100‧‧‧電腦架構
105‧‧‧使用者
106‧‧‧輸入
110‧‧‧降低效能之電腦系統/行動裝置
115‧‧‧工作監視模組
116‧‧‧資源使用程度
117‧‧‧軟體應用程式
118‧‧‧工作
119‧‧‧處理資源臨限位準
120‧‧‧工作傳遞模組
121‧‧‧工作
125‧‧‧主電腦系統
130‧‧‧工作接收模組
135‧‧‧環境建立模組
141‧‧‧隔離邊界
145‧‧‧虛擬執行環境
150‧‧‧工作處理模組
156‧‧‧結果
160‧‧‧節流模組
200‧‧‧方法
210‧‧‧動作
220‧‧‧動作
230‧‧‧動作
240‧‧‧動作
300‧‧‧方法
310‧‧‧動作
320‧‧‧動作
330‧‧‧動作
340‧‧‧動作
400‧‧‧方法
405‧‧‧電腦系統
410‧‧‧動作
415‧‧‧開發者
416‧‧‧應用程式
420‧‧‧動作/模擬環境
421‧‧‧結果
430‧‧‧動作
435‧‧‧環境建立模組
為了進一步闡明本發明實施例之上述及其他優點及特徵結構,將參閱隨附圖式提供本發明實施例之更為特定描述。應理解,該等圖式僅描繪本發明之典型實施例及因此不應視為對本發明範圍之限制。通過使用隨附圖式以額外詳細性及細節描述及解釋本發明,在該等隨附圖式中:
第1圖圖示電腦架構,在該電腦架構中本發明之實施例可操作包括將來自降低效能之電腦系統之處理工作分散至至少一個其他電腦系統之動作。
第2圖圖示示例性方法之流程圖,該示例性方法用於將來自降低效能之電腦系統之處理工作分散至至少一個其他電腦系統。
第3圖圖示示例性方法之流程圖,該示例性方法用於在一個電腦系統處處理自降低效能之電腦系統接收之分散式工作。
第4圖圖示示例性方法之流程圖,該示例性方法用於建立用於測試分散式計算架構功能性之模擬環境。
第5圖圖示電腦架構,在該電腦架構中建立用於測試分散式計算架構功能性之模擬環境。
100‧‧‧電腦架構
105‧‧‧使用者
106‧‧‧輸入
110‧‧‧降低效能之電腦系統/行動裝置
115‧‧‧工作監視模組
116‧‧‧資源使用程度
117‧‧‧軟體應用程式
118‧‧‧工作
119‧‧‧處理資源臨限位準
120‧‧‧工作傳遞模組
121‧‧‧工作
125‧‧‧主電腦系統
130‧‧‧工作接收模組
135‧‧‧環境建立模組
141‧‧‧隔離邊界
145‧‧‧虛擬執行環境
150‧‧‧工作處理模組
156‧‧‧結果
160‧‧‧節流模組

Claims (20)

  1. 一種用於將來自在一行動計算裝置處執行的一應用程式的一或多個處理工作分散至一主電腦系統以為了減低在需要處理該等工作中的一或多個的該行動計算裝置處的所需要的資源之電腦實施方法,該主計算系統可經由一網路對於該行動計算裝置進行存取,該電腦實施方法包含以下步驟:在該行動計算裝置處監視在該行動計算裝置上執行的一應用程式的一或多個計算工作;基於對於在該行動計算裝置處執行的該等工作進行監視的結果,決定用於處理被監視的每一工作所需要的一資源使用位準;在該行動計算裝置處將該資源使用位準與針對於在該行動計算裝置處執行的該等工作所建立的一資源臨限位準作比較,及將該等受監視之工作中之至少一者識別為具有用於處理需要的且超過該資源臨限位準的該資源使用位準;發送該識別的工作至一主電腦系統,以用於在一虛擬執行環境中進行處理,該虛擬執行環境包含:一隔離邊界,該隔離邊界將該處理與該主電腦系統之其餘者隔離;以及該行動計算裝置接收由該主電腦系統所處理的該工作和呈現在該執行軟體應用程式內部的處理結果,而不中 斷該執行的應用程式。
  2. 如請求項1所述之方法,其中將該識別之工作劃分為一或更多個部分以用於處理,及至少一個該部分被傳送以由一第二主電腦系統進行處理。
  3. 如請求項2所述之方法,其中以一無縫方式傳遞、處理及返回該等工作部分,使得該工作看起來似乎已經在該行動計算裝置上經過處理,而無需中斷該執行的應用程式。
  4. 如請求項1所述之方法,其中傳遞至該第二主電腦系統之該等工作部分基於該第二主電腦系統之當前處理情況而為動態地可調整的。
  5. 一種用以實施用於在一主電腦系統處理來自在一行動計算裝置處執行的一應用程式的一或多個處理工作以為了減低在需要處理該等工作中的一或多個的該行動計算裝置處所需的資源的方法之電腦程式產品,該主計算系統可經由一網路對於該行動計算裝置進行存取,該電腦程式產品包含:一或更多個實體記憶體裝置,該等實體記憶體裝置於其上已儲存了電腦可執行指令,當該等電腦可執行指令由該計算系統之一或更多個處理器執行時引起該計算系統執行該方法,其中該方法包含以下步驟: 在一主計算系統處,接收在該行動計算裝置上執行的一軟體應用程式的一或多個工作,該等一或多個接收的工作已經被決定為超過在該行動計算裝置處建立的用於處理的一資源臨限位準;在該主電腦處產生用於處理該等一或多個接收之工作之一虛擬執行環境,該虛擬執行環境包含:一隔離邊界,該隔離邊界將由該虛擬執行環境所執行的處理與該主電腦系統之其餘者隔離;在該虛擬執行環境中處理該等一或多個接收之工作;以及將該等一或多個處理之工作之結果發送回到在該行動計算裝置上執行的該應用程式,而無需中斷該應用程式。
  6. 如請求項5所述之電腦程式產品,其中該方法進一步包含以下步驟:監視該主電腦系統之該等處理資源;以及在決定該主電腦系統正使用超過一指定臨限位準之該主電腦系統之處理資源後,動態地節流該接收之工作之該處理。
  7. 如請求項6所述之電腦程式產品,其中該方法進一步包含以下步驟:傳遞該等接收之工作中的一或多個至一第二主電腦系統以用於處理之步驟。
  8. 如請求項6所述之電腦程式產品,其中該方法進一步包含:由於節流而暫停該接收的工作的至少一者並且重新開始該暫停工作之該執行之步驟。
  9. 如請求項5所述之電腦程式產品,其中該虛擬執行環境包含一虛擬機。
  10. 如請求項5所述之電腦程式產品,其中自該主電腦系統移除該虛擬執行環境,不留下該虛擬執行環境存在之一記錄。
  11. 如請求項5所述之電腦程式產品,其中在作為一處理排程之部分之一排程之時間處停止該虛擬執行環境。
  12. 如請求項5所述之電腦程式產品,其中該方法進一步包含以下步驟:偵測該主電腦系統正處理一指定類型工作;推遲該接收之工作之至少一者的該處理;以及通知該行動計算裝置工作處理已經被推遲。
  13. 如請求項5所述之電腦程式產品,其中該方法進一步包含:處理作為在相同的虛擬執行環境內的相同的應用程式的部分的所有接收的工作的步驟。
  14. 如請求項5所述之電腦程式產品,其中該方法進一步包含以下步驟:接收待在該主電腦系統處進行處理且來自在該行動計算裝置處的一應用程式的至少一工作,其中來自在該行動計算裝置處的該應用程式不同於從其處接收一或多個其他的工作的該應用程式;以及在該主電腦處產生一第二不同的虛擬執行環境以處理來自不同的應用程式的至少一工作。
  15. 一種用於對來自在一行動計算裝置處執行的一應用程式的一或多個處理工作進行分散處理以為了減低在需要處理該等工作中的一或多個的該行動計算裝置處所需要的資源之電腦實施方法,該電腦實施方法包含以下步驟:在該行動計算裝置處監視在該行動計算裝置上執行的一應用程式的一或多個計算工作;基於對於在該行動計算裝置處執行的該等工作進行監視的結果,決定用於處理被監視的每一工作所需要的一資源使用位準;在該行動計算裝置處將該資源使用位準與針對於在該行動計算裝置處執行的該等工作所建立的一資源臨限位準作比較,及將該等受監視之工作中之至少一者識別為具有用於處理需要的且超過該資源臨限位準的該資源使用位準;發送該識別的工作至一主電腦系統,以用於處理; 在一主計算系統處接收該等識別的工作;在該主電腦處產生用於處理該等接收之工作之一虛擬執行環境,該虛擬執行環境包含:一隔離邊界,該隔離邊界將由該虛擬執行環境所執行的處理與該主電腦系統之其餘者隔離;處理在該虛擬執行環境中的該等接收的工作;將該等處理之工作之結果發送回到在該行動計算裝置上執行的該應用程式,而無需中斷該應用程式;及該行動計算裝置接收由該主電腦系統所處理的該工作和呈現在該執行軟體應用程式內部的處理結果。
  16. 一種用於實施用以模擬對來自在一行動計算裝置處執行的一應用程式的一或多個處理工作進行分散處理以為了減低在需要處理該等工作中的一或多個的該行動計算裝置處所需要的資源之方法的電腦程式產品,該電腦程式產品包含:具有儲存於其上的電腦可執行指令的一或多個實體記憶體裝置,當該等電腦可執行指令由該計算系統的一或多個處理器執行時,使得該計算系統執行該方法,其中該方法包含以下步驟:在一電腦系統處產生一模擬環境,該模擬環境模擬一行動計算裝置和執行以下步驟:在該模擬行動計算裝置處監視在該模擬行動計算裝置上執行的一應用程式的一或多個計算工作;基於對於在該模擬行動計算裝置處執行的該等工 作進行監視的結果,決定用於處理被監視的每一工作所需要的一資源使用位準;在該模擬行動計算裝置處將該資源使用位準與針對於在該模擬行動計算裝置處執行的該等工作所建立的一資源臨限位準作比較,及將該等受監視之工作中之至少一者識別為具有用於處理需要的且超過該資源臨限位準的該資源使用位準;在該電腦系統處產生一模擬環境,該模擬環境模擬一主電腦和執行以下步驟:在該模擬主計算系統處接收該等識別的工作;在該模擬主電腦處產生用於處理該接收之工作之一虛擬執行環境,該虛擬執行環境包含:一隔離邊界,該隔離邊界將由該虛擬執行環境所執行的處理與該模擬主電腦系統之其餘者隔離;在該虛擬執行環境中處理該等接收的工作;將該處理之工作之結果發送回到在該模擬行動計算裝置上執行的該應用程式,而無需中斷該應用程式;及該模擬行動計算裝置接收由該模擬主電腦系統處理的該工作和呈現在該執行的軟體應用程式內的處理的結果。
  17. 如請求項16所述之電腦程式產品,其中該模擬環境係由一通用應用程式開發架構產生,該通用應用程式開發 架構允許開發者開發在該行動計算裝置上操作的軟體應用程式和將軟體應用程式工作傳送至一或多個主電腦系統。
  18. 如請求項17所述之電腦程式產品,其中該通用應用程式開發架構與一或多個存在的應用程式開發程式相整合。
  19. 如請求項17所述之電腦程式產品,其中該方法進一步包含以下步驟:處理作為在相同的虛擬執行環境內的相同的應用程式的部分的所有接收的工作。
  20. 如請求項17所述之電腦程式產品,其中該方法進一步包含以下步驟:接收待在該主電腦系統處進行處理且來自在該行動計算裝置處的一應用程式的至少一工作,其中來自在該行動計算裝置處的該應用程式不同於從其處接收一或多個其他的工作的該應用程式;以及在該主電腦處產生一第二不同的虛擬執行環境以處理來自不同的應用程式的至少一工作。
TW101111851A 2011-05-31 2012-04-03 分散式計算架構 TWI559153B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/149,625 US8612580B2 (en) 2011-05-31 2011-05-31 Distributed computing framework

Publications (2)

Publication Number Publication Date
TW201303613A TW201303613A (zh) 2013-01-16
TWI559153B true TWI559153B (zh) 2016-11-21

Family

ID=47259751

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101111851A TWI559153B (zh) 2011-05-31 2012-04-03 分散式計算架構

Country Status (5)

Country Link
US (1) US8612580B2 (zh)
EP (1) EP2715539B1 (zh)
CN (1) CN103562868B (zh)
TW (1) TWI559153B (zh)
WO (1) WO2012166399A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743554B (zh) * 2018-12-20 2021-10-21 日商愛德萬測試股份有限公司 去中心化儲存環境技術

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254965A1 (en) * 2011-04-04 2012-10-04 Lansing Arthur Parker Method and system for secured distributed computing using devices
US9280386B1 (en) * 2011-07-14 2016-03-08 Google Inc. Identifying task instance outliers based on metric data in a large scale parallel processing system
US8893274B2 (en) * 2011-08-03 2014-11-18 Trend Micro, Inc. Cross-VM network filtering
US8732627B2 (en) * 2012-06-18 2014-05-20 International Business Machines Corporation Method and apparatus for hierarchical wafer quality predictive modeling
US9684630B1 (en) * 2012-12-05 2017-06-20 Amazon Technologies, Inc. Provisioning of cryptographic modules
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US8621062B1 (en) 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers
TWM464730U (zh) * 2013-03-29 2013-11-01 Gemtek Technology Co Ltd 個人化參數自動同步系統與相關裝置
US10423514B1 (en) 2013-10-28 2019-09-24 Symantec Corporation Automated classification of mobile app battery consumption using simulation
US20150121374A1 (en) * 2013-10-30 2015-04-30 Alistair Black Application Processing Systems and Methods
US9703611B1 (en) 2014-03-21 2017-07-11 Amazon Technologies, Inc. Isolating resources for utilization by tenants executing in multi-tenant software containers
CN105095970B (zh) * 2014-04-25 2018-09-21 阿里巴巴集团控股有限公司 第三方应用的执行方法及系统
US10516733B2 (en) * 2014-11-25 2019-12-24 Auth0, Inc. Multi-tenancy via code encapsulated in server requests
US10733165B1 (en) * 2015-07-06 2020-08-04 Workiva Inc. Distributed processing using a node hierarchy
US9933375B2 (en) * 2015-09-25 2018-04-03 Olympus Scientific Solutions Americas, Inc. XRF/XRD system with dynamic management of multiple data processing units
US10429935B2 (en) 2016-02-08 2019-10-01 Comcast Cable Communications, Llc Tremor correction for gesture recognition
US20170286140A1 (en) * 2016-03-31 2017-10-05 Ca, Inc. Java-based offload service in a mainframe environment
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
US10467045B1 (en) 2016-07-07 2019-11-05 Binaris Inc On-demand isolated execution of specific tasks
US10467120B2 (en) * 2016-11-11 2019-11-05 Silexica GmbH Software optimization for multicore systems
US10637928B2 (en) * 2016-11-30 2020-04-28 Optim Corporation Computer system, edge device control method, and program
US10621001B1 (en) 2017-07-06 2020-04-14 Binaris Inc Systems and methods for efficiently expediting execution of tasks in isolated environments
US10567213B1 (en) 2017-07-06 2020-02-18 Binaris Inc Systems and methods for selecting specific code segments in conjunction with executing requested tasks
US10705883B2 (en) * 2018-06-19 2020-07-07 Microsoft Technology Licensing, Llc Dynamic hybrid computing environment
US10915351B2 (en) * 2018-08-30 2021-02-09 International Business Machines Corporation Cellular hypervisor
WO2020258098A1 (en) * 2019-06-26 2020-12-30 Orange Deploying computing tasks on client computing apparatus
US10848388B1 (en) * 2019-07-12 2020-11-24 Deloitte Development Llc Distributed computing framework

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US20060224741A1 (en) * 2005-03-16 2006-10-05 Jackson David B Automatic workload transfer to an on-demand center
US20070050484A1 (en) * 2005-08-26 2007-03-01 Roland Oertig Enterprise application server system and method
US20070250833A1 (en) * 2006-04-14 2007-10-25 Microsoft Corporation Managing virtual machines with system-wide policies
US20080115143A1 (en) * 2006-11-10 2008-05-15 International Business Machines Corporation Job Execution Method, Job Execution System, and Job Execution Program
TW200838271A (en) * 2006-12-29 2008-09-16 Nokia Corp Transferring task completion to another device
US7617500B2 (en) * 2005-05-20 2009-11-10 International Business Machines Corporation Generic framework for integrating components with different interfaces in an enterprise application integration environment
WO2010012122A1 (en) * 2008-07-29 2010-02-04 Lucent Technologies Inc. The method and apparatus for the resource sharing between user devices in computer network

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065039A (en) 1996-11-14 2000-05-16 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Dynamic synchronous collaboration framework for mobile agents
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
WO2005109829A1 (en) 2004-05-06 2005-11-17 Koninklijke Philips Electronics N.V. Method device and program for seamlessly transferring the execution of a software application from a first to a second device
US8479193B2 (en) * 2004-12-17 2013-07-02 Intel Corporation Method, apparatus and system for enhancing the usability of virtual machines
US7548977B2 (en) 2005-02-11 2009-06-16 International Business Machines Corporation Client / server application task allocation based upon client resources
US8091084B1 (en) * 2006-04-28 2012-01-03 Parallels Holdings, Ltd. Portable virtual machine
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US7515899B1 (en) 2008-04-23 2009-04-07 International Business Machines Corporation Distributed grid computing method utilizing processing cycles of mobile phones
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US20060224741A1 (en) * 2005-03-16 2006-10-05 Jackson David B Automatic workload transfer to an on-demand center
US7617500B2 (en) * 2005-05-20 2009-11-10 International Business Machines Corporation Generic framework for integrating components with different interfaces in an enterprise application integration environment
US20070050484A1 (en) * 2005-08-26 2007-03-01 Roland Oertig Enterprise application server system and method
US20070250833A1 (en) * 2006-04-14 2007-10-25 Microsoft Corporation Managing virtual machines with system-wide policies
US20080115143A1 (en) * 2006-11-10 2008-05-15 International Business Machines Corporation Job Execution Method, Job Execution System, and Job Execution Program
TW200838271A (en) * 2006-12-29 2008-09-16 Nokia Corp Transferring task completion to another device
WO2010012122A1 (en) * 2008-07-29 2010-02-04 Lucent Technologies Inc. The method and apparatus for the resource sharing between user devices in computer network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743554B (zh) * 2018-12-20 2021-10-21 日商愛德萬測試股份有限公司 去中心化儲存環境技術

Also Published As

Publication number Publication date
US20120311570A1 (en) 2012-12-06
EP2715539B1 (en) 2019-08-07
EP2715539A1 (en) 2014-04-09
TW201303613A (zh) 2013-01-16
CN103562868B (zh) 2017-12-12
EP2715539A4 (en) 2015-04-08
CN103562868A (zh) 2014-02-05
WO2012166399A1 (en) 2012-12-06
US8612580B2 (en) 2013-12-17

Similar Documents

Publication Publication Date Title
TWI559153B (zh) 分散式計算架構
Shiraz et al. Energy efficient computational offloading framework for mobile cloud computing
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
US9244817B2 (en) Remote debugging in a cloud computing environment
TWI573075B (zh) 持續及有彈性之工作處理
US20160378554A1 (en) Parallel and Distributed Computing Using Multiple Virtual Machines
RU2697700C2 (ru) Равноправное разделение системных ресурсов в исполнении рабочего процесса
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
US9201706B2 (en) Minimizing workload migrations during cloud maintenance operations
KR102083289B1 (ko) 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
US20130138760A1 (en) Application-driven shared device queue polling
CN106911741B (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
US9043644B2 (en) Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
US9436505B2 (en) Power management for host with devices assigned to virtual machines
US9658894B2 (en) Automatically and dynamically reclaiming resources during virtual machine decommission
Patrascu et al. ReC2S: Reliable cloud computing system
US11571618B1 (en) Multi-region game server fleets
US10300386B1 (en) Content item instance scaling based on wait time
Imai Task offloading between smartphones and distributed computational resources
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
US10860347B1 (en) Virtual machine with multiple content processes
US20130283288A1 (en) System resource conserving method and operating system thereof
US11571619B1 (en) Cross-region management of game server fleets
Agarwal et al. Feasibility study of on-device and in-the-cloud virtualization of mobiles

Legal Events

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