Methods of analysis of information systems based on logs of historical debuggers

Michał Paweł Komorowski

Abstract

This thesis is concerned with the problem of storing and analysing of data collected by historical debuggers. Historical debuggers are tools that allow one to move forward and backward in the history of program’s execution. This is typically achieved by monitoring computer programs and saving collected data (e.g. a call tree, values of actual parameters, results returned by methods, value of local variables) in logs. In this thesis it is proposed to store logs of historical debuggers in the relational database. For this purpose, universal repository of logs of historical debuggers was designed. Besides, the method that minimizes the amount of data to analyse by filtering out less important subprograms calls was proposed. In order to provide an effective way of analysing data in the universal repository the author introduces a concept of extended call graphs which are a graphical model of these data. Besides, the algorithm that finds execution patterns of subprograms, which are a kind of a documentation of a system, was proposed. These patterns show how subprograms are usually used. Extended call graphs show static and dynamic properties of a system and can be used for example to show how the system behaves for different input data. This dissertation also deals with the analysis of data in the universal repository based on recurrence plots which are a method of analysis of non-linear systems. For this purpose, a method of generation of signals that are required to generate recurrence plots from logs of historical debuggers was introduced. These signals consist of identifiers of subprograms. The second element needed to generate recurrence plots is a measure that will allow one to calculate distance between multi-dimensional vectors. For that reasons, three algorithms that calculate distance between sequences of identifiers of subprograms calls were proposed. It was also examined if recurrence quantification analysis can be used to analyse logs of historical debuggers. Finally, a method of monitoring of distributed systems that is based on historical debuggers was proposed. This method analyses messages that are exchanged between components of a distributed system in order to correlate logs recorded on different nodes of this system. Described methods and algorithms are implemented as the set of the following tools: ExecutionTraceToolkit, IntelliTrace.Analyzer, IntelliTrace.Service, GraphViewer, PatternsCalculator, RecurrencePlot.RQAComparer, RecurrencePlot.Runner and DrawPlot. All experiments described in this thesis are based on the real computer programs including these that are used commercially.
Rodzaj dyplomuPraca doktorska
Autor Michał Paweł Komorowski (WEiTI / II)
Michał Paweł Komorowski
- Instytut Informatyki
Tytuł w języku polskimMetody analizy systemów informatycznych oparte o logi debugger’ów historycznych
Językpl polski
Jednostka dyplomującaWydział Elektroniki i Technik Informacyjnych (WEiTI)
Dyscyplina naukiinformatyka / dziedzina nauk technicznych / obszar nauk technicznych
Data rozpoczęcia24-09-2013
Data obrony12-04-2016
Data zakończenia 26-04-2016
Promotor Janusz Sosnowski (WEiTI / II)
Janusz Sosnowski
- Instytut Informatyki
Recenzenci wewnętrzni Mieczysław Muraszkiewicz (WEiTI / II)
Mieczysław Muraszkiewicz
- Instytut Informatyki
Recenzenci zewnętrzni Stanisław Deniziak
Stanisław Deniziak
-
Paginacja 174
Słowa kluczowe w języku polskimdebugger’y historyczne, repozytorium logów, wykresy rekurencyjne, rozproszone debugger’y historyczne, przetwarzanie logów, modele graficzne logów
Słowa kluczowe w języku angielskimhistorical debuggers, repository of logs, recurrence plots, distributed historical debuggers, logs processing, graphical models of logs
Streszczenie w języku polskimDebugger’y historyczne (DH) to narzędzia pozwalające analizować zmiany zachodzące w programie wraz z upływem czasu. Przeważnie jest to realizowane przez zapisywanie stanu zmiennych lokalnych, wywołań podprogramów (metod składowych klas, funkcji, procedur) itd. w logach. Jest to przydatne na przykład w analizie rzadko występujących błędów, ale są to wciąż˙ narzędzia relatywnie mało popularne. Przyczyn takiego stanu rzeczy autor upatruje miedzy innymi w braku kompatybilności pomiędzy istniejącymi rozwiązaniami i w braku metod pozwalających na efektywną analizę dużych logów debugger’ów historycznych (LDH). Niniejsza praca skupia się na opracowaniu metod, modeli i algorytmów, które ułatwiłyby analizę logów debugger’ów historycznych w celu lepszego zrozumienia działania systemów informatycznych oraz znajdowania i naprawiania błędów. W celu zapewnienia spójnego dostępu do logów w różnych formatach, nagranych przez różne debugger’y historyczne, w pracy zaproponowano nowy model ich przechowywania. Model ten nazywa się uniwersalne repozytorium logów debugger’ów historycznych (URLDH) i oparty jest o relacyjny model danych. Rozpatrywane logi mogą zawierać setki tysięcy wywołań podprogramów, dlatego opracowano także metodę nagrywania i przetwarzania logów debugger’ów historycznych (MNiPL) umożliwiającą redukcję ilości danych do analizy. W celu efektywnego przeglądania danych zgromadzonych w URLDH zdefiniowano nowy model graficzny do reprezentowania zawartości tych logów o nazwie wzbogacone grafy wywołana (WGW), a także opracowano algorytm znajdowania wzorców wywołana podprogramów (AZWWP), czyli pewnego rodzaju dokumentacji systemu. Wzorce te pokazują powtarzające się˛ schematy użycia podprogramów. WGW prezentują˛ zarówno statyczne jak i dynamiczne właściwości programów i mogą na przykład zostać´ użyte do wychwytywania różnic w działaniu aplikacji dla różnych danych wejściowych. W pracy zbadano również możliwości zastosowania wykresów rekurencyjnych (w skrócie WR) do analizy danych w URLDH. W tym celu opracowano metodę zamiany LDH na jednowymiarowe sygnały (szeregi czasowe), które zbudowane są z identyfikatorów liczbowych podprogramów wołanych w czasie działania aplikacji. Dodatkowo, w celu wygenerowania WR, w pracy zaproponowano trzy algorytmy liczenia odległości pomiędzy sekwencjami identyfikatorów podprogramów. Zbadano również możliwość użycia miar ilościowych opisujących WR do analizy danych w URLDH. Wiele DH nie obsługuje systemów rozproszonych. W pracy proponuje się więc metodę ich monitorowania przy pomocy „zwykłych” debugger’ów historycznych. Opracowanie tej metody wymagało przygotowania metody korelacji LDH nagranych na różnych węzłach systemu rozproszonego. Użycie zegarów fizycznych lub logicznych w omawianej sytuacji nie jest zawsze możliwe, dlatego zaproponowano korelację na podstawie zawartości komunikatów wysyłanych pomiędzy poszczególnymi składowymi analizowanego systemu rozproszonego. Praktyczną realizacją zaproponowanych metod i algorytmów są narzędzia ExecutionTraceToolkit, IntelliTrace.Analyzer, IntelliTrace.Service, GraphViewer, PatternsCalculator, RecurrencePlot.RQAComparer, RecurrencePlot.Runner oraz DrawPlot. Zostały one użyte w opisanych w pracy eksperymentach, które bazują na rzeczywistych programach, również takich mających ważne zastosowania komercyjne.
Klasyfikacja PKT4100
Klasyfikacja KBN28-Informatyka
Klasyfikacja europejska80-30
Plik pracy
komorowski_doktorat.pdf 3.6 MB

Pobierz odnośnik do tego rekordu

Powrót