基於流程記錄對系統性能的自動分析的製作方法
2023-10-09 02:32:09 3
專利名稱:基於流程記錄對系統性能的自動分析的製作方法
技術領域:
本發明涉及基於流程記錄對系統性能的自動分析。
儘管如此,分析流程記錄一般仍用手工進行。但是,有一部分也有特殊的解決方案,這些解決方案與系統的環境和要研究的誤差圖相匹配地去進行分析。這些解決方案在實際實施和維護過程中,要求的工作量很大。在文獻中也可以找到揭示自動分析流程記錄的一般啟示。從HallalH.等人「Using SDL-Tools to Test Properties ofDistributed System」,從Brinksma E.和Tretmans J.編輯的「Formal Approaches to Testing of Software-FATES`01」,125-140頁,Aalborg,Daenemark,2001年8月,公知一種方法,以SDL語言(Specification and Description Language)產生自動分析的流程記錄。但是,為此需要複雜和昂貴的工具,因此不能廣泛地推廣應用。
此任務通過在獨立權利要求中給出的發明來解決。有利的擴展由從屬權利要求中得出。
在分析一個技術系統功能能力的方法中,用一臺或數臺計算機以蹤跡或日誌形式產生流程記錄。流程記錄包括有在系統操作時系統特性的信息,這些信息是以關於至少一個在系統操作時出現的事件的信息形式,尤其是以有關大量事件的信息形式。流程記錄以XML(Extensible Markup Language可擴充標記語言)產生和/或在產生之後轉換成XML。
按照現有技術,為了自動分析使用一種語言,例如SDL,以便驗證一個複合系統。用這種模型化語言對系統進行模型化,此時它是通過一個流程記錄模擬的。
本發明通過應用XML從一個完全另外的開端著眼。XML剛好不是模擬語言,並不是為了表示流程而創立的。相反,正常情況XML是一種結構語言,用它可以結構化地表示數據量。作為本發明的思路是基於,流程記錄既不作為純手工處理的文本產生,也不是與產生流程記錄同時產生的一個形式模型,而是一個以XML產生的結構化的輸出,它能導致有一個後來的自動化的處理。這樣,本發明實際上就處於從現有技術所公知的策略之間。
以此,與手工策略相比,擁有自動化的優點。與以模型為基礎的開端相比,擁有所產生的流程記錄複雜性較低的優點以及明顯降低其進一步處理的費用的優點。
流程記錄立即以一個標準化格式產生,或者在它的產生之後轉換成這種格式。有關流程記錄標準化格式的說明,在一個XML-模式中進行。
有利的是,為流程記錄預先規定一個包括有特殊說明的一定的XML-格式。
流程記錄尤其要包括事件的名稱和類型。
也能屬於說明的有,事件是否是一個局部的事件,或者是否是一個登記事件或一個通訊事件。局部事件是在一個系統部分中局部出現的事件。一個系統部分尤其指的是,與一項應用並行的線程(Thread),一個裝置(作為虛的或實的硬體部分的裝置),一個過程和/或一個目標。局部事件例如是像變量佔用和斷言審查事件。
裝置、過程、線程和目標,能在系統操作時記錄並從登記中清除。這些事件是登記事件。它們規定其來源的壽命,允許其它事件與硬體或軟體過程相適應。
報文的發送和接收是通訊事件。遙控方法詢問也屬於這組事件。
如果流程記錄包括有一個對要觸發事件的系統部分參數的說明或一個屬於事件的系統部分的說明,尤其是一個通過它可識別系統部分的說明,也是有利的。
在系統部分的情況下,尤其能涉及一個接收一個報文的系統部分和/或一個發送一個報文的系統部分。
在這種情況下,流程記錄能包括有一個對信息參數的說明,尤其是對報文識別。
通過計算機輔助句法分析,在一個正確的XML-句法上檢查流程記錄利用特殊的優點。這樣,就有可能對其句法和部分語義的正確性進行自動檢查。從而可以使用價格便宜的標準-XML-句法分析程序。
在本發明的一個完全特別優選的實施形式中,將流程記錄通過XSLT(Extensible樣式表Language Trans formation)-媒質(Mittel)繼續處理。通過利用XSLT-媒質有下列優點-XSLT-媒質可以容易埠化;-被尋找的性能可以簡單表達;-XSLT-媒質能夠繼續分析,例如為了尋找其它的性能;-XSLT-媒質靈活,從而可用於各種分析任務。
這些優點是由於XSLT是一種適應於XML功能的程式語言而產生的。
為了通過XSLT-媒質繼續處理流程記錄,將有待研究的系統性能以XSLT-標記符號表達。由此就自動將分析-和可視化組件作為XSLT-媒質而產生。每個組件表示一個可獨立實施的程序。一個分析組件以XML-標記符號處理一個流程記錄,在分析其中編碼的性能時產生一個修改的流程記錄,該記錄能由其它XSLT-媒質處理。
一個XSLT-媒質尤其能有一種過濾器功能,經過它能將性能或其它性能過濾。
分析結束時,將流程記錄轉換成一種適當的視覺表示。為此,XSLT-媒質用於可視化,例如針對以SVG(Scalable Vector Graphics)、HTML(Hypertext Markup Language超文本標記語言)或encapsulated Postscript來表達。
建立一種實施上述方法的布置,該布置通過設置媒質而實現,由該媒質可以實施所述方法步驟,與所述方法的優選擴展相類似地得出這種布置的優選擴展。
一種用於數據處理設備的程序產品,包括有軟體代碼程序段,在數據處理設備上實施所述方法之一;程序產品可以通過方法的適當執行,以可由數據處理設備實行的代碼來實現。為此,將軟體代碼程序段存儲起來。此時,將程序產品作為可買賣的產品來理解。它能以任意形式出現,例如在紙上、在一個可用計算機讀的數據載體上或經過一個網絡分配。
事由的基礎是以XML-標記符號的流程記錄。與轉換技術XSLT一起,就能將流程記錄基於句法規則地分析。從在繼續進行的轉換中摘錄的和在事件的可視研究中的信息,能作出系統性能的結論。
在這個流程記錄-分析方法中-觀察系統的一個流程記錄,它包括有用於登記實施過程和目標、通訊和局部事件部分排列事件的一個清單;-將一個流程記錄脫機轉換成一個基於XML的流程記錄,-在應用XML-樣式表(XSL)情況下,產生感興趣性能的說明,-在應用XSLT-媒質的情況下,在XML-流程記錄上應用樣式表。
流程記錄-分析方法既提供一個概貌,也提供變焦距功能和過濾器功能,以及對流程記錄的所希望事件的專門細節提出詢問。
通過可視化,使一個用戶能訪問流程記錄信息。為此,優選應用SVG-格式。SVG是一個為了圖形表示的基於XML的格式。有大量的工具用於可視化SVG-內容。這樣,就能免於建立一個專門化的輸出單元。
複合系統的流程記錄通常非常大,因此不便於使用。在方法中利用過濾器操作,為的是壓縮在流程記錄中包括的信息,從而降低流程記錄的大小。這些操作必須是很準確和持續不變。
不是所有信息都要永久出現在流程記錄的表示中,否則顯示要過載,大大增加了找到相關信息的難度。但是有可能的話,在見就事件時要以簡單的方式使繼續進行的信息供用戶使用。
流程記錄的結構和內容在一個系統的操作中,要收集事件。此時區分為下列的事件等級-登記事件-通訊事件-局部事件因為一個流程記錄是用作分析一個系統的方法輸入,在系統中必須給出媒質,以便為流程記錄在一確定的點上生成事件。有各種方法將這些媒質插到一個系統中。這些方法之中最大有指望的是那些自動工作的。屬於此的例如有在基於微軟COM、Java、RMI或CORBA的方法。
為了能在流程記錄分析中使用,每個是通訊事件或局部事件的流程記錄事件最好依照下列結構並擁有與此相應的說明-事件的名稱和類型發送事件、接收事件或局部事件;-要觸發的實施過程的ID或要觸發的目標;-源實施過程的和源目標(為接收事件)的ID;-確定實施過程的和確定目標(發送事件的)的ID;-事件的報文參數一個包括有用於報文和其它報文屬性的一個名稱的參數清單(通訊事件的);-要觸發的實施過程的或要觸發的目標的局部參數一個再現瞬間狀態的參數的清單(局部事件的)。
此外,出現有將新產生的實施過程、過程或目標引入到一個流程記錄的登記事件。假設所有事件的局部順序以其順序在流程記錄中得以保持。為了確定事件的順序和最後在所接受的流程記錄上建立分析,接收-和發送事件的分配問題是重要的。更多的是取決於,分布系統是如何建立的和實際上顯示的是什麼。假設在一對源-和目標過程中,每個接收事件屬於一個單個發送事件。在一個分布系統中有關事件的部分的順序(半順序,partial order),可以應用二進位的Happened-Before-關係」→」來說明,它是這個事由的理論基礎。它定義如下-如果在實施過程t中的事件e在相同實施過程t中的事件e』之前,則e→e』。
-如果事件e是實施過程t中的一個發送事件,事件e』是實施過程t』中要對應的接收事件,則e→e』。
-Happened-Before-關係是及物的。
圖2說明一個事件的XML-格式。一個事件通過它的類型和它的操作來說明。例如一個發送事件「通訊」作為類型和「發送」作為操作。每個事件包括一個元素「參數」,如上所述,這包含有關於事件起點的信息。此外,一個事件能表明元素為「局部的」,這表明有關於局部變量狀況的信息。通訊事件包括一個帶有相應報文內容的元素「信息」。
格式是作為DTD(文件類型描述Document Type Description)專門化的,因此就有可能應用XML-句法分析程序去在句法的正確性上檢驗一個輸出記錄文件。
可視化分量流程記錄在應用一個樣式表-處理器形式或一個XSLT-處理器形式的XSLT-媒質情況下,轉換成它們的圖解代表。圖3說明方法的這部分,為這部分已經有較大數量的處理器可無償供使用。
為Web瀏覽器用一個SVG閱讀器插入(SVG-Viewer-Plugin),能從圖解代表和向圖解代表二個方向進行縮放變焦。為了得到詳細的信息,用戶以此種方式按照願望不同得到一個概貌或朝向圖解進行變焦縮放。因為涉及的是一個以矢量為基礎的格式,圖解的質量在每個變焦距階段非常寶貴。有一個流程記錄的兩種不同的外觀圖供支配-實施過程外觀圖。這個外觀圖類似於一個報文序列外觀圖,此時垂直線代表一個任務的有效時間。任務之間的通訊事件用線表示,這些線連接要對應的發送-和接收事件(參見圖4)。
-目標外觀圖。這個顯示也類似於報文序列外觀圖,此時垂直線代表目標的壽命。
事件在圖解中被彩色編碼。應用顏色使識別事件容易些。不同類型的事件就能簡單地區分開。例如可以用黃色標記局部事件。顏色是在一個級聯的樣式表中加以規定,它單獨存儲在一個文件中並能按照個人喜好調節。
圖4示出的是在一個實施過程外觀圖中的一個簡單的流程記錄,其中所有事件都以一個固定的距離表示。如果只對事件的次序感興趣,就優先使用這種表示。為了作為距離再現事件之間的時間間隔,也能在流程記錄中使用時間標記。如果研究在時間範圍內的性能,這樣一個圖解能很有幫助。
對於還要顯示出詢問細節的要求,用兩種方式執行。一種方式是利用一個單獨的HTML-文件,它指明為文字代表要參閱的圖解的欄目。以這種方式圖解得到有關目標或執行過程相互間活動的信息和HTML-文件,將事件欄目的文件外觀圖提供使用。這些外觀圖的一個組合通過應用HTML-幀而得到利用。
在第二種執行中,使用SVG的能力去激勵文字。這裡,滑鼠指示器經過一個一定事件的運動,觸發諸如事件參數或報文的信息。如果移開滑鼠指示器,則該信息又消失。這具有以下優點,為了顯示所有信息,只須利用一個文件。不過這證明,在大的文件情況下,打開當時的文件和激勵時,速度將成為性能的薄弱環節。
過濾器圖解的大小和它所代表的信息量,總還是出現問題。通過過濾器從流程記錄中去除不相關的信息,能明顯地壓縮它們的大小並照顧到在視覺檢查時提出相關的信息。
緊隨用於可視化的方法之後,過濾器優先作為樣式表來執行,處理又要靠以一個XSLT-處理器形式的XSLT-媒質。
在應用由XPath的語音結構時,能列印出事件樣本,它們要尋找或者相反地要忽略。這些過濾器的例子是-去除局部事件-在執行過程之間選擇通訊事件-在目標之間選擇通訊事件如果系統組分之間的通訊處於焦點,則局部事件沒有特殊的意義。去除局部事件能按照例1通過應用樣式表達到目的。
例1<?xml version=″1.0″encoding=″utf-8″?><xslstylesheet xmlnsxsl=″http//www.w3.org/1999/XSL/Transform″ version=″1.0″> <!-- DescriptionStylesheet removes all events of type ′Local′--> <!-- Import standard behavoiur --> <!-- standardcopy all events --> <xslimport href=″filter_template.xsl″/> <!-- Add DOCTYPE --> <!-- create trace.dtd file --> <xsloutput method=″xml″indent=″yes″doctype- system=″trace.dtd″/> <xslstrip-space elements=″*″/> <!-- Match local events --> <!-- do not copy(delete)them --> <xsltemplate match=″event[@operation=′Application′and @type=′Local′]″> </xsltemplate> <!-- end Match local events --></xslstylesheet>利用過濾器操作一個過濾器的操作是一個有效修改流程記錄,能用於可視化或分析繼續處理。因此,如圖5所示,有可能使用過濾器的一種組合。
該操作被稱為連結。但是要注意的是,過濾器連結不可換向過濾器1 o過濾器2≠過濾器2 o過濾器1樣式表如在例2能再利用,在例2的行8中輸入一個普通的樣式表,它在要得出的文件中產生符合標準的事件複製件。
例2
<?xml version=″1.0″encoding=″utf-8″?><xslstylesheet xmlnsxsl=″http//www.w3.org/1999/XSL/Transform″ version=″1.0″> <!-- DescriptionStylesheet removes all threads with no events --> <!-- Import standard behaviour --> <!-- standardcopy all events --> <xslimport href=″filter_template.xsl″/> <!-- Add DOCTYPE --> <!-- output trace.dtd --> <xsloutput method=″xml″indent=″yes″doctype- system=″trace.dtd″/> <xslstrip-space elements=″*″/> <!-- Remove threads with no events -->!-- SIPO DP --dp/ <xsltemplate match=″event[@type=′Thread-Registration′ and (@operation=′Create′)]″> <xslvariable name=″found-events″ select=″following- siblingevent[(@type=′Communication′or @type=′Local′) and parameters/@thread- id=current/parameters/@identifier]″/> <xslif test=″count($found-events)> 0″> <xslcopy-of select=″.″/> </xslif> </xsltemplate> <xsltemplate match=″event[@type=′Thread-Registration′ and(@operation=′Destroy′)]″> <xslvariable name=″found-events″ select=″preceding- siblingevent[(@type=′Communication′or @type=′Local′) and parameters/@thread- id=current/parameters/@identifier]″/> <xslif test=″count($found-events)> 0″> <xslcopy-of select=″.″/> </xslif> </xsltemplate></xslstylesheet>為了在當時的應用情況勝任專門的需求,能從普通的樣式表將規則覆蓋。這裡要使用優先級規則。
代替輸入樣式表,也能將樣式表包括進去,如在例3的第6至第7行發生的那樣。包括進去的樣式表的規則,有與現實樣式表規則相同的優先級。為了覆蓋輸入的樣式表的規則,能使用這些優先級規則。以這種方式,可以使普通的樣本被再利用,從而減少分析工具的開發費用。
例3
<?xml version=″1.0″encoding=″utf-8″?> <xslstylesheet xmlnsxsl=″http//www.w3.org/1999/XSL/Transform″ version=″1.0″> <!-- DescriptionStylesheet removes all empty threads and objects --> <xslinclude href=″filter_emptythread.xsl″/> <xslinclude href=″filter_emptyobject.xsl″/> <!-- Add DOCTYPE --> <!-- output trace.dtd --> <xsloutput method=″xml″indent=″yes″doctype- system=″trace.dtd″/> <xslstrip-space elements=″*″/></xslstylesheet>性能分析將樣式表用於為過濾器的思路,可以移植到在一個流程記錄中分析性能。
-數據超過分析。如果到一個目標上有一個以上的執行過程去存取,就能在一個分布系統中出現數據超過。這是分布系統的一個標準分析。
-死點分析。如果一個分量積極地等待一個永不出現的事件,在一個系統中就能出現一個死點。
通常,這些性能是在利用系統的模型情況下進行研究並要求有一個形式檢驗。這能是非常昂貴,儘管如此可能還達不到所期望的結果。
在此進行的分析,僅僅是建立在流程記錄的基礎上。然而結果只能識別可能的問題。然後還必須將這些問題繼續用手工進行檢查。儘管如此,由於識別可能的問題點,這明顯還是比較簡單。此外,能在流程記錄中的事件之間時間間隔的基礎上檢查性能-薄弱環節。
藉助於流程記錄中事件上的條件來表達性能一個潛在數據超過的條件Ve∈Event,其中e/@type∈{Local,Communication}T@object-id={c/parameters/@thread-id|c∈Event,
其中c/@type∈{Local,Communication}和c/parameters/@object-id≠e/parameter/@object-id),作為race-condition=|T@object-id|>1可以識別出一個潛在的數據超過。
如果有一個以上的執行過程應用以@object-id識別的目標,則所述條件證實是真的。
一個非常有可能的數據超過的條件如果一個潛在的數據超過的條件得以滿足,那麼為了識別一個非常有可能的數據超過,可以將分析繼續進行。為此要檢驗,識別出的執行過程是否確實是同時的,就是說這些執行過程的事件是同時的。
Ve,e`∈Event,其中e/@thread-id≠e`/@thread-id和e/@object-id=e`/@object-id,如果e和e`不是同時,則e→e`和e`→e適用。
可能的死點Ve∈Event,其中e/@type=Communication,e/@operation=發送和e/parameters/@thread-id=t,通過deadlock-condition=e是t中的最後的事件,識別一個可能被封鎖的執行過程。
能將這些普通的樣本在每個同時進行的或分布的系統中使用,然而也有很多能通過這些樣本說明的專用性能。為了審查有待檢驗系統的正確狀態,能從系統的要求中推導出這些樣本。此外,這些樣本還能闡述在前面的測試中出現的錯誤。為了審查是否再出現這樣的錯誤,在下面的測試中可以使用這些樣本。專用性能通常在實踐中表示流程記錄分析的最大部分。所介紹的方法簡化了這些性能作為樣本的說明,從而在測試階段大大提高了生產率。
使用流程記錄-分析工具對於通曉XSLT-技術的工程師,使用樣式表和所屬的處理器毫無困難。此外,通過一種稱作為翻譯的樣式表技術,也能使它們再一個較大的範圍內可供使用。代替向用戶供應樣式表,能將它用於分析工具的安裝。在這種情況下,一臺編輯器例如由一個給出的樣式表產生一個Java-程序。因此,儘管能簡單為包括有執行過濾器、處理器和轉換器的開發器(Entwickler)安裝Java-程序,有將尋找的性能繼續以XSLT表達的可能性。這樣一個Java-實施的例子示於圖6。
例本方法的一個例子是為了一個安置的軟體-系統實現的,該系統Windows CE上運行。
流程記錄以一個適當的格式產生,然後脫機轉換到以XML-為基礎的流程記錄格式。
在這個例子中,特殊感興趣的理由是,為什麼應用被明顯放慢。流程記錄本身是非常的大,包括有上百萬個事件。遇到的挑戰是,要找出造成放慢的調用。首先,分析調用的性能。為此應用一個樣式表,它找到調用-和發出返回信號事件對並計算時間差。結果作為HTML-文件出現(圖7)。
再識別性能-薄弱環節之後,尋找這個延遲的原因。為此,在給出的例子中要進一步研究出錯事件。在這種情況,出錯事件不是在報文中包括字「Error」的局部事件,就是包括有一個專用返回信號事件的通訊事件。為了只濾出和可視化這些事件,又執行一個樣式表。
通過顏色編碼模式、壓縮的信息和可能性的數量、經流程記錄得到一個快速概貌,就很快歸結到一個執行缺陷作為放慢的原因。
圖8示出的是該分析的一個概貌。圖解包括有26656個事件,為了有可能呈現概貌,在一個極端的圖象放大中表示。在流程記錄下部的中間可明顯看到一個空隙,它是通過積累出錯事件所表示的。研究表明,應用就是由此而放慢,因為要處理不必要的詢問。通過繼續進行的後續研究得出,在此有一個分量試圖到一個找不到的設備上以同步方式去存取。在這個目標中的處理暫時停頓,直到對系統有個暫停再繼續下去。在這種專門的應用情況,所期望的改進例如可以通過將可供支配的設備在一個中央分量中管理來達到。
一般本發明的實施形式有下列優點。以XSLT-媒質形式建立分析組件,通過利用XML-技術有可能快速和效率高。從而能建立並測試費用很優惠的專用組件。為了產生所必需的工具可免費提供使用。流程記錄能自動地在系統的複雜性能方面進行檢查。該組件的廣泛使用容易實現。通過多個小分析組件,在分析流程記錄時有個高靈活性。自動分析流程記錄導致出錯分析時生產率提高。使用SVG和HTML作為可視化手段,使基於全球資訊網的表示與相關的優點成為可能。
權利要求
1.對一個系統進行分析的方法,其中產生一個流程記錄,該流程記錄包括關於系統操作過程中的事件,其特徵在於流程記錄以XML產生和/或在產生之後轉換成XML。
2.如權利要求1的方法,其中流程記錄包括多個事件,在應用流程記錄的情況下,說明關於所述事件的部分順序。
3.如權利要求2的方法,其中在應用Happened-Before-關係的情況下,說明所述部分順序。
4.如上述權利要求之一的方法,其中在流程記錄中產生一個對事件參數的說明,尤其是用於識別事件和/或是否事件是一個局部事件、一個登記事件或一個通訊事件。
5.如上述權利要求之一的方法,其中在流程記錄中產生一個對觸發該事件的系統部分的參數的說明,尤其是一個通過它可識別系統部分的說明。
6.如權利要求5的方法,其中系統部分是一個接收報文和/或發送報文的系統部分。
7.如權利要求6的方法,其中在流程記錄中產生一個對報文參數的說明,尤其是用於識別報文。
8.如上述權利要求之一的方法,其中將流程記錄在正確的XML-句法上進行檢驗。
9.如上述權利要求之一的方法,其中將流程記錄通過XSLT-媒質繼續處理。
10.如權利要求9的方法,其中XSLT-媒質含有過濾器功能。
11.如權利要求9或10的方法,其中XSLT-媒質由流程記錄以XML產生一個修改的流程記錄。
12.如權利要求9至11之一的方法,其中XSLT-媒質含有可視化功能。
13.如權利要求9至12之一的方法,其中將應用多個可以任意順序組合和實施的XSLT-媒質。
14.布置,建立該布置以實施上述權利要求之一的方法。
15.用於一個數據處理設備的程序產品,該程序產品包括軟體編碼程序段,能用這些程序段在一個數據處理設備上實施按照權利要求1至13至少之一的方法。
全文摘要
為了分析一個複合並行的系統,以XML產生一個流程記錄和/或在產生之後轉換成XML。將這個流程記錄在系統的性能方面進行檢驗。用XSLT-媒質說明感興趣的性能。XSLT-媒質因此就用於分析結果的過濾和可視化。
文檔編號G06F17/27GK1470986SQ0314720
公開日2004年1月28日 申請日期2003年7月9日 優先權日2002年7月9日
發明者A·皮特施克, A·烏爾裡希, A 皮特施克, 鏘 申請人:西門子公司