TW201711426A - 大規模可擴展之非同步後端雲端運算架構 - Google Patents

大規模可擴展之非同步後端雲端運算架構 Download PDF

Info

Publication number
TW201711426A
TW201711426A TW105113649A TW105113649A TW201711426A TW 201711426 A TW201711426 A TW 201711426A TW 105113649 A TW105113649 A TW 105113649A TW 105113649 A TW105113649 A TW 105113649A TW 201711426 A TW201711426 A TW 201711426A
Authority
TW
Taiwan
Prior art keywords
layer
cloud
computing architecture
cluster
based computing
Prior art date
Application number
TW105113649A
Other languages
English (en)
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 TW201711426A publication Critical patent/TW201711426A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/505Allocation 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 the load
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

實施例包含一種基於雲端的運算架構,其包含被組態成用以處理從應用程式所接收之非同步請求的連續層。每一層包含一負載平衡器,其被組態成用以獨立於該連續層中之任一其他層來平衡該層之負載。該基於雲端的運算架構包含可通訊地耦接該連續層之通道,使得該連續層之任一層被組態成可經由該通道中之一或多個通道與一連續層非同步地通訊。

Description

大規模可擴展之非同步後端雲端運算架構 相關申請案之相互參考
本申請案主張於2015年4月30日申請之美國臨時專利申請案第62/155,411號之優先權,其全文被併入本文中援引為本案之參考。
本揭示內容之教示整體而言係關於後端雲端服務。所揭示之教示更具體而言係關於大規模可擴展之非同步後端雲端服務。
雲端運算可實現對組態運算資源之共享池(例如網路、伺服器、儲存、應用程式以及服務)到處存在的、視需要之存取,其可以藉由最少的管理工作而被快速地供應以及發佈。雲端運算服務可以促進數以百萬、數億或甚至數十億之記錄之處理且同時最佳化資料負載之效能以及整合至公司的服務中。
一些雲端運算所面臨之挑戰係包含速度、可擴展性以 及可靠性。許多基於雲端的應用程式係頻寬密集的,因此許多潛在的雲端客戶在他們考慮移動到該雲端中之前係在等待改良的頻寬。許多潛在的雲端客戶避免使用雲端服務於其之業務的關鍵基礎設施,因為該雲端端提供者所提供之服務無法充分地保證可擴展性以及可靠性。此種客戶的例子如健康照顧服務之提供者,其需要無限制的容量以及儲存以持續地增加更多患者以及患者之資訊(諸如醫療記錄以及健康相關之內容)。
在此介紹至少一種基於雲端的運算架構以及至少一種方法。該至少一種基於雲端的運算架構係包含被組態成用以處理從應用程式所接收之非同步請求的連續層。每一層包含一負載平衡器,其被組態成用以獨立於該連續層中之任一其他層來平衡該層之負載。該基於雲端的運算架構包含可通訊地耦接該連續層之通道,使得該連續層之任一層被組態成可經由該通道中之一或多個通道與一連續層非同步地通訊。
在某些實施例中,一種由具有連續層之基於雲端的運算架構所執行之方法係包含從應用程式非同步地接收一或多個訊息。該(等)訊息係由該連續層之初始層所接收。該方法亦包含藉由由每一層以連續順序非同步地通訊來處理該(等)訊息且藉由當由個別層處理時檢查該(等)訊息之一或多個時戳而獨立於其他層來獨立地平衡一個別層 之工作負載。該方法進一步包含基於該(等)訊息促使從該連續層之最後層對該應用程式進行更新,且使該應用程式藉由該更新來更新而不需經查詢該更新。
在某些實施例中,一種方法係藉由可操作以監視包含連續層之基於雲端的運算架構之監視系統來執行。該方法包含輸入測試訊息至該基於雲端的運算架構之該連續層之一層中,藉由收集基於該測試訊息之效能資料來監視該層之工作負載,且發信號通知該層,以取決於該效能資料而在該層中產生一或多個新程序或終止一或多個現行程序。
揭示之實施例的其他態樣可從附圖以及詳細說明中獲得瞭解。
提供此發明內容係用以以精簡的形式(以下將在實施方式中進一步解釋)來引入概念之選擇。此發明內容不旨在用以識別本發明標的之關鍵特徵或必要特徵,亦非旨在被使用以限制本發明標的之範圍。
10‧‧‧系統
12‧‧‧後端雲端運算架構
14‧‧‧用戶端裝置
16‧‧‧通訊網路
18‧‧‧通道
20‧‧‧通道
22‧‧‧網頁API叢集層
24‧‧‧訊息佇列(MQ)叢集層
26‧‧‧微服務叢集層
28‧‧‧資料庫叢集層
30‧‧‧負載平衡器
32‧‧‧非同步通道
34‧‧‧網頁API伺服器
36‧‧‧仲介器
38‧‧‧服務叢集
40‧‧‧輸入負載平衡器
42‧‧‧MQ伺服器
44‧‧‧輸出負載平衡器
46‧‧‧微服務
48‧‧‧執行服務
50‧‧‧雜湊/模數函數
52‧‧‧三位一體群組
54‧‧‧主節點
56‧‧‧從屬節點
58‧‧‧第三從屬節點
60‧‧‧發佈器
62‧‧‧監視系統
64‧‧‧系統管理員電腦
66‧‧‧資料庫
68‧‧‧視覺化伺服器
70‧‧‧輸入/輸出子系統
72‧‧‧監視器資料庫
74‧‧‧樞紐子系統
76‧‧‧虛擬機
80‧‧‧電腦系統
82‧‧‧處理器
84‧‧‧主記憶體
86‧‧‧非揮發性記憶體
88‧‧‧網路介面裝置
90‧‧‧匯流排
92‧‧‧驅動單元
94‧‧‧字母數字輸入裝置
96‧‧‧顯示裝置
98‧‧‧控制裝置
100‧‧‧信號產生裝置
300‧‧‧程序
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
310‧‧‧步驟
400‧‧‧程序
402‧‧‧步驟
404‧‧‧步驟
406‧‧‧步驟
408‧‧‧步驟
410‧‧‧步驟
412‧‧‧步驟
1100‧‧‧程序
1102‧‧‧步驟
1104‧‧‧步驟
1106‧‧‧步驟
1108‧‧‧步驟
1110‧‧‧步驟
1112‧‧‧步驟
1114‧‧‧步驟
1116‧‧‧步驟
1118‧‧‧步驟
對於熟習此項技術者,這些以及其他的目的、特徵與特性將由研讀以下與所附之申請專利範圍以及圖式所結合之實施方式(其全部形成此說明書之一部分)而變得更加顯而易見。儘管所附之圖式係包含各種實施例之繪示,但圖式不旨在限制本發明標的。
圖1係一系統之方塊圖,該系統包含根據本發明之一些實施例的一後端雲端運算架構; 圖2係根據本發明之一些實施例之包含非同步地接收以及處理訊息之連續層之雲端運算架構之方塊圖;圖3係一流程圖,其中繪示藉由根據本發明之一些實施例之後端雲端系統之運算架構所執行之程序;圖4係一流程圖,其中繪示根據本發明之一些實施例由該雲端運算架構所執行用於負載平衡之程序;圖5係根據本發明之一些實施例之雲端運算架構之網頁應用程式介面(API)叢集層之方塊圖;圖6係根據本發明之一些實施例之該雲端運算架構之訊息佇列(MQ)叢集層之方塊圖;圖7係根據本發明之一些實施例之該雲端運算架構之微服務叢集層之方塊圖;圖8係根據本發明之一些實施例之該雲端運算架構之資料庫叢集層之方塊圖;圖9係根據本發明之一些實施例之包含可以自動地監視該後端雲端系統之該運算架構之該層之監視系統之方塊圖;圖10係根據本發明之一些實施例之由圖9之監視系統所提供之不同服務之方塊圖;圖11係根據本發明之一些實施例由該監視系統所執行用於工作負載平衡之程序之流程圖;及圖12係繪示一電腦系統之一方塊圖,該電腦系統可操作以實施指令來造成電腦系統執行根據本發明之一些實施例所揭示之技術。
所揭示的係至少一個用以提供能夠與使用者應用程式非同步地通訊之快速的、大規模可擴展的以及可靠的雲端服務之運算架構以及方法之實施例。以下所闡釋之實施例係表示使熟習此項技術者能夠實施該實施例之必要資訊,並且說明實施該實施例之最佳模式。在以下的說明中,出於解釋的目的,闡釋許多具體的細節以便提供本發明之實施例的徹底瞭解。熟習此項技術者將認可本發明之實施例可以在沒有這些具體的細節或具有等同之配置的情況下被實施。
在其他的情況中,熟知的結構以及裝置係以方塊圖的形式來展示以避免非必要地模糊本發明之實施例。在按照附圖讀取以下的描述後,熟習此項技術者將瞭解本發明之概念且將認知未特別地在此所提及的這些概念的應用。應瞭解這些概念以及應用係落於本發明以及該所附之申請權利範圍中。
在本文中使用之術語的目的係僅用於描述實施例而非旨在限制本發明之範圍。其中上下文允許,使用單數或複數形式之文字亦可以分別地包含複數或單數的形式。關於兩個或更多個項目的清單,用語「或(or)」係適用於全部以下該詞語之解釋:在該清單中之任何項目、在該清單中之全部項目以及在該清單中之項目之任何組合。
用於處理以及儲存大量內容的運算機構對於現代的服 務提供者係至關重要的。例如,健康相關服務的提供者提供應用程式給需要視需要存取大量內容之使用者(例如,健康照顧提供者或患者)。該應用程式可以透過一個出入口(例如,網站)而提供給使用者以存取健康相關內容。該健康相關服務提供者可能需要持續地增加更多的使用者(例如,患者)並且策畫其內容。
策畫大量的內容需要一個複雜可擴展的運算基礎架構,其對於許多機構而言係成本過高的。因此,這些機構轉向多租戶的雲端運算以使用對於許多應用程式提供可擴展服務之組態運算資源之共享池。基於雲端之應用程式可以經由網路透過連接至雲端基礎架構的一個入口(例如,網站)而被存取。該入口可以提供特徵(諸如分析)以提供對於內容之深刻理解。儘管基於雲端的基礎架構提供了更大的擴展性,其相較於單租戶系統係更加負擔得起,但是這些優勢正由於使用者數量以及內容量快速地擴展而變得更加受到限制。
所揭示之實施例係包含雲端運算架構,該雲端運算架構包含可以處理經由網路從應用程式所接收的非同步請求之連續層。在某些實施例中,每一層包含一負載平衡器,其被組態成用以獨立於任一其他層來平衡該層之負載。在某些實施例中,該基於雲端的運算架構包含耦合該連續層之通道,使得任一層可以經由通道與連續層非同步地通訊。
所揭示之實施例亦包含可以監視該雲端運算架構之監 視系統。該監視系統可以藉由輸入測試訊息至該連續層之一層中來操作,且藉由收集基於該測試訊息之效能資料來監視該層之工作負載。該監視系統可以接著發信號給該層以取決於該效能資料而在該層中產生新程序或終止現行程序。因此,所揭示之實施例提供了大規模可擴展的、非同步後端雲端服務。
圖1係一系統10之方塊圖,該系統包含根據本發明之一些實施例的後端雲端運算架構12。該系統10包含諸如雲端運算架構12以及一或多個提供使用者應用程式(例如,行動應用程式)之用戶端裝置14(例如,用戶端裝置14-1至14-4)之組件,其全部經由通訊網路16(以下稱為「網路16」)而互相連結。詳言之,用戶端裝置14係經由通道18(例如,通道18-1至18-4)而與網路16進行通訊,而雲端運算架構12係經由通道20而與網路16通訊。
系統10可包含一或多個網路(諸如資料網路、無線網路、電話網路或其任何組合)。資料網路可以係任何本端區域網路(LAN)、都會區域網路(MAN)、廣區域網路(WAN)、公共資料網路(例如,網際網路)、短程無線網路或任何其他適當的封包交換網路(諸如商業獨資、專有的封包交換網路(例如,專有的電纜或光纖網路))等等或任何其之組合。
此外,該無線網路可以係,例如,蜂巢式網路且可以採用各種技術,包含全球演進增強資料速率(EDGE)、 通用封包無線服務(GPRS)、全球行動通訊系統(GSM)、網際網路協定多媒體系統(IMS)、全球行動電信系統(UMTS)等等,以及任何其他適當的無線媒體,例如,用於微波存取之全球互操作性(WiMAX)、長期演進(LTE)網路、分碼多重存取(CDMA)、寬頻分碼多重存取(WCDMA)、無線保真(Wi-Fi)、無線LAN(WLAN)、藍芽®、網際網路協定(IP)資料廣播、衛星、行動隨意網路(MANET)等等或其任何組合。
例如,網路16可以包含私人、公共、有線或無線部分的任何組合。經由網路16的資料通訊可以在不同的位置處或沿著網路16的不同部分被加密或不加密。系統10的各個組件可以包含硬體及/或軟體的組合,用以處理資料、執行功能、經由網路16進行通訊等等。
例如,系統10的任一組件可以包含處理器、記憶體或儲存器、網路收發器、顯示器、操作系統以及應用軟體(例如,用於提供使用者入口)等等。其他包含在系統10中的組件、硬體及/或軟體係由熟習此項技術者所熟知,且因此在本文中未圖示或討論。
系統10包含組態運算資源之共享池,包含伺服器、儲存器、應用程式、軟體平台、網路、服務等等,用以提供使用者應用程式至用戶端裝置14。該軟體平台支援提供不同的服務給使用者的多租戶。該服務可以提供訂製的使用者應用程式給用戶端裝置14。
使用者應用程式可以使用由雲端運算架構12所支援的程式化語言來建立。該使用者應用程式提供由人們或機構所產生的大量內容的存取。例如,可能需要處理以及儲存由健康照顧提供者所產生的大量醫療內容之健康服務。健康服務由於具有相關內容的患者數量持續地成長而需要可擴展性。在某些實施例中,內容可以包含服務或包含視訊、音訊、影像、文字、軟體等等的媒體。
在某些實施例中,與雲端運算架構12通訊之使用者應用程式可以被包含在一個單頁應用程式(「SPA」)中。一個SPA可以係一個網頁應用程式,其載入一個單一的HTML頁且在該使用者與該應用程式互動時動態地更新該頁。
實例係包含與健康相關的服務,其提供使用者應用程式給使用用戶端裝置14之使用者。與健康相關服務的例子係包含用於搜尋、策畫、上傳或下載健康相關內容以由健康照顧提供者以及患者來使用之機構。例如,使用者應用程式可以提供一個入口以儲存及/或檢索有關患者的醫療資訊。
在某些實施例中,該使用者應用程式係當地性地存駐在用戶端裝置14處,其從雲端運算架構12存取資料。在某些實施例中,該使用者應用程式可以存駐在系統10中的其他地方。用戶端裝置14可以透過一個經由雲端運算架構12所提供之使用者入口管理來存取該使用者應用程式。在某些實施例中,遠端服務提供者經由網路16來使 用雲端運算架構12作為一個平台以提供該使用者應用程式給用戶端裝置14。
一個服務提供者可以包含一或多個被包含在雲端運算架構12中及/或在其遠端的伺服器電腦。例如,一個健康服務提供者可以包含允許醫院與患者透過雲端運算架構12來存取內容之伺服器。該服務提供者可以提供任何數量以及種類之可以被實施在雲端運算架構12中的使用者應用程式。
大量的多個使用者應用程式可以經由網路16同時地連接至雲端運算架構12。例如,同時地存取該使用者應用程式之使用者的數量可超過數十萬。在用戶端裝置14上可取用的該使用者應用程式可以經由網路16非同步地與雲端運算架構12進行通訊。該使用者應用程式發送非同步請求給雲端運算架構12,其非同步地發送請求確認回給在用戶端裝置14上的該使用者應用程式。
在用戶端裝置14上的該使用者應用程式可以藉由使用習知的、新的或仍在發展中的非同步協定來與雲端運算架構12進行通訊、與彼此通訊以及與系統10的其他組件通訊。在這種情況下,非同步協定包含一組規則,該規則定義系統10的節點如何基於經由通訊鏈路所發送之資訊而與彼此互動。該非同步協定允許多個使用者請求被同時地處理,而不會阻塞資源(諸如處理器、記憶體以及網路頻寬)。該非同步通訊有助於使系統10係大規模地可擴展的。
用戶端裝置14可以包含任何類型的行動終端機、固定終端機或可攜式終端機,包含行動手機、基地台、單元、裝置、多媒體電腦、多媒體平板電腦、網際網路節點、通訊器、桌上型電腦、膝上型電腦、筆記型電腦、輕省型筆記型電腦、平板電腦、個人通訊系統(PCS)裝置、個人導航裝置、個人數位助理(PDA)、音訊/視訊播放器、數位相機/攝錄機、定位裝置、電視接收器、無線電廣播接收器、電子書裝置、遊戲裝置、這些裝置之該配件以及周邊裝置或任何其之組合。
圖2根據本發明之一些實施例,係包含非同步地接收以及處理訊息之連續層之雲端運算架構12之方塊圖。每一層包含一個含有「N」個電腦的叢集且在需要時係可擴展的。雲端運算架構12可以包含依連續順序之以下層:網頁API叢集層22、訊息佇列(MQ)叢集層24、微服務叢集層26以及資料庫叢集層28(亦整體地稱作為「該層」或「該連續層」且個別地稱作為「一層」)。
每一層包含一個負載平衡器30(整體地稱作為負載平衡器30而個別地稱作為負載平衡器30或30-1至30-4),其可以獨立於任一其他層來平衡該層之負載。該負載基於該層可得之工作量而被平衡。平衡該層之該負載有助於使該雲端系統係大規模地可擴展的。雲端運算架構12之實施例可以包含額外層或比那些展示於圖2中的較少的層。
網頁API叢集層22可以經由通道20從一或多個使用 者應用程式接收若干的非同步請求且發送非同步請求確認回給該使用者應用程式。每一層透過一或多個非同步通道32而與下一層連續地通訊。最後,資料庫叢集層28促使新近可用之資訊經由通道20給該使用者應用程式。該使用者應用程式可以藉由該新近可用之資訊而被自動地更新。該使用者應用程式不需要查詢雲端運算架構12任何新資訊。相反地,例如,使用者之包含使用者應用程式之網頁可以被自動地更新為變成可獲得的相關資訊。
圖3係繪示由根據本發明之一些實施例之雲端運算架構12所執行之程序300之流程圖。在步驟302中,雲端運算架構12從在用戶端裝置14上的一或多個使用者應用程式非同步地接收一或多個訊息。詳言之,該(等)訊息係由一個該連續層之初始層(例如,網頁API叢集層22)所接收。在步驟304中,該(等)訊息係藉由透過該連續層逐層非同步地依序通訊該(等)訊息來進行處理。
在步驟306中,每一個個別層之工作負載係獨立於其他層來平衡。詳言之,該個別層之負載平衡器30檢查當由該特定之個別層進行處理時之該(等)訊息之一或多個時戳。在步驟308中,最後層(例如,資料庫叢集層28)基於該(等)訊息而促使對該(等)使用者應用程式進行更新。在步驟310中,該(等)使用者應用程式被引發自動地更新而無須查詢該更新。
圖4係繪示由根據本發明之一些實施例之雲端運算架構12所執行用於負載平衡之程序400之流程圖。在某些 實施例中,程序400可以被實施為一種演算法。在步驟402中,一個層之負載平衡器30接收該(等)訊息之該(等)時戳。在某些實施例中,訊息可以在由一個層輸出時被蓋時戳。
在步驟404中,該負載平衡器判定目前時間與該(等)時戳之間之差值。在步驟406中,負載平衡器30判定是否該差值係大於高臨限值。若是,則在步驟408中,產生一或多個程序。因此,該層可以藉由使更多的程序可取用以回應在處理中的延遲。若不是,在步驟410中,則負載平衡器30判定該差值是否比低臨限值更低。若是,在步驟412中,則一或多個現行程序被終止。因此,該層可以藉由終止現行程序以平衡該層之工作負載以回應於快速處理。
圖5係根據本發明之一些實施例之雲端運算架構12之網頁API叢集層22之方塊圖。網頁API叢集層22包含負載平衡器30-1、一或多個網頁API伺服器34(整體地稱作為網頁API伺服器34且個別地稱作為網頁API伺服器34或34-1至34-N)以及用於每一個網頁API伺服器34之仲介器36(例如,仲介器36-1至36-N)。負載平衡器30-1經由通道20接收該使用者應用程式之傳入的非同步請求。負載平衡器30-1可以在網頁API伺服器34之中分散該傳入的非同步請求。每個網頁API伺服器34包含仲介器36,其經由通道32-1分散該訊息至該下一層之適當的服務叢集(MQ叢集層24)。
圖6係根據本發明之一些實施例之雲端運算架構12之MQ叢集層24之方塊圖。MQ叢集層24包含一或多個從網頁API叢集層22之仲介器36來接收該分散式訊息之服務叢集38。如以上所指出的,仲介器36可以發送訊息至在MQ叢集層24中運行的服務叢集38。
MQ叢集層24包含一負載平衡器30-2。在某些實施例中,負載平衡器30-2可以包含各種組件,其整體地提供用於MQ叢集層24之負載平衡器之功能性。例如,每個服務叢集38可以包含輸入負載平衡器40(例如,輸入負載平衡器40-1至40-N)、一或多個MQ伺服器42(例如,MQ伺服器42-1-1至42-1-K以及42-N-1至42-N-M)以及輸出負載平衡器44。輸入負載平衡器40可以在MQ伺服器42當中來分散訊息。每個MQ伺服器42產生且發送任務至輸出負載平衡器44(例如,輸出負載平衡器44-1至44-N)。在某些實施例中,MQ伺服器42可以係一個IBM WebSphere MQ或一個Oracle高級佇列。輸出負載平衡器44可以指派該任務給該下一層之適當的執行服務佇列(微服務叢集層26)且存放該任務至該適當的執行服務佇列中。在某些實施例中,每個輸出負載平衡器44指派一個目前的時戳給每個任務。
圖7係根據本發明之一些實施例之雲端運算架構12之微服務叢集層26之方塊圖。微服務叢集層26係接續該連續層之MQ叢集層24之層。微服務叢集層26包含一或多個微服務46(例如,微服務46-1至46-N)。每個微服 務46包含一或多個執行服務48(例如,執行服務48-1-1至48-1-K以及48-2-1至48-2-M)。每個執行服務48可以從一個執行服務佇列提取該指派任務並且執行該指派任務以提供輸出,其被發送至該下一層之雜湊/模數函數(資料庫叢集層28)。該微服務叢集層26亦包含負載平衡器30-3(未圖示)。負載平衡器30-3在操作上可以係與負載平衡器30-1或30-2相似,且因此於此不再次描述。
每個執行服務48藉由檢查從MQ叢集層24之輸出負載平衡器44所接收之每個任務的時戳來監視工作負載且藉由產生或終止執行服務48之複本來平衡工作負載。目前時間與時戳之間之差值被使用來判定是否產生或終止該複本。若該差值係大於高臨限值(例如,10毫秒),則每個執行服務48可以產生一或多個執行服務48之複本。若該差值係小於低臨限值(例如,2毫秒),則接收該任務之每個執行服務48在完成該任務之後將關閉。在某些實施例中,在微服務叢集層26中的執行服務48係一個運行在虛擬機上的控制台。
圖8係根據本發明之一些實施例之雲端運算架構12之資料庫叢集層28之方塊圖。資料庫叢集層28接續微服務叢集層26。資料庫叢集層28包含一個負載平衡器30-4(未圖示)。負載平衡器30-4在操作上可以係與任一負載平衡器30-1至30-3相似,且因此於此不再次描述。
資料庫叢集層28包含一個雜湊/模數函數50以及一 或多個三位一體群組52(例如,三位一體群組52-1至52-N)。每個三位一體群組52係包含主節點54(例如,主節點54-1至54-N)、從屬節點56(例如,從屬節點56-1至56-N)以及第三從屬節點58(例如,第三從屬節點58-1至58-N)。資料係被複製至該從屬節點(例如,伺服器)。第三從屬節點58係第三伺服器,其中資料之碎片被儲存。在某些實施例中,有用以橫向分片資料之「n」個「第三伺服器」以用於增加安全措施。在某些實施例中,第三從屬節點58存在於一個雲端機器上。在某些實施例中,資料庫叢集層28可以包含一個Redis資料庫叢集。
密鑰可以提供一個用以識別、存取以及更新在資料庫叢集層28中之資訊的工具。雜湊/模數函數50可以雜湊一個密鑰且接著取得其之模數。該模數返回一個整數值,其係被使用以識別伺服器之一位址。因此,該模數係被使用以導出什麼伺服器資料被保存之一演算法。亦即,資料之位置可以基於該模數來判定。
每個主節點54被耦合至發佈器60,其可以推動更新以自動地更新使用者應用程式,其可以被包含在網頁中。因此,使用者應用程式可以在沒有接收來自使用者應用程式的查詢或重新載入包含該使用者應用程式之網頁的情況下被更新。
圖9係根據本發明之一些實施例包含可以自動地監視系統10之雲端運算架構12之層之獨立監視系統62之方 塊圖。監視系統62監視雲端運算架構12之每個層22至28的工作負載。工作負載可以基於效能資料(諸如資源消耗(例如,CPU、記憶體、頻寬)資料或處理時間資料)而被測量。若一層之工作負載大於臨限值,則監視系統62可以啟動在該層中的額外程序來幫助管理該工作負載。若該層之該工作負載低於臨限值,則監視系統62可以停用在該層中的現行程序因為其係不再被需要。
萬一錯誤發生時(其不能被自動地校正),監視系統62可以發送通知給系統管理員電腦64。此外,監視系統62可以登錄被接收(例如,效能資料)至資料庫66中的資料。監視系統62亦可以發送被登錄之系統效能資料至視覺化伺服器68,其可以接著發送該視覺化資料給系統管理員電腦64以用於檢查。
圖10係根據本發明之一些實施例由圖9之監視系統62所提供之不同服務之方塊圖。監視系統62可以包含輸入/輸出子系統70、監視器資料庫72、樞紐子系統74以及虛擬機76。
輸入/輸出子系統70可以引入測試資料至雲端運算架構12中。在某些實施例中,該測試資料透過網頁API叢集層22而被引入且透過其餘層來傳播。因此,監視系統62可以透過雲端運算架構12來監視該測試資料之處理時間。在某些實施例中,該測試資料可以被引入至任一層22至28中,且其處理時間可以被使用於監視雲端運算架構12。在某些實施例中,輸入/輸出子系統70可以發送監 視資訊給樞紐子系統74。
監視器資料庫72可以查詢資料庫叢集層28之資料庫三位一體群組52以調查關於每個資料庫三位一體群組52之資源消耗以及工作負載的資訊。例如,監視器資料庫72可以使用該查詢以收集關於記憶體消耗、CPU消耗、在每個資料庫三位一體群組52中的資料量(例如,記憶體消耗)以及被連接至雲端運算架構12之用戶之數量之資訊。監視器資料庫72收集對於該查詢之該回應且分析其以判定是否在資料庫叢集層28中的工作負載係未平衡(例如,相對於臨限值係太多或太少)。若有太多工作,則監視器資料庫72通訊至資料庫叢集層28以啟動更多資料庫三位一體群組52。若有太少工作,則監視器資料庫72通訊至資料庫叢集層28以停用一或多個的資料庫三位一體群組52。監視器資料庫72可以發送此資訊至樞紐子系統74。
虛擬機76可以查詢雲端運算架構12之虛擬機關於每個虛擬機的資源消耗。例如,虛擬機76可以監視該CPU、該記憶體以及每個虛擬機的頻寬消耗。虛擬機76可以收集對於該查詢之回應且分析這些回應以判定一個特定的虛擬機是否工作效率低下。虛擬機76可以發送該資訊至樞紐子系統74。
樞紐子系統74可以接收來自輸入/輸出子系統70、監視器資料庫72以及虛擬機76之資訊。每一次網頁API伺服器34、MQ伺服器42、執行服務48或資料庫三位一體 群組52被啟動或停用時,樞紐子系統74可以發送通知(諸如電子郵件或文字訊息)至系統管理員電腦64。再者,樞紐子系統74可以發送被接收至資料庫叢集層28或另一個資料庫中的全部資訊。
在某些實施例中,視覺化伺服器68可以從監視器資料庫72收集該監視系統極其重要的登錄且產生可以被顯示在監視器上的資訊的視覺顯示並且手動地分析。
監視系統62可以藉由收集基於被引入至雲端運算架構12中之測試訊息之效能資料來監視一層的工作負載。該效能資料可以被使用以發信號至一層以在該層中產生一或多個新程序或終止一或多個現行程序。該效能資料可以包含時戳資訊或資源消耗資訊。
圖11係根據本發明之一些實施例由該監視系統62所執行用於工作負載平衡之程序1100之流程圖。在步驟1102中,監視系統62輸入一個測試訊息至雲端運算架構12中。在某些實施例中,程序1100可以被實施為在輸入/輸出子系統70上所運行的工作負載監視演算法。例如,輸入/輸出子系統70可以透過網頁API叢集層22來輸入測試資料至雲端運算架構12中以透過雲端運算架構12來監視該測試資料之處理時間。在某些實施例中,該測試訊息可以被直接地輸入至雲端運算架構12之任一層中。
在可選之步驟1104中,監視系統62可以記錄當該測試訊息被輸入至雲端運算架構12時之時戳。例如,在輸入該測試訊息至雲端運算架構12中之後,輸入/輸出子系 統70可以記錄該目前時間做為該輸入時戳。
在步驟1106中,監視系統62接收一個來自雲端運算架構12的輸出,其係基於該測試訊息所產生。在可選之步驟1108中,該監視系統記錄一個用於該輸出之時戳。例如,在該測試資料透過雲端運算架構12而被處理之後,輸入/輸出子系統70可以藉由來自微服務叢集層26之時序資訊來接收該測試資料。在此資料已經被接收之後,輸入/輸出子系統70可以記錄該目前時間為輸出時戳。
在步驟1110中,該測試訊息之該輸入時戳與輸出時戳之間的差值可以被使用以獲取關於層22至28之任一層的效能資訊。例如,該時序資訊可以記錄用於由雲端運算架構12之該連續層之單一層處理該測試資料所花費的時間。
在步驟1112中,監視系統62判定該差值是否大於高臨限值。若是,在步驟1114中,則監視系統62發信號至一層以產生一或多個新程序來平衡該工作負載。例如,若在一個特定層中之該測試資料處理係太慢(亦即,用於該資料被處理所花費的時間係高於高臨限值),則監視系統62發信號至該特定層以產生在該層中之額外的程序。
若不是,在步驟1116中,則監視系統62判定該差值是否小於低臨限值。若是,在步驟1118中,則監視系統62發信號至該層以終止一或多個程序來平衡該工作負載。例如,若在該特定層中之該測試資料處理係太快(亦 即,用於該資料被處理所花費的時間係低於低臨限值),則監視系統62發信號至該特定層以停用在層22至28之任一層中的一些程序。
例如,在透過網頁API叢集層22以輸入該測試資料至雲端運算架構12中之後,監視系統62可以藉由時序資訊來接收該測試資料。具有時序資訊之被接收的測試資料可以指示透過MQ叢集層24來處理該測試訊息花費了100毫秒,其係高於該高臨限值(因此,係太慢)。其結果是,監視系統62可以通訊至網頁API叢集層22以啟動更多網頁API伺服器34。
當藉由測量資源消耗資訊(而不是時戳)來獲取效能資料時,當該資源消耗資訊指示資源消耗係大於高臨限值時,監視系統62可以發信號至一層以產生一或多個新程序。當該資源消耗資訊指示由該測試層之資源消耗小於低臨限值時,監視系統62可以發信號給一個特定層以終止在該測試層中的現行程序。在某些實施例中,該效能資料可以被使用以產生一種可以視需要而產生的圖形視覺化。
圖12係一方塊圖,其中繪示一電腦,其可操作以實施指令來造成該電腦執行根據本發明之一些實施例之所揭示的技術。電腦系統80包含處理器82、主記憶體84、非揮發性記憶體86以及網路介面裝置88。各種共同組件(例如,快取記憶體)為了簡化說明而被省略。電腦系統80係旨在繪示一個硬體裝置,任一上述之組件可以在該硬體裝置上被實施。電腦系統80可以係任何適用的習知 或方便的類型。電腦系統80之組件可以經由匯流排90或透過一些其他習知的或方便的裝置而被耦合在一起。
本揭示內容考慮電腦系統80採取任何適當的外觀形式。作為實例,而不是藉由限制的方式,電腦系統80可以係一種嵌入式的電腦系統、系統晶片(SOC)、單板電腦系統(SBC)(例如,模組化電腦(COM)或系統模組(SOM))、桌上型電腦系統、膝上型或筆記型電腦系統、互動式資訊站、主機、電腦系統之網絡、行動電話、個人數位助理(PDA)、伺服器或這些的兩個或更多個的組合。
在適當的情況下,電腦系統80可以包含一或多個電腦系統,可以係單一的或分散式的,可以跨越多個位置,可以跨越多個機器,且可以存駐在可能在一或多個網路中包含一或多個雲端組件之該雲端中。在適當的情況下,一或多個電腦系統80可以執行(沒有大量的空間或時間的限制)在本文中所描述或繪示的一或多個方法的一或多個步驟。作為一個實例而不是藉由限制的方式,一或多個電腦系統80可以即時地或依批次模式來執行在本文中所描述或繪示的一或多個方法的一或多個步驟。在適當的情況下,一或多個電腦系統80可以在不同時間或在不同位置處執行在本文中所描述或繪示的一或多個方法的一或多個步驟。
例如,處理器82可以係一個習知的微處理器(諸如一個Intel Pentium微處理器或Motorola power PC微處理 器)。熟習該相關技術者將認可該術語「機器可讀取(儲存)媒體」或「電腦可讀取(儲存)媒體」係包含可被該處理器存取的任何類型的裝置。
主記憶體84係藉由例如匯流排90而被耦合至處理器82。主記憶體84可以包含(藉由實例而非限制的方式)隨機存取記憶體(RAM)(諸如動態RAM(DRAM)以及靜態RAM(SRAM))。主記憶體84可以係本端、遠端或分散式。
匯流排90亦耦合處理器82至非揮發性記憶體86與驅動單元92。非揮發性記憶體86可以係磁性軟碟或硬碟、磁性光碟、光碟、唯讀記憶體(ROM)(例如,CD-ROM、EPROM或EEPROM)、磁性或光學卡或另一種形式用於大量資料的儲存器。一些此資料係通常在執行在電腦系統80中的軟體(包含機器可讀取指令)期間藉由直接記憶體存取程序被寫入至記憶體中。
非揮發性記憶體86可以係本端、遠端或分散式。非揮發性記憶體86係可選的,因為系統可以藉由所有在記憶體中可取用之適用的資料而被產生。典型的電腦系統將通常(但不一定)包含至少一個處理器、記憶體以及耦合該記憶體至該處理器之裝置(例如,匯流排)。
軟體通常儲存在非揮發性記憶體86及/或驅動單元92中(例如,在機器可讀取儲存媒體上的指令)。確實,在記憶體中儲存一整個大的程式可能甚至是不可能的。然而,對於欲運作之軟體,其被移動至電腦可讀取位置對於 處理係適當的(例如,主記憶體84)。甚至當軟體被移動至用於執行的主記憶體84時,處理器82將通常使用硬體暫存器來儲存與該軟體相關聯的值,而本端快取記憶體,在理想情況下,則用於加快執行。
如在本文中所使用的,當該軟體程式被稱作為「被實施在電腦可讀取媒體中」時,係假定一個軟體程式被儲存在任一習知或方便的位置處(從非揮發性儲存器至硬體暫存器)。當至少一個與該程式相關聯的值藉由處理器82而被儲存在可讀取暫存器中時,一個處理器(例如,處理器82)被認為係「經組態用以執行一個程式」。
匯流排90亦將處理器82耦合至網路介面裝置88。網路介面裝置88可以包含一或多個數據機或網路介面。應瞭解,數據機或網路介面可以被認為是電腦系統80的部分。網路介面裝置88可以包含類比數據機、ISDN數據機、電纜數據機、訊標環介面、衛星傳輸介面(例如,「直接PC」)或其他用於將電腦系統80耦合至其他電腦系統的介面。
電腦系統80可以包含一或多個輸入及/或輸出的裝置。該I/O裝置可以包含(藉由實例而非限制的方式)鍵盤(例如,字母數字輸入裝置94)滑鼠或其他指標裝置、磁碟機、印表機、掃描器以及其他輸入及/或輸出裝置,包含顯示裝置96。顯示裝置96可以包含(藉由實例而非限制的方式)陰極射線管(CRT)、液晶顯示器(LCD)或一些其他適用的習知或方便的顯示裝置。電腦 系統80亦可以包含控制裝置98(例如,控制器)以及信號產生裝置100。為了簡單起見,假定在圖12之實例中的任一裝置的控制器(未圖示)係存駐作為一個介面。
在操作中,電腦系統80可以被操作系統軟體所控制,該操作系統軟體係包含一個檔案管理系統(諸如一個磁碟作業系統)。一個具有相關聯之檔案管理系統軟體之操作系統軟體的實例係Microsoft Windows®與其之相關聯的檔案管理系統。另一個具有相關聯之檔案管理系統軟體之操作系統軟體的實例係該LinuxTM操作系統與其之相關聯的檔案管理系統。檔案管理系統係通常被儲存在非揮發性記憶體86及/或驅動單元92中且使得該處理器去執行被該操作系統所需要的該各種動作用以輸入且輸出資料且用以在該記憶體中儲存資料,包含儲存檔案在非揮發性記憶體86及/或驅動單元92上。
本發明的一些部分可以就操作的演算法與符號的表現方面來呈現在電腦記憶體中的資料位元上。這些演算法的描述以及表現係由那些熟習該資料處理之技術者所使用用以最有效地傳達其工作之實質性給其他熟習該技術者的工具。一種演算法係在此且通常地被設想為導致所要之結果之操作的自相一致的序列。該操作係那些需要物理數值之物理操作。通常,雖然不必然,這些數值係採取能夠被儲存、傳輸、組合,比較以及以其他方式被操作的電或磁信號的形式。已證明有時將這些信號稱為位元、值、元件、符號、字符、術語、數字等等係方便的,主要地由於普遍 使用的原因。
然而應記住,所有的這些以及相似的術語係與該適當的物理數值相關聯且係僅僅應用於這些數值的方便的標記。除非特定地另外聲明,如從以下討論中顯而易見的,應瞭解在整個該描述中,利用諸如「處理」或「運算」或「計算」或「判定」或「顯示」或「產生」等等術語的討論,係指一個電腦系統或相似的電子運算裝置之該動作以及程序,其操作且將在該電腦系統的暫存器與記憶體中被呈現為物理(電子)數值之資料轉換為其他相似地在該電腦系統記憶體或暫存器或其他此種資訊儲存器、傳輸或顯示裝置中被呈現為物理數值之資料。
在本文中所呈現的該演算法以及顯示係非固有地與任何特定的電腦或其他設備有關。各種一般目的之系統可以藉由根據在本文中之教示的程式而被使用,或其可以證明方便於建構更專用之設備以執行一些實施例之該方法。用於多種的這些系統之該所需之結構將從以下之該描述中出現。此外,該技術將不參照任何特定之程式化語言來描述,於是各種實施例可以因此使用多種的程式化語言來實施。
在某些實施例中,電腦系統80係作為獨立的裝置來操作或可以被連接(例如,網路)至其他機器。在一個網路部署中,電腦系統80可以在一個伺服器之該容量中或在客戶端伺服器網路環境中的一個客戶端機器中來操作,或作為一個在點對點(或分散式)的網路環境中的對等機 器來操作。
電腦系統80可以包含伺服器電腦、客戶端電腦、桌上型電腦、平板電腦、膝上型電腦、機上盒(STB)、任何手持式行動裝置、處理器、電話、網頁裝置、網路路由器、開關或電橋,或任何能夠執行具體指定由電腦系統80所採取之動作的一套指令(連續的或以其他方式)的機器。
儘管機器可讀取媒體或機器可讀取儲存媒體被展示在一個例示性實施例中以作為一個單一之媒體,但是該術語「機器可讀取媒體」與「機器可讀取儲存媒體」應被理解為包含儲存該一或多個指令集的一個單一媒體或多個媒體(例如,一個集中式或分散式資料庫,及/或相關聯的快取器以及伺服器)。術語「機器可讀取媒體」與「機器可讀取儲存媒體」亦應被理解為包含任何能夠儲存、編碼或攜載用於被該機器所執行的一組指令之媒體且其使得該機器去執行任一該目前所揭示之技術以及創新之該方法或模組之一或多者。
在一般的情況下,被執行以實施本發明之該實施例之該例行程序可以被實施為部分的操作系統或特定的應用程式、組件、程式、物件、模組或稱作為「電腦程式」之指令之序列。該電腦程式典型地係包括在各種記憶體中的不同時間點之一或多個指令組以及在電腦中的儲存裝置,並且,當被在電腦中的一或多個處理單元或處理器讀取與執行時,使得該電腦去執行用以執行包含本發明之各種態樣 之元件之操作。
再者,儘管實施例已經在全功能性電腦以及電腦系統之上下文中進行描述,熟習此項技術者將瞭解各種實施例能夠被分散為各種形式之程式產品,並且不論被使用以實際地實現該分散之機器或電腦可讀取媒體之該特定類型,本發明係同樣地適用。
機器可讀取儲存媒體、機器可讀取媒體或電腦可讀取(儲存)媒體之進一步實例係包含(但不限於)可記錄型媒體(諸如揮發性以及非揮發性記憶體裝置)、軟碟以及其他可移動性碟、硬碟機、光碟(例如,光碟唯讀記憶體(CD ROM)以及數位多功能光碟(DVD))等等,以及傳輸型媒體(諸如數位以及類比通訊鏈路)。
在一些情況中,例如,記憶體裝置之操作(諸如在從二位元一變換為二位元零或反之亦然的狀態中)可能包括一個轉換(諸如一個實體的轉換)。藉由特定類型的記憶體裝置,此種實體的轉換可以包括將一個物品實體的轉換為不同的狀態或事物。例如(但沒有限定),對於一些類型的記憶體裝置,在狀態中的轉換可以包括電荷的累積以及儲存,或儲存電荷的釋放。同樣的,在其他記憶體裝置中,狀態的轉換可以包括在磁定向中的實體變換或轉換,或在分子結構中的實體變換或轉換(諸如從晶態到非晶態或反之亦然)。前述非旨在作為實例之詳盡清單,其中在記憶體裝置中於二位元一變換為二位元零或反之亦然的狀態中係可以包括一個轉換(諸如一個實體的轉換)。相反 地,前述係旨在作為說明性的實例。
一個儲存媒體典型地可以係非暫時性的或包括一個非暫時性的裝置。在這種情況下,非暫時性的儲存媒體可以包含一個有形的裝置,表示該裝置具有一個具體的實體形式,儘管該裝置可能轉換其之實體狀態。因此,例如,非暫時性的係指一個裝置儘管在狀態中的變換仍保持有形的。
以上之描述以及圖式係說明性的且不應被解釋為限制本發明於所揭示的該精確形式。熟習該相關技術者可以瞭解按照以上之揭示係可實例許多修改和變化。例如,在一些實施例中,在該雲端運算架構之任一以及全部的該叢集層之間的通訊可以以多種方式來進行,包含係部分地或不連續的、部分地或完全連續的、部分地或完全雙向或單向的,或其之組合。
許多具體的細節被描述用以提供對於本發明之徹底瞭解。然而,在某些情況中,為了避免模糊該描述,將不描述已知的或習知的細節。
參考「一個實施例」係表示所述的與該實施例有關的一個特定的特徵、結構或特性係被包含在至少一個本發明的實施例中。「在一些實施例中」之說法的出現不一定全部指相同的實施例,也不是指與其他實施例互斥的單獨的或替代的實施例。再者,被描述的各種特徵可以由一些實施例但未由其他的實施例來展示。同樣地,所描述的各種條件可能係針對一些實施例之條件而不是其他實施例之條件。
除非上下文明確地另外要求,否則在整個說明內容以及申請專利範圍中,詞語「包括(comprise)」、「包括(comprising)」等等係以一種包含的意思來解釋,而非排他性或窮舉性的意思;也就是說,在意思上係「包含,但不限於」。
如在本文中所使用的,術語「連接」、「耦合」或任何其之衍生詞係表示在兩個或更多個元件之間的任何連接或耦合,無論直接或間接的;該元件之間連接的耦合可以係實體的、邏輯的或其任何組合。此外,詞語「在本文中」、「以上」、「以下」,以及相似含義的詞語,當被使用在此申請案中時,應指此申請案之整體而不是指此申請案的任何特定的部分。
儘管程序或方塊係依給定的順序來呈現,但是替代實施例可以依不同的的順序來執行具有步驟之例常程序或採用具有方塊的系統,而一些程序或方塊可以被刪除、移動、增加、再細分、組合及/或修改以提供替代的或子組合。每個這些程序或方塊可以以多種的不同方式來實施。此外,儘管程序或方塊在時間上被展示為被連續地執行,但是這些程序或方塊可以替代地被並行地執行,或可以在不同的時間被執行。再者,在本文中提到的任何具體的數字係僅實例;替代之實施可以採用不同的值或範圍。
在本文中所提供的本發明之教示可以應用於其他系統,不一定是上述的系統。可以結合上述的各種實施例之元件及動作以提供進一步之實施例。
可以依照以上之描述對本發明進行這些以及其他的變換。儘管以上之敘述描述了本發明之某些實施例,且描述了所預期的最佳模式,但是無論該以上出現在本文中的如何詳細,該教示仍可以以許多方式來實施。系統之細節可以在其實施細節中有相當大地變化,同時仍由在本文中所揭示之標的所涵蓋。
如上所述,當描述本發明之某種特徵或態樣時所使用的特定之術語不應被理解為暗示該術語在本文中被重新定義而被限制於與該術語相關聯之任何特定的本發明之特性、特徵或態樣。在一般的情況下,被使用在申請專利範圍中之術語不應被解釋為用以將本發明限制於任何特定之實施例,除非本發明明確地定義這些術語。因此,本發明所包含的實際範圍不僅在於所揭示之實施例,且在於該申請專利範圍下實踐或實施本發明之所有的等效方式。
儘管以下本發明之某些態樣係以某種申請專利範圍的形式被呈現,但是本案發明人係以任何數量之申請專利範圍之形式來設想本發明之各種態樣。例如,儘管僅本發明之一種態樣被陳述為一種手段加功能請求項,但是其他態樣同樣地可以被具體實施為一種手段加功能之請求項,或以其他的形式,諸如在一個電腦可讀取媒體中被實施。(任何旨在被視為一種手段加功能之請求項之主張將藉由詞語「用於...之構件」來開頭。)因此,本案申請人在提出本申請案之後係保留增加額外之申請專利範圍來尋求此種針對本發明之其他態樣之額外之申請專利範圍之形式的 權利。
在本說明書、揭露的上下文內及使用術語之特定內文中所使用之術語通常具有其在本技術中的一般的意義。某些被使用以描述本發明的術語係在以上被討論,或在本說明書中的其他地方被討論,以提供額外的指引給關於本發明之說明之實踐者。為了方便起見,某些術語可以被強調,例如利用大寫、斜體及/或引號標記。使用強調方式在術語之範圍以及意義上不具有影響;在相同的上下文中,無論術語是否被強調,該術語之範圍以及意義係相同的。應瞭解,相同的元件可以以多於一個的方式來描述。
因此,替代語言以及同義詞可以被使用於任何在本文中所討論之該術語之一或多者,並不是任何特殊的意義要被放置在是否一個術語在本文中被闡述或討論上。針對某些術語可提供同義詞。一或多個同義詞之列舉不排除使用其他的同義詞。在此說明書中的任何地方所使用之實例(包含在本文中所討論的任何術語之實例)係僅說明性的而非旨在進一步限制本發明或任何示例性術語之該範圍與意義。同樣地,本發明不被限制於在此說明書中所給定的各種實施例。
根據以下所給定之本發明之實施例,並非意圖進一步限制本發明之範圍、器件之實例、設備、方法以及其相關之結果。應注意,為了讀者之方便性,在實施例中可以被使用之標題或副標題,其絕不應該限制本發明之範圍。除非另外定義,在本文中所使用之所有技術以及科學術語係 如由一個普通熟習本發明相關之技術者一般所瞭解的具有相同的意義。在衝突的情況下,本文件(包含定義)將控制。
實施例的一些部分將以在資訊上之操作之演算法以及符號表示方面來進行描述。這些演算的描述以及表示係一般地由熟習該資料處理技術者使用來將其工作之實質性有效地傳達給其他熟習該技術者。這些操作,儘管被功能性地、計算性地、或邏輯性地描述,但是應瞭解其係由電腦程式或等同之電路、微碼等等來進行實施。再者,其亦可以係方便的,有時候係指這些作為模組的操作的配置,而不失一般性。所描述的操作以及其相關聯之模組可以被實施在軟體、韌體、硬體或其任何組合中。
在本文中所述的任何步驟、操作或程序係可以藉由一或多個硬體或軟體模組(單獨或在與其他裝置之組合中)被執行或實施。在一實施例中,一軟體模組係藉由一個電腦程式產品(包括含有電腦程式碼之電腦可讀取媒體)來實施,其可以由電腦處理器來執行,該電腦處理器係用於執行任何或所有在本文中所述之該步驟、操作或程序。
本發明之實施例亦可以與用於執行在本文中之該操作之設備有關。此設備可以針對該所需之目的而被特別地建構及/或其可以包括一個選擇性地被啟動或由儲存在該電腦中的電腦程式重新配置之通用之運算裝置。此種電腦程式可以被儲存在非暫時性的、有形的電腦可讀取儲存媒體中,或被儲存在適合用於儲存電子指令之任何類型之媒體 中,其可以被耦合至電腦系統匯流排。再者,在本說明書中所提及之任何運算系統係可以包含單一處理器或可以被架構成採用被設計用於增加運算能力之多個處理器。
本發明之實施例亦可以與藉由在本文中所述之一個運算程序所生產的產品相關。此種產品可以包括從一個運算程序所得之資訊,其中該資訊被儲存在非暫時性的、有形的電腦可讀取儲存媒體上且可以包含任何電腦程式產品之實施例或在本文中所述的其他資料組合。
最後,在本文中所使用的語言主要是已針對可讀取性以及指導性的目的來選擇,且其亦可不被選擇用來描繪或限制本發明標的。因此,其旨在於本發明之範圍不被實施例所限制,反而是由基於其之申請案所公告之任何申請專利範圍所限制。因此,所揭示之實施例意欲為說明性的,而非用以限制本發明之範圍,本發明之範圍係被闡述於以下之申請專利範圍中。
12‧‧‧後端雲端運算架構
20‧‧‧通道
22‧‧‧網頁API叢集層
24‧‧‧訊息佇列(MQ)叢集層
26‧‧‧微服務叢集層
28‧‧‧資料庫叢集層
30-1~30-4‧‧‧負載平衡器
32-1~32-3‧‧‧通道

Claims (20)

  1. 一種基於雲端的運算架構(12),其包含運算裝置之可擴展叢集的連續層(22、24、26、28),該運算裝置之可擴展叢集的連續層可操作以處理經由網路(16)從用戶端裝置(14)上的應用程式接收的非同步請求且可操作以經由通道連續地逐層非同步地通訊訊息,其中每一層包含用以獨立於任一其他層來平衡該層之工作負載的負載平衡器,使得該基於雲端的運算架構(12)提供大規模可擴展、非同步後端雲端服務,該基於雲端的運算架構(12)包括:複數個連續層(22、24、26、28),經組態成用以處理從複數個用戶端裝置(14)上之複數個應用程式接收之複數個非同步請求,每一層包含被組態成用以獨立於該複數個連續層(22、24、26、28)之任一其他層來平衡該層之負載之負載平衡器(30);及複數個通道(32),可通訊地耦接該複數個連續層(22、24、26、28),使得該複數個連續層(22、24、26、28)之任一層被組態成可經由該複數個通道(32)之一或多個通道與該複數個連續層中之一連續層非同步地通訊。
  2. 如申請專利範圍第1項之基於雲端的運算架構(12),其中,該複數個連續層(22、24、26、28)包括網頁應用程式介面、API、被組態成用以從用戶端裝置(14)上的該複數個應用程式接收該複數個非同步請求之 叢集層(22),該網頁API叢集層(22)包含:該複數個負載平衡器(30)中之一負載平衡器(30-1),其被組態成用以分散該複數個非同步請求,藉此提供複數個分散式非同步請求;一或多個網頁API伺服器(34),其被組態成用以接收該複數個分散式非同步請求;及一或多個仲介器(36),分別與該一或多個網頁API伺服器(34)可通訊地耦接,且被組態成用以分散訊息至該複數個連續層中在該網頁API叢集層(22)之後的一層,以藉此提供分散式訊息。
  3. 如申請專利範圍第1或2項之基於雲端的運算架構(12),其中,在該網頁API叢集層(22)之後的該層係訊息佇列(MQ)叢集層(24),該MQ叢集層(24)包括:一或多個服務叢集(38),被組態成用以分別從該一或多個仲介器(36)接收該分散式訊息,每一服務叢集(38)包含:輸入負載平衡器(40),被組態成用以將該分散式訊息分散至一或多個MQ伺服器(42);該一或多個MQ伺服器(42),每一MQ伺服器(42)被組態成用以產生任務及發送該任務至輸出負載平衡器(44);及該輸出負載平衡器(44),被組態成用以指派該任務至該複數個連續層(22、24、26、28)中在該MQ叢集層 (24)之後的一層的複數個執行服務(48)中的一個執行服務(48),以藉此提供分散式任務。
  4. 如申請專利範圍第3項之基於雲端的運算架構(12),其中,該輸出負載平衡器(44)中之各者被組態成對該所接收任務之各者加時戳。
  5. 如申請專利範圍第3項之基於雲端的運算架構(12),其中,該輸出負載平衡器(44)之各者被組態成用以將該指派任務存放至適當的執行服務佇列(48)中。
  6. 如申請專利範圍第3項之基於雲端的運算架構(12),其中,在該MQ叢集層(26)之後的該層係微服務叢集層(26),該微服務叢集層(26)包括:一或多個微服務(26),每一微服務(26)包含一或多個執行服務(48),每一執行服務(28)被組態成用以從該執行服務佇列(48)提取該指派任務,執行該指派任務,藉此提供輸出,且將該輸出發送至該複數個連續層(22、24、26、28)中在該微服務叢集層(26)之後的一層,藉此提供分散式發送輸出。
  7. 如申請專利範圍第6項之基於雲端的運算架構(12),其中,每一執行服務(48)藉由檢查從該輸出負載平衡器(44)所接收之每一任務的時戳來監視工作負載,且藉由產生或終止執行服務(48)之複本來平衡該工作負載。
  8. 如申請專利範圍第6項之基於雲端的運算架構(12),其中,每一執行服務(48)被組態成當目前時間 與任務之時戳之間的差值大於高臨限量時用以產生執行服務(48)之一或多個複本且被組態成在完成該任務之後當該差值小於低臨限量時終止該執行服務(48),該高臨限量係大於該低臨限量。
  9. 如申請專利範圍第8項之基於雲端的運算架構(12),其中,該高臨限量係10毫秒,且該低臨限量係2毫秒。
  10. 如申請專利範圍第6項之基於雲端的運算架構(12),其中,該微服務叢集(26)係在虛擬機上運行的控制台。
  11. 如申請專利範圍第6項之基於雲端的運算架構(12),其中,在該微服務叢集層(26)之後的該層係資料庫叢集層(28),該資料庫叢集層包括:雜湊/模數函數(50);及一或多個三位一體群組(52),每一個三位一體群組包含主節點(54)、從屬節點(56)及第三從屬節點(58)。
  12. 如申請專利範圍第11項之基於雲端的運算架構(12),其中,該第三從屬節點(58)存在於雲端機器上。
  13. 如申請專利範圍第11項之基於雲端的運算架構(12),其中每一主節點(54)係與發佈器(60)相關聯,該發佈器(60)被組態成用以促使更新,其自動地更新網頁而不接收查詢或重新載入該網頁。
  14. 一種藉由包含複數個連續層(22、24、26、28)之基於雲端的運算架構(12)所執行之方法,該方法包括:從複數個用戶端裝置(14)上之複數個應用程式非同步地接收(302)一或多個訊息,該一或多個訊息係藉由該複數個連續層(22、24、26、28)中的初始層(22)所接收;藉由以連續順序與該複數個連續層(22、24、26、28)中之每一層非同步地通訊來處理(304)該一或多個訊息;藉由當由個別層處理時檢查該一或多個訊息之一或多個時戳而獨立於該複數個連續層(22、24、26、28)中之其他層來平衡(306)該個別層之工作負載;基於該一或多個訊息來促使(308)從該複數個連續層(22、24、26、28)中之最後層(28)對該複數個用戶端裝置(14)上之該複數個應用程式進行更新;且用該更新來造成該複數個用戶端裝置(14)上之該複數個應用程式更新而不需要針對該更新進行查詢。
  15. 如申請專利範圍第14項之方法,其中,該個別層包括負載平衡器(30),其執行該個別層之工作負載的平衡,藉由該負載平衡器執行之該方法包括:接收(402)該一或多個時戳;當該目前時間與該一或多個時戳之間的差值大於高臨限值時產生(404、406、408)一或多個程序;且 當該差值小於低臨限值時終止(404、410、412)一或多個現行程序。
  16. 一種藉由監視系統(62)執行之方法,該監視系統(62)可操作以監視包含複數個連續層(22、24、26、28)之基於雲端的運算架構(12),該方法包括:輸入(1102)測試訊息至該基於雲端的運算架構(12)之該複數個連續層(22、24、26、28)中之一層;藉由收集基於該測試訊息之效能資料來監視(1104、1106、1108、1110、1112、1116)該層之工作負載;且發信號(1114、1118)給該層以取決於該效能資料而在該層中產生一或多個新程序或終止一或多個現行程序。
  17. 如申請專利範圍第16項之方法,其進一步包括:基於該效能資料來產生視覺化,該視覺化係視需要而提供。
  18. 如申請專利範圍第16或17項之方法,其中,該效能資料包括時戳資訊或資源消耗資訊之至少一者。
  19. 如申請專利範圍第18項之方法,其中,該時戳資訊包括對應於當該測試資料被輸入至該層時之時間的輸入時戳(1104),及對應於當該測試資料由該層輸出時之時間的輸出時戳(1108),該方法進一步包括:發信號(1114、1112)給該層以當該輸出時戳與該輸入時戳之間的差值大於高臨限值時在該層中產生一或多個新程序;且發信號(1118、1116)給該層以當該輸出時戳與該輸 入時戳之間的差值低於低臨限值時終止在該層中之一或多個現行程序。
  20. 如申請專利範圍第18項之方法,其進一步包括:發信號給該層以當該資源消耗資訊指示該層的資源消耗大於高臨限值時在該層中產生一或多個新程序;且發信號給該層以當該資源消耗資訊指示該層的資源消耗小於低臨限值時終止在該層中的現行程序。
TW105113649A 2015-04-30 2016-05-02 大規模可擴展之非同步後端雲端運算架構 TW201711426A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201562155411P 2015-04-30 2015-04-30

Publications (1)

Publication Number Publication Date
TW201711426A true TW201711426A (zh) 2017-03-16

Family

ID=57199647

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105113649A TW201711426A (zh) 2015-04-30 2016-05-02 大規模可擴展之非同步後端雲端運算架構

Country Status (3)

Country Link
US (1) US20160323367A1 (zh)
TW (1) TW201711426A (zh)
WO (1) WO2016176601A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI643081B (zh) * 2018-01-22 2018-12-01 中華電信股份有限公司 基於微服務之智慧型版號貼標系統及其方法
TWI646435B (zh) * 2017-12-28 2019-01-01 中華電信股份有限公司 無伺服器之系統及其執行方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11496588B2 (en) * 2016-06-21 2022-11-08 Micro Focus Llc Clustering layers in multi-node clusters
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10795860B1 (en) * 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
WO2020023709A1 (en) * 2018-07-25 2020-01-30 Blues Inc. DATA SYSTEM ON A MODULE (DSoM) FOR CONNECTING COMPUTING DEVICES AND CLOUD-BASED SERVICES
CN109246246B (zh) * 2018-10-31 2021-03-19 成都知道创宇信息技术有限公司 一种中心化全自动服务发现负载均衡系统
US10911517B2 (en) * 2019-02-17 2021-02-02 Cisco Technology, Inc. Determining end times for single page applications
CN112202829A (zh) * 2019-07-08 2021-01-08 北京邮电大学 基于微服务的社交机器人调度系统和调度方法
US11106919B1 (en) 2020-06-02 2021-08-31 ULTINOUS Zrt. Processing of video streams
CN112738252A (zh) * 2020-12-30 2021-04-30 昆山巨星行动电子商务有限公司 一种电商高并发秒杀系统
US20230100935A1 (en) * 2022-10-17 2023-03-30 Intel Corporation Microservice deployments using accelerators

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212860B2 (en) * 1999-05-21 2007-05-01 Cardiac Pacemakers, Inc. Apparatus and method for pacing mode switching during atrial tachyarrhythmias
US20110012902A1 (en) * 2009-07-16 2011-01-20 Jaganathan Rajagopalan Method and system for visualizing the performance of applications
KR101621791B1 (ko) * 2012-08-14 2016-05-31 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 현재 이용되는 장치 업데이팅
EP2926501A4 (en) * 2012-12-03 2016-07-13 Hewlett Packard Development Co ASYNCHRONOUS FRAMEWORK FOR IAAS MANAGEMENT

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646435B (zh) * 2017-12-28 2019-01-01 中華電信股份有限公司 無伺服器之系統及其執行方法
TWI643081B (zh) * 2018-01-22 2018-12-01 中華電信股份有限公司 基於微服務之智慧型版號貼標系統及其方法

Also Published As

Publication number Publication date
US20160323367A1 (en) 2016-11-03
WO2016176601A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
TW201711426A (zh) 大規模可擴展之非同步後端雲端運算架構
US11057313B2 (en) Event processing with enhanced throughput
US9529658B2 (en) Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information
US9529657B2 (en) Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information
US20210352074A1 (en) Method, apparatus, and computer program product for managing access permissions for a searchable enterprise platform
CN108491164B (zh) 一种混合云存储架构系统
EP2954403B1 (en) Cloud-based streaming data receiver and persister
US20190303487A1 (en) System and platform for computing and analyzing big data
JP7483929B2 (ja) 共同トレーニングモデルを評価するための方法及び装置
US8775372B2 (en) Retrieving historical object-related configuration data
Koppad et al. Cloud computing enabled big multi-omics data analytics
WO2019118867A1 (en) Method, apparatus and computer program product for improving data indexing in a group-based communication platform
US11831652B2 (en) Apparatuses, methods, and computer program products for service permissions scaling in a federated system
Barnett et al. Intelligent Sensing to Inform and Learn (InSTIL): a scalable and governance-aware platform for universal, smartphone-based digital phenotyping for research and clinical applications
US11854017B2 (en) Predictive modeling and analytics integration platform
US20160277252A1 (en) High performance topology resolution for non-instrumented nodes
US9626444B2 (en) Continuously blocking query result data for a remote query
Dias et al. Blocklearning: A modular framework for blockchain-based vertical federated learning
US10795816B2 (en) Method, apparatus and computer program product for implementing filter cache in a group-based communication platform
Liao et al. A novel monitoring mechanism by event trigger for Hadoop system performance analysis
Yang et al. Performance assessment and tuning for exchange of clinical documents cross healthcare enterprises
AU2020103430A4 (en) Method, apparatus, and computer program product for encryption key management within a group-based communication system
González Morín Distributed Implementation of eXtended Reality Technologies over 5G Networks
CA3186623A1 (en) Graph data structure edge profiling in mapreduce computational framework
US20200410046A1 (en) Webpage modification alert system