Ο στόχος της παρούσας διπλωματικής εργασίας είναι ο σχεδιασμός και η υλοποίηση ενός
περιβάλλοντος-πλαισίου που θα επιτρέψει την προσαρμοστική παρακολούθηση συστημάτων
λογισμικού. Η αυξανόμενη πολυπλοκότητα των σημερινών συστημάτων λογισμικού έχει
καταστήσει αναγκαία την αναπτυξη αυτο-διαχειριζόμενων συστημάτων λογισμικού. Η
ανάπτυξη αυτο-διαχειριζόμενων συστημάτων λογισμικού θα διευκολύνει την διαχείρηση τους,
κρύβοντας την πολύπλοκοτητα τους από τους διαχειρηστές τους. Από την άλλη κάτι τέτοιο θα
απαιτούσε την συνεχή παρακολούθηση και ανάλυση της συμπεριφοράς τους έτσι ώστε να
ανιχνευθουν και να επιλυθούν τυχών προβλημάτα. Η συνεχής παρακολούθηση ωστόσο
συνεπάγεται υψηλό υπολογιστικό κόστος και ενδέχεται να επιρρεάσει την λειτουργία και
επίδοση των συστημάτων. Για τη αντιμετώπηση αυτής της πρόκλησης προτείνουμε την
ανάπτυξη συστημάτων παρακολούθησης τα οποία θα είναι σε θέση να καθορίζουν σε χρόνο
εκτέλεσης το σύνολο των δεδομένων που συλλέγουν και επεξεργάζονται, έτσι ώστε να
ελαχιστοποιηθεί κατά το μέτρον του δυνατού το κόστος παρακολούθησης. Η προσέγγιση μας
στο πρόβλημα κάνει χρήση των μοντέλων δέντρων στόχων για την μοντελοποίηση υποθέσεων
για το υπο παρακολούθηση σύστημα. Οι υποθέσεις αυτές ενεργοποιούνται με την ανακάλυψη
μορφημάτων των γεγονότων παρακολούθησης, και εν συνεχεία επιχειρείται η επαλήθευση τους
και η ανάλυση του βασικού αιτίου τους. Η επαλήθευση μιας υπόθεσης μπορεί να απαιτήσει την
συλλογή δεδομενων που δεν συλλεγόντουσαν μέχρι πρότινος. Έτσι επιτυγχάνεται η
προσαρμογή του επιπέδου παρακολούθησης. Με αυτόν τον τρόπο σε κάθε δεδομένη χρονική
στιγμή παρακολουθείται μόνο εκείνο το σύνολο δεδομένων που είναι απαραίτητο για την
ανακάλυψη προβλημάτων και των αιτιών τους. Αυτό συντελεί στην μείωση του υπολογιστικού
κόστους παρακολούθησης και στον ταχύτερο προσδιορισμό προβλημάτων καθώς μειώνεται ο
όγκος των δεδομένων που επεξερταζόμαστε. Στα πλαίσια της διπλωματικής ορίσαμε την
αρχιτεκτονική του περιβάλλοντος-πλαισίου και υλοποιήσαμε ένα πρωτότυπο του. Η
αρχιτεκτονική αυτή είναι βασισμένη στο αρχιτεκτονικό μόρφημα Μαυροπίνακα και
υποστηρίζει έμμεση κλήση μεθόδων μέσω μιας υπηρεσίας publisher/subscriber. Επιπλέον
ορίσαμε ένα μοντέλο για τις υποθέσεις, βασισμένο στα δέντρα στόχων, και παρέχουμε μια
διεπαφή χρήστη για τον ορισμό τους. Τέλος μετασχηματίζουμε τα δέντρα που αντιστοιχούν σε
κάθε υπόθεση, σε αυτές σε κανονική συζευκτική μορφή και προτείνουμε την χρήση
έτοιμων(off-the-self) SAT-Solvers για την ανάλυση τους.
The main goal of this diploma thesis is the design and implementation of a goal driven
framework that allows for adaptive monitoring of software systems. The increasing complexity
of today's software systems complexity has necessitated the development of adaptive and selfmanaged
software systems. The development of self-managed systems will facilitate their
management by hiding the systems' complexity from the administrators and engineers.
However a self-managed system requires continious monitoring and analysis of the data
collected in order to detect, verify and solve problems. Such a solution would impose a heavy
load on system resources and influence the overall system's performance. Towards a solution to
this problem we propose the development of adaptive monitoring systems, able to determine at
the runtime, which data should be collected and analyzed, minimizing that way the monitoring
cost. Our approach to this challenge utilizes goal trees to model and define hypotheses about
the system's state. These hypotheses get activated upon detecting significant patterns of events
in the event stream, and then their verification and root-cause analysis is attempted. Verifying a
hypothesis may require collecting additional data that were not being collected before. This
results in the adaptation of the monitoring level. This way only the set of data, necessary to
detect a problem and determine it's root cause, is being monitored resulting in lower monitoring
cost and faster problem determination since less data are being processed. For the purposes of
this work, we defined the architecture of a framework that allows for adaptive monitoring and
developed a prototype of that framework. The architecture is based on the Blackboard
architectural pattern and supports indirect calls between its components by using a
publisher/subscriber service. Furthermore we defined a model for the hypotheses, based on the
goal trees model, and we provide a graphical user interface so as to define them. Finally we
transform the goal trees in CNF and propose the use of SAT-Solvers to analyze them.