TW201737069A - 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 - Google Patents

產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 Download PDF

Info

Publication number
TW201737069A
TW201737069A TW105100402A TW105100402A TW201737069A TW 201737069 A TW201737069 A TW 201737069A TW 105100402 A TW105100402 A TW 105100402A TW 105100402 A TW105100402 A TW 105100402A TW 201737069 A TW201737069 A TW 201737069A
Authority
TW
Taiwan
Prior art keywords
message
request message
application
request
unit
Prior art date
Application number
TW105100402A
Other languages
English (en)
Other versions
TWI652621B (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 TW201737069A publication Critical patent/TW201737069A/zh
Application granted granted Critical
Publication of TWI652621B publication Critical patent/TWI652621B/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • 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
    • 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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

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)。計算各個請求訊息之一核對和(checksum),以獲得各個請求訊息之一訊息編號。將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表(dependencies table)。
根據本發明揭露內容的另一實施例,提出一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的系統。此系統包括一攔截單元、一篩選單元、一計算單元及一建表單元。攔截單元係攔截數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message)。此至少一傳遞訊息包括至少一請求訊息(request message)。篩選單元係篩選此至少一傳遞訊息,以篩選出此至少一請求訊息,並獲得各個請求訊息之一委任端(client)及一服務端(server)。計算單元係計算各個請求訊息之一核對和(checksum),以獲得各個請求訊息之一訊息編號。建表單元係將各個請求訊息之委任端、服務端及訊息編號記錄於一相依關係表(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)及計算請求訊息之一核對和(checksum)的方式,產生虛擬機器(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中,計算單元計算各個請求訊息之一核對和(checksum),以獲得各個訊息之一訊息編號。舉例來說,計算單元131~133計算各個請求訊息RQ41~RQ43之一核對和(checksum),以獲得各個請求訊息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之時間資訊及訊息大小等相關資訊記錄於相依關係表。
綜上所述,雖然已以實施範例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧系統
111、112、113、114‧‧‧攔截單元
121、122、123‧‧‧篩選單元
131、132、133‧‧‧計算單元
141、142、143‧‧‧建表單元
151‧‧‧建軌單元
161‧‧‧儲存單元
A41、A42、A43、A44‧‧‧應用程式
B41、B42‧‧‧企業服務匯流排
HV41、HV42、HV43、HV44‧‧‧虛擬機管理器
PM41、PM42、PM43‧‧‧實體機器
RQ41、RQ42、RQ43‧‧‧請求訊息
RP41、RP42、RP43‧‧‧回覆訊息
VM41、VM42、VM43、VM44‧‧‧虛擬機器

Claims (23)

  1. 一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的方法,包括:攔截複數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message),該至少一傳遞訊息包括至少一個請求訊息(request message);篩選該至少一傳遞訊息,以篩選出該至少一請求訊息,並獲得各該請求訊息之一委任端(client)及一服務端(server);計算各該請求訊息之一核對和(checksum),以獲得各該訊息之一訊息編號;以及將各該請求訊息之該委任端、該服務端及該訊息編號記錄於一相依關係表(dependencies table)。
  2. 如申請專利範圍第1項所述之方法,更包括:依據該相依關係表,建立一應用程式軌跡(application trajectory)。
  3. 如申請專利範圍第2項所述之方法,其中在依據該相依關係表,建立該應用程式軌跡之步驟中,該應用程式軌跡係以一樹狀結構建立。
  4. 如申請專利範圍第3項所述之方法,其中在依據該相依關係表,建立該應用程式軌跡之步驟中,該樹狀結構係以一深度優先搜尋法(Depth-first search,DFS)或一廣度優先搜尋法(Breadth-first search,BFS)建立。
  5. 如申請專利範圍第1項所述之方法,其中在攔截該些應用程式透過該至少一企業服務匯流排傳遞的該至少一傳遞訊息之步驟中,該至少一請求訊息係透過一虛擬機管理器(hypervisor)之一攔截單元進行攔截。
  6. 如申請專利範圍第1項所述之方法,其中在攔截該些應用程式透過該至少一企業服務匯流排傳遞的該至少一傳遞訊息之步驟中,該至少一請求訊息係透過監控複數個執行緒(running thread)之方式進行攔截。
  7. 如申請專利範圍第1項所述之方法,其中在自該至少一傳遞訊息,篩選出該至少一請求訊息之步驟中,該至少一傳遞訊息係透過該至少一傳遞訊息之至少一時間資訊,篩選出該至少一請求訊息。
  8. 如申請專利範圍第1項所述之方法,其中在計算各該請求訊息之該核對和之步驟中,各該請求訊息包括一固定資訊及一變動資訊,各該請求資訊係以各該固定資訊進行計算,以獲得各該核對和。
  9. 如申請專利範圍第1項所述之方法,其中在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步驟中,所有之該至少一請求訊息均紀錄於同一該相依關係表中。
  10. 如申請專利範圍第1項所述之方法,其中在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步驟中,該相依關係表更包括該至少一請求訊息之至少一時間資 訊。
  11. 如申請專利範圍第1項所述之方法,其中在篩選該至少一傳遞訊息之步驟中,更篩選出至少一回覆訊息;在將各該請求訊息之該委任端、該服務端及該訊息編號記錄於該相依關係表之步驟中,更將各該至少一回覆訊息之一時間資訊及一訊息大小記錄於該相依關係表。
  12. 一種產生虛擬機器(virtual machine)訊息佇列(queue based)應用程式之相依關係的系統,包括:一攔截單元,係攔截複數個應用程式透過至少一企業服務匯流排(enterprise service bus)傳遞的至少一傳遞訊息(transmitting message),該至少一傳遞訊息包括至少一請求訊息(request message);一篩選單元,係篩選該至少一傳遞訊息,以篩選出該至少一請求訊息,並獲得各該請求訊息之一委任端(client)及一服務端(server);一計算單元,係計算各該請求訊息之一核對和(checksum),以獲得各該訊息之一訊息編號;以及一建表單元,係將各該請求訊息之該委任端、該服務端及該訊息編號記錄於一相依關係表(dependencies table)。
  13. 如申請專利範圍第12項所述之系統,更包括:一建軌單元,係依據該相依關係表,建立一應用程式軌跡 (application trajectory)。
  14. 如申請專利範圍第13項所述之系統,其中該建軌單元係以一樹狀結構建立該應用程式軌跡。
  15. 如申請專利範圍第14項所述之系統,其中該建軌單元係以一深度優先搜尋法(Depth-first search,DFS)或一廣度優先搜尋法(Breadth-first Search,BFS)建立該樹狀結構。
  16. 如申請專利範圍第12項所述之系統,其中該攔截單元設置於一虛擬機管理器(hypervisor)。
  17. 如申請專利範圍第12項所述之系統,其中該攔截單元係透過監控複數個執行緒(running thread)之方式攔截該至少一請求訊息。
  18. 如申請專利範圍第12項所述之系統,其中該篩選單元係透過該至少一傳遞訊息之至少一時間資訊,篩選出該至少一請求訊息。
  19. 如申請專利範圍第12項所述之系統,其中各該請求訊息包括一固定資訊及一變動資訊,該計算單元係以各該固定資訊進行計算,以獲得各該核對和。
  20. 如申請專利範圍第12項所述之系統,其中該建表單元將所有之該至少一請求訊息均紀錄於同一該相依關係表中。
  21. 如申請專利範圍第12項所述之系統,其中該建表單元更記錄該至少一請求訊息之至少一時間資訊於該相依關係表。
  22. 如申請專利範圍第12項所述之系統,其中該攔截單元、 該篩選單元、該計算單元及該建表單元係設置於一實體機器中。
  23. 如申請專利範圍第12項所述之系統,其中該篩選單元更篩選出至少一回覆訊息,該建表單元更將各該至少一回覆訊息之時間資訊及訊息大小記錄於該相依關係表。
TW105100402A 2015-12-23 2016-01-07 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統 TWI652621B (zh)

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 true TW201737069A (zh) 2017-10-16
TWI652621B 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 (4)

* Cited by examiner, † Cited by third party
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 深圳市买买提信息科技有限公司 一种消息拦截重发的方法及系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
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
US20060031394A1 (en) * 2004-04-20 2006-02-09 Tazuma Stanley K Apparatus and methods for transparent handling of browser proxy configurations in a network gateway device
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
US8881145B2 (en) * 2011-12-15 2014-11-04 Industrial Technology Research Institute System and method for generating application-level dependencies in one or more virtual machines
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 北京奇虎科技有限公司 一种客户端应用程序的用户注册方法、移动终端及服务器
CN104253860B (zh) * 2014-09-11 2017-08-08 武汉噢易云计算股份有限公司 一种基于共享存储消息队列的虚拟机高可用实现方法
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

Also Published As

Publication number Publication date
CN106909436A (zh) 2017-06-30
TWI652621B (zh) 2019-03-01
US10210031B2 (en) 2019-02-19
CN106909436B (zh) 2020-07-21
US20170185439A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
US10992535B2 (en) Hybrid cloud integration fabric and ontology for integration of data, applications, and information technology infrastructure
US10708289B2 (en) Secured event monitoring leveraging blockchain
US10911219B2 (en) Hierarchical blockchain consensus optimization scheme
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
US20160352562A1 (en) Secure cloud management agent
US11017387B2 (en) Cryptographically assured zero-knowledge cloud services for elemental transactions
US11689616B2 (en) Optimization of delivery of blocks
TWI652621B (zh) 產生虛擬機器訊息佇列應用程式之相依關係的方法與系統
US9916551B1 (en) Business continuity optimization
US8660996B2 (en) Monitoring files in cloud-based networks
US11449280B1 (en) Dynamic provisioning and activation of storage pools
US20200162324A1 (en) Blockchain network management
US20210141909A1 (en) Blockchain-based file handling
US9760441B2 (en) Restoration of consistent regions within a streaming environment
US20160330181A1 (en) Securing data in a dispersed storage network
US11961015B2 (en) System, method, and recording medium for distributed probabilistic eidetic querying, rollback, and replay
US20190215363A1 (en) Dynamic pool-based tiering for synchronization storage
Berenberg et al. Deployment archetypes for cloud applications
Selvi et al. An Analysis of Data Replication Issues and Strategies on Cloud Storage System
Chakraborty et al. A proposal for high availability of HDFS architecture based on threshold limit and saturation limit of the namenode
US10706073B1 (en) Partitioned batch processing for a usage analysis system
Wang et al. A hierarchical framework for evaluation of cloud service qualities
US11650975B2 (en) Online file system consistency check for container data on a clustered filesystem