TWI652621B - 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 - Google Patents
產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 Download PDFInfo
- Publication number
- TWI652621B TWI652621B TW105100402A TW105100402A TWI652621B TW I652621 B TWI652621 B TW I652621B TW 105100402 A TW105100402 A TW 105100402A TW 105100402 A TW105100402 A TW 105100402A TW I652621 B TWI652621 B TW I652621B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- request message
- request
- application
- unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
一種產生虛擬機器訊息佇列應用程式之相依關係的方法與系統。此方法包括以下步驟。攔截數個應用程式透過至少一企業服務匯流排傳遞的至少一傳遞訊息。此至少一個傳遞訊息包括至少一請求訊息。篩選此至少一傳遞訊息,以篩選出此至少一請求訊息,並獲得各個請求訊息之一委任端及一服務端;計算各個請求訊息之一計算值,以獲得各個請求訊息之一訊息編號。將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表。
Description
本揭露是有關於一種產生虛擬機器應用程式之相依關係的方法與系統,且特別是有關於一種產生虛擬機器訊息佇列應用程式之相依關係的方法與系統。
企業服務通常是由大量的服務伺服器(service server)及網路所組成。隨著網路成長與虛擬機器技術的發展,更多的用戶級的應用程式(user application)因為雲端計算(cloud computing),從個人電腦轉移到虛擬資料中心(virtual data center,VDC),終端用戶(end-user)藉由請求資料中心的服務伺服器所提供的服務,來使用遠端的應用程式(remote application)。
此外,分散式的應用程式變得效能更強也更複雜。單一服務或單一網路元件的失效(failure)或效能降低
(performance degradation)可能降低企業網路服務的品質及客戶滿意度。由於負載平衡及高利用性(high availability)的設計要求,應用程式的相依性在分散式系統中會動態改變,要找出這些失效的問題點對人們來說是相當困難的。所以,在多個應用程式之間如何自動找出相依性已成為相當重要的議題。
許多企業使用訊息序列(queue based)應用程式來提供服務。其中部分企業使用企業服務匯流排(enterprise service bus,ESB)架構來傳遞訊息。
隨著訊息序列應用程式已廣泛應用於虛擬機器環境,企業需要一個有系統、低成本、簡單的方法來管理效能並進行除錯(trouble-shooting)。
本揭露係有關於一種產生虛擬機器訊息佇列應用程式之相依關係的方法與系統。
根據本發明揭露內容的一實施例,提出一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的方法。此方法包括以下步驟。攔截數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message)。此至少一傳遞訊息包括至少一請求訊息(request message)。篩選此至少一傳遞訊息,以篩選出此至少一請求訊息,並獲得各個請求訊息之一委任端(client)及一服
務端(server)。計算各個請求訊息之一計算值,以獲得各個請求訊息之一訊息編號。將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表(dependencies table)。
根據本發明揭露內容的另一實施例,提出一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的系統。此系統包括一攔截單元、一篩選單元、一計算單元及一建表單元。攔截單元係攔截數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message)。此至少一傳遞訊息包括至少一請求訊息(request message)。篩選單元係篩選此至少一傳遞訊息,以篩選出此至少一請求訊息,並獲得各個請求訊息之一委任端(client)及一服務端(server)。計算單元係計算各個請求訊息之一計算值,以獲得各個請求訊息之一訊息編號。建表單元係將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表(dependencies table)。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉若干實施範例,並配合所附圖式,作詳細說明如下:
1000、2000‧‧‧系統
111、112、113、114‧‧‧攔截單元
121、122、123‧‧‧篩選單元
131、132、133‧‧‧計算單元
141、142、143‧‧‧建表單元
151‧‧‧建軌單元
161‧‧‧儲存單元
A11、A12、A21、A22、A23、A31、A32、A33、A41、A42、A43、A44、A71、A72、A73、A74、A75‧‧‧應用程式
B11、B21、B22、B31、B41、B42、B71、B72‧‧‧企業服務匯流排
HV41~HV44‧‧‧虛擬機管理器
PM40、PM41、PM41’、PM42、PM43‧‧‧實體機器
RQ11、RQ21、RQ22、RQ31、RQ32、RQ41、RQ42、RQ43、RQ71、RQ72‧‧‧請求訊息
RP11、RP21、RP22、RP31、RP32、RP41、RP42、RP43‧‧‧回覆訊息
S501、S502、S503、S504、S505‧‧‧流程步驟
VM41、VM42、VM43、VM44‧‧‧虛擬機器
第1圖繪示一實施例之1:1之應用程式與企業服務匯流排(enterprise service bus,ESB)之關係圖。
第2圖繪示一實施例之1:1:1之應用程式與企業服務匯流排之關係圖。
第3圖繪示一實施例之1:2之應用程式與企業服務匯流排之關係圖。
第4A~4B圖繪示產生虛擬機器訊息佇列應用程式之相依關係的系統的一實施例示意圖。
第5圖繪示產生虛擬機器訊息佇列應用程式之相依關係的方法的一實施例流程圖。
第6圖繪示第4A~4B圖實施例之應用程式軌跡之樹狀結構的示意圖。
第7圖繪示應用程式之一實施例示意圖。
第8圖繪示第7圖實施例之應用程式軌跡之樹狀結構的示意圖。
在本揭露中,透過攔截請求訊息(request message)及計算請求訊息之一計算值的方式,產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式(applications)之相依關係,使得系統能夠有效進行效能管理與除錯。
請參照第1圖,其繪示一實施例之1:1之應用程式A11、A12與企業服務匯流排(enterprise service bus,ESB)B11之關係圖。應用程式A11發出一請求訊息RQ11至企業服務匯流排B11後,應用程式A12自企業服務匯流排B11取得此請求訊息
RQ11。對請求訊息RQ11來說,應用程式A11係為一委任端(client),應用程式A12係為一服務端(server)。另外,應用程式A12回傳一回覆訊息RP11至企業服務匯流排B11後,應用程式A11自企業服務匯流排B11取得此回覆訊息RP11。
請參照第2圖,其繪示一實施例之1:1:1之應用程式A21、A22、A23與企業服務匯流排B21、B22之關係圖。應用程式A21發出一請求訊息RQ21至企業服務匯流排B21後,應用程式A22自企業服務匯流排B21取得此請求訊息RQ21。對請求訊息RQ21來說,應用程式A21係為一委任端,應用程式A22係為一服務端。應用程式A22發出一請求訊息RQ22至企業服務匯流排B22後,應用程式A23自企業服務匯流排B22取得此請求訊息RQ22。對請求訊息RQ22來說,應用程式A22係為一委任端,應用程式A23係為一服務端。另外,應用程式A23回傳一回覆訊息RP22至企業服務匯流排B22後,應用程式A22自企業服務匯流排B22取得此回覆訊息RP22。應用程式A22回傳一回覆訊息RP21至企業服務匯流排B21後,應用程式A21自企業服務匯流排B21取得此回覆訊息RP21。在另一實施例中,第2圖亦可繼續擴展為1:1:1:…:1。
請參照第3圖,其繪示一實施例之1:2之應用程式A31、A32、A33與企業服務匯流排B31之關係圖。應用程式A31發出一請求訊息RQ31及一請求訊息RQ32至企業服務匯流排B31後,應用程式A32自企業服務匯流排B31取得請求訊息RQ31,
應用程式A33自企業服務匯流排B31取得請求訊息RQ32。對請求訊息RQ31來說,應用程式A31係為一委任端,應用程式A32係為一服務端。對請求訊息RQ32來說,應用程式A32係為一委任端,應用程式A33係為一服務端。另外,應用程式A32回傳一回覆訊息RP31至企業服務匯流排B31後,應用程式A31自企業服務匯流排B31取得此回覆訊息RP31。應用程式A33回傳一回覆訊息RP32至企業服務匯流排B31後,應用程式A31自企業服務匯流排B31取得此回覆訊息RP32。在另一實施例中,第3圖亦可繼續擴展為1:n。n為自然數。
以上三種關係可能交錯應用,而形成相當複雜的網路。例如是1:1:n。如此一來,此些應用程式的相依關係變的相當複雜,而不容易追蹤。
請參照第4A~4B圖,其繪示產生虛擬機器訊息佇列應用程式之相依關係的系統1000、2000的一實施例示意圖。在第4A圖之一實施例中,系統1000包括數個虛擬機器VM41~VM44、數個虛擬機管理器(hypervisor)HV41~HV44及數個實體機器PM41~PM43。數個應用程式A41~A44分別架構於虛擬機器VM41~VM44上。數個攔截單元111~114分別架構於虛擬機管理器HV41~HV44上。實體機器PM41包括一篩選單元121、一計算單元131、一建表單元141、一建軌單元151及一儲存單元161。實體機器PM42包括一篩選單元122、一計算單元132及一建表單元142。實體機器PM43包括一篩選單元123、一計算
單元133及一建表單元143。
攔截單元111~114可以攔截訊息。篩選單元121~123可以篩選訊息,計算單元131~133可以進行各種計算程序,建表單元141~143可以建立或更新表單。建軌單元151可以追蹤一軌跡。儲存單元161可以儲存各種資料。攔截單元111~114、篩選單元121~123、計算單元131~133、建表單元141~143及建軌單元151例如是(但不限於)一電路、一晶片、一電路板或儲存數組程式碼之一記錄媒體。儲存單元161例如是(但不限於)一硬碟、一記憶體、一可攜式儲存媒體、或一雲端儲存中心。
在第4A圖之實施例中,多個虛擬機器VM41~VM44係架構於多個實體機器PM41~PM43上。在另一實施例中,多個虛擬機器可以架構於單一台實體機器上。
此外,在第4A圖之實施例中,儲存單元161及建軌單元151係架構於實體機器PM41中,其餘的實體機器PM42~PM43連線至實體機器PM41,以聯繫儲存單元161及建軌單元151。在第4B圖之實施例中,系統2000包括實體機器PM40、PM41’、PM42、PM43。儲存單元161及建軌單元151架構於作為儲存伺服器之實體機器PM40上。所有的實體機器PM41’、PM42、PM43連線至實體機器PM40,以聯繫儲存單元161及建軌單元151。
請參照第5圖,其繪示產生虛擬機器訊息佇列應用程式之相依關係的方法的一實施例流程圖。以下流程圖之說明以
第4A圖之系統1000為例。在步驟S501中,攔截單元攔截數個應用程式透過至少一企業服務匯流排傳遞的至少一傳遞訊息(transmitting message)。舉例來說,攔截單元111~114攔截應用程式A41~A44透過企業服務匯流排B41~B42傳遞的數個傳遞訊息。此些傳遞訊息包括請求訊息(request message)RQ41~RQ43及回覆訊息(reply message)RP41~RP43。在此步驟中,攔截單元111~114並未分辨何者是請求訊息何者是回覆訊息,而是直接將所有傳遞訊息均攔截下來,並記錄時間資訊。
在此步驟中,此請求訊息RQ41~RQ43及回覆訊息RP41~RP43係透過監控數個執行緒(running thread)之方式進行攔截。如此一來,可以精準地追蹤出服務層級協議(Service Level Agreement,SLA)失效之根本原因(root cause)。
在步驟S502中,篩選單元篩選此至少一傳遞訊息,以篩選出此至少一請求訊息,並獲得各個請求訊息之一委任端(client)及一服務端(server)。舉例來說,篩選單元121~123篩選傳遞訊息,以篩選出請求訊息RQ41~RQ43,並獲得各個請求訊息RQ41~RQ43之委任端及服務端。在此步驟中,篩選單元121~123係觀察透過傳遞訊息之時間資訊。在兩個應用程式之間一來一往的兩筆傳遞訊息中,將較早傳輸之傳遞訊息視為請求訊息,將較晚傳輸之傳輸訊息視為回覆訊息。
篩選單元121~123分辨出請求訊息RQ41~RQ43後,在後續步驟則忽略回覆訊息RP41~RP43。
接著,在步驟S503中,計算單元計算各個請求訊息之一計算值,以獲得各個訊息之一訊息編號。舉例來說,計算單元131~133計算各個請求訊息RQ41~RQ43之一計算值,以獲得各個請求訊息RQ41~RQ43之一訊息編號(例如是「RQ41key~RQ43key」)。在此步驟中,各個請求訊息RQ41~RQ43包括一固定資訊及一變動資訊,不同之該些請求訊息具有不同之該些固定資訊,計算單元131~133係以各個固定資訊進行計算,以獲得各個計算值。如此一來,即使變動資訊改變,同一請求訊息仍可被計算出的一致的計算值(相同之請求訊息具有相同之固定資訊,而具有相同之計算值,不同之請求訊息具有不同之固定資訊,而具有不同之計算值)。在一實施例中,計算值的計算方式可以是加、減、乘、除、互斥或(XOR)等運算,或是以上任二者或二者以上的組合運算等。
接著,在步驟S504中,建表單元將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表(dependencies table)。舉例來說,建表單元141~143將各個請求訊息RQ41~RQ43之委任端、服務端及訊息編號記錄於相依關係表。請參照表一,其繪示一相依關係表的實施範例。在請求訊息RQ41中,應用程式A41為委任端,應用程式A42為服務端,故請求訊息RQ41的訊息編號RQ41key記錄於應用程式A41之傳送欄位及應用程式A42之接收欄位。在請求訊息RQ42中,應用程式A42為委任端,應用程式A43為服務端,故請求訊息RQ42的訊息編號
RQ42key記錄於應用程式A42之傳送欄位及應用程式A43之接收欄位。在請求訊息RQ43中,應用程式A42為委任端,應用程式A44為服務端,請求訊息RQ43的訊息編號RQ43key記錄於應用程式A42之傳送欄位及應用程式A44之接收欄位。
在一實施例中,建表單元141~143將所有之請求訊息RQ41~RQ43均紀錄於同一相依關係表中。在一實施例中,此相依關係表可以儲存於如第4A圖之實體機器PM41之儲存單元161中,實體機器PM42之建表單元142及實體機器PM43之建表單元143連接至實體機器PM41之儲存單元161來更新相依關係表。在另一實施例中,此相依關係表可以儲存於如第4B圖之實體機器PM40之儲存單元161中。
於一實施例,在此步驟中,相依關係表可以更包括此至少一請求訊息之至少一時間資訊。如此一來,可以透過時間資訊瞭解運算的瓶頸,以利進行改善。
然後,在步驟S505中,建軌單元依據相依關係表,
建立一應用程式軌跡(application trajectory)。舉例來說,建軌單元151依據相依關係表,建立應用程式軌跡。請參照第6圖,其繪示第4A~4B圖實施例之應用程式軌跡之樹狀結構的示意圖。建軌單元151可利用一深度優先搜尋法(Depth-first search,DFS)或一廣度優先搜尋法(Breadth-first Search,BFS),以樹狀結構建立應用程式軌跡。如此一來,方便使用者清楚瞭解應用程式之相依關係。
以下更舉另一實施例說明相依關係表及樹狀結構的建立。請參照第7~8圖,第7圖繪示應用程式A71~A75之一實施例示意圖,第8圖繪示第7圖實施例之應用程式軌跡之樹狀結構的示意圖。如第7圖所示,應用程式A71發出一請求訊息RQ71至企業服務匯流排B71後,應用程式A72自企業服務匯流排B71取得請求訊息RQ71。對請求訊息RQ71來說,應用程式A71係為一委任端,應用程式A72係為一服務端。應用程式A72發出一請求訊息RQ72至企業服務匯流排B72後,應用程式A73、應用程式A74、應用程式A75自企業服務匯流排B72取得請求訊息RQ72。對請求訊息RQ72來說,應用程式A72係為一委任端,各個應用程式A73、應用程式A74及應用程式A75為一服務端。
請參照表二,其繪示另一相依關係表的實施範例。在請求訊息RQ71中,應用程式A71為委任端,應用程式A72為服務端,故請求訊息RQ71的訊息編號RQ71key記錄於應用程式A71之傳送欄位及應用程式A72之接收欄位。在請求訊息RQ72
中,應用程式A72為委任端,應用程式A73、應用程式A74、應用程式A75為服務端,故請求訊息RQ72的訊息編號RQ72key記錄於應用程式A72之傳送欄位及應用程式A73、應用程式A74、應用程式A75之接收欄位。
如第8圖所示,上述表二之應用程式軌跡可以樹狀結構來表示,方便使用者清楚瞭解應用程式之相依關係。
在一實施例中,在於步驟S502,篩選單元121、122、123可以更篩選出回覆訊息RP41、RP42、RP43。並且,於步驟S504中,建表單元141、142、143則將各個回覆訊息RP41、RP42、RP43之時間資訊及訊息大小等相關資訊記錄於相依關係表。
綜上所述,雖然已以實施範例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (21)
- 一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的方法,包括:攔截複數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message),該至少一傳遞訊息包括至少一個請求訊息(request message);篩選該至少一傳遞訊息,以篩選出該至少一請求訊息,並獲得各該請求訊息之一委任端(client)及一服務端(server),各該請求訊息包括一固定資訊及一變動資訊,不同之該些請求訊息具有不同之該些固定資訊;以各該請求訊息之該固定資訊計算各該請求訊息之一計算值,以獲得各該訊息之一訊息編號,該計算值之計算方式係為加法運算、減法運算、乘法運算、除法運算、互斥或運算(XOR)、或任兩者或兩者以上之組合,相同之該至少一個請求訊息具有一致之該計算值;以及將各該請求訊息之該委任端、該服務端及該訊息編號記錄於一相依關係表(dependencies table)。
- 如申請專利範圍第1項所述之方法,更包括:依據該相依關係表,建立一應用程式軌跡(application trajectory)。
- 如申請專利範圍第2項所述之方法,其中在依據該相依關係表,建立該應用程式軌跡之步驟中,該應用程式軌跡係以一樹 狀結構建立。
- 如申請專利範圍第3項所述之方法,其中在依據該相依關係表,建立該應用程式軌跡之步驟中,該樹狀結構係以一深度優先搜尋法(Depth-first search,DFS)或一廣度優先搜尋法(Breadth-first search,BFS)建立。
- 如申請專利範圍第1項所述之方法,其中在攔截該些應用程式透過該至少一企業服務匯流排傳遞的該至少一傳遞訊息之步驟中,該至少一請求訊息係透過一虛擬機管理器(hypervisor)之一攔截單元進行攔截。
- 如申請專利範圍第1項所述之方法,其中在攔截該些應用程式透過該至少一企業服務匯流排傳遞的該至少一傳遞訊息之步驟中,該至少一請求訊息係透過監控複數個執行緒(running thread)之方式進行攔截。
- 如申請專利範圍第1項所述之方法,其中在自該至少一傳遞訊息,篩選出該至少一請求訊息之步驟中,該至少一傳遞訊息係透過該至少一傳遞訊息之至少一時間資訊,篩選出該至少一請求訊息。
- 如申請專利範圍第1項所述之方法,其中在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步驟中,所有之該至少一請求訊息均紀錄於同一該相依關係表中。
- 如申請專利範圍第1項所述之方法,其中在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步 驟中,該相依關係表更包括該至少一請求訊息之至少一時間資訊。
- 如申請專利範圍第1項所述之方法,其中在篩選該至少一傳遞訊息之步驟中,更篩選出至少一回覆訊息;在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步驟中,更將各該至少一回覆訊息之一時間資訊及一訊息大小記錄於該相依關係表。
- 一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的系統,包括:一攔截單元,係攔截複數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message),該至少一傳遞訊息包括至少一請求訊息(request message);一篩選單元,係篩選該至少一傳遞訊息,以篩選出該至少一請求訊息,並獲得各該請求訊息之一委任端(client)及一服務端(server),各該請求訊息包括一固定資訊及一變動資訊,不同之該些請求訊息具有不同之該些固定資訊;一計算單元,係以各該請求訊息之該固定資訊計算各該請求訊息之一計算值,以獲得各該訊息之一訊息編號,該計算值之計算方式係為加法運算、減法運算、乘法運算、除法運算、互斥或運算(XOR)、或任兩者或兩者以上之組合,相同之該至少一個 請求訊息具有一致之該計算值;以及一建表單元,係將各該請求訊息之該委任端、該服務端及該訊息編號記錄於一相依關係表(dependencies table)。
- 如申請專利範圍第11項所述之系統,更包括:一建軌單元,係依據該相依關係表,建立一應用程式軌跡(application trajectory)。
- 如申請專利範圍第12項所述之系統,其中該建軌單元係以一樹狀結構建立該應用程式軌跡。
- 如申請專利範圍第13項所述之系統,其中該建軌單元係以一深度優先搜尋法(Depth-first search,DFS)或一廣度優先搜尋法(Breadth-first Search,BFS)建立該樹狀結構。
- 如申請專利範圍第11項所述之系統,其中該攔截單元設置於一虛擬機管理器(hypervisor)。
- 如申請專利範圍第11項所述之系統,其中該攔截單元係透過監控複數個執行緒(running thread)之方式攔截該至少一請求訊息。
- 如申請專利範圍第11項所述之系統,其中該篩選單元係透過該至少一傳遞訊息之至少一時間資訊,篩選出該至少一請求訊息。
- 如申請專利範圍第11項所述之系統,其中該建表單元將所有之該至少一請求訊息均紀錄於同一該相依關係表中。
- 如申請專利範圍第11項所述之系統,其中該建表單元更 記錄該至少一請求訊息之至少一時間資訊於該相依關係表。
- 如申請專利範圍第11項所述之系統,其中該攔截單元、該篩選單元、該計算單元及該建表單元係設置於一實體機器中。
- 如申請專利範圍第11項所述之系統,其中該篩選單元更篩選出至少一回覆訊息,該建表單元更將各該至少一回覆訊息之時間資訊及訊息大小記錄於該相依關係表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510974631.8A CN106909436B (zh) | 2015-12-23 | 2015-12-23 | 产生虚拟机消息队列应用程序的相关关系的方法与系统 |
??201510974631.8 | 2015-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201737069A TW201737069A (zh) | 2017-10-16 |
TWI652621B true TWI652621B (zh) | 2019-03-01 |
Family
ID=59087219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105100402A TWI652621B (zh) | 2015-12-23 | 2016-01-07 | 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10210031B2 (zh) |
CN (1) | CN106909436B (zh) |
TW (1) | TWI652621B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10536476B2 (en) * | 2016-07-21 | 2020-01-14 | Sap Se | Realtime triggering framework |
US10552605B2 (en) | 2016-12-16 | 2020-02-04 | Sap Se | Anomaly detection in enterprise threat detection |
US10530794B2 (en) | 2017-06-30 | 2020-01-07 | Sap Se | Pattern creation in enterprise threat detection |
CN109800096A (zh) * | 2019-01-08 | 2019-05-24 | 深圳市买买提信息科技有限公司 | 一种消息拦截重发的方法及系统 |
TWI840631B (zh) * | 2020-11-18 | 2024-05-01 | 財團法人工業技術研究院 | 作業系統之多執行緒追蹤方法與系統及應用其之電子裝置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI453604B (zh) | 2011-12-15 | 2014-09-21 | Ind Tech Res Inst | 在一或多個虛擬機器中產生應用層級相依性的系統與方法 |
CN104253860A (zh) | 2014-09-11 | 2014-12-31 | 武汉噢易云计算有限公司 | 一种基于共享存储消息队列的虚拟机高可用实现方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760903B1 (en) | 1996-08-27 | 2004-07-06 | Compuware Corporation | Coordinated application monitoring in a distributed computing environment |
US7330889B2 (en) * | 2003-03-06 | 2008-02-12 | Actional Corporation | Network interaction analysis arrangement |
WO2005103960A1 (en) * | 2004-04-20 | 2005-11-03 | The Boeing Company | Apparatus and method for redirecting unresolvable addresses using a local care-of ip address |
TWI263901B (en) | 2005-07-28 | 2006-10-11 | Lite On Technology Corp | Program initiation methods and embedded systems utilizing the same |
CN100342342C (zh) * | 2005-12-14 | 2007-10-10 | 浙江大学 | 支持多进程的Java虚拟机实现方法 |
US8209684B2 (en) * | 2007-07-20 | 2012-06-26 | Eg Innovations Pte. Ltd. | Monitoring system for virtual application environments |
US8087011B2 (en) | 2007-09-26 | 2011-12-27 | International Business Machines Corporation | Domain stretching for an advanced dual-representation polyhedral loop transformation framework |
US20090217259A1 (en) | 2008-02-26 | 2009-08-27 | Microsoft Corporation | Building Operating System Images Based on Applications |
US8347272B2 (en) | 2008-07-23 | 2013-01-01 | International Business Machines Corporation | Call graph dependency extraction by static source code analysis |
US8849987B2 (en) | 2008-07-29 | 2014-09-30 | International Business Machines Corporation | Automated discovery of a topology of a distributed computing environment |
US8209525B2 (en) | 2008-08-15 | 2012-06-26 | Apple Inc. | Method and apparatus for executing program code |
US8990368B2 (en) | 2009-02-27 | 2015-03-24 | Red Hat, Inc. | Discovery of network software relationships |
TWI443524B (zh) | 2009-02-27 | 2014-07-01 | Chi Mei Comm Systems Inc | 使用者行為追蹤及記錄系統與方法 |
TW201036370A (en) | 2009-03-25 | 2010-10-01 | Innovation Wireless Inc | Method for establishing connection of newly added base station in WiFi mesh network |
US8990779B2 (en) | 2009-08-11 | 2015-03-24 | Sap Se | Response time measurement system and method |
US20110067036A1 (en) * | 2009-09-16 | 2011-03-17 | International Business Machines Corporation | Method for Determining Relationship Data Associated with Application Programs |
US8413225B2 (en) * | 2009-12-23 | 2013-04-02 | Citrix Systems, Inc. | Systems and methods for management of common application firewall session data in a multiple core system |
US8621448B2 (en) | 2010-09-23 | 2013-12-31 | Apple Inc. | Systems and methods for compiler-based vectorization of non-leaf code |
TWI427972B (zh) | 2010-10-26 | 2014-02-21 | Accton Technology Corp | 建立路徑資訊之網路裝置及其方法 |
US20120158867A1 (en) * | 2010-12-20 | 2012-06-21 | Barracuda Networks, Inc | Cloud message transfer apparatus to reduce non-delivery reports |
TWI459749B (zh) | 2010-12-27 | 2014-11-01 | Ind Tech Res Inst | 數位資訊編碼方法、解碼方法、資訊傳播裝置及資訊管理裝置 |
US9292329B2 (en) | 2011-02-10 | 2016-03-22 | Microsoft Technology Licensing, Llc | Virtual switch interceptor |
US10514937B2 (en) | 2012-01-05 | 2019-12-24 | Vmware, Inc. | Auto-discovery service and method of discovering applications within a virtual network |
CN102833310B (zh) | 2012-07-03 | 2015-02-25 | 中山大学 | 一种基于虚拟化技术的工作流引擎集群系统 |
EP2720416A1 (en) * | 2012-10-12 | 2014-04-16 | Anam Technologies Limited | Method for user reporting of spam mobile messages and filter node |
US9183033B2 (en) * | 2012-12-06 | 2015-11-10 | Industrial Technology Research Institute | Method and system for analyzing root causes of relating performance issues among virtual machines to physical machines |
US20140281434A1 (en) | 2013-03-15 | 2014-09-18 | Carlos Madriles | Path profiling using hardware and software combination |
CN103647695A (zh) * | 2013-10-31 | 2014-03-19 | 北京奇虎科技有限公司 | 一种客户端应用程序的用户注册方法、移动终端及服务器 |
CN104715201B (zh) * | 2015-03-31 | 2018-02-27 | 北京奇虎科技有限公司 | 一种虚拟机恶意行为检测方法和系统 |
US10460400B2 (en) * | 2015-12-07 | 2019-10-29 | Facebook, Inc. | Systems and methods for providing anniversary information |
US10002526B1 (en) * | 2016-12-20 | 2018-06-19 | Arrayent, Inc. | Internet-of-things systems and methods |
-
2015
- 2015-12-23 CN CN201510974631.8A patent/CN106909436B/zh active Active
- 2015-12-29 US US14/983,424 patent/US10210031B2/en active Active
-
2016
- 2016-01-07 TW TW105100402A patent/TWI652621B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI453604B (zh) | 2011-12-15 | 2014-09-21 | Ind Tech Res Inst | 在一或多個虛擬機器中產生應用層級相依性的系統與方法 |
CN104253860A (zh) | 2014-09-11 | 2014-12-31 | 武汉噢易云计算有限公司 | 一种基于共享存储消息队列的虚拟机高可用实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106909436B (zh) | 2020-07-21 |
US20170185439A1 (en) | 2017-06-29 |
CN106909436A (zh) | 2017-06-30 |
TW201737069A (zh) | 2017-10-16 |
US10210031B2 (en) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI652621B (zh) | 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 | |
Ranjan et al. | Cloud resource orchestration programming: overview, issues, and directions | |
Jiang et al. | A secure and scalable storage system for aggregate data in IoT | |
US11017388B2 (en) | Cryptographically assured zero-knowledge cloud service for composable atomic transactions | |
US8930409B2 (en) | System and method for supporting named operations in a distributed data grid | |
WO2019232071A1 (en) | Aggregation of scalable network flow events | |
US11411921B2 (en) | Enabling access across private networks for a managed blockchain service | |
US11017387B2 (en) | Cryptographically assured zero-knowledge cloud services for elemental transactions | |
Ranjan et al. | Peer-to-peer service provisioning in cloud computing environments | |
Novakovic et al. | The case for RackOut: Scalable data serving using rack-scale systems | |
US11068461B1 (en) | Monitoring key access patterns for nonrelational databases | |
US9854031B2 (en) | Cloud service agent based on service level agreement(SLA) | |
US8660996B2 (en) | Monitoring files in cloud-based networks | |
Liu et al. | Service reliability in an HC: Considering from the perspective of scheduling with load-dependent machine reliability | |
Henze et al. | Practical data compliance for cloud storage | |
US10325115B1 (en) | Infrastructure trust index | |
Meroufel et al. | Optimization of checkpointing/recovery strategy in cloud computing with adaptive storage management | |
US10924452B1 (en) | Auditing IP address assignments | |
Selvi et al. | An Analysis of Data Replication Issues and Strategies on Cloud Storage System | |
US20150113619A1 (en) | Methods for monitoring and controlling a storage environment and devices thereof | |
Rawat et al. | Data integrity of cloud data storages (CDSs) in cloud | |
Rahimzadeh et al. | ECHO: Efficiently overbooking applications to create a highly available cloud | |
US10706073B1 (en) | Partitioned batch processing for a usage analysis system | |
Nguyen et al. | Towards a cross-domain MapReduce framework | |
Jaison et al. | Docker for optimization of Cassandra NoSQL deployments on node limited clusters |