用於對端到端業務流程進行非侵入式監控的方法和系統的製作方法
2023-05-10 12:14:11 2
專利名稱::用於對端到端業務流程進行非侵入式監控的方法和系統的製作方法
技術領域:
:本發明涉及計算機應用信息系統中監控業務流程的領域,尤其涉及用於對端到端業務流程進行非侵入式監控的方法和系統。
背景技術:
:近年來,企業對於計算機應用信息系統中的業務流程的監控的需求越來越多,以便實現業務可視化。一些用於監控業務流程的方法和系統也隨之出現。傳統的業務流程監控操作通常都需要有業務流程管理系統(BPMS),而位於該業務流程管理系統之中的處理引擎驅動著業務流程的自動執行。現今的業務流程有4艮多被實現為端到端業務流程,一個端到端業務流程包含了許多可執行部件,諸如BPEL,EJB,POJO,JSP等等,甚至還可能集成一些應用或系統。在這種情況下,業務流程不僅僅由處理引擎驅動,還被其它應用所驅動。所以監控端到端業務流程不只是監控處理引擎。現有技術中存在一些數據處理系統的監控方法。例如標題為"Methodandapparatusforcorrelationofeventsinadistributedmulti-systemcomputingenvironment"的美國專利US7003781中/>開了一種監控方法和裝置,其中具體公開的是針對分布式數據處理系統的監控,而不是針對業務流程的監控,其方法也不適用於監控端到端業務流程。再如標題為"Realtimebusinessprocessanalysismethodandapparatus"的美國專利申請US20020116362,其公開的是一種利用事件服務的機制改進流程查詢使用傳統資料庫查詢方式時所帶來的效率問題。其也沒有針對業務流程實例的狀態來進行跟蹤監控,也不是根據關於業務流程實例的狀態進行事件定義來繼續進行業務流程的監控。而我們在此所說的監控端到端業務流程的操作是以"事件機制"為基礎的,所謂事件機制是這樣實現的跟蹤事件記錄以確定業務流程實例的執行狀態,從而實現監控。WebSphere業務監控器是一種已知的端到端流程處理器的監控產品。WebSphere業務監控器需要開發者將清楚的服務調用插入到流程實施原始碼中,或者可以提供軟體插件便於實施預先定義的標準事件,但同樣需要在原始流程模型之上進行配置以確定在何處發送事件以及要發送的事件類型和事件內容。因此,需要提供一種能夠在不改變現有業務流程邏輯和實施的情況下能夠獲取被監控的業務流程狀態並定義相關聯的事件,從而實現端到端業務流程的非侵入式監控的方法和系統。
發明內容本發明的目的是提供一種用於對端到端業務流程進行非侵入式監控的方法和系統。根據本發明的一方面提供了一種用於對端到端業務流程進行非侵入式監控的系統,包括事件編輯器,用於定義與要被監控的業務流程相關的事件元數據以及生成事件推進規則;數據事件傳感器,用於基於業務數據變化來產生資料庫事件;以及監控伺服器,用於基於資料庫事件和事件元數據以及事件推進規則來監控端到端業務流程。根據本發明的另一方面提供了一種用於對端到端業務流程進行非侵入式監控的方法,包括如下步驟定義與要被監控的業務流程相關的事件元數據;生成與要被監控的業務流程相關的事件推進規則;基於業務數據變化來產生資料庫事件;以及基於資料庫事件和事件元數據與事件推進規則來監控端到端業務流程。優選地,根據本發明的所述監控伺服器還包括監控引擎,用於基於所述資料庫事件和所述事件元數據以及所述事件推進規則來生成業務事件;業務事件監控器,用於基於所述業務事件來監控業務流程。優選地,在根據本發明的用於對端到端業務流程進行非侵入式監控的系統和方法中,所述事件推進規則自動生成或者通過用戶手動生成。優選地,在根據本發明的用於對端到端業務流程進行非4曼入式監控的系統和方法中,所述事件元數據和所述事件推進規則與所述業務數據相關聯。通過以下結合附圖的說明,並且隨著對本發明的更全面了解,本發明的其它目的和效果將變得更加清楚和易於理解,其中圖1是示出根據本發明實施例的用於端到端業務流程的非侵入式監控系統;圖2是示出根據本發明實施例的用於對端到端業務流程進行非侵入式監控的流程圖3是進一步詳細示出根據本發明實施例的用於端到端業務流程的非侵入式監控系統;圖4是進一步詳細示出根據本發明實施例的用於對端到端業務流程進行非侵入式監控的流程圖5示意性地示出了根據本發明實施例的用於監控一個業務流程的示例;圖6示意性地示出了根據本發明實施例的用於監控一個業務流程的示例中所定義的事件元數據;圖7示意性地示出了根據本發明實施例的用於監控一個業務流程的示例中自動生成的事件推進規則;圖8示意性地示出了根據本發明實施例的用於監控一個業務流程的示例中由用戶改變而生成的事件推進^L則。具體實施例方式圖1和圖2分別是示出根據本發明實施例的用於業務流程的端到端非侵入式的監控系統100以及流程圖。如圖1所示,該監控系統100包括事件編輯器IOI,用於定義與要被監控的業務流程相關的事件元數據E1,E2…En以及生成事件推進規則;數據事件傳感器102,用於基於業務數據變化來產生資料庫事件;以及監控伺服器103,用於基於資料庫事件和事件元數據以及事件推進規則來監控端到端業務流程。在圖1示出的監控系統100中,數據事件傳感器102可以以多種方式來實現,例如,其可以由資料庫觸發器和UDF(用戶定義的功能)來實現。數據事件傳感器102例如通過與業務資料庫通信,由此獲得業務數據的變化,從而基於業務數據變化產生資料庫事件。如圖1所示的監控系統IOO還可以包括其它的組件,例如高速緩存器等等,為了不模糊本發明,其它此類組件的描述被省略。本發明的非侵入式監控方法的流程圖如圖2所示。在步驟201處,針對需要被監控的業務流程中各個業務流程狀態定義相關聯的事件元數據,並且生成將規定各個業務流程狀態之間的進展方向的事件推進規則。在步驟202處,當要監控業務流程中的某個業務流程狀態時,基於在數據事件傳感器中的與針對該業務流程狀態所定義的事件元數據相關的業務數據變化產生資料庫事件。在步驟203處,監控伺服器基於事件元數據、事件推進規則以及資料庫事件來產生被監控的業務事件並將其呈現給用戶,實現對該業務流程狀態的監控。對於業務流程中需要監控的每個業務流程狀態,用戶可以定義各種被監控的事件E1,E2,...,En。其中每個事件元數據El,E2,…,En包括觸發條件和內容,並且還包括與業務資料庫中的業務數據的關聯。舉例來說,一個示例性的事件元數據(E5)被定義如下createlnstance:NoTrigger:AFTERINSERTONNotification(T5)CorrelationCondition:notification.msgID=$poACKIDCorrelationset:DataRetrieving:Select*FromNotificationData:title:notification.titleuser:notification.userNamedate:notificaiton.sendTime由此可以看出,事件元數據是對表示被監控的業務流程中的業務流程狀態的資料庫事件的定義和描述,其包括有各種欄位,例如createlnstance字,殳(創建實例)、trigger字#殳(觸發)、CorrelationCondition欄位(相關性條件)、Correlationset欄位(相關性設置)、DataRetrieving欄位(數據取回)以及Data欄位(數據)。所述事件元數據的各個欄位的描述如下createlnstance:該欄位的值為Yes/No。Yes表明當監控到該事件時,該事件被認為是被監控流程的首個發生事件,相應的監控流程實例會在監控伺服器上創建。trigger:在本發明的示例中,對應的是定義在業務資料庫上的觸發器。CorrelationCondition:是條件表達式,用於判斷該監控事件是否是關聯到某監控流程實例。當createlnstance為Yes時,可以不定義該字^:。CorrelationSet:對監控流程的全局變量(globalvariable)貝武4直,謬皮賦值的變量可在CorrelationCondition的表達式中出現,用於判斷事件是否與流程實例關聯。DataRetrieving:SQL語句,定義如何從業務資料庫中獲取需要的業務數據。Data:定義監控事件需要的業務數據,例如title(標題)、user(用戶)以及date(日期)等等。並4巴它們映射到到DataRetrieving中SQL語句中的欄位。此外,對於整個業務流程,可以生成事件推進規則。所述事件推進規則用於描述業務流程的監控事件的發生順序。其中對於所述事件推進規則,其用來定義一個事件隨後的所有後續的一個或多個事件。應該指出,事件推進規則可以由用戶手動定義也可以在用戶描述的監控流程基礎上,根據事件元數據自動生成。例如,一種由用戶手動定義時間推進少見則的方式為1)用戶定義業務流程的需要的globalvariable;2)用戶定義業務流程的需要的事件元數據;3)用戶根據監控流程的邏輯,定義事件推進規則。此外,一種根據事件元數據自動生成時間推進規則的方式為用戶定義監控流程的邏輯視圖;用戶在業務流程的若干節點上定義事件元數據;若是所述節點上定義了多個監控事件,則指明這些事件的先後關係;根據監控流程的定義,自動生成事件推進規則。上述定義的事件元數據以及事件推進規則只是示例性的,本發明並不局限於此,而是還可以按照實際應用進行其它適當的定義。圖3和圖4分別是進一步詳細示出根據本發明實施例的用於端到端業務流程的非侵入式監控系統300和流程圖。如圖3所示,優選地,該監控系統300包括事件編輯器301,用於定義與要被監控的業務流程相關的事件元數據El,E2…En以及生成事件推進規則;數據事件傳感器302,用於基於業務數據變化來產生資料庫事件;以及監控伺服器303,用於基於資料庫事件和事件元數據以及事件推進規則來監控端到端業務流程。其中監控伺服器303優選地還包括事件元數據資料庫305,用於存儲來自事件編輯器301中的所述事件元數據El,E2…En和所述事件推進規則;監控引擎306,用於基於所述資料庫事件和所述事件元數據以及所述事件推進規則來生成業務事件;業務事件監控器320,用於基於所述業務事件來監控業務流程。其中業務事件監控器320優選地包括監控資料庫307,用於存儲來自監控引擎306的所述業務事件並將業務事件提供給可視化模塊308,以及可視化模塊308用於將業務事件可視化並提供給用戶以便監控業務流程。該監控系統300的監控流程圖如圖4所示,在步驟401處,事件編輯器301定義事件元數據以及事件推進規則,其中事件元數據對應於業務流程中的被監控業務流程狀態,事件推進規則表示業務流程的前進方向。在步驟402處將已定義的事件元數據以及事件推進規則存儲在事件元數據資料庫305中。而在步驟403,在數據事件傳感器302中基於業務數據的變化來生成資料庫事件。然後,監控伺服器303中的監控引擎306在步驟404基於所述資料庫事件和所述事件元數據以及所述事件推進規則來生成業務事件。在步驟405中,來自監控引擎306的業務事件接著被存儲在監控資料庫307中並將繼而被提供給可視化模塊308。最後在步驟406,可視化模塊308將業務事件可視化並提供給用戶以便監控業務流程。在如圖3所示的監控系統300中,其中的監控引擎306還包括事件分發器310,用於接收從數據事件傳感器302觸發的資料庫事件並將資料庫事件分發到流程監控實例線程。當接收到從事件分發器310分發的資料庫事件時,流程監控實例線程檢查一個業務事件的條件。如果該業務事件條件滿足,則發送具有數據的被監控業務事件。然後,對於下一事件應用事件推進規則。當用戶登錄並利用被監控的業務流程的名稱與實例ID來查詢被監控流程時,業務流程監控引擎將查詢由處理監控線程發出的被監控業務事件,並從監控資料庫中提取業務事件的數據並呈現可視模型給用戶。其中,對應於業務流程數據的改變的所述資料庫事件將反映業務流程邏輯。如圖3所示的監控系統300還可以包4舌其它的組件,例如高速緩存器等等,為了不模糊本發明,其它此類組件的描述被省略。下面將參考圖5到圖7以一個具體的示例來說明本發明的業務流程監控方法中資料庫事件以及被監控的業務事件和事件推進規則的生成以及端到端的業務流程監控。應該理解,該示例只是應用本發明的一個特定的示例,而能夠應用本發明的業務流程監控不局限於此。在該示例中,一方面,買家登錄網絡伺服器進行購物,買家提交所購物品的定單。在另一方面,供應商對定單進行確認或修改,如果是確認拒絕定單消息,則將拒絕定單消息通知買家;如果是確認接受定單消息,則接下來的分為兩種情況,如果不需要買家確認,則定單直接生效;如果需要買家進一步確認,如果買家接受被確認的定單,則訂單生效;如果買家不接受被確認的定單,則將買家拒絕消息通知供應商。在訂單生效後,將把定單發送到工廠。之後工廠發貨,物流配送,驗收收貨。為了監控這樣一個業務流程,首先了解與該業務流程相關的業務數據,並定義觸發器如下表1所示。tableseeoriginaldocumentpage10tableseeoriginaldocumentpage11表1例如,在這個業務流程中可以定義若干事件,例如,在買家提交定單時,定義事件E1,事件E1中包含若干欄位如下。由於事件El是第一個事件,所以該流程監控實例在此被創建,因此createlnstance欄位為是。而觸發欄位是根據請求來觸發,所以Trigger欄位為AFTERINSERTONPOR叫(Tl)。相關性i殳置代表該業務流程與具體定單請求相關,CorrelationSet欄位為poID:POR叫.POR—ID。因為El是第一個事件,並沒有任何相關性,所以CorralationCondition欄位為空。Dataretrieving欄位為Select*FromPOReq,Data欄位為POID:POReq.POR—ID;date:POReq.receiveTime。定單提交後,供應商對定單進行確認,在此定義事件E2,事件E2中包含如下這些欄位。由於事件E2是該業務流程的中間事件,所以createlnstance欄位為否。Trigger欄位為AFTERINSERTONPOACK(T2)。由於E2是中間事件,它與之前的事件E1具有相關性,所以CorralationCondition欄位不為空,而是POACK.POR—ID=$poID。$表示引用gloabalvariable中的變量。CorrelationSet欄位為poACKID=POACK.POACK—ID。Dataretrieving欄位為Select*FromPOACK。Data欄位為POACKID:POACK.POACK—ID;date:POACK.receiveTime;status:POACK.status。供應商不接受定單後,則將否定確定消息通知買家,在此定義事件E3,事件E3包含如下這些欄位。由於事件E3也是該業務流程的中間事件,所以createlnstance欄位為否。Trigger欄位為AFTERINSERTONNotification(T3)。由於E3是中間事件,它與之前的事件E1和E2具有相關性,所以CorralationCondition欄位不為空,而是可以與事件El或E2進行相關,例如notification.msg=$poACKID。CorrelationSet字l殳為空。Dataretrieving字,殳為Select*FromNotification。Data欄位為title:notification.title;user:notification.userName;date:notification.sendTime。如果在事件E2之後,供應商接受定單,並且需要用戶對確認的定單進行確認時,在此定義事件E4,事件E4包含如下這些欄位。由於事件E4也是該業務流程的中間事件,所以createlnstance為否。Trigger欄位為AFTERUPDATEONPOACK(T3)。由於E4是中間事件,它與之前的事件E1、E2以及E3具有相關性,所以CorralationCondition欄位不為空,而是可以與事件E1、E2或E3進行相關,例如CorrelationCondition:POACK.POACKID=$poACKID。Correlationset欄位為空。Dataretrieveing欄位為Select*fromPOACK。Data欄位為poACKid:$poACKID;status:POACK.BuyerReviewStatus;date:POACK.BuyerReviewTime。同理,可以定義買家確認定單正確之後通知供應商的事件E5,以及定單生效之後通知工廠的事件E6。事件E5的各個欄位內容如下createlnstance:No;Trigger:AFTERINSERTONNotification(T5);CorrelationCondition:notification.msgID=$poACKID;Correlationset:;DataRetrieving:Select*FromNotification;Data:title:notification.title;user:notification.userName;date:notificaiton.sendTime。事件E6的各個欄位內容如下createlnstance:No;Trigger:AFTERINSERTONASN(T4);CorrelationConditionASN.POR—ID=$poId;Correlationset:ASNID=ASN.ASN—ID;Dataretrieving:Select*fromASN;Data:title:ASNASNID;date:ASN.sendTime。在業務流程的事件定義之後,同時可以按照某些模式生成事件推進規則。事件推進規則可以根據業務流程自動生成,也可以由用戶生成或者由用戶進行調整或更新。例如,基於業務流程,事件推進MJ'j可以自動生成如下開始前進到事件El,事件E1前進到事件E2,事件E2前進到事件E3或者事件E4或者事件E6,事件E3前進到結束,事件E4前進到事件E5或者事件E6,事件E5前進到結束,事件E6前進到事件E7,事件E7前進到結束。可替換地,如圖8所示,事件推進規則可以由用戶改變如下開始前進到事件E1,事件E1前進到事件E2,事件E2前進到事件E3、事件E5或者事件E6,事件E3前進到結束,事件E5前進到結束,事件E6前進到事件E7,事件E7前進到結束。此修改後的事件推進規則表示了不同於之前事件推進規則的業務流程邏輯。由此體現了本發明監控系統及其方法的靈活性。應該理解,上述定義的事件El-E7以及事件推進規則只是示例性的,本發明並不局限於此,而是還可以按照實際應用進行其它適當的定義。因此,針對這個示例性的業務流程,本發明的端到端業務流程監控的方法是這樣實現的。當買家提交定單時,則當前的業務流程狀態對應於(產生)事件E1,事件E1對應的業務數據(即,El的Data中所包含的各個欄位)被存儲在下層的業務數據資料庫中,業務數據的更新產生了資料庫事件,該資料庫事件被推入監控引擎的事件分發器中,事件分發器將資料庫事件分發到相應的可能相關的流程監控線程(未創建實例的流程監控)和流程監控實例線程。然後監控引擎監控基於事件與事件推進規則定義,匹配該資料庫事件到El,創建流程監控實例,流程監控實例"開始前進到事件E1"並根據E1的定義組織和發送一個業務事件到監控資料庫中。最終的業務事件轉換成可視模型呈遞給用戶,以便用戶能夠跟蹤業務流程的執行狀態。當定單被發送給供應商時,則該業務流程狀態對應於(產生)事件E2,事件E2對應的業務數據(即,據資料庫中更新為對應於事件E2的業務數據,因此業務數據的更新產生了另一資料庫事件,該資料庫事件被推入監控引擎的事件分發器中,事件分發器將資料庫事件分發到相應的可能的流程監控實例線程。然後監控引擎監控基於事件E2與事件推進規則定義匹配該資料庫事件到E2,流程監控實例"由事件E1前進到事件E2"並發送一個業務事件到監控資料庫中。該業務事件轉換成可視模型呈遞給用戶,以便用戶能夠跟蹤這個業務流程狀態。同理,用戶可以定義事件E3-E6和相應的事件推進規則,從而通過映射到業務數據資料庫的對應業務數據的變化,產生資料庫事件從而生成相應的業務事件並轉換成可視監控視圖供用戶監控業務流程的執行狀態。由此可見,利用根據本發明的用於對端到端業務流程進行非侵入式監控的方法和系統,使用戶能夠定義與被監控的業務流程中感興趣的業務流程狀態相關的事件以及事件推進規則,從而通過與所述事件以及事件推進規則相關聯的底層業務數據的變化來反映被監控業務流程中的業務流程狀態從而實現業務流程的非侵入式監控。當然,本領域的技術人員應當理解,本發明的方法可以編碼為存儲在計算機可讀存儲介質上的程序,計算機執行該程序以實現本發明的方法。因此,本發明也覆蓋根據本發明的方法編碼的電腦程式產品,以及存儲該電腦程式的計算機可讀存儲介質。應當注意,為了使本發明更容易理解,上面的描述省略了對於本領域的技術人員來說是公知的、並且對於本發明的實現可能是必需的更具體的一些技術細節。提供本發明的說明書的目的是為了說明和描述,而不是用來窮舉或將本發明限制為所公開的形式。對本領域的普通技術人員而言,許多修改和變更都是顯而易見的。因此,選擇並描述實施方式是為了更好地解釋本發明的原理及其實際應用,並使本領域普通技術人員明白,在不脫離本發明實質的前提下,所有修改和變更均落入由權利要求所限定的本發明的保護範圍之內。權利要求1.一種用於對端到端業務流程進行非侵入式監控的系統,包括事件編輯器,用於定義與要被監控的業務流程相關的事件元數據以及生成事件推進規則;數據事件傳感器,用於基於業務數據變化來產生資料庫事件;以及監控伺服器,用於基於資料庫事件和事件元數據以及事件推進規則來監控端到端業務流程。2.根據權利要求1所述的系統,其中,所述監控伺服器還包括監控引擎,用於基於所述資料庫事件和所述事件元數據以及所述事件推進規則來生成業務事件;業務事件監控器,用於基於所述業務事件來監控業務流程。3.根據權利要求1所述的系統,還包括事件元數據資料庫,用於存儲來自事件編輯器中的所述事件元數據和所述事件推進規則。4.根據權利要求1-3任一個所述的系統,其中事件編輯器還用於自動生成所述事件推進規則或者通過用戶手動生成所述事件推進規則。5.根據權利要求1所述的系統,其中所述監控伺服器還包括事件分發器,用於接受資料庫事件並將資料庫事件分發到流程監控實例線程。6.根據權利要求1所述的系統,其中,所述業務事件監控器還包括用於存儲業務事件的業務事件資料庫。7.根據權利要求1所述的系統,其中所述事件元數據和所述事件推進規則與數據事件傳感器中的所述業務數據變化相關聯。8.根據權利要求1所述的系統,其中所述監控伺服器還用於基於當前事件元數據以及事件推進規則來確定下一個事件元數據。9.根據權利要求2所述的系統,其中所述監控伺服器還包括可視化模塊,用於接收來自業務事件監控器的業務事件並將業務事件轉換成用戶可視的數據以呈遞給用戶。10.—種用於對端到端業務流程進行非侵入式監控的方法,包括如下步驟定義與要被監控的業務流程相關的事件元數據;生成與要被監控的業務流程相關的事件推進規則;基於業務數據變化來產生資料庫事件;以及基於資料庫事件和事件元數據與事件推進規則來監控端至U端業務流程。11.根據權利要求10所述的方法,其中,基於資料庫事件和事件元數據與事件推進規則來監控端到端業務流程的步驟進一步包括基於所述資料庫事件和所述事件元數據以及所述事件推進規則來生成業務事件;然後基於所述業務事件來監控業務流程。12.根據權利要求IO所述的方法,還包括將所述事件元數據和所述事件推進規則存儲在事件元數據資料庫中。13.根據權利要求10-12任一個所述的方法,其中所述事件推進規則自動生成或者通過用戶手動生成。14.根據權利要求IO所述的方法,還包括資料庫事件-波接收並被分發到流程監控實例線程,流程控制實例線程基於事件元數據與事件推進規則以及資料庫事件來發送一個業務事件。15.根據權利要求11所述的方法,還包括將業務事件存儲在業務事件資料庫中。16.根據權利要求IO所述的方法,其中所述事件元數據和所述事件推進規則與所述業務數據變化相關聯。17.根據權利要求10所述的方法,還包括基於當前事件元數據以及事件推進規則來確定下一個事件元數據。18.根據權利要求11所述的系統,還包括接收來自業務事件監控器的業務事件並將業務事件轉換成用戶可視的數據以呈遞給用戶。全文摘要所公開的是一種用於對端到端業務流程進行非侵入式監控的系統和方法,其中事件編輯器用於定義與要被監控的業務流程相關的事件元數據以及生成事件推進規則;數據事件傳感器,用於基於業務數據變化來產生資料庫事件;以及監控伺服器,用於基於資料庫事件和事件元數據以及事件推進規則來監控端到端業務流程。文檔編號G06F17/30GK101546396SQ20081008792公開日2009年9月30日申請日期2008年3月25日優先權日2008年3月25日發明者偉孫,靜李,歐鐵軍,郭常傑申請人:國際商業機器公司