Σχεδίαση και Ανάπτυξη Μηχανισμών Διαχείρισης σε Μελλοντικά Δίκτυα



Σχετικά έγγραφα
Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

Αρχιτεκτονική Λογισμικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Σχεδιασµός Ανάπτυξη Οντολογίας

Αυτόνοµη Λήψη Αποφάσεων Βασισµένη σε Πολιτικές για Ασύρµατα ίκτυα Α.Μ.: Α.Μ.:

Σχεδιασµός βασισµένος σε συνιστώσες

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Περιεχόμενο του μαθήματος

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

ΟΝΤΟΛΟΓΙΕΣ, ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΑΚΥΒΕΡΝΗΣΗΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Orchid: Integrating Schema Mapping and ETL ICDE 2008

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Συστήματα Πληροφοριών Διοίκησης

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Βάσεις δεδομένων και Microsoft Access

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

RobotArmy Περίληψη έργου

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

ΑΕΠΠ Ερωτήσεις θεωρίας

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση

Διαχείριση Ετερογενών Δικτύων

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

05 Ανάλυση απαιτήσεων

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Δομές Δεδομένων & Αλγόριθμοι

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Η ΟΝΤΟΛΟΓΙΑ ΤΟΥ ΕΛΛΗΝΙΚΟΥ ΚΤΗΜΑΤΟΛΟΓΙΟΥ. Μελέτη υλοποίησης στο Protégé-2000

Σχεδίαση Βάσεων Δεδομένων

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

Περιεχόμενο του μαθήματος

Εννοιολογική Ομοιογένεια

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

Οδηγίες σχεδίασης στο περιβάλλον Blender

HP Network Node Manager (NNM) Tutorial

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αρχές Προγραμματισμού Υπολογιστών

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΕΚΠΟΝΗΣΗ ΕΡΓΑΣΙΑΣ

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

DECO-DECoration Ontology.

Τεχνολογία λογισμικού στην πράξη

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

Σχεδίαση και Ανάπτυξη Ιστότοπων

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Διαχείριση Πολιτισμικών Δεδομένων

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Οντολογία σύμφωνα με τη Φιλοσοφία

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.)

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Transcript:

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδίαση και Ανάπτυξη Μηχανισμών Διαχείρισης σε Μελλοντικά Δίκτυα Κυριάκος Α. Βίτσας Επιβλέποντες: Νάνσυ Αλωνιστιώτη, Λέκτορας Καθηγητής Κωνσταντίνος Χατζηκοκολάκης, Υποψήφιος Διδάκτωρ Ευάγγελος Κοσμάτος, Διδάκτωρ ΑΘΗΝΑ ΟΚΤΩΒΡΙΟΣ 2012

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδίαση και Ανάπτυξη Μηχανισμών Διαχείρισης σε Μελλοντικά Δίκτυα Κυριάκος Α. Βίτσας Α.Μ.: 1115200800228 ΕΠΙΒΛΕΠΟΝΤΕΣ: Νάνσυ Αλωνιστιώτη, Λέκτορας Καθηγητής Κωνσταντίνος Χατζηκοκολάκης, Υποψήφιος Διδάκτωρ Ευάγγελος Κοσμάτος, Διδάκτωρ

ΠΕΡΙΛΗΨΗ Η παρούσα πτυχιακή εργασία αποτελεί μέρος της προσπάθειας για την ανάπτυξη μηχανισμών διαχείρισης ετερογενών δικτύων. Οι μηχανισμοί αυτοί, μελλοντικά ενδέχεται να αποτελούν τη λύση στο πρόβλημα της αυτοματοποίησης της διαχείρισης των δικτύων. Ουσιαστικά, η δυσκολία εντοπίζεται στο γεγονός ότι ένα δίκτυο πρέπει να λειτουργεί ορθά χωρίς την παρέμβαση του ανθρώπινου παράγοντα. Η ορθή λειτουργία ενός δικτύου συνεπάγεται ότι δεν υφίσταται κανενός είδους πρόβλημα που να οδηγεί σε μη ομαλή λειτουργία του. Συνήθως, τα προβλήματα που παρουσιάζονται κατά τη διαχείριση ενός τέτοιου δικτύου αφορούν τους διαφορετικούς μηχανισμούς διαμοιρασμού πόρων. Ενδέχεται ένας τέτοιος μηχανισμός λόγω των χαρακτηριστικών του να μην είναι σε θέση να ανταπεξέλθει στους στόχους που έχουν τεθεί σε ένα δίκτυο. Η πτυχιακή αυτή πραγματεύεται την αντιμετώπιση τέτοιων προβλημάτων και πιο συγκεκριμένα, εστιάζει στην ανίχνευση και επίλυση των κινδύνων, που ενδέχεται να προκύψουν. Η διαχείριση ολόκληρου του προβλήματος πραγματοποιείται μέσω ενός μηχανισμού που υλοποιείται για το σκοπό αυτό. Αποτέλεσμα αυτής της διαδικασίας είναι η εξάλειψη των κινδύνων που εμφανίστηκαν και τελικά, η επίτευξη του αρχικού σκοπού ο οποίος είναι η ομαλή λειτουργία του δικτύου. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Διαχείριση Δικτύων ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Διαχείριση Δικτύων Στηριζόμενη σε Πολιτικές, Μετάφραση πολιτικής, Ανάλυση Συγκρούσεων, Ανίχνευση Συγκρούσεων, Επίλυση Συγκρούσεων

ΕΥΧΑΡΙΣΤΙΕΣ Για τη διεκπεραίωση της παρούσας Πτυχιακής Εργασίας, θα ήθελα να ευχαριστήσω τους επιβλέποντες λέκτορα καθηγητή κ. Νάνσυ Αλωνιστιώτη, τον κ. Κωσταντίνο Χατζηκοκολάκη, την κ. Ρόη Αράπογλου και τον Δρ. Ευάγγελο Κοσμάτο για τη συνεργασία και την πολύτιμη συμβολή τους στην ολοκλήρωση της.

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ... 9 2. ΟΝΤΟΛΟΓΙΕΣ ΚΑΙ ΟΙ ΓΛΩΣΣΕΣ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ... 11 2.1 Σημασιολογικός Ιστός... 11 2.2 Οντολογίες... 12 2.3 Η γλώσσα OWL και το εργαλείο Protégé... 13 2.4 Η γλώσσα SWRL... 15 3. ΠΟΛΙΤΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ... 17 3.1 Ορισμός... 17 4. ΟΝΤΟΛΟΓΙΕΣ ΣΕ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ ΣΤΗΡΙΖΟΜΕΝΑ ΣΕ ΠΟΛΙΤΙΚΕΣ... 21 4.1 Το μoντέλο Den-ng... 21 4.2 Οντότητες αναπαράστασης πολιτικών... 22 4.3 Μετάφραση πολιτικής... 26 5. ΣΥΓΚΡΟΥΣΗ ΠΟΛΙΤΙΚΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ... 32 5.1 Ορισμός... 32 5.2 Προσεγγίσεις για τη σύγκρουση πολιτικών... 32 5.3 Ανάλυση της σύγκρουσης πολιτικών... 35 5.3.1 Η διαδικασία Συγγραφής... 36 5.3.2 Εντοπισμός συγκρούσεων... 36 5.3.3 Επίλυση Συγκρούσεων... 38 6. ΥΛΟΠΟΙΗΣΗ ΜΗΧΑΝΙΣΜΟΥ ΕΝΤΟΠΙΣΜΟΥ ΚΑΙ ΕΠΙΛΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ ΠΟΛΙΤΙΚΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ... 42 6.1 Βασικό μοντέλο μηχανισμού... 42 6.1.1 Βήμα πρώτο: Λήψη συνόλου πολιτικών και αναγνώρισή τους... 44 6.1.2 Βήμα Δεύτερο: Ανίχνευση συγκρούσεων ανάμεσα στους κανόνες πολιτικών... 46 6.1.2.1 Ανίχνευση σύγκρουσης στο επίπεδο συμβάντων... 49 6.1.2.2 Ανίχνευση σύγκρουσης στο επίπεδο συνθηκών... 50 6.1.2.3 Ανίχνευση σύγκρουσης στο επίπεδο ενεργειών... 53 6.1.3 Βήμα Τρίτο: Επίλυση συγκρούσεων και ενημέρωση για κατάλληλες αλλαγές στη μνήμη... 54 6.2 Σενάριο λειτουργίας μηχανισμού... 58 ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ... 71 ΣΥΝΤΜΗΣΕΙΣ ΑΡΚΤΙΚΟΛΕΞΑ ΑΚΡΩΝΥΜΙΑ... 74 ΠΑΡΑΡΤΗΜΑ Ι... 75 ΑΝΑΦΟΡΕΣ... 91

ΚΑΤΑΛΟΓΟΣ ΕΙΚΟΝΩΝ Εικόνα 1: Το συνεχές πολιτικών... 17 Εικόνα 2: Policy model. Συνήθως η συμπεριφορά του συστήματος παρέχεται με χρήση γλωσσών μοντελοποίησης (UML) [14]... 19 Εικόνα 3: Αναπαράσταση πολιτικής με χρήση Οντοτήτων [21]... 22 Εικόνα 4: Μορφή του συνόλου πολιτικής... 25 Εικόνα 5: Μετάφραση πολιτικής (policy translation) [21]... 26 Εικόνα 6: Η διάκριση πολιτικών σύμφωνα με τους Moffett και Sloman [22]... 33 Εικόνα 7: Μοντέλο μηχανισμού για την ανίχνευση και επίλυση συγκρούσεων... 43 Εικόνα 8: Πρώτο νοητό βήμα μηχανισμού (Λήψη συνόλου πολιτικών)... 44 Εικόνα 9: Μορφή αρχείου XML που περιέχει το σύνολο πολιτικών... 45 Εικόνα 10: Δεύτερο νοητό βήμα μηχανισμού (Ανίχνευση συγκρούσεων)... 47 Εικόνα 11: Δομή που προκύπτει από την διαδικασία της ανίχνευσης συγκρούσεων... 48 Εικόνα 12: Μορφή συνθήκης όπως αυτή γίνεται δεκτή από την διαδικασία της μετάφρασης... 50 Εικόνα 13: Εμφάνιση σύγκρουσης στο επίπεδο των συνθηκών... 52 Εικόνα 14: Τρίτο νοητό βήμα μηχανισμού (Επίλυση συγκρούσεων)... 54 Εικόνα 15: Προτεραιότητες πολιτικών... 55 Εικόνα 16: Πρώτο Σύνολο πολιτικών, Σενάριο 1... 59 Εικόνα 17: Δεύτερο Σύνολο πολιτικών (Μέρος 1/2), Σενάριο 1... 60 Εικόνα 18:Δεύτερο Σύνολο πολιτικών (Μέρος 2/2), Σενάριο 1... 61 Εικόνα 19: Πρώτο Σύνολο πολιτικών (Μέρος 1/2), Σενάριο 2... 64 Εικόνα 20:Πρώτο Σύνολο πολιτικών (Μέρος 2/2), Σενάριο 2... 64 Εικόνα 21: Δεύτερο Σύνολο πολιτικών (Μέρος 1/3), Σενάριο 2... 65 Εικόνα 22: Δεύτερο Σύνολο πολιτικών (Μέρος 2/3), Σενάριο 2... 66 Εικόνα 23: Δεύτερο Σύνολο πολιτικών (Μέρος 3/3), Σενάριο 2... 67

ΚΑΤΑΛΟΓΟΣ ΕΞΙΣΩΣΕΩΝ Εξίσωση 1: Πρώτος SWRL Κανόνας... 15 Εξίσωση 2: Δεύτερος SWRL Κανόνας... 15 Εξίσωση 3: Τρίτος SWRL Κανόνας... 16 Εξίσωση 4: Τέταρτος SWRL Κανόνας... 16 Εξίσωση 5: Τα στοιχεία του ελέγχου μιας πολιτικής... 24 Εξίσωση 6: Έκφραση της συνθήκης μιας πολιτικής... 24 Εξίσωση 7: Παράδειγμα συνθήκης... 24 Εξίσωση 8: SWRL Κανόνας για την διαδικασία της μετάφρασης από το επίπεδο Business στο επίπεδο Network... 28 Εξίσωση 9: SWRL Κανόνας για την διαδικασία της μετάφρασης από το αρχικό επίπεδο (κατηγορία χρήστη Silver)... 28 Εξίσωση 11: SWRL Κανόνας για τη διαδικασία της μετάφρασης από το επίπεδο Network στο επίπεδο Domain... 29 Εξίσωση 13: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία Streaming... 30 Εξίσωση 14: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία IP-TV 30 Εξίσωση 15: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία Internet για το επίπεδο Network... 30 Εξίσωση 16: Παράδειγμα συνθήκης... 50 Εξίσωση 17: Συνθήκες του κανόνα GOV_Policy_GOLD_12... 62 Εξίσωση 18: Συνθήκες του κανόνα GOV_Policy_GOLD_10... 62 Εξίσωση 19 : Συνθήκες του κανόνα GOV_Policy_GOLD_11... 62 Εξίσωση 20: Συνθήκες του κανόνα GOV_Policy_SILVER_2... 62 Εξίσωση 21: Συνθήκες του κανόνα GOV_Policy_GOLD_10... 63 Εξίσωση 22: Συνθήκες του κανόνα GOV_Policy_GOLD_11... 63 Εξίσωση 23: Συνθήκες του κανόνα GOV_Policy_GOLD_1... 67 Εξίσωση 24: Συνθήκες του κανόνα GOV_Policy_GOLD_7... 67 Εξίσωση 25: Συνθήκες του κανόνα GOV_Policy_SILVER_8... 67 Εξίσωση 26: Συνθήκες του κανόνα GOV_Policy_SILVER_2... 68 Εξίσωση 27: Συνθήκες του κανόνα GOV_Policy_GOLD_7... 68 Εξίσωση 28: Συνθήκες του κανόνα GOV_Policy_SILVER_8... 68

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 1: Πίνακας τελεστών... 51 Πίνακας 2: Μορφή του πίνακα αλληλεξαρτήσεων... 54 Πίνακας 3: Πίνακας αλληλεξαρτήσεων για το σενάριο λειτουργίας του μηχανισμού... 58 Πίνακας 4: Πίνακας παρουσίασης προτεραιοτήτων... 69

1. ΕΙΣΑΓΩΓΗ 1.1 Εισαγωγή Ένα από τα βασικά χαρακτηριστικά των μελλοντικών δικτύων είναι η ετερογενής φύση τους. Στο περιβάλλον ενός μελλοντικού δικτύου είναι δυνατόν να συνυπάρχουν διαφορετικές τεχνολογίες, διαφορετικές δικτυακές υποδομές, διαφορετικοί μηχανισμοί διαμοιρασμού πόρων, χρήστες με διαφορετικές απαιτήσεις και τερματικά με διαφορετικές δυνατότητες. Η διαχείριση τέτοιων δικτύων αποτελεί ένα επίπονο και χρονοβόρο έργο αφού απαιτεί την άριστη συνεργασία μεταξύ προσωπικού ειδικευμένου στις διαφορετικές τεχνολογίες και διαχειριστών με γνώσεις σε επιχειρηματική διαχείριση. Συνεπώς είναι αναγκαία η ανάπτυξη ευέλικτων, αποτελεσματικών και εύκολα παραμετροποιήσεων αυτοματοποιημένων μηχανισμών διαχείρισης για συνολική διαχείριση του ετερογενούς δικτύου. Σκοπός της παρούσας εργασίας είναι ο σχεδιασμός και η ανάπτυξη μηχανισμών διαχείρισης δικτύου (network management mechanisms) για ετερογενή δίκτυα, αρκετά ευέλικτων ώστε να μπορούν εύκολα να παραμετροποιηθούν σύμφωνα με τα χαρακτηριστικά του δικτύου, της τεχνολογίας και των χρηστών ενώ παράλληλα να μπορούν να συνεργαστούν μεταξύ τους για να επιτύχουν διαφανώς τους στόχους του δικτυακού παρόχου. Αυτοί οι στόχοι, που εκφράζονται και σαν Επιχειρησιακοί Στόχοι (Business Goals), θα πρέπει να εφαρμοστούν σε ένα δίκτυο. Όμως το αν είναι σε θέση να εφαρμοστούν θα πρέπει εξεταστεί από πολλές οπτικές γωνίες (επίπεδα). Σαν τελευταία και πιο κρίσιμη σκοπιά είναι αυτή που παρουσιάζεται στις υποδομές του δικτύου. Αυτό ορίζεται ως το χαμηλότερο επίπεδο γιατί είναι το σημείο που από εκεί και έπειτα εφαρμόζεται ένας στόχος που έχει τεθεί. Είναι το επίπεδο που πρέπει να ελεγχθεί με τέτοιο τρόπο ώστε να μη προκύψει κάποια ανωμαλία (conflict) στους διαφορετικούς μηχανισμούς διαμοιρασμού πόρων. Οι διαφορετικές οπτικές γωνίες (διαφορετικά επίπεδα) από τις οποίες ελέγχεται ένας Επιχειρησιακός Στόχος στηρίζονται σε μια Πολιτική όπως περιγράφεται στο Κεφάλαιο 3. Τα επίπεδα αυτά είναι πεπερασμένα και δεν είναι ανεξάρτητα μεταξύ τους. Επικοινωνούν μέσω μιας διαδικασίας, που λέγεται διαδικασία μετάφρασης η οποία περιγράφεται στο Κεφάλαιο 4, και κάθε ένα επίπεδο ενημερώνει με χρήσιμες πληροφορίες (που προκύπτουν από αυτό), το επόμενο επίπεδο. Άρα στο τελικό επίπεδο, υπάρχει πληροφορία από όλα τα επίπεδα. Η πληροφορία που ανταλλάσσεται από επίπεδο σε επίπεδο στηρίζεται σε οντολογίες όπως αναλύεται εκτενώς και στο Κεφάλαιο 2. Στο τελικό επίπεδο, θα πρέπει να εξεταστούν όλες οι πληροφορίες που έχουν προκύψει. Πρέπει να εξεταστεί αν ο στόχος που έχει τεθεί στο υψηλότερο επίπεδο (επιχειρησιακός στόχος) και έχει τροποποιηθεί από όλα τα άλλα επίπεδα, είναι σε θέση να εφαρμοστεί στο σύστημα ή όχι. Στη περίπτωση που δε μπορεί να εφαρμοστεί θα πρέπει να εξεταστούν πιθανοί τρόποι για την εφαρμογή του. Στο Κεφάλαιο 6 Κ. Βίτσας 9

αναπτύσσεται ένας τέτοιος μηχανισμός που αποσκοπεί στην ανίχνευση και επίλυση συγκρούσεων ώστε το σύστημα να λειτουργεί ομαλά. Η παραπάνω διαδικασία είναι γνωστή και σαν Ανάλυση Σύγκρουσης και εξετάζεται στο Κεφάλαιο 5. Κ. Βίτσας 10

2. ΟΝΤΟΛΟΓΙΕΣ ΚΑΙ ΟΙ ΓΛΩΣΣΕΣ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Σκοπός του κεφαλαίου αυτού είναι να επισημάνει κάποιες βασικές έννοιες πάνω στις οντολογίες και στις γλώσσες αναπαράστασης πληροφορίας OWL και SWRL. Επιπλέον, γίνεται μια αναφορά στο Σημασιολογικό ιστό και σε ένα διάσημο εργαλείο διαχείρισης οντολογιών, το Protégé. Η αναφορά στα παραπάνω γίνεται για τη καλύτερη κατανόηση της δομής των συστημάτων διαχείρισης ενός δικτύου καθώς επίσης, επειδή και η διαδικασία της μετάφρασης ( η οποία περιγράφεται αναλυτικά στο Κεφάλαιο 4) στηρίζεται πάνω σε οντολογίες και στις γλώσσες OWL και SWRL. 2.1 Σημασιολογικός Ιστός Οι τεχνολογίες σημασιολογικού ιστού (semantic web technologies) έχουν σαν βασικό στόχο την δημιουργία μεταδεδομένων (metadata) που θα περιέχουν πληροφορίες για το ίδιο το περιεχόμενο ενός εγγράφου αλλά και τις σχέσεις του με άλλα έγγραφα ή οντότητες που το έγγραφο αυτό περιγράφει. Αυτό έχει σαν αποτέλεσμα τη διαχείριση και οργάνωση πληροφοριών και την αναπαράσταση γνώσης. Οι τεχνολογίες σημασιολογικού ιστού μπορούν να εφαρμοστούν σε διάφορες εφαρμογές [5]. Είναι δυνατόν να χρησιμοποιηθούν για την οργάνωση και την αναζήτηση πληροφορίας σχετικά με το νόημα των δεδομένων. Αυτό σημαίνει ότι ένα σύστημα είναι δυνατό να διακρίνει την έννοια και τις διαφορετικές σημασίες της πληροφορίας. Οπότε ας υποθέσουμε ότι θα θέλαμε να κάνουμε μια αναζήτηση με τη λέξη apache θέλοντας να εστιάσουμε στις πληροφορίες του γνωστού server (apache Tomcat). Το σύστημα θα πρέπει να αγνοήσει όλα τα σχετικά αποτελέσματα που αφορούν ομώνυμες έννοιες όπως η φυλή apache καθώς επίσης και τα ομώνυμα ελικόπτερα. Ταυτόχρονα, οι πληροφορίες πρέπει να είναι οργανωμένες νοηματικά. Δηλαδή ομαδοποιημένα αποτελέσματα ανάλογα με τον αν αφορούν servers, φυλές, ελικόπτερα ή άλλα θέματα. Με χρήση τέτοιων τεχνολογιών μπορούμε να συμπτύξουμε πληροφορίες από σχετικά έγγραφα και να αφαιρέσουμε περιττά στοιχεία όπου αυτό επιτρέπεται. Όλα αυτά μπορούν να προκύψουν από τη δυνατότητα ενός συστήματος να βγάζει συμπεράσματα με τις οντότητες που αναπαριστούν ένα είδος γνώσης εξάγοντας νέο είδος. Ο ρόλος του semantic (σημασιολογίας) είναι σημαντικός [5] όσον αφορά την συγχώνευση και επικοινωνία δεδομένων ανάμεσα σε ετερογενή συστήματα από διαφορετικούς τηλεπικοινωνιακούς οργανισμούς. Αυτό συμβαίνει γιατί διαφορετικές αρχιτεκτονικές χρησιμοποιεί κάθε οργανισμός για την αναπαράσταση πληροφορίας και διαφορετική είναι η ορολογία που τα περιγράφει. Αυτό γίνεται για να μπορούν τα δεδομένα να γίνουν αντιληπτά από ετερογενή δίκτυα και να δημιουργηθεί αντιστοιχία (mapping) μεταξύ διαφόρων σχημάτων για να παραχθεί η διαλειτουργικότητα μεταξύ των διεργασιών που διαχειρίζονται τις πληροφορίες. Τα σημασιολογικά μεταδεδομένα (semantic metadata) είναι μια μορφή κατανοητή από τους υπολογιστές ώστε να μπορούν να συλλέγουν νέες πληροφορίες σχετικά με τα Κ. Βίτσας 11

δεδομένα (σε αντίθεση με τα metadata της HTML [3] που παρέχει πληροφορίες για την παρουσιάσει του εγγράφου). Οπότε, τα δεδομένα έχουν σχέση με το περιεχόμενο και το νόημα τους και όχι απλά με την εμφάνιση των λέξεων. Τα σημασιολογικά μεταδεδομένα μπορούν να χρησιμοποιηθούν και σε υπηρεσίες δικτύου (web service). Όταν το υλικό και η λειτουργία υπηρεσιών είναι διαθέσιμα σε ένα σύστημα τότε μπορούν να οργανωθούν νέες υπηρεσίες από τις ήδη υπάρχουσες που στην ουσία είναι μια πολύ χρήσιμη ιδιότητα. Επίσης, μια τέτοια υπηρεσία μπορεί να ανακαλυφθεί από τους ενδιαφερομένους σε έναν δικτυακό τόπο με σκοπό να γνωστοποιηθεί πιο εύκολα. Στα πλαίσια αυτής της πτυχιακής η σημασιολογία αναπτύσσεται πάνω στην αναπαράσταση της γνώσης για τις τηλεπικοινωνίες και τα δίκτυα καθώς επίσης και στην δυνατότητα επισύναψης πληροφορίας κατανοητής από το σύστημα στις διάφορες νέες υπηρεσίες για την αυτοματοποίηση της διαδικασίας. Παράλληλα, επιτρέπεται η ανταλλαγή πληροφοριών ανάμεσα σε διάφορες ετερογενείς αρχιτεκτονικές που εφαρμόζονται στα συστήματα λήψης αποφάσεων και στα συστήματα μετάφρασης, υποστηρίζοντας την διαλειτουργικότητα. 2.2 Οντολογίες Με τη χρήση οντολογιών (ontologies) επιτρέπεται η συνεργασία μεταξύ ετερογενών συστημάτων καθώς αποδίδεται καλά ορισμένο νόημα στις πληροφορίες [4]. Οι ιδιότητες που κάνουν τις οντολογίες βασικό συστατικό πολλών υπολογιστικών συστημάτων είναι ότι μια κοινή οντολογία επιτρέπει την ανταλλαγή γνώσης μεταξύ συστημάτων που είναι κατανεμημένα. Επίσης, οι οντολογίες δίνουν την δυνατότητα στους ευφυείς πράκτορες (intelligent agents) να επεξεργαστούν πληροφορίες και να βγάλουν συμπεράσματα για την κατάσταση που βρίσκεται ένα σύστημα. Οι οντολογίες χρησιμεύουν επίσης στο να επιτρέπεται σε συσκευές που δεν είναι από την αρχή ορισμένες, να λειτουργούν σε συνεργασία. Αν δεν υπήρχαν οι οντολογίες η γνώση που θα υπήρχε σε ένα σύστημα θα ήταν περιορισμένη για τη χρήση μόνο σε αυτό. Οι οντότητες (classes) είναι ένα μέρος των οντολογιών. Μια οντότητα αντιπροσωπεύει μια έννοια γνωστικού πεδίου (domain) και διαθέτει κάποιες ιδιότητες (properties) που αντιστοιχούν στα χαρακτηριστικά της συγκεκριμένης έννοιας. Επίσης, οι ιδιότητες υποδεικνύουν τις σχέσεις μεταξύ αντικειμένων (individuals) των οντοτήτων. Μια οντότητα μπορεί να έχει υπο-οντότητες (sub-classes) που αντιπροσωπεύουν έννοιες πιο εξειδικευμένες από την οντότητα στην οποία ανήκουν. Μεταξύ των οντοτήτων μπορούν να υπάρχουν περιορισμοί (restrictions). Ο βασικός λόγος για τους οποίους αναπτύσσουμε οντότητες είναι για την από κοινού κατανόηση της δομής των πληροφοριών μεταξύ ατόμων [6]. Επίσης δίνεται η δυνατότητα επαναχρησιμοποίησης της γνώσης για κάποιο πεδίο ενώ θα μπορούσαμε να προσθέσουμε ότι χρησιμοποιούνται για να γίνουν σαφείς οι υποθέσεις για τη δομή ενός ήδη υπάρχοντος γνωστικού πεδίου. Επιπρόσθετα, κάποιος μπορεί να αναπτύσσει οντολογίες για τον διαχωρισμό της γνώσης σχετικά με ένα πεδίο από τη γνώση για τη Κ. Βίτσας 12

λειτουργία μιας υλοποίησης. Τέλος, οι οντολογίες αναπτύσσονται ευρέως για την ανάλυση της γνώσης σχετικά με ένα πεδίο. Είναι δυνατόν διαφορετικά συστήματα να μοιράζονται την ίδια οντολογία για περιγραφή των όρων που χρησιμοποιούν. Για αυτό, υπολογιστικοί πράκτορες (computer agents) μπορούν να εξάγουν την γνώση για διαφορετικά συστήματα και στη συνέχεια να χρησιμοποιήσουν την γνώση αυτή για να απαντήσουν σε επερωτήσεις χρηστών. Επίσης, όταν μια ομάδα αναπτύξει μια λεπτομερή οντολογία πάνω σε κάποιο γνωστικό πεδίο τότε είναι δυνατόν άλλες ομάδες να επαναχρησιμοποιήσουν την ίδια οντολογία για ένα γνωστικό πεδίο που θα έχει κοινά χαρακτηριστικά. Επιπλέον, δίνεται η δυνατότητα, προκειμένου να δημιουργηθεί μια μεγαλύτερη οντολογία, να μπορούν να συνενωθούν πολλές μικρότερες υπάρχουσες, από τις οποίες η κάθε μια περιγράφει ένα τμήμα γνωστικού πεδίου. Όπως αναφέρθηκε και προηγουμένως, ένα από τα βασικά στοιχεία της σημασιολογίας είναι ότι μπορούν να εφαρμοστούν σε διάφορες εφαρμογές. Για παράδειγμα, μπορούμε να δημιουργήσουμε έναν αλγόριθμο για τη παραμετροποίηση ενός συστήματος που δέχεται σαν είσοδο οντολογίες που περιγράφουν τα στοιχεία προς ρύθμιση ενός συστήματος. Αυτόν τον αλγόριθμο μπορούμε να τον εφαρμόσουμε, εξίσου καλά για την ρύθμιση ενός υπολογιστή τσέπης, ανάλογα με την οντολογία που θα του δώσουμε ως είσοδο. Στην Υποενότητα 2.3 Η γλώσσα OWL και το εργαλείο Protégé περιγράφουμε τα βασικά χαρακτηριστικά μίας ευρέως διαδεδομένης γλώσσας αναπαράστασης πληροφορίας, της OWL (Web Ontology Language) καθώς επίσης παρουσιάζουμε και ένα αρκετά δημοφιλές εργαλείο για σχεδίαση οντολογιών, το Protégé [11]. 2.3 Η γλώσσα OWL και το εργαλείο Protégé Η γλώσσα OWL (Web Ontology Language) [1] είναι μια γλώσσα αναπαράστασης οντολογιών (ontology representation) που αναπτύχθηκε από την World Wide Web Consortium (W3C). Η OWL περιέχει πλούσιο λεξιλόγιο και μερικά πρόσθετα στοιχεία όπως η ιεραρχία των οντοτήτων, η έννοια της ισότητας καθώς και η περιγραφή των ιδιοτήτων. Η OWL στηρίζεται στην τεχνολογία Resource Description Framework (RDF) [7] που πρόκειται για μια γλώσσα μοντελοποίησης δεδομένων που υλοποιείται σε XML (Extensible Markup Language) [8]. Η OWL περιλαμβάνει τρείς κατηγορίες ανάλογα με την εκφραστικότητά τους. Κάθε υπο-γλώσσα αποτελεί μία επέκταση της προηγούμενης της. Από αυτές διακρίνονται οι εξής [9]: OWL Lite. Μπορεί να περιγράψει ιεραρχίες οντοτήτων και απλούς περιορισμούς. Είναι η λιγότερο εκφραστική. Επειδή είναι πολύ απλή είναι εύκολο να δημιουργηθούν εργαλεία σε αυτή τη γλώσσα. Κ. Βίτσας 13

OWL DL. Δίνει την δυνατότητα για μεγαλύτερη εκφραστικότητα καθώς επίσης προσφέρει πληρότητα στις υπολογιστικές πράξεις μεταξύ των οντοτήτων. Αυτό έχει σαν συνέπεια την παραγωγή λογικών συμπερασμάτων για την ιεραρχία των κλάσεων. OWL Full. Παρέχεται καλύτερη εκφραστικότητα άλλα δεν παρέχει εγγυημένη υπολογιστική δυνατότητα. Άρα δεν είναι εφικτό να γίνει αυτόματη εξαγωγή συμπερασμάτων. Η δομή της OWL αποτελείται από κάποια στοιχεία [6]. Αυτά τα δομικά στοιχεία είναι: Τα Αντικείμενα (individuals). Αποτελούν την αναπαράσταση των αντικειμένων που θέλουμε να μοντελοποιήσουμε. Οι Οντότητες (classes). Πρόκειται για την αντιστοιχία σε έννοιες κάποιου πεδίου που θέλουμε να αναπαραστήσουμε και προκύπτουν από έναν αριθμό από αντικείμενα. Οι Ιδιότητες (properties). Αποτελούν τις σχέσεις που μπορούν να έχουν δυο αντικείμενα ή την σχέση μιας τιμής και ενός αντικειμένου. Οι Περιορισμοί (restrictions). Έχουν σχέση με τις ιδιότητες. Οι ιδιότητες χρησιμεύουν και στη δημιουργία περιορισμών. Οι περιορισμοί ανήκουν στις κατηγορίες: περιορισμοί τιμών και στους ποσοτικούς και πληθικότητας περιορισμούς. Η πλατφόρμα Protégé [16] [17] χρησιμοποιείται για την σχεδίαση οντολογιών. Το Protégé είναι μια εφαρμογή γραμμένη σε γλώσσα java και έχει δημιουργηθεί με σκοπό την ανάπτυξη οντολογιών δίνοντας την δυνατότητα για την επεξεργασία και εύκολη δημιουργία OWL οντολογιών μέσα από ένα γραφικό περιβάλλον. Το πρόγραμμα δημιουργήθηκε το 1988 και χρησιμοποιήθηκε αρχικά για την ανάκτηση γνώσης από μερικά συστήματα. Μετά από αρκετά χρόνια και με την συμβολή της πανεπιστημιακής κοινότητας του πανεπιστημίου του Stanford, το protégé έχει εξελιχθεί σε ένα σημαντικό εργαλείο για την μοντελοποίηση γνώσης. Το protégé αναπτύσσεται με γρήγορους ρυθμούς και πλέον χρησιμοποιείται για την δημιουργία κάθε είδους οντολογιών. Η OWL (όπως αυτή έχει οριστεί) σε αντίθεση με την OWL για το Protégé έχει κάποιες διαφορές: Η OWL για Protégé χρησιμοποιεί για κάθε οντολογία ένα μοναδικό όνομα. Δηλαδή γίνεται χρήση του Unique Name Assumption (UNA). Στο Protégé δεν είναι απαραίτητο να δηλώνεται αν δύο αντικείμενα είναι διαφορετικά ή ίδια, όπως συμβαίνει στην OWL και στο όπως αυτή έχει οριστεί. Το Protégé υποστηρίζει την εγκατάσταση πρόσθετων εργαλείων-προγραμμάτων (plugins). Επίσης, μέσω του Protégé υπάρχει η δυνατότητα για την μοντελοποίηση και αναπαράσταση οντολογιών προς χρήση για εφαρμογές Java. Ένα από τα πρόσθετα εργαλεία του Protégé είναι και η εισαγωγή SWRL κανόνων πάνω στις οντολογίες. Για τη Κ. Βίτσας 14

γλώσσα SWRL και για τη μορφή των κανόνων της γλώσσας αυτής θα αναφερθούμε στη παρακάτω ενότητα. 2.4 Η γλώσσα SWRL Η Semantic Web Rule Language (SWRL) [2] είναι μια γλώσσα που χρησιμοποιείται για να εξυπηρετηθεί καλύτερη διαλειτουργικότητα (interoperability) ανάμεσα σε συστήματα μέσα από μια προτυποποίηση κανόνων. Στην ουσία με την SWRL αναπαρίσταται η πραγματική «νοημοσύνη» των συστημάτων που έχουν επίγνωση του περιβάλλοντός τους, ενώ με την χρήση οντολογιών και μόνο οι πληροφορίες απλά αποθηκεύονται και αναπαριστώνται. Η μηχανή που εξάγει τα συμπεράσματα αποτελείται από ένα σύνολο γεγονότων (facts) και κανόνων (rules). Στη πραγματικότητα, η SWRL αποτελεί μια γλώσσα κανόνων (rule language). Η SWRL είναι από τις λίγες γλώσσες που αξιοποιεί τις οντολογίες για την συνεργασία συστημάτων (βασισμένων σε κανόνες) με τέτοιο τρόπο, ώστε να επικοινωνούν, ενώ εξαρχής δεν ήταν ορισμένες για αυτό το σκοπό. Στην SWRL οι κανόνες απεικονίζονται [15] σαν «δεδομένο- επακόλουθο» (antecedentconsequent). Στην ορολογία της το επακόλουθο σημειώνεται σαν «Σώμα» (body) του κανόνα και το δεδομένο σαν «κεφαλή» (head). Υποστηρίζει λογικές εκφράσεις από άτομα (atoms). Το «Σώμα» και η «Κεφαλή» αποτελούνται από την ένωση ατόμων. Η SWRL είναι βασισμένη στην OWL και όλοι οι κανόνες τις εκφράζονται με τις έννοιες της OWL που αναφέρθηκαν παραπάνω (αντικείμενα, ιδιότητες, οντότητες, κυριολεκτήματα). Ακολούθως, παρουσιάζονται μερικά παραδείγματα για την καλύτερη κατανόηση των κανόνων. Τα παραδείγματα βασίζονται στην γνωστή οντολογία family.owl που απεικονίζει τις συγγενικές σχέσεις μιας οικογένειας. Κανόνας 1 ος Person (? x1) hassibling (? x1,? x2) Man(? x2) hasbrother (? x1,? x2) Εξίσωση 1: Πρώτος SWRL Κανόνας Στο αριστερό μέρος πριν το βελάκι φαίνεται η «συνθήκη» ενώ στο δεξί μέρος φαίνεται το «αποτέλεσμα» που θέλουμε να καταλήξουμε. Άρα ο παραπάνω κανόνας σκοπεύει να εκφράσει ότι «ΑΝ ο x1 έχει ένα sibling(αδερφό ή αδερφή) x2 και ο x2 είναι αρσενικού γένους ΤΟΤΕ ο x1 έχει έναν αδερφό». Κανόνας 2 ος Person ( Alice) hassibling ( Alice,? x2) Woman (? x2) hassister ( Alice,? x2) Εξίσωση 2: Δεύτερος SWRL Κανόνας Κ. Βίτσας 15

Ο παραπάνω κανόνας μοιάζει λίγο με τον προηγούμενο μόνο που τώρα θέλουμε να εστιάσουμε στο ερώτημα «Ποιά είναι η Αδερφή της Alice;». Αυτό εκφράζεται ως «ΑΝ το άτομο Alice έχει ένα sibling(αδερφό ή αδερφή) x2 και αυτό είναι θηλυκού γένους ΤΟΤΕ η Alice έχει αδερφή». Κανόνας 3 ος Person( Alice) hassibling ( Alice,? x2) Woman(? x2) hasage(? x2,30) has30 YearOldSister ( Alice,? x2) Εξίσωση 3: Τρίτος SWRL Κανόνας Η SWRL δίνει την δυνατότητα για την χρήση κυριολεκτημάτων στη σύνταξη των κανόνων. Για παράδειγμα, ο παραπάνω κανόνας αναφέρεται στην εξέταση για το αν η Alice έχει αδερφή, που είναι 30 χρονών. Το ίδιο μπορούσε να γίνει αν επιθυμούσαμε να συγκρίνουμε το όνομα της Alice αλλά σε αυτήν την περίπτωση θα χρησιμοποιούσαμε κυριολεκτήματα συμβολοσειρών όπως οι έννοιες sameas (παρόμοιο) κ.α. Κανόνας 4 ος hassister (? x1,? x2) swrlb : lessthan(? age2,? age1) hasage(? x1,? age1) hasage(? x2,? age2) hasyoungersister (? x1,? x2) Εξίσωση 4: Τέταρτος SWRL Κανόνας Το παραπάνω σενάριο εκφράζει την εύρεση για τις αδερφές του x1 που είναι μικρότερες από αυτόν. Εδώ κάνουν και την εμφάνισή τους κάποιες προκαθορισμένες εντολές (built-ins).τα built-ins χρησιμεύουν στην διευκόλυνση συγκρίσεων μεταξύ των ατόμων. Στα built-ins υπάρχει η δυνατότητα να γίνουν προσθήκες. Το παραπάνω παράδειγμα χρησιμοποιεί το built-in lessthan. Οι οντολογίες αποτελούν ένα βασικό κομμάτι των συστημάτων διαχείρισης ενός δικτύου (Management Systems). Σε μερικές περιπτώσεις, τα συστήματα διαχείρισης ενός δικτύου στηρίζονται σε πολιτικές (Policy Based). Η σχέση οντολογιών και πολιτικών είναι σημαντική καθώς η έκφραση και η αναπαράσταση των πολιτικών στηρίζεται σε οντολογίες. Για τις Πολιτικές Διαχείρισης Δικτύων καθώς επίσης και την μοντελοποίηση και εξαγωγή τους με βάση τους στόχους μιας επιχείρησης θα αναφερθούμε στο παρακάτω κεφάλαιο. Κ. Βίτσας 16

3. ΠΟΛΙΤΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ 3.1 Ορισμός Ως πολιτική διαχείρισης δικτύων, με βάση και τον ορισμό που δίνει η Internet Engineering Task Force (IETF), θεωρούμε το συνδυασμό κανόνων που καθορίζουν τα κριτήρια για την πρόσβαση και χρήση πόρων ενός συστήματος [10]. Οι κανόνες που ορίζονται από μια πολιτική επιβάλλουν ένα σύνολο από περιορισμούς που καθορίζουν τη λειτουργία του συστήματος όσον αφορά τους χρήστες και τις εφαρμογές, την επίτευξη των στόχων και την διαθεσιμότητα των πόρων. Οι πολιτικές αποκτούν δυναμικό χαρακτήρα όταν γίνεται χρήση των οντολογιών (όπου αναφερθήκαμε στο 2) για τον προσδιορισμό και την απεικόνιση τους. Πρέπει να τονιστεί ότι οι πολιτικές εφαρμόζονται στους μηχανισμούς λήψης αποφάσεων κάθε συστήματος. Μια πολιτική που αφορά τη συμπεριφορά ενός συστήματος [18] θα πρέπει να υλοποιεί μια σειρά από δυναμικού συνόλου πολιτικές παρά μια και μόνο στατική πολιτική. Κάθε μία από τις παραπάνω δυναμικές πολιτικές καθορίζει τη συμπεριφορά επίτευξης στόχων που συμμετέχουν για τη λήψη αποφάσεων. Αυτοί οι στόχοι συχνά συγκρούονται μεταξύ τους καθώς η επίτευξη του ενός μπορεί να σημαίνει αποτυχία του άλλου. Άρα, καθώς εξελίσσονται οι πολιτικές (policy continuum) πρέπει να λαμβάνονται υπόψη: Η άποψη των επιχειρηματιών (business view). Η άποψη των διαχειριστών (admin view). Η άποψη των συστημάτων (system view). Η άποψη των συσκευών (device view) Η άποψη της υλοποίησης (instance view). Εικόνα 1: Το συνεχές πολιτικών Κ. Βίτσας 17

Για την δημιουργία τελικών κανόνων πρέπει να συλλεχτούν και να συνδυαστούν οι πολιτικές από όλους τους συμμετέχοντες [12]. Διύλιση Πολιτικής Με τον όρο της διύλιση πολιτικής (Policy Refinement) εννοούμε την διαδικασία για την παραγωγή χαμηλού επιπέδου πολιτικών από αυτές του υψηλού επιπέδου. Σαν υψηλού επιπέδου πολιτικές μπορούμε να ορίσουμε αυτές τις πολιτικές που βρίσκονται σε σχετικά υψηλά επίπεδα στο συνεχές των πολιτικών (όψη επιχειρηματιών). Σε αντίθεση, οι χαμηλού επιπέδου πολιτικές είναι αυτές που βρίσκονται στα χαμηλότερα επίπεδα (όψη υλοποίησης). Το κύριο πρόβλημα που προκύπτει για την διύλιση των πολιτικών [13] αφορά τη δημιουργία εκτελέσιμων πολιτικών που θα στηρίζονται πάνω σε οδηγίες που έχουν προκύψει από ανώτερα επίπεδα. Για το λόγο αυτό και προκειμένου να δοθεί λύση στο παραπάνω πρόβλημα, βασιζόμαστε στο καθορισμό μιας ακολουθίας πολιτικών, στη συγκεκριμενοποίηση των στόχων υψηλού επιπέδου και τέλος στον ορισμό πλαισίου που θα διακρίνει τις απαιτήσεις για να οδηγηθούμε σε πολιτικές προς εκτέλεση. Οι τελευταίες πολιτικές (χαμηλού επιπέδου) είναι σε θέση να εκτελούνται αυτόματα ανάλογα τις οδηγίες και τις συνθήκες που ερμηνεύονται σε υψηλότερα επίπεδα. Υπάρχει ένα πλαίσιο για την διύλιση πολιτικών. Αυτό το πλαίσιο βοηθάει την επεξεργασία των στόχων όχι μόνο κατά την σχεδίαση του συστήματος αλλά και κατά την λειτουργία του. Οι επιμέρους λειτουργίες για την διαχείριση των στόχων είναι: 1. Λειτουργία διύλισης των επιχειρησιακών στόχων (goal refinement support). Σε αυτή τη λειτουργία ο διαχειριστής για την υλοποίηση (administrator developer) καθορίζει τους τρόπους για την επίτευξη των στόχων. Αυτή αφορά το καθορισμένο εργαλείο-εφαρμογή και υλοποιείται σε δύο στάδια. Στο πρώτο στάδιο πρέπει να πραγματοποιηθεί η διύλιση των στόχων που προκύπτει από τους στόχους του υψηλότερου επιπέδου κατά την αντιστοίχιση αυτών με τους στόχους του συστήματος πολιτικής. Κάθε ένας από αυτούς τους στόχους αναλύεται και δημιουργείται ένας γράφος με δενδρική μορφή. Στο δεύτερο στάδιο γίνεται η επεξεργασία των στόχων που στηρίζεται στην ιεράρχηση. Σε αυτό το στάδιο κάθε υποδένδρο του γράφου αναλύεται σε στόχους όπως αυτοί εμφανίζονται στην ιεραρχία πολιτικών. 2. Λειτουργία επιλογής επιχειρησιακών στόχων (goal selection support). Σε αυτή τη λειτουργία o διαχειριστής σύμβουλος (administrator consultant) διακρίνει τους στόχους υψηλού επιπέδου που αποδίδουν καλύτερα κριτήρια για την διαχείριση στην εκτέλεση μιας υπηρεσίας. 3. Λειτουργία επιβεβαίωσης επιχειρησιακών στόχων (verification goal). Γίνεται ο έλεγχος για την ορθότητα και την πληρότητα. Ουσιαστικά η συγκεκριμένη λειτουργία πραγματοποιεί ελέγχους για το αν οι στόχοι που έχουν επιλεγεί είναι πλήρης και ορθοί. 4. Λειτουργία μηχανισμών για την διύλιση πολιτικών (policy refinement mechanisms). Πρόκειται για μηχανισμούς που στοχεύουν στην ανάκτηση των Κ. Βίτσας 18

πολιτικών χαμηλού επιπέδου που εκπληρώνουν ένα στόχο από υψηλότερο επίπεδο. Οι περισσότερες διαδικασίες απαιτούν σαν είσοδο: i. Αίτηση για την διύλιση των πολιτικών (policy refinement request). Πρόκειται για αιτήσεις (επιλογές που έχουν γίνει για κάποιους στόχους) που παρέχονται από τις λειτουργίες που εστιάζουν στην διαχείριση ενός στόχου. ii. Ανάλυση για την συμπεριφορά του συστήματος (system behavior). Είναι μια εκτενής περιγραφή για το πως συμπεριφέρονται και συνεργάζονται τα αντικείμενα. Συνήθως, η συμπεριφορά του συστήματος παρέχεται με χρήση γλωσσών μοντελοποίησης. iii. Διανομή των αντικειμένων (object distribution). Στην ουσία, πρόκειται για καταλόγους με αντικείμενα που διαχειρίζονται το σύστημα. Εικόνα 2: Policy model. Συνήθως η συμπεριφορά του συστήματος παρέχεται με χρήση γλωσσών μοντελοποίησης (UML) [14] Ιεραρχία πολιτικών Οι πολιτικές μπορούν να ιεραρχηθούν (policy hierarchy) με βαση τις ακόλουθες αρχές: 1. Αρχικά, πρέπει να οριστούν οι υψηλότερου επιπέδου πολιτικές που αντιστοιχούν στην υπηρεσία του συστήματος πολιτικών. Πρόκειται για μια πολιτική που σκοπεύει στην ανάπτυξη της υπηρεσίας. 2. Έπειτα, πρέπει να καθοριστούν οι λειτουργίες του συστήματος που εξαρτώνται από τις πολιτικές. Αυτό σημαίνει ότι η υψηλότερου επιπέδου πολιτική πρέπει να αντιστοιχεί σε τόσες πολιτικές χαμηλού επιπέδου όσες είναι και οι λειτουργίες του συστήματος. 3. Η κάθε μια από τις παραπάνω λειτουργίες πρέπει να εκτελεστούν για αυτό πρέπει να γίνει ο καθορισμός των λειτουργικών μονάδων λογισμικού (software modules). Κάθε μια από αυτές τις μονάδες εφαρμόζει μια πολιτική για αυτόν τον καθορισμό (software module policy). 4. Τέλος, καθορίζονται οι επιμέρους λειτουργίες σε κάθε λειτουργική μονάδα. Κάθε λειτουργία θα καθορίζει ένα τύπο πολιτικής. Υπάρχει η περίπτωση διαφορετικές Κ. Βίτσας 19

τιμές να επηρεάζουν τη λειτουργία μιας μονάδας (conflict). Σε αυτή τη περίπτωση πρέπει να αποδοθεί στην κάθε μια μονάδα μια χαμηλότερου επιπέδου πολιτική. Καθορισμός των στόχων υψηλού επιπέδου Σε αυτό το στάδιο εμφανίζονται δυο ρόλοι για την διαχείριση, ο διαχειριστής για την υλοποίηση και ο διαχειριστής σύμβουλος. Ο διαχειριστής για την υλοποίηση (administrator developer) αναλαμβάνει να ορίσει τους στόχους υψηλού επιπέδου και το πως μπορούν αυτοί να επιτευχθούν. Η παραπάνω δράση γίνεται κατά την σχεδίαση του συστήματος. Επιπροσθέτως, ο διαχειριστής υλοποίησης αναλαμβάνει την καθιέρωση για τους στόχους και τις πολιτικές που θα οδηγήσουν στην επίτευξή τους. Ο διαχειριστής σύμβουλος στοχεύει στη δημιουργία εξειδικευμένων στόχων από την ανάλυση που προκύπτει από τους γενικούς στόχους. Οι εξειδικευμένοι αυτοί στόχοι απεικονίζουν πιο καλά την άποψη των διαχειριστών για την επίτευξη των στόχων και την λειτουργία του συστήματος. Στο επόμενο κεφάλαιο αναλύεται το μοντέλο στο οποίο στηρίζονται οι πολιτικές χαμηλού επιπέδου για τα συστήματα διαχείρισης ενός δικτύου. Η ανάλυση αυτή γίνεται για την αξιοποίηση των οντοτήτων από το μηχανισμό που αναπτύσσεται στο Κεφάλαιο 6. Επίσης, εκφράζεται και η διαδικασία της μετάφρασης, μια σημαντική διαδικασία που στοχεύει στην διαίρεση του αρχικού επιχειρησιακού στόχου σε στόχους χαμηλού επιπέδου. Κ. Βίτσας 20

4. ΟΝΤΟΛΟΓΙΕΣ ΣΕ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ ΣΤΗΡΙΖΟΜΕΝΑ ΣΕ ΠΟΛΙΤΙΚΕΣ Οι υπάρχουσες αρχιτεκτονικές διαχείρισης δικτύων υποφέρουν από ένα σύνολο αρχιτεκτονικών που δημιουργούν προβλήματα. Ο τρόπος διαχείρισης δικτύου που βασίζεται σε πολιτικές (policy based management System, PBMS), έχει σαν στόχο να λύσει τα περισσότερα από αυτά τα προβλήματα. Υπάρχουν αρκετές προσεγγίσεις για την οικοδόμηση μιας λύσης για το Policy Based Network Management οι οποίες στηρίζονται πάνω σε κάποια μοντέλα τα οποία ονομάζονται μοντέλα πληροφοριών [20]. Ουσιαστικά, μοντέλα πληροφοριών (information models) είναι πετυχημένες μέθοδοι για τη μείωση των επιπτώσεων στη διαχείριση των πόρων ετερογενών δικτύων. Ένα αρκετά γνωστό μοντέλο πληροφοριών είναι το μοντέλο Den (Directory Enabled Networks, Κατάλογος ενεργοποιημένων δικτύων, 1999) που εξελίχθηκε στο μοντέλο Den-ng (new generation, 2003). 4.1 Το μoντέλο Den-ng Ο σκοπός του μοντέλου πληροφοριών για τις πολιτικές (policy information model) Denng [19] είναι να καθορίσει ένα σύνολο από διαχειριζόμενες οντότητες, οι οποίες μπορούν να χρησιμοποιηθούν για να συνδυάζονται μεταξύ διαφορετικών πολιτικών. Με αυτό το τρόπο υπάρχει η δυνατότητα να επιτρέπονται οι αντιστοιχίες (mappings) που πρέπει να οριστούν για την μετατροπή των δεδομένων από κάθε επίπεδο από το συνεχές των πολιτικών. Πιο συγκεκριμένα, το Den-ng έχει σχεδιαστεί για να περιγράψει τη δομή μιας επιχείρησης σε οντότητες που διαχειρίζονται το δίκτυο. Ένα από τα σημαντικότερα πλεονεκτήματα του είναι ότι για πρώτη φορά μπορεί να επιτευχθεί η υλοποίηση της πολιτικής που προέρχεται από τους επιχειρησιακούς στόχους, σε στόχους για την ρύθμιση της συμπεριφοράς των υπηρεσιών ενός δικτύου. Το συνεχές των πολιτικών, όπως αναφέρεται στο Κεφάλαιο 2, προσφέρει τη δυνατότητα να συνδέονται τα διάφορα επίπεδα μιας πολιτικής. Ωστόσο, ακόμα και αν προσφέρεται αυτή η δυνατότητα υπάρχουν κάποια προβλήματα που δημιουργούντα εξαιτίας κάποιων παραγόντων, όπως είναι ο μετασχηματισμός της πολιτικής (policy transformation), η διύλιση της (policy refinement) και οι συγκρούσεις που μπορούν να υπάρχουν (policy conflict). Το μοντέλο Den-ng χρησιμοποιείται για να υποστηρίξει την επίλυση αυτών των προβλημάτων με σκοπό την αποτελεσματικότητα στο συνεχές των πολιτικών. Τέλος, σημειώνεται ότι το μοντέλο Den-ng μπορεί να αντιπροσωπεύει επιχειρηματικές έννοιες και σχέσεις. Για παράδειγμα, το Den-ng μπορεί να αντιπροσωπεύει πληροφορίες σχετικά με έναν πελάτη και τις υπηρεσίες που χρησιμοποιεί (ή και τις πληροφορίες χρέωσης του) και μπορεί να αποτελέσει, επίσης, τις υπηρεσίες και τους πόρους για να καταστεί δυνατή η παροχή της υπηρεσίας του πελάτη. Κ. Βίτσας 21

4.2 Οντότητες αναπαράστασης πολιτικών Ο σκοπός της ενότητας αυτής είναι να καθοριστούν μερικοί από τους όρους που χρησιμοποιούνται στο μοντέλο πληροφοριών Den-ng, σύμφωνα με το TMForum [20] για να οικοδομήσουμε μια καθιερωμένη (standard) αναπαράσταση της. Οι πολιτικές τόσο σε χαμηλό επίπεδο όσο και σε υψηλό επίπεδο μπορούν να περιγραφούν και να αναπαρασταθούν με την χρήση οντολογιών. Ένα υποσύνολο των προτεινόμενων οντολογιών που περιγράφουν την πολιτική σε χαμηλό επίπεδο απεικονίζεται στην Εικόνα 3. Εικόνα 3: Αναπαράσταση πολιτικής με χρήση Οντοτήτων [21] Κάθε μια από τις παραπάνω οντότητες, και όχι μόνο, απεικονίζουν κάποια από τα χαρακτηριστικά που μπορεί να φέρει μια πολιτική σε χαμηλό επίπεδο. Συγκεκριμένα κάθε οντότητα έχει διαφορετική πληροφορία σχετικά με τη πολιτική, πιο συγκεκριμένα [20]: Κ. Βίτσας 22

Οντότητα Policy Αυτή η οντότητα είναι ένα σύνολο (set) από κανόνες που χρησιμοποιούνται για τη διαχείριση και τον έλεγχο μεταξύ μιας κατάστασης και μιας κατάστασης διαφοροποιημένης από ένα ή περισσότερα διαχειριζόμενα αντικείμενα. Αναφέρεται στη διαχείριση των κανόνων της πολιτικής (policy rules), των ομάδων (groups) και των συστατικών της (components). Οντότητα PolicyRule Η οντότητα αυτή είναι ένα έξυπνο δοχείο δεδομένων (data container). Περιέχει τα δεδομένα που καθορίζουν πως ένας κανόνας πολιτικής χρησιμοποιείται σε ένα διαχειριζόμενο περιβάλλον όπως μια προδιαγραφή που υπαγορεύει πως οι διαχειριζόμενες οντότητες αλληλεπιδρούν. Τα δεδομένα που εμπεριέχονται είναι τεσσάρων ειδών: 1. Τα δεδομένα και τα μεταδεδομένα που ορίζουν την σημασιολογία και τη συμπεριφορά του κανόνα και τη συμπεριφορά που επιβάλλει το υπόλοιπο σύστημα. 2. Μια σειρά από τα συμβάντα (events) που μπορούν να χρησιμοποιηθούν για να προκαλέσουν την αξιολόγηση της συνθήκης (condition clause) ενός κανόνα. 3. Μια ομάδα από συνθήκες (conditions) που συγκεντρώνονται από το κανόνα. 4. Μια ομάδα από ενέργειες (actions) που συγκεντρώνονται από το κανόνα. Οντότητα PolicyEvent Ένα policyevent είναι η εμφάνιση ενός σημαντικού συμβάντος και μπορεί να χρησιμοποιηθεί για να προκαλέσει την αξιολόγηση της συνθήκης της πολιτικής (Policy Condition) σε ένα κανόνα πολιτικής. Οντότητα Policy Event Atomic Είναι βασικό «συστατικό» της παραπάνω κλάσης και είναι μια βασική κλάση που αντιπροσωπεύει ένα απλό ατομικό συμβάν που χρησιμοποιείται για να προκαλέσει την αξιολόγηση μιας πολιτικής. Οντότητα PolicyCondition Η οντότητα αυτή αντιμετωπίζεται ως ένα ατομικό αντικείμενο που συγκεντρώνεται από ένα κανόνα πολιτικής. Απεικονίζεται σαν μια λογική έκφραση και καθορίζει την απαιτούμενη κατάσταση ή/και προϋποθέσεις που καθορίζουν το κατά πόσον οι ενέργειες (actions), που συγκεντρώνονται από την ίδια πολιτική, θα πρέπει να εκτελούνται. Οντότητα Policy Condition Atomic Πρόκειται για μια βασική κλάση για όλες τις απλές συνθήκες πολιτικής. Μια απλή πολιτική χρησιμοποιείται για τη δοκιμή μιας και μόνο προϋπόθεσης (statement). Αυτή αποτελείται από μια μεμονωμένη οντότητα τύπου PolicyStatement. Κ. Βίτσας 23

Οντότητα PolicyAction Όπως και στην οντότητα PolicyCondition, έτσι και αυτή, αντιμετωπίζεται ως ένα ατομικό αντικείμενο που συγκεντρώνεται από ένα κανόνα πολιτικής. Αντιπροσωπεύει τις αναγκαίες ενέργειες που πρέπει να γίνουν ανάλογα την οντότητα PolicyCondition. Οι ενέργειες αυτές εφαρμόζονται σε μια σειρά από αντικείμενα που διαχειρίζεται και έχουν σαν αποτέλεσμα είτε τη διατήρηση της υπάρχουσας κατάστασης είτε την μετάβαση σε μία νέα κατάσταση από τα υπάρχοντα διαχειριζόμενα αντικείμενα. Οντότητα PolicyStatement Πρόκειται για τις οντότητες που αποτελούν τον «έλεγχο» μιας πολιτικής. Τόσο σε επίπεδο condition όσο και σε επίπεδο action η μορφή είναι: variable, operator, value Εξίσωση 5: Τα στοιχεία του ελέγχου μιας πολιτικής Όπου οι αγκύλες χρησιμοποιούνται για να δηλώσουν μια πλειάδα. Πιο συγκεκριμένα και σύμφωνα με την παραπάνω μορφή μπορούμε να γράψουμε ένα policycondition ως: Για παράδειγμα if variable operator value Εξίσωση 6: Έκφραση της συνθήκης μιας πολιτικής if ( sourceport 21 ) Εξίσωση 7: Παράδειγμα συνθήκης Στην Εξίσωση 7 το sourceport είναι ένα παράδειγμα μιας μεταβλητής (variable), το «==» είναι ένα παράδειγμα ενός τελεστή (operator) και το 21 είναι ένα παράδειγμα μιας τιμής (value). Στην πραγματικότητα, ένα PolicyStatement δίνει τη δυνατότητα να γενικευθεί η τυποποιημένη φόρμα (βλ. Εξίσωση 6) ενός PolicyCondition. Οντότητα PolicyVariables Είναι μια αφηρημένη κατηγορία (abstract class) για τη μοντελοποίηση διαφορετικών τύπων μεταβλητών (variables) που μπορούν να χρησιμοποιηθούν για να σχηματίσουν ένα PolicyStatement. Η μεταβλητή (variable) καθορίζει ένα χαρακτηριστικό ή μια έννοια που θα πρέπει να συγκρίνεται ή να συνδυάζεται. Οντότητα PolicyOperator Είναι μια κλάση για την μοντελοποίηση διαφορετικών τύπων τελεστών μέσα σε μια οντότητα PolicyStatement. Ανάλογα με το είδος του τελεστή σε ένα PolicyStatement, μπορεί κανείς να πραγματοποιήσει διάφορες περιπτώσεις για κάθε κανόνα. Κ. Βίτσας 24

Οντότητα PolicyValue Όπως και η οντότητα PolicyVariable, έτσι και αυτή αποτελεί μια αφηρημένη κλάση για τη μοντελοποίηση διαφορετικών τύπων για τιμές σε ένα PolicyStatement. To PoliceValue καθορίζει ένα χαρακτηριστικό που θα πρέπει να ταιριάζει (matched) ή να σχετίζεται (compared) κατά κάποιο τρόπο με την τιμή μιας μεταβλητής σε ένα PolicyCondition. Σε αυτό το σημείο πρέπει να τονιστεί ότι αυτές οι οντότητες αποτελούν ατομικά στοιχεία μια πολιτικής. Κάθε πολιτική όμως μπορεί να φέρει πολλούς κανόνες (policy Rules), πολλά συμβάντα (policy Events), πολλές συνθήκες (Policy Conditions), πολλές καταστάσεις (Policy Statement), πολλές ενέργειες (Policy Actions) κ.λπ. Για την καλύτερη οργάνωση και χρήση των οντοτήτων χρησιμοποιείται η οργάνωση της κάθε οντότητας με χρήση υποοντοτήτων, έτσι ώστε να δημιουργηθεί μια μορφή που θα έχει την όψη λίστας. Για παράδειγμα, υπάρχει η οντότητα PolicySet που πρόκειται για μια κλάση που περιέχει μια λίστα με αντικείμενα τύπου κλάσης PolicyRule. Αυτή η κλάση θα μπορούσε να φέρει πολλά αντικείμενα της μορφής PolicyRule καθώς μια πολιτική δεν εκφράζεται συνήθως από έναν και μόνο κανόνα. Με τον ίδιο τρόπο μια οντότητα Policy Rule περιέχει λίστες κλάσεων PolicyEvent, policycondition και policyaction. Η οντότητα PolicyCondition όπως αναφερθήκαμε και πιο πάνω είναι ατομικό αντικείμενο ενός PolicyRule. Όμως κάθε προϋπόθεση σε μια πολιτική δε μπορεί να περιορίζεται σε έναν έλεγχο. Άρα αν και η οντότητα PolicyCondition είναι ατομική κάθε πολιτική μπορεί να έχει πολλούς ελέγχους. Οπότε και η κλάση PolicyCondition περιέχει μια λίστα με αντικείμενα τύπου κλάσης PolicyConditionAtomic που περιέχει έναν συγκεκριμένο έλεγχο (statement). Για να καταλήξουμε, η μορφή της οντότητας PolicySet θα μπορούσε να έχει την μορφή που φαίνεται στην Εικόνα 4. Εικόνα 4: Μορφή του συνόλου πολιτικής Κ. Βίτσας 25

4.3 Μετάφραση πολιτικής Η διαδικασία μετάφρασης πολιτικής (Policy Translation) [21] είναι μία λειτουργία που στηρίζεται πάνω στη διύλιση μιας πολιτικής. Η μετάφραση πολιτικής μετατρέπει τον αρχικό στόχο σε μια σειρά από χαμηλού επιπέδου πολιτικές που διαμορφώνονται χρησιμοποιώντας μια γλώσσα πολιτικής (Policy language). Επιπλέον, η διαδικασία της μετάφρασης αναλαμβάνει την εκτέλεση αυτών των εντολών που παράγονται σε στοιχεία του δικτύου. Η διαδικασία της μετάφρασης Η διαδικασία της μετάφρασης κάνει χρήση της OWL / SWRL (βλ. Κεφάλαιο 2) για την αναπαράσταση (representation), τη μετάφραση και την συλλογή (reasoning) των πολιτικών. Επιπλέον, η διαδικασία της μετάφρασης υιοθετεί το συνεχές των πολιτικών (βλ. Κεφάλαιο 3). Ορίζονται μια σειρά από πέντε διαφορετικά επίπεδα/ απόψεις, καθένα από τα οποία αποτελεί μια διαφορετική αναπαράσταση του αρχικού επιχειρησιακού στόχου, όπως φαίνεται και στην Εικόνα 5. Policy Template Pool Network Policies Domain Policies Network Element Policies Operation Policies Business Goal Level SWRL Translation Network Level SWRL Translation Domain Level SWRL Translation Network Element Level SWRL Translation Operation Level Network Hierarchy / Topology Domains Network Elements Operations Εικόνα 5: Μετάφραση πολιτικής (policy translation) [21] Οι πολιτικές όλων των επιπέδων περιγράφονται από την γλώσσα OWL. Οι πολιτικές επιχειρησιακού στόχου (Business Goal Level) μοντελοποιούνται με βάση την οντολογία που αντικατοπτρίζει την επιχειρησιακή γλώσσα (πολύ κοντά στην φυσική γλώσσα). Οι οντολογίες των διαφόρων επιπέδων συνδέονται με OWL μέσω της διαλειτουργικότητας Κ. Βίτσας 26

των σχέσεων μεταξύ των κλάσεων, οι οποίες εκφράζουν την αλληλεξάρτηση μεταξύ των διαφορετικών επιπέδων ενώ με την χρήση SWRL κανόνων επιτυγχάνεται η μετάφραση των πολιτικών. Η μετάφραση πραγματοποιείται από την εφαρμογή αλγόριθμων μετάφρασης (translation algorithms) σε SWRL κανόνες που μετατρέπουν, παράγουν και παραδίδουν τα δεδομένα από το ένα επίπεδο στο μετέπειτα επίπεδο. Σημαντικό κομμάτι για την διαδικασία της μετάφρασης είναι η ιεραρχία του δικτύου και η τοπολογία (βλ. Εικόνα 5). Οι πληροφορίες αυτές (που περιγράφονται σε OWL) πρέπει να αντιστοιχηθούν (mapping) σε πραγματικές δικτυακές συσκευές, αντικείμενα και δραστηριότητες και στη συνέχεια να εφαρμοστούν οι πολιτικές χαμηλού επιπέδου που έχουν παραχθεί για αυτά. Επιπλέον, η διαδικασία της μετάφρασης πολιτικών γίνεται μεταξύ δυο διαδοχικών επιπέδων από το συνεχές των πολιτικών (policy continuum). Ένα παράδειγμα χαρτογράφησης είναι η διαχείριση ενός δικτύου που μπορεί λογικά να περιλαμβάνει μια σειρά ετερογενών τομέων ( LTE, Wi-Fi κλπ ), καθένα από τα οποία αποτελείται από έναν αριθμό δικτυακών στοιχείων (access points, routers, links κλπ) που και αυτά επίσης αποτελούνται από υποστηριζόμενες λειτουργίες σχετικά με την διαχείριση των αντικειμένων. Η διαδικασία της μετάφρασης θα επεξεργαστεί τον αρχικό στόχο και θα πράξει μια σειρά από ομάδες πολιτικών που αντικατοπτρίζουν την ιεραρχία των ετερογενών τομέων (π.χ. ομάδες πολιτικών για Wi-Fi, LTE κλπ) και τη παραγωγή υποομάδων πολιτικών για τα δικτυακά στοιχεία (π.χ. για τα access points, routers κλπ). Αυτή η ιεραρχία αφορά πληροφορίες που μπορεί να προέρχονται από κάποια συγκεκριμένα συστήματα (network inventory system) ή που μπορούν να προκύψουν από κάποιο αριθμό διαθέσιμων εργαλείων που παράγουν αυτόματα δεδομένα τοπολογίας (topology data) με τη χρήση τεχνικών ανακαλύψεων. Πέρα από την ιεραρχία, η διαδικασία της μετάφρασης πρέπει να βασίζεται πάνω σε ένα πρότυπο για την καλύτερη οργάνωση και επεξεργασία των στόχων. Για κάθε πολιτική σε επίπεδο δικτύου αναπτύσσεται και μια ομάδα πρότυπων πολιτικών (policy template pool), όπως φαίνεται στην Εικόνα 5. Η επιλογή της κατάλληλης πολιτικής προτύπων στηρίζεται σε ένα σύνολο από δείκτες που είναι γνωστοί σαν Βασικοί Δείκτες Απόδοσης (Key Performance Indicators, KPIs) και εμπλέκονται στην αρχική κατάταξη του στόχου. Τα KPIs ή KSIs (Key Success Indicators) εκφράζουν τους κρίσιμους παράγοντες επιτυχίας ενός οργανισμού αναλύοντας την αποστολή του και καθορίζοντας τους στόχους του. Για να γίνει πιο κατανοητή η διαδικασία της μετάφρασης θα αναλύσουμε ένα σύνολο από σενάρια που στηρίζονται σε SWRL κανόνες. Όπως έχει αναφερθεί [1] οι οντότητες είναι ο πυρήνας μιας οντολογίας καθώς εκφράζουν τα βασικά στοιχεία της ενώ μέσα από τις ιδιότητες απεικονίζεται το προφίλ των βασικών στοιχείων της οντολογίας. Σε κάποιες ιδιότητες δίνονται τιμές δυναμικά από το προηγούμενο επίπεδο με σκοπό να χρησιμοποιηθούν για την λήψη αποφάσεων. Αυτό γίνεται με τη χρήση SWRL κανόνων με σκοπό την επικοινωνία μεταξύ των διαφόρων επιπέδων. Κ. Βίτσας 27

Σενάριο 1 Ο : Bussiness _ Gold?buser Policy?p hasbussinessuser?p,?buser hasnetworkuser?p,?nuser Network _ Gold?nuser hasuc?nuser, 1 Εξίσωση 8: SWRL Κανόνας για την διαδικασία της μετάφρασης από το επίπεδο Business στο επίπεδο Network Ο συγκεκριμένος κανόνας αφορά το translation που προκύπτει από το αρχικό επίπεδο (Business goal level) στο αμέσως επόμενο (network level) για ένα συγκεκριμένο «είδος» χρήστη. Αποτελείται από τις οντότητες Business_Gold (υπο-οντότητα του Business Level), την οντότητα Policy και την οντότητα Network_Gold (υπο-οντότητα του network Level). Οι δύο τελευταίες οντότητες σχετίζονται με την κατηγορία του χρήστη (Gold, Silver, Bronze κ.α.) ανάλογα με τις υπηρεσίες που του παρέχονται. Επίσης στο κανόνα παρατηρούνται και οι ιδιότητες (properties) hasbussinessuser, hasnetworkuser, hasuc που είναι σημαντικές για την διαδικασία της μετάφρασης με χρήση SWRL κανόνων. Το αριστερό μέρος πριν το βελάκι (βλ. Κεφάλαιο 2) αποτελεί την «συνθήκη» ενώ το δεξί μέρος αποτελεί το «αποτέλεσμα». Ο παραπάνω κανόνας, στα πλαίσια της μετάφρασης, μπορεί να εκφραστεί σαν: «Αν ο buser (Gold user από το επίπεδο business) έχει ένα σύνολο πολιτικών p και αν ο nuser (χρήστης σε επίπεδο network) έχει παρόμοιο σύνολο πολιτικών ΤΟΤΕ ο nuser είναι Gold χρήστης σε επίπεδο network και έχει UC=1». Παρόμοια έχουμε τον κανόνα: Bussiness _Silver?buser Policy?p hasbussinessuser?p,?buser hasnetworkuser?p,?nuser Network _ Silver? nuser hasuc?nuser, 2 Εξίσωση 9: SWRL Κανόνας για την διαδικασία της μετάφρασης από το αρχικό επίπεδο (κατηγορία χρήστη Silver) για τη κατηγορία χρήστη με δικαιώματα Silver και : Bussiness _ Bronze? buser Policy? p hasbussinessuser? p,? buser hasnetworkuser? p,? nuser Network _ Bronze? nuser hasuc? nuser, 3 Εξίσωση 10: SWRL Κανόνας για τη διαδικασία της μετάφρασης από το αρχικό επίπεδο (κατηγορία χρήστη Bronze) για κατηγορία χρήστη με δικαιώματα Bronze. Κ. Βίτσας 28

Η διαδικασία της μετάφρασης, που όπως είπαμε εφαρμόζεται από επίπεδο σε επίπεδο, συνεχίζεται σε όλα τα επίπεδα. Έτσι, αν στο σενάριο μας με το χρήστη που έχει δικαιώματα «Gold» συνεχίσουμε τη μετάφραση από το επίπεδο Network στο επίπεδο domain ο κανόνας θα ήταν: Domain _ Gold?duser hasuc?duser,? value Network _ Gold?nuser Policy?p hasdomainuser?p,?duser hasnetworkuser?p,?nuser hasuc? nuser,? value Εξίσωση 11: SWRL Κανόνας για τη διαδικασία της μετάφρασης από το επίπεδο Network στο επίπεδο Domain Αυτός ο κανόνας εκφράζει την ακόλουθη πρόταση: «ΑΝ ο?nuser (που έχει δικαιώματα Gold σε επίπεδο network) έχει ένα σύνολο από πολιτικές?p και UC =?value, και ο χρήστης?duser (χρήστης σε επίπεδο domain) έχει παρόμοια πολιτική?p ΤΟΤΕ ο?duser έχει δικαιώματα Gold και σε επίπεδο domain με UC=?value». Αυτή η διαδικασία πραγματοποιείται μέχρι το τελευταίο στάδιο όπου εφαρμόζονται κανόνες και μεταφέρονται τιμές (όπως το?value) για την επίτευξη του στόχου που έχουν καθοριστεί από το αρχικό επίπεδο. Σενάριο 2 Ο : Το προηγούμενο σενάριο αφορούσε οντότητες που στηρίζονταν πάνω στους χρήστες και τις παροχές τους. Πέρα από τους χρήστες, η διαδικασία της μετάφρασης μπορεί να αφορά και διαφόρους άλλους στόχους όπως τις υπηρεσίες μιας εταιρίας. Όπως και πριν έτσι και τώρα η διαδικασία θα γίνεται από επίπεδο σε επίπεδο. Οι υπηρεσίες που μπορούν να παρέχονται από μια επιχείρηση μπορεί να είναι η παροχή internet στους πελάτες της, η μεταφορά δεδομένων εφαρμογών βίντεο και ήχου (streaming), η σύνδεση της τηλεόρασης με το internet (IP-TV) κ.α. Ο παρακάτω κανόνας αφορά την υπηρεσία παροχής internet στο στάδιο της μετάφρασης από το business επίπεδο στο network επίπεδο. Bussiness _ Internet? bser Policy? p hasbussinessservice? p,? bser hasnetworkservice? p,? nser Network _ Internet? nser hastos? nser, 6 Εξίσωση 12: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία Internet Και εκφράζει την πρόταση: Κ. Βίτσας 29

«ΑΝ η υπηρεσία?buser (υπηρεσία internet) έχει ένα σύνολο από κανόνες?p και η υπηρεσία σε επίπεδο network?nuser έχει και αυτή?p κανόνες TOTE η υπηρεσία?nuser είναι υπηρεσία internet σε επίπεδο network και έχει ToS=6» Η μεταβλητή ToS (type of service), και γενικά διάφορες μεταβλητές σε διάφορα επίπεδα (στο προηγούμενο σενάριο είδα την UC), είναι μια μεταβλητή που χρησιμοποιείται από το επίπεδο network για σημαντικούς ελέγχους που την ξεχωρίζουν από τις υπόλοιπες υπηρεσίες και την καθορίζουν σαν την υπηρεσία Internet. Ανάλογα φαίνονται κανόνες σχετικά με άλλες υπηρεσίες όπως υπηρεσίες streaming: Bussiness _ Streaming? bser Policy? p hasbussinessservice? p,? bser hasnetworkservice? p,? nser Network _ Streaming? nser hastos? nser, 3 Εξίσωση 13: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία Streaming Και υπηρεσίες IP-TV: Bussiness _ IP TV? bser Policy? p hasbussinessservice? p,? bser hasnetworkservice? p,? nser Network _ IP TV? nser hastos? nser, 5 Εξίσωση 14: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία IP-TV Όπου παρατηρείται η «μετάφραση» της οντότητας Business_Streaming και Business_IP-TV σε τιμές ToS 3 και 5 αντίστοιχα. Σχετικά με την υπηρεσία internet, μετά από την μετάφραση από το αρχικό επίπεδο(business level) στο επίπεδο network, θα πρέπει να γίνει η μετάφραση από το επίπεδο network στο επίπεδο domain. Αυτό γίνεται με τον κανόνα: Network _ Internet?nser Policy?p hasdomainservice?p,?dser hasnetworkservice?p,?nser hastos?nser,? value Domain _ Internet?dser hastos?dser,? value Εξίσωση 15: SWRL Κανόνας για τη διαδικασία της μετάφρασης στην υπηρεσία Internet για το επίπεδο Network Που εκφράζει την φράση: «ΑΝ η υπηρεσία?nser (σε επίπεδο network και υπηρεσία internet) έχει κανόνες?p και τιμή?value και η υπηρεσία σε επίπεδο domain?dser έχει και αυτή?p κανόνες ΤΟΤΕ η υπηρεσία dser είναι υπηρεσία Internet σε επίπεδο domain και έχει ToS =?value» Κ. Βίτσας 30

Η μετάφραση συνεχίζεται μέχρι το επίπεδο Operation που αποτελεί το χαμηλότερο επίπεδο. Εκεί πραγματεύεται, εν τέλει, και η υλοποίηση του κανόνα που έχει τεθεί στο υψηλότερο επίπεδο. Το Σενάριο 1 και το Σενάριο 2 δεν αποτελούν ξεχωριστές περιπτώσεις χρήσης σε μια πολιτική κανόνα. Είναι σενάρια που αλληλεπιδρούν μεταξύ τους, όπως αλληλεπιδρούν και πολλές άλλες οντότητες μεταξύ τους για την επίτευξη ενός αποτελέσματος όπως αυτή έχει οριστεί στον αρχικό (υψηλού επιπέδου) στόχο. Προφανώς, η διάκριση που έγινε στο σενάριο 1 ( σε κατηγορίες χρήστη : Gold, Silver και Bronze) έχουν σχέση με την παροχή ποιότητας σε μερικές από τις υπηρεσίες που εμφανίστηκαν στο σενάριο 2 (υπηρεσίες Internet, Streaming και IP-TV). Δηλαδή, οι υπηρεσίες που προσφέρονται στους χρήστες μιας υπηρεσίας θα πρέπει να διαφέρουν ποιοτικά από χρηστή σε χρήστη. Για παράδειγμα, σε ένα χρήστη που ανήκει στην κατηγορία Gold θα πρέπει να παρέχονται καλύτερες υπηρεσίες Internet, Streaming και IP-TV σε σχέση με τις άλλες δύο κατηγορίες χρηστών που υπάρχουν. Πέρα από την μετάφραση που προκύπτει για κάθε υπηρεσία και για κάθε χρήστη και γενικά για κάθε οντότητα του συστήματος, συμβαίνει πολύ συχνά να οδηγούμαστε σε καταστάσεις που μερικοί από τους στόχους έρχονται σε αντίθεση (conflict). Αυτό σημαίνει ότι η επίτευξη ενός στόχου μπορεί να αποτελέσει αποτυχία ή μερική αποτυχία ενός άλλου. Ακολούθως, αναλύονται εκτενώς περιπτώσεις συγκρούσεων ανάμεσα σε στόχους καθώς και τεχνικές επίλυσης τέτοιων συγκρούσεων. Κ. Βίτσας 31

5. ΣΥΓΚΡΟΥΣΗ ΠΟΛΙΤΙΚΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ 5.1 Ορισμός Η σύγκρουση πολιτικών (συνήθως εμφανίζεται και ως αντίθεση πολιτικών ή διαφωνία πολιτικών) είναι ένα από τα εκκρεμή θέματα που σχετίζονται με την διαχείριση πολιτικών (PBMS). Η σύγκρουση πολιτικών έχει διαφορετικές εκδηλώσεις για διαφορετικές εφαρμογές που χρησιμοποιούν τις πολιτικές. Για αυτό, μια σύγκρουση πολιτικής σε μια εφαρμογή μπορεί να μην σημαίνει αναγκαστικά μια σύγκρουση και σε μια άλλη εφαρμογή. Ίσως γίνει πιο κατανοητή η έννοια της σύγκρουσης πολιτικών αν για αυτή δοθεί ένας ορισμός. Ο Strassner [23] περιγράφει μια σύγκρουση πολιτικής σαν: «Σύγκρουση πολιτικών (Policy conflict) είναι όταν δύο ή περισσότερες πολιτικές, που εφαρμόζονται σε ένα σύνολο από διαχειριζόμενες οντότητες, ενεργοποιούνται ταυτόχρονα και ενώ οι προϋποθέσεις πληρούνται (conditions) οι πράξεις τους (actions) είναι σε αντίθεση.» Ο παραπάνω ορισμός περιγράφει ότι κοινοί πόροι σε ένα σύστημα μπορούν να αξιοποιούνται από πολλές πολιτικές (δυο ή περισσότερες) που καθορίζουν την συμπεριφορά του. Οι πολιτικές αυτές μπορούν να ενεργοποιούνται ή/και να πληρούνται ταυτόχρονα (αληθής συνθήκες). Το πρόβλημα προκύπτει όταν οι ενέργειες (actions) είναι αντίθετες. Διαφορετικές προσεγγίσεις για κάθε πολιτική διαχείρισης καθορίζει διαφορετικό είδος σύγκρουσης. Ωστόσο, σε γενικές γραμμές όλες οι συγκρούσεις σχετίζονται με την εκτέλεση των πράξεων (actions) που τελικά μπορούν να προκαλέσουν ανωμαλία στο διαχειριζόμενο σύστημα καθώς αυτό θα λειτουργεί με λανθασμένο τρόπο. 5.2 Προσεγγίσεις για τη σύγκρουση πολιτικών Οι Moffett και Sloman [22] ήταν από τους πρώτους που επισήμαναν τα ζητήματα που συνδέονται με την σύγκρουση των πολιτικών. Όρισαν τη σύγκρουση πολιτικών σαν το συμβάν που προκύπτει σε δυο ή περισσότερες πολιτικές όταν αυτές δεν μπορούν να πληρούνται ταυτόχρονα. Περιέγραψαν ότι σύγκρουση πολιτικών μπορεί να προκύψει ανάμεσα σε επιμέρους πολιτικές αν υπάρχει «κοινός τόπος» στους στόχους (targets) και στις ενέργειες (actions) της πολιτικής και επιπλέον τηρούνται άλλες ειδικές προϋποθέσεις. Οι τύπου των συγκρούσεων που όρισαν φαίνονται στην Εικόνα 6. Κ. Βίτσας 32

Εικόνα 6: Η διάκριση πολιτικών σύμφωνα με τους Moffett και Sloman [22] Οι συγκρούσεις μπορούν να διακρίνονται με την «τυπικότητα» (modality) της πολιτικής και τους στόχους της (Conflict of Goals). Συγκρούσεις τυπικότητας έχουμε όταν μια ενέργεια (action) είναι ταυτόχρονα και επιτρεπόμενη και μη επιτρεπόμενη ή ταυτόχρονα αναγκαία και μη αναγκαία. Υποστήριξαν ότι οι συγκρούσεις από την άποψη διαχείρισης πολιτικών μπορούν να διακριθούν σε θετικές ή αρνητικές συγκρούσεις (Positive- Negative conflict) ή σε επιτακτικές και εξουσιοδοτημένες συγκρούσεις (imperative and authority conflict). Οι συγκρούσεις στόχων συνδέονται με τις επιτρεπόμενες ενέργειες σχετικά με το σύστημα όταν αυτές εκτελούνται ταυτόχρονα. Μερικές από αυτές είναι οι συγκρούσεις προτεραιοτήτων (Conflict of priorities) που συμβαίνουν όταν διαθέσιμοι πόροι δεν επαρκούν για να ικανοποιήσουν τις απαιτήσεις των πολιτικών. Επίσης, υπάρχουν οι συγκρούσεις καθηκόντων (Conflict of duties) που περιγράφουν την αποτυχία του ελέγχου για τον αρχικό διαχωρισμό των καθηκόντων καθώς απαιτούν τουλάχιστον δύο διαφορετικούς ανθρώπους για να συμμετέχουν στην εκτέλεση σημαντικών αλλαγών. Θεώρησαν επίσης ότι μπορεί να υπάρξει και σύγκρουση συμφερόντων (Conflict of interests). Στη σύγκρουση αυτή περιγράφεται μια κατάσταση όπου ένα άτομο έχει καθήκοντα για δύο επιχειρήσεις και δεν μπορεί να εξάγει αποτελέσματα αυτόματα. Η παραπάνω προσέγγιση της σύγκρουσης πολιτικών έχει γίνει αρκετά γνωστή. Ένας παρόμοιος ορισμός της σύγκρουσης πολιτικών έχει δημιουργηθεί από τον Dunlop [23] ο οποίος κατατάσσει την σύγκρουση πολιτικών σε δυναμικές και στατικές. Δυναμική σύγκρουση πολιτικών είναι η εμφάνιση σύγκρουσης κατά το χρόνο εκτέλεσης ενώ η στατική σύγκρουση πολιτικών μπορεί να ανιχνευθεί κατά τη μεταγλώττιση. Αξίζει να σημειωθεί ότι η αυτοματοποίηση των δικτύων παρουσιάζει στο μεγαλύτερο ποσοστό της, όπως είναι λογικό, μια δυναμική σύγκρουση χωρίς βέβαια να παραλείπονται οι στατικές συγκρούσεις. Ο Chomicki (2000, 2003) [23], αναφέρεται στη πολιτική από μια άλλη οπτική γωνία: οι πολιτικές μπορούν να θεωρηθούν σαν μια τριπλέτα από Συμβάν Συνθήκη Ενέργεια (Event Condition-Action). Τα θέματα και οι στόχοι μιας πολιτικής καθορίζονται άμεσα στο σκέλος της ενέργειας και περιγράφει ότι η σύγκρουση πολιτικής είναι επικάλυψη Κ. Βίτσας 33

των συμβάντων (events), των συνθηκών (conditions) και των ενεργειών (actions) όπου οι ενέργειες πρέπει να έρχονται σε αντίθεση για να θεωρηθεί ότι υπάρχει σύγκρουση. Σημειώνεται ότι αυτός ο ορισμός είναι παρόμοιος με τον ορισμό του Strassner, που αναφέρθηκε προηγουμένως. Πολιτικές που ορίζονται ειδικά για τη διαχείριση της κινητικότητας του δικτύου (network traffic) αποτελούν υποσύνολο των πολιτικών και ορίζονται συνήθως σε υψηλότερο επίπεδο από το IP, όπως οι πολιτικές προστασίας (firewall filtering). Οι Al-Shaer και Hamed [23] εξετάζουν την σύγκρουση πολιτικών από την παραπάνω σκοπιά και ορίζουν την σύγκρουση για τις ανάγκες τους σαν: «Σύγκρουση πολιτικών, από την οπτική γωνία των πολιτικών του δικτυακού φιλτραρίσματος (network filtering policies), μπορούμε να ορίσουμε την ειδική κατηγορία πολιτικών που προκαλούν ανώμαλη συμπεριφορά. Ανωμαλίες ή συγκρούσεις σε πολιτικές φιλτραρίσματος εμφανίζονται με την μορφή πλεονασμού, γενίκευσης, αντιφατικότητας και όταν οι πολιτικές είναι σε αντιστοιχία. Πλεονασμός προκύπτει όταν μια πολιτική έχει αποκλειστεί εξαιτίας της διάταξης των πολιτικών που υπάρχουν ήδη. Αυτό είναι ένα πρόβλημα όταν ο κανόνας δεν είναι απαραίτητος και δε μπορεί να αφαιρεθεί. Οι πολιτικές που είναι σε αντιστοιχία έχουν το ίδιο πρόβλημα με αυτές που είναι σε πλεονασμό ωστόσο δεν μπορούν να αφαιρεθούν, εκτός και αν γίνει εκ νέου αναδιάταξη των πολιτικών.» Σύμφωνα με τον Steven Davy [23], η πολιτική για τον εντοπισμού και την επίλυση των συγκρούσεων είναι ένα απαραίτητο συστατικό της διαχείρισης δικτύου που βασίζεται σε πολιτικές (PBMS). Ένα PBMS πρέπει να δημιουργεί μια δυνατότητα για να επιβεβαιώνεται ότι πρόσφατα δημιουργήθηκαν ή τροποποιήθηκαν πολιτικές που προσαρμόζονται με την συμπεριφορά του συστήματος. Αυτό πρέπει να γίνεται πριν οι πολιτικές αυτές μπορέσουν και εφαρμοστούν (deployed). Όπως έχουμε ήδη αναφερθεί, μια σύγκρουση είναι μια πιθανή ανεπιθύμητη συμπεριφορά μέσα σε ένα PBMS. Αυτή μπορεί να εμφανιστεί με πολλούς τρόπους. Οι συγκρούσεις [25] μπορούν να διακριθούν σαν ανεξάρτητες ανά τομέα ή συγκεκριμένες ανά εφαρμογή. Οι ανεξάρτητες ανά τομέα αναλύσεις για τη σύγκρουση πολιτικών μπορούν να διενεργούνται από διαδικασίες που υποδεικνύουν που προκύπτει σύγκρουση ή μπορεί να προκύψει σύγκρουση. Αν μπορέσουμε και εντοπίσουμε τις συνθήκες υπό τις οποίες μια σύγκρουση μπορεί να συμβεί τότε μπορούμε να την επιλύσουμε είτε τροποποιώντας είτε αφαιρώντας τις συγκεκριμένες αντικρουόμενες πολιτικές. Το ζήτημα που εξετάζει η ανάλυση σύγκρουσης πολιτικών είναι κατά πόσο υπάρχει η κατάλληλη γνώση για τον εντοπισμό όλων των όρων υπό τους οποίους μια σύγκρουση μπορεί να συμβεί. Για παράδειγμα, αν οι συγκρούσεις είναι γνωστές κατά το σχεδιασμό, τότε μπορεί κανείς να αναπτύξει στρατηγικές για την αντιμετώπιση τους. Ωστόσο, μερικές φορές μπορούν να εμφανιστούν συγκρούσεις και κατά την εκτέλεση οι οποίες δεν είχαν προβλεφθεί κατά το σχεδιασμό. Οι συγκεκριμένες ανά εφαρμογή συγκρούσεις απαιτούν περισσότερες πληροφορίες σχετικά με το σύστημα και τις πολιτικές που εμφανίζονται. Αυτό μπορεί να γίνει ενισχύοντας το PBMS με επιπλέον πληροφορίες, εκφραζόμενες σαν κανόνες σχετικά με τις διαχειριζόμενες οντότητες. Κ. Βίτσας 34

Η χρήση πολιτικών για να καθορίσουν τα δικαιώματα πρόσβασης σε οντότητες του συστήματος που το ζητούν δεν είναι και τόσο εύκολη υπόθεση, αντιθέτως είναι πολύπλοκη. Ωστόσο, ο ορισμός της σύγκρουσης είναι σχετικά απλός. Εάν αντικρουόμενα δικαιώματα πρόσβασης παρέχονται σε μια συγκεκριμένη οντότητα τότε έχει προκύψει σύγκρουση. Ουσιαστικά οι προσεγγίσεις των παραπάνω ερευνητών διαφέρουν. Και αυτό γιατί έχει σημασία το «που» εφαρμόζεται μια πολιτική. Μερικοί αναφέρονται σε μια πολιτική με τη τριπλέτα Συμβάν Συνθήκη Ενέργεια (Event Condition Action) ενώ άλλοι αναφέρονται με τη τριπλέτα Υποκείμενο Στόχος Ενέργεια (Subject Target Action). Για αυτό δεν υπάρχει ένας ενιαίος ορισμός της σύγκρουσης που θα ισχύει για όλες τις εφαρμογές. Όμως, οι διαφορετικές προσεγγίσεις για κάθε σύγκρουση πολιτικών για όλες τις εφαρμογές μπορούν να οργανωθούν σε τρείς τομείς [23] : 1) Σύγκρουση πολιτικών βασισμένη στη γλώσσα (Language based policy conflict analysis), η οποία εστιάζει στην εξέταση της δομή της γλώσσας (που είναι εκφρασμένη η πολιτική) για να προσδιορίσει την περίπτωση της σύγκρουσης που υπάρχει. Η μέθοδος αυτή χρησιμοποιείται κατά κύριο λόγο για την ανάλυση των πολιτικών φιλτραρίσματος. 2) Σύγκρουση πολιτικών βασισμένη στο μοντέλο πληροφοριών (Information model based policy conflict), η οποία αναφέρεται σε μοντέλα πληροφοριών του συστήματος. Περιγράφουν τα μοντέλα πληροφοριών που χρησιμοποιούνται και τους στόχους στο διαχειριζόμενο σύστημα στο οποίο μπορεί να επέλθει σύγκρουση. 3) Σύγκρουση πολιτικών βασισμένη στις οντολογίες (Ontology based policy conflict analysis). Είναι σχετικά πρόσφατη προσέγγιση. Τα καλώς κατανοητά μοντέλα πληροφοριών μπορούν να αναπαρασταθούν με τη χρήση οντολογιών και οι συλλογικές τους δυνατότητες να ενισχύσουν την ανάλυση της πολιτικής. 5.3 Ανάλυση της σύγκρουσης πολιτικών Σε ένα περιβάλλον όπου μια σειρά από πολιτικές χρειάζεται να συνυπάρχουν υπάρχει σχεδόν πάντα η πιθανότητα αρκετές από αυτές τις πολιτικές να βρίσκονται σε σύγκρουση είτε λόγω μιας λάθος προδιαγραφής είτε εξαιτίας των περιορισμών που μπορεί να υπάρχουν στο σύστημα [22] [24] [25] [28]. Η διαδικασία της ανάλυσης (Policy conflict analysis) περιλαμβάνει την ανίχνευση των συγκρούσεων (conflict detection), τόσο των πραγματικών όσο και των πιθανών, για τις πολιτικές που εφαρμόζονται σε ένα σύστημα. Εκτός αυτού, η διαδικασία της ανάλυσης εστιάζει και στην επίλυση των συγκρούσεων (conflict resolution) με σκοπό την ομαλή λειτουργιά του συστήματος με την έννοια της συνύπαρξης πολιτικών που δε θα βρίσκονται σε αντίθεση ( η ύπαρξη μιας πολιτικής να μην σημαίνει αποτυχία ή μερική αποτυχία άλλης). Και η ανίχνευση και η επίλυση των συγκρούσεων χρησιμοποιούν στο σύνολο των διαδικασιών τους πολύπλοκους αλγόριθμους για την επιτυχία των στόχων μιας επιχείρησης όπως αυτοί απεικονίζονται στο συνεχές των πολιτικών. Επιπρόσθετα, η ανάλυση συγκρούσεων Κ. Βίτσας 35

περιλαμβάνει και την διαδικασία συγγραφής (policy authoring process). Η διαδικασία συγγραφής αφορά την σύνταξη μιας πολιτικής και το τρόπο που πρέπει να γίνει αυτή για την καλύτερη λειτουργία του συστήματος. Άρα όπως καταλαβαίνουμε η διαδικασία της ανάλυσης εστιάζει σε τρία πράγματα, στην σύνταξη μιας πολιτικής για να λειτουργεί και να συνυπάρχει με τις ήδη υπάρχουσες, στον εντοπισμό των συγκρούσεων που μπορεί να υπάρξουν στο σύστημα και τέλος την επίλυση τους για την ομαλή λειτουργία του. 5.3.1 Η διαδικασία Συγγραφής Το συνεχές των πολιτικών έτσι όπως έχει περιγραφεί δεν διευκρινίζει πως πρέπει να γίνει η συγγραφή μιας πολιτικής (policy authoring) [30] και η ανάλυση των συγκρούσεων ώστε να μπορέσει να λειτουργήσει ορθά ένα σύστημα. Ο ρόλος της διαδικασίας σύνταξης της πολιτικής είναι να καθορίσει τα βήματα όπου ένας συντάκτης πολιτικής (policy author) πρέπει να ακολουθήσει έτσι ώστε η υποψήφια πολιτική να ενσωματωθεί στο συνεχές των πολιτικών διασφαλίζοντας ότι αυτό παραμένει σε ισχύ. Υπάρχουν μια σειρά από λόγους, για τους οποίους το συνεχές των πολιτικών μπορεί να σταματήσει να είναι σε ισχύ εξαιτίας της συγγραφής των πολιτικών, οι οποίοι είναι: Η υποψήφια πολιτική δεν μπορεί πλέον να ανταποκρίνεται στους στόχους των πολιτικών που έχουν οριστεί σε υψηλότερο επίπεδο στο συνεχές των πολιτικών. Η υποψήφια πολιτική μπορεί να έρχεται σε αντίθεση με τις πολιτικές που έχουν οριστεί για τις εφαρμογές των ήδη ανεπτυγμένων (deployed) πολιτικών στο ίδιο επίπεδο, π.χ. στο επίπεδο δικτύου. Η υποψήφια πολιτική μπορεί να οδηγήσει στη δημιουργία / τροποποίηση των πολιτικών στα χαμηλότερα επίπεδα που μπορεί να σταματήσει την ισχύ του συνεχές των πολιτικών εξαιτίας των παραπάνω δυο περιπτώσεων. 5.3.2 Εντοπισμός συγκρούσεων Ο θεμελιώδης στόχος του εντοπισμού των συγκρούσεων (conflict detection) [27] είναι να αναλύσει τις προδιαγραφές μιας πολιτικής προκειμένου να παρέχεται μια εικόνα των τύπων των συγκρούσεων που συμβαίνουν μέσα σε ένα σύστημα. Οι στόχοι της ανίχνευσης σύγκρουσης είναι οι εξής: Να καθοριστεί η πραγματική σύγκρουση που έχει συμβεί και που θα μπορούσε να επιλυθεί στατικά κατά το χρόνο της μεταγλώττισης. Να προβλεφθεί ότι μια πιθανή σύγκρουση μπορεί να προκύψει στο μέλλον (και πιο συγκεκριμένα, τις ακριβές περιστάσεις που θα οδηγήσουν σε σύγκρουση). Την επικοινωνία της πραγματικής ή της πιθανής σύγκρουσης με την διεργασία επίλυσης. Κ. Βίτσας 36

Επίσης ένας πολύ σημαντικός στόχος για την ανίχνευση μιας σύγκρουσης είναι να εξεταστούν διάφορες πιθανές πηγές των συγκρούσεων που μπορούν να εφαρμοστούν σε ένα σύστημα. Γνωρίζοντας ότι υπάρχει πιθανή σύγκρουση θα επιτραπεί η επίλυση της πριν δημιουργήσει ανωμαλίες στο σύστημα. Υπάρχουν αρκετοί υποστόχοι για την ανίχνευση των συγκρούσεων και αυτοί είναι: Η ομαδοποίηση των συγκρούσεων ανάλογα τον τύπο της, δηλαδή αν πρόκειται για πραγματική ή για πιθανή σύγκρουση. Αυτό είναι χρήσιμο για να αποφασιστεί πότε (κατά το χρόνο μεταγλώττισης ή κατά το χρόνο εκτέλεσης) μπορεί να επιλυθεί μια σύγκρουση. Η ανάλυση για την πιθανότητα εμφάνισης σύγκρουσης. Για παράδειγμα, συνήθως μια πιθανή σύγκρουση έχει χαμηλότερη πιθανότητα εμφάνισης σε σύγκριση με μια πραγματική ενδεχόμενη σύγκρουση. Να εξεταστεί η καλύτερη τεχνική για τον εντοπισμό σύγκρουσης και η οποία να βασίζεται στις πηγές και στον τύπο της σύγκρουσης. Η πρόβλεψη για τον αριθμό των εμφανίσεων των συγκρούσεων. Αν γίνει αυτό μπορεί να επιτευχθεί τεχνική για τον εντοπισμό και ύστερα για την επίλυση μιας σύγκρουσης. Η πρόβλεψη για την πιθανότητα που έχουν οι πιθανές συγκρούσεις να γίνουν πραγματικές συγκρούσεις. Αυτό είναι χρήσιμο για να αποφασιστεί πότε θα επιλυθεί μια σύγκρουση. Για παράδειγμα, αν είναι δυνατό να προβλέψουμε ότι η πιθανή σύγκρουση δεν θα συμβεί ποτέ τότε η επίλυση αυτής της σύγκρουσης μπορεί και να μην είναι απαραίτητη. Όπως αναφέρθηκε στην 5.2 Προσεγγίσεις για τη σύγκρουση πολιτικών ο Dunlop ήταν από τους πρώτους που διέκριναν την σύγκρουση σε δυναμική και στατική ανάλογα με το πότε γίνεται η ανάλυση μιας σύγκρουσης. Η διάκριση αυτή αφορά και την ανίχνευση μιας σύγκρουσης. Πιο συγκεκριμένα, η ανίχνευση μιας σύγκρουσης μπορεί να είτε στατική (Static conflict detection) είτε δυναμική (Dynamic conflict detection). Η στατική ανίχνευση συγκρούσεων έχει σαν στόχο να ανιχνεύσει όλους τους τύπους των πιθανών συγκρούσεων (πραγματικών ή πιθανών) οι οποίοι μπορούν να υπάρξουν και που συνήθως παρουσιάζονται κατά τον χρόνο της μεταγλώττισης. Με την στατική ανίχνευση θα πρέπει να αποφασιστούν οι τύποι των συγκρούσεων που πρέπει να ανιχνευθούν, δηλαδή θα πρέπει να ανιχνεύσουμε μόνο συγκρούσεις που είναι σαφώς καθορισμένες από τις προδιαγραφές της πολιτικής ή κάποιες πολιτικές που δεν βρίσκονται ακόμα σε σύγκρουση αλλά θα μπορούσαν να οδηγήσουν σε σύγκρουση αν μία ή περισσότερες πολιτικές δραστηριοποιηθούν στον ίδιο χώρο. Η δυναμική ανίχνευση προκύπτει κατά την παρακολούθηση των συγκρούσεων που γίνονται ή που μπορεί να γίνουν κατά τη διάρκεια της εκτέλεσης (run time). Ο εντοπισμός και η επίλυση τέτοιων συγκρούσεων είναι μια επίπονη και χρονοβόρα εργασία. Για την ανίχνευση αυτών των συγκρούσεων θα πρέπει (όπως και στη στατική) να γνωρίζουμε τις προδιαγραφές μιας πολιτικής, τόσο της καινούριας όσο και των ήδη ανεπτυγμένων. Για την ανίχνευση των συγκρούσεων μπορεί να προκύψουν μια σειρά από αλγορίθμους που μπορεί να ομαδοποιούν, προβλέπουν και αναλύουν την πιθανότητα για τις συγκρούσεις που προκύπτουν κατά το χρόνο εκτέλεσης. Κ. Βίτσας 37

5.3.3 Επίλυση Συγκρούσεων Το επόμενο βήμα μετά από τον εντοπισμό των αντικρουόμενων πολιτικών είναι η επίλυση τους (conflict resolution). Ο θεμελιώδης στόχος της επίλυσης των συγκρούσεων [26] [31] είναι να καθορίσει ποια είναι η κατάλληλη μέθοδος επίλυσης της σύγκρουσης και πως αυτή θα επιλυθεί. Η αναγκαιότητα που έχουν δημιουργήσει τα σύγχρονα δίκτυα καθιστά απαραίτητη την αυτοματοποίηση αυτής της εργασίας με αποτελεσματικό, συνάμα, τρόπο. Έχουν δοθεί πολλές προσεγγίσεις για την επίλυση των συγκρούσεων όπως η επίλυση με την βοήθεια λογικού προγραμματισμού (logic programming) [29]. Ο εντοπισμός συγκρούσεων και η επίλυση σύγκρουσης είναι βασικά κομμάτια της ανάλυσης συγκρούσεων. Μόλις ολοκληρωθεί η διαδικασία του εντοπισμού και καθοριστούν οι προδιαγραφές όλων των πραγματικών και πιθανών συγκρούσεων που συμβαίνουν μέσα στο σύστημα τότε ξεκινάει η διαδικασία της επίλυσης. Οι στόχοι της επίλυσης συγκρούσεων είναι: Η επικοινωνία με την διαδικασία ανίχνευσης συγκρούσεων προκειμένου να αποκτηθούν οι προδιαγραφές των πραγματικών ή των πιθανών συγκρούσεων που παρουσιάζονται στο σύστημα. Η απόφαση για το πότε είναι κατάλληλη η επίλυση αυτών των συγκρούσεων. Η παρακολούθηση των πιθανών συγκρούσεων που μπορεί να προκύψουν και η επίλυση τους. Η απόφαση για το πως θα επιλυθούν οι πραγματικές ή πιθανές συγκρούσεις και ποιος είναι ο κατάλληλος τρόπος για να συμβεί αυτό. Η διαδικασία της επίλυσης συγκρούσεων [26] μπορεί να προσεγγιστεί αισιόδοξα, απαισιόδοξα, μέσα από ένα συνδυασμό και των δυο προσεγγίσεων ή για κάθε σύγκρουση η προσέγγιση μπορεί να γίνει ατομικά ανάλογα το ενδεχόμενο να συμβεί σύγκρουση και ανάλογα το κόστος της επίλυσης των συγκρούσεων. Η απαισιόδοξη προσέγγιση για την επίλυση των συγκρούσεων θεωρεί ότι όλες οι συγκρούσεις (και οι πραγματικές και οι πιθανές) θα οδηγήσουν σε σύγκρουση κάποια στιγμή και για αυτό πρέπει να επιλυθούν άμεσα κατά την μεταγλώττιση (compile-time). Δεδομένου ότι η απαισιόδοξη πλευρά είναι ουσιαστικά ένας παράγοντας προστασίας, περιλαμβάνει αρκετό αρχικό έλεγχο για να διασφαλιστεί ότι δε θα προκύψει καμία ανωμαλία. Μια σύγκρουση, όμως, εξαρτάται από τη συχνότητα και το είδος των συμβάντων που συμβαίνουν και στο χρόνο εκτέλεσης (run-time). Παρ όλα αυτά, είναι προφανές ότι η επίλυση αυτού του είδος συγκρούσεων (των υποθετικών συγκρούσεων που συμβαίνουν κατά την εκτέλεση) δε θα μπορούσε να προκύψει κατά τον χρόνο της μεταγλώττισης καθώς θα ήταν αρκετά σπάταλη δεδομένου ότι θα χρειαζόταν αρκετό χρόνο. Ενώ η απαισιόδοξη προσέγγιση συνεπάγεται μεγαλύτερο κόστος χρόνου κατά την μεταγλώττιση αυτό μπορεί να θεωρηθεί πλεονέκτημα της προσέγγισης αφού είναι προτιμότερο να επιλυθεί μια σύγκρουση κατά την μεταγλώττισή της πολιτικής παρά κατά την εκτέλεσή της. Όμως ο αριθμός των συγκρούσεων (πραγματικές και υποθετικές) που συμβαίνουν μπορεί να είναι αρκετά μεγάλος και η επίλυση όλων των Κ. Βίτσας 38

συγκρούσεων μπορεί να είναι μια αρκετά δαπανηρή εργασία επειδή μεγάλο μέρος της προσπάθειας που θα πρέπει να πραγματοποιηθεί για τον εντοπισμό θα αποδειχθεί περιττό. Οπότε είναι πιο πρακτικό να «παραμεριστεί» η ύπαρξη πιθανών συγκρούσεων και να διαχειρίζονται όταν υλοποιηθούν. Επίσης, η απαισιόδοξη προσέγγιση για την επίλυση συγκρούσεων δεν επιτρέπει την εξέλιξη και την δυναμικότητα στα συστήματα που εφαρμόζεται. Ωστόσο, η απαισιόδοξη προσέγγιση είναι χρήσιμη σε καταστάσεις όπου η σύγκρουση δε μπορεί να γίνει ανεκτή, όπως για παράδειγμα σε θέματα ασφαλείας ή σημαντικών ρυθμίσεων που μπορούν να προκύψουν. Η αισιόδοξη προσέγγιση επίλυσης συγκρούσεων δεν περιλαμβάνει κανένα προληπτικό μέτρο αλλά αντί για αυτό στηρίζεται στην ανίχνευση μη συμμορφωμένων πολιτικών και στην διόρθωσή τους. Ως αποτέλεσμα, η αισιόδοξη προσέγγιση επίλυσης συγκρούσεων απαιτεί συχνά μεγαλύτερη προσπάθεια και μεγαλύτερο κόστος στο χρόνο εκτέλεσης (run time) για την ανίχνευση όλων αυτών των πολιτικών που δεν είναι σε συμμόρφωση. Πρέπει να προκύπτει σύγκρουση κατά την εκτέλεση πριν ξεκινήσει η επίλυσή της. Το πλεονέκτημα της αισιόδοξης προσέγγισης επίλυσης συγκρούσεων είναι ότι δεν υπάρχει σύγκρουση αν αυτή δεν δικαιολογηθεί πλήρως. Ο συνδυασμός των δύο παραπάνω προσεγγίσεων θεωρεί ότι η πιθανότητα να συμβεί πραγματική σύγκρουση είναι αρκετά μεγάλη και για αυτό επιλύει αυτές τις συγκρούσεις κατά το χρόνο της μεταγλώττισης (compile time), μειώνοντας έτσι κάπως το κόστος για τον εντοπισμό, την παρακολούθηση και την επίλυση αυτών των συγκρούσεων από το χρόνο που προκύπτει κατά την εκτέλεση. Όπως αναφέρθηκε και προηγουμένως, η πιθανές συγκρούσεις δεν μπορούν να επιλυθούν κατά το χρόνο μεταγλώττισης αλλά παρακολουθούνται και επιλύονται στο χρόνο εκτέλεσης αν αυτό απαιτείται. Αυτή η προσέγγιση είναι κατάλληλη για τα περισσότερα συστήματα και αυτό οφείλεται στο γεγονός ότι ο αριθμός και των πραγματικών και των πιθανών συγκρούσεων μπορεί να είναι μεγάλος και έτσι να καλύψει τις περιπτώσεις και των δυο συγκρούσεων. Ωστόσο, οι αλγόριθμοι για μια τέτοια προσέγγιση είναι αρκετά πολύπλοκοι σχετικά με αυτούς που απαιτούνται για την απαισιόδοξη προσέγγιση εξαιτίας της απαίτησης για παρακολούθηση των πιθανών συγκρούσεων κατά το χρόνο εκτέλεσης. Σχετικά με τις προηγούμενες τρεις προσεγγίσεις μπορούμε να συμπεράνουμε ότι το υπολογιστικό κόστος κατά τη μεταγλώττιση είναι ουσιαστικά μεγαλύτερο στην απαισιόδοξη προσέγγιση σε σχέση με τις άλλες δύο προσεγγίσεις (αισιόδοξη και ο συνδυασμός και των δύο προσεγγίσεων). Η προσέγγιση που συνδυάζει τις προσεγγίσεις (αισιόδοξη και απαισιόδοξη) διακρίνει τις πραγματικές με τις πιθανές σύγκρουσης και επιλύει μόνο την πραγματική σύγκρουση πριν από τον χρόνο εκτέλεσης σαν αποτέλεσμα να μειώνεται το συνολικό υπολογιστικό κόστος. Σε αντίθεση η αισιόδοξη προσέγγιση δεν επιλύει καμία σύγκρουση μέχρις ότου η σύγκρουση παρουσιαστεί κατά το χρόνο εκτέλεσης. Αυτό έχει σαν αποτέλεσμα η αισιόδοξη προσέγγιση να έχει πολύ χαμηλό υπολογιστικό κόστος κατά το χρόνο της μεταγλώττισης. Η διεργασία για την ατομική επίλυση συγκρούσεων επιχειρεί να αξιολογήσει κάθε σύγκρουση, που έχει εντοπιστεί, ξεχωριστά προκειμένου να διαπιστωθεί αν η σύγκρουση πρέπει να επιλυθεί αμέσως κατά τη μεταγλώττιση (compile time) ή να Κ. Βίτσας 39

αναβληθεί μέχρι το χρόνο εκτέλεσης (run time). Για να αξιολογηθεί κάθε σύγκρουση ατομικά, είναι απαραίτητο να ληφθούν υπόψη δύο παράγοντες: Η πιθανότητα να προκύψει σύγκρουση. Προκειμένου να εκτιμηθεί η πιθανότητα που μπορεί να οδηγήσει σε σύγκρουση είναι απαραίτητο να εξεταστεί κάθε ατομικό στοιχείο της σύγκρουσης, δηλαδή ο χώρος της πολιτικής που πραγματεύτηκε η σύγκρουση, αν η σύγκρουση που αφορά την πολιτική αφορά εσωτερικούς ή εξωτερικούς λόγους κ.α. Το κόστος της επίλυσης (ή μη επίλυσης) της σύγκρουσης. Είναι ένας επιπλέον παράγοντας που πρέπει να εξεταστεί και αφορά το κόστος από την εκτέλεση της επίλυσης καθώς και το κόστος της καθυστέρησης κατά την επίλυση. Η διαδικασία για την επίλυση των συγκρούσεων περιλαμβάνει ουσιαστικά είτε την απόσυρσή της από το πλαίσιο της πολιτικής και την ανασύνταξη των αντικρουόμενων πολιτικών είτε τον καθορισμό της πολιτικής που θα υπερισχύσει σε περίπτωση που μια πραγματική σύγκρουση θα συμβεί. Η απόσυρση και η ανασύνταξη της πολιτικής περιλαμβάνει την αφαίρεση των αντικρουόμενων πολιτικών και προσπαθεί να τις ανασυντάξει έτσι ώστε να μην παράγουν το φαινόμενο της σύγκρουσης. Ωστόσο, η διαδικασία της απόσυρσης και ανασύνταξης των πολιτικών δεν είναι πάντα εφικτή, καθώς μια τέτοια ενέργεια επηρεάζει συχνά την αυτονομία μια πολιτικής και κατά συνέπεια την συμπεριφορά των οντοτήτων και των δράσεων (κατά συνέπεια των οντοτήτων). Μια πιο πρακτική μέθοδος για την επίλυση των συγκρούσεων είναι να προσδιοριστεί ποια πολιτική εμπλέκεται σε μια κατάσταση σύγκρουσης. Αυτές οι πολιτικές θα λάβουν προτεραιότητα. Mια σειρά από αρχές [26] για την προτεραιότητα αποτελούν τη βάση των νομικών πλαισίων σε πολλές χώρες και αυτές είναι: Το συγκεκριμένο υπερισχύει του γενικού. Πρόκειται για μια αρχή που χρησιμοποιείται για την επίλυση συγκρούσεων ανάμεσα σε πολιτικές που έχουν γενική σημασία και σε πολιτικές με ειδική σημασία. Για παράδειγμα αν μια πολιτική αναφερόταν στους μηχανικούς μιας επιχείρησης και η άλλη πολιτική αναφερόταν σε όλους τους υπαλλήλους της επιχείρησης τότε η συγκεκριμένη αρχή αναφέρει ότι η πολιτική που αναφέρεται στους μηχανικούς μιας επιχείρησης θα υπερισχύσει από την πιο γενική κατηγορία που είναι αυτή των υπαλλήλων μιας επιχείρησης. Οι καινούργιοι κανόνες υπερισχύουν των παλαιών. Είναι μια αρχή που μπορεί να χρησιμοποιηθεί σαν μέθοδος επίλυσης των συγκρούσεων και περιλαμβάνει όλες τις πολιτικές με ημερομηνία δημιουργίας. Για αυτό όταν συμβεί σύγκρουση ανάμεσα σε μια πολιτική και σε ένα σύνολο πολιτικών, η πολιτική με την πιο πρόσφατη ημερομηνία δημιουργίας θα υπερισχύσει της πολιτικής με την προγενέστερη ημερομηνία δημιουργίας. Η «υψηλότερη» σύνταξη αντικαθιστά τη «χαμηλότερη» σύνταξη. Η αρχή αυτή στηρίζεται στην επίλυση συγκρούσεων διαφορετικών πολιτικών από διαφορετικούς συντάκτες. Πρέπει όμως να καθοριστεί η σπουδαιότητα που έχει κάθε συντάκτης και αυτό για την επίλυση μιας πιθανής σύγκρουσης. Έτσι, αν υπάρξει σύγκρουση ανάμεσα σε πολιτικές που έχουν εκδοθεί από διαφορετικό Κ. Βίτσας 40

συντάκτη ή που η σύνταξή τους δεν έχει κάποια ιεραρχική σχέση, τότε η υψηλότερης σπουδαιότητας πολιτική θα υπερισχύσει κάποιας χαμηλότερης. Οι αρχές αυτές είναι ενδιαφέρουσες δεδομένου ότι μπορούν να εφαρμοστούν στο πρόβλημα της δημιουργίας προτεραιότητας σε μια πολιτική που μπορεί να παρουσιάζει σύγκρουση. Εκτός όμως από αυτές τις αρχές [26] προστίθενται δυο επιπλέον αρχές. Αυτές είναι: Ανάθεση σαφών συντελεστών και προτεραιοτήτων στις πολιτικές. Η αρχή αυτή περιλαμβάνει κατά κύριο λόγο την ανάθεση των συντελεστών ή των προτεραιοτήτων ατομικά για κάθε συγκεκριμένη πολιτική. Αυτές οι τιμές των προτεραιοτήτων προορίζονται να χρησιμοποιηθούν για τον καθορισμό μιας σειράς προτεραιότητας μεταξύ των αντικρουόμενων πολιτικών. Αρνητική / θετική προτεραιότητα πολιτικής. Πρόκειται για μια απλή αρχή που χρησιμοποιείται για την επίλυση συγκρούσεων. Αν παρατηρηθούν δυο πολιτικές που βρίσκονται σε σύγκρουση και η μια είναι χαρακτηρισμένη σαν θετική και η άλλη σαν αρνητική τότε θα υπερισχύσει αυτή η πολιτική που είναι θετική. Αυτή η αρχή εφαρμόζεται και εξετάζεται στο [26] με σκοπό την επίλυση συγκρούσεων μεταξύ πολιτικών στο ενιαίο πλαίσιο για πολλαπλούς ελέγχους πρόσβασης σε πολιτικές (Unified Framework for Multiple Access Control Policies). Ο σκοπός του κεφαλαίου αυτού ήταν να γίνει κατανοητή η διαδικασία της Ανάλυσης Συγκρούσεων. Η ανάλυση συγκρούσεων εστιάζει στο τρόπο που θα συνταχτεί μια πολιτική, στο τρόπο που θα ανιχνευθεί μια σύγκρουση και στο τρόπο που θα επιλυθεί η σύγκρουση αυτή. Εκτός αυτού, παρουσιάστηκαν και μερικές σκοπιές από τις οποίες κάποιοι ερευνητές αντιλαμβάνονται την έννοια της σύγκρουσης. Στο Κεφάλαιο 6 αναπτύσσεται ένας μηχανισμός που στοχεύει στον εντοπισμό και επίλυση των συγκρούσεων σε ένα σύστημα. Κ. Βίτσας 41

6. ΥΛΟΠΟΙΗΣΗ ΜΗΧΑΝΙΣΜΟΥ ΕΝΤΟΠΙΣΜΟΥ ΚΑΙ ΕΠΙΛΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ ΠΟΛΙΤΙΚΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ Σε αυτό το κεφάλαιο γίνεται μια προσπάθεια για την δημιουργία ενός μηχανισμού που θα αποσκοπεί στον εντοπισμό (detection) και επίλυση (resolution) συγκρούσεων μεταξύ των πολιτικών που βρίσκονται σε χαμηλό επίπεδο (low level policies). Αρχικά, θα παρουσιαστεί ένα βασικό μοντέλο που θα βοηθήσει στην δημιουργία αυτού του μηχανισμού. Στη συνέχεια θα γίνει μια λεπτομερής αναφορά στις διαδικασίες και στους αλγόριθμους που βοήθησαν για την υλοποίηση αυτού του μηχανισμού. Τέλος, θα κάνουμε χρήση κάποιων σεναρίων για την καλύτερη κατανόηση του μηχανισμού μας. 6.1 Βασικό μοντέλο μηχανισμού Στο προηγούμενο κεφάλαιο έγινε μια αναφορά πάνω στην ανάλυση συγκρούσεων καθώς και στις προσεγγίσεις που έχουν γίνει από διάφορους ερευνητές. Όπως έχουμε ήδη αναφέρει μερικοί αναφέρονται σε μια πολιτική με τη τριπλέτα Συμβάν Συνθήκη Ενέργεια (Event Condition Action) ενώ άλλοι αναφέρονται με τη τριπλέτα Υποκείμενο Στόχος Ενέργεια (Subject Target Action). Η προσέγγιση αυτής της εργασίας στηρίζεται στη πρώτη τριπλέτα (Event Condition Action). Ο σκοπός του μηχανισμού είναι ο εντοπισμός και η επίλυση συγκρούσεων ανάμεσα σε πολιτικές που βρίσκονται σε χαμηλό επίπεδο (low level policies). Η Εικόνα 7 δείχνει τα βήματα πάνω στα οποία στηρίζεται ο μηχανισμός αυτός. Παρατηρούνται τρία λογικά βήματα: Αναγνώριση των νέων κανόνων (new Rules) και των ήδη αναπτυγμένων κανόνων (Deployed Rules). Σαν αναπτυγμένους θεωρούμε αυτούς τους κανόνες που εφαρμόζονται ήδη στο σύστημα μας. Οι νέοι κανόνες είναι αυτοί που δεν εφαρμόζονται και πρέπει να ελεγχθούν για το αν μπορούν να εφαρμοστούν. Ανίχνευση συγκρούσεων ανάμεσα στους νέους κανόνες και στους ήδη εφαρμοσμένους. Επίλυση των συγκρούσεων που προκύπτει από τη προτεραιότητα κάθε κανόνα πολιτικής. Κ. Βίτσας 42

Εικόνα 7: Μοντέλο μηχανισμού για την ανίχνευση και επίλυση συγκρούσεων Κατά το πρώτο βήμα λαμβάνεται ένα σύνολο πολιτικών (Policy Set). Το σύνολο αυτό περιέχει μια λίστα με κανόνες πολιτικών (Policy rules), γι αυτό το αποσυνθέτουμε με σκοπό να συμπεριλάβουμε τους κανόνες αυτούς στις δυο λίστες μας (λίστα αναπτυγμένων κανόνων (Deployed rule list) και λίστα νέων κανόνων (newrule list)) που βρίσκονται στη μνήμη (cache). Κατά το δεύτερο βήμα η διαδικασία χωρίζεται σε τρία μέρη για τον έλεγχο συγκρούσεων που μπορεί να πραγματεύονται σχετικά με τα συμβάντα, τις συνθήκες και τις ενέργειες. Θα πρέπει επίσης να σημειωθεί ότι ο αλγόριθμος που ελέγχει για τυχόν συγκρούσεις στις ενέργειες μιας πολιτικής (action level), ελέγχει και ένα προκαθορισμένο πίνακα για να αξιολογήσει κατά πόσο δυο ενέργειες είναι αντικρουόμενες ή όχι. Κατά το τρίτο βήμα πραγματεύεται η διαδικασία της επίλυσης των συγκρούσεων που προέκυψαν από το δεύτερο βήμα. Επίσης, ένα σύνολο πολιτικών που δε βρίσκονται σε σύγκρουση παράγεται και επιστρέφεται στην διαδικασία της μετάφρασης. Αυτό το Κ. Βίτσας 43

σύνολο πολιτικών περιέχει όλους τους κανόνες που δεν παρουσιάζουν σύγκρουση. Επιπλέον ενημερώνεται και γίνονται οι κατάλληλες αλλαγές στη μνήμη. Στα παρακάτω υποκεφάλαια γίνεται μια πιο εκτενής αναφορά σε κάθε βήμα και στους αλγόριθμους που χρησιμοποιούνται. 6.1.1 Βήμα πρώτο: Λήψη συνόλου πολιτικών και αναγνώρισή τους Στο βήμα αυτό λαμβάνεται ένα σύνολο από κανόνες πολιτικών που έχουν προκύψει από τη διαδικασία της μετάφρασης. Η διαδικασίας της μετάφρασης (βλ. 4.3 Μετάφραση πολιτικής) δέχεται τον αρχικό επιχειρησιακό στόχο (business goal) και παράγει μια σειρά από χαμηλού επιπέδου πολιτικές. Η διαδικασία της μετάφρασης θα παράξει ένα αρχείο XML που θα περιέχει τους νέους κανόνες (new Rules) που έχουν προκύψει καθώς και τους ήδη αναπτυγμένους (Deployed Rules). Εικόνα 8: Πρώτο νοητό βήμα μηχανισμού (Λήψη συνόλου πολιτικών) Η μορφή που θα έχει αυτό το αρχείο XML φαίνεται στην Εικόνα 9. Σε αυτό φαίνεται η αναπαράσταση μιας πολιτικής με τη χρήση οντολογιών. Πιο συγκεκριμένα το στοιχείο PolicySet, αναπαριστά το σύνολο πολιτικών και έχει σαν «υποκλάση» τα στοιχεία PolicyRule που πρόκειται για τους κανόνες (νέους και εφαρμοσμένους) που έχουν προκύψει από την διαδικασία της μετάφρασης. Καθένας από τους κανόνες, πέρα από τα χαρακτηριστικά που έχει (PolicyName, policylevel κ.α.), έχει και σαν «υποκλάσεις» τα στοιχεία PolicyEvents, PolicyConditions και PolicyAction που αποτελούν τα συμβάντα, τις κατάστασεις και τις ενέργειες ενός κανόνα πολιτικής. Στην ουσία περιέχονται και οργανώνονται όλες οι χρήσιμες πληροφορίες ενος κανόνα πολιτικής. Κ. Βίτσας 44

Εικόνα 9: Μορφή αρχείου XML που περιέχει το σύνολο πολιτικών Σε αυτό το σημείο πρέπει να προσθέσουμε ότι ο μηχανισμός που υλοποιούμε διατηρεί μια μνήμη (cache), όπως φαίνεται στην Εικόνα 8. Σε αυτή περιέχονται δυο λίστες. Η μια περιέχει τους κανόνες που έχουν ήδη αναπτυχθεί (Deployed rules) και η άλλη λίστα τους νέους κανόνες (New rules) που μπορεί ή όχι να αναπτυχθούν. Το αν θα μπορέσουν να αναπτυχθούν οι νέοι κανόνες εξαρτάται με το αν παρουσιάζουν σύγκρουση με κάποιον ήδη αναπτυγμένο κανόνα. Αφού γίνει η λήψη του συνόλου πολιτικών από την διαδικασία της μετάφρασης πρέπει να γίνει η αναγνώριση των κανόνων που περιέχονται σε αυτό. Δηλαδή, θα πρέπει να διακρίνουμε τους ήδη αναπτυγμένους κανόνες (Deployed) από τους νέους κανόνες (new). Αυτό γίνεται διότι στο σύνολο πολιτικών που προκύπτει από την μετάφραση (translation) περιέχονται και αναπτυγμένοι κανόνες και νέοι. Άρα γίνεται έλεγχος για την αναγνώριση κάθε κανόνα. Αν ο κανόνας που ελέγχεται είναι νέος (δεν υπάρχει στους ήδη αναπτυγμένους) τότε τον προσθέτουμε στη λίστα με τους νέους κανόνες. Ο έλεγχος για τη μοναδικότητα του κάθε κανόνα στηρίζεται πάνω στο όνομα (PolicyName) του που είναι και μοναδικό. Η κατανόηση αυτού του βήματος μπορεί να γίνει και με την χρήση ενός σεναρίου. Αρχικά, τη χρονική στιγμή μηδέν, θεωρούμε ότι ο επιχειρηματίας δεν έχει εκφράσει τους επιχειρησιακούς του στόχους. Αυτό σημαίνει ότι το σύνολο πολιτικών που περιμένει ο Κ. Βίτσας 45

μηχανισμός μας δεν έχει αναπτυχθεί ακόμα από την διαδικασία της μετάφρασης (Policy Translation) και έτσι η μνήμη (όπως φαίνεται στην Εικόνα 8) που περιέχει τις λίστες των ήδη αναπτυγμένων (Deployed) και των νέων κανόνων (New), παραμένει κενή. Κάποια στιγμή, εκφράζονται επιχειρησιακοί στόχοι και από την διαδικασία της μετάφρασης και παράγεται ένα σύνολο πολιτικών (σε μορφή αρχείου XML). Όπως είναι λογικό αυτοί οι κανόνες που εμπεριέχονται σε αυτό το σύνολο πολιτικών δεν παρουσιάζουν σύγκρουση με κάποιο ήδη αναπτυγμένο κανόνα γιατί πολύ απλά δεν υπάρχει αναπτυγμένος κανόνας. Οπότε όλοι οι κανόνες αυτού του συνόλου αποθηκεύονται στη λίστα με τους αναπτυγμένους κανόνες (Deployed list). Την επόμενη χρονική στιγμή, που θα προκύψει άλλο σύνολο πολιτικών από την διαδικασία της μετάφρασης τότε θα πρέπει να εξετάσουμε ποιοι από αυτούς τους κανόνες ανήκουν στους ήδη αναπτυγμένους. Όσοι δεν ανήκουν τους αποθηκεύουμε στη λίστα με τους νέους κανόνες (new rules list) με σκοπό την πιθανή εύρεση και επίλυση συγκρούσεων, όπως θα αναφερθεί στη παρακάτω υποενότητα. Άρα θα μπορούσαμε να διαχωρίσουμε την διαδικασία της αναγνώρισης των κανόνων σε δυο βήματα: Όταν η λίστα με τους αναπτυγμένους κανόνες είναι κενή. Σε αυτή τη περίπτωση δε χρειάζεται να εξετάσουμε για σύγκρουση αφού δεν υπάρχουν αναπτυγμένοι κανόνες για να μπορέσουμε να τους συγκρίνουμε. Οι κανόνες που προκύπτουν από την διαδικασία της μετάφρασης αποθηκεύονται κατευθείαν στους αναπτυγμένους κανόνες(deployed list) στη μνήμη (cache). Όταν η λίστα με τους αναπτυγμένους κανόνες δεν είναι κενή. Σε αυτή τη περίπτωση εξετάζεται ποιοι από τους κανόνες του συνόλου πολιτικών που προέκυψε από την μετάφραση δεν υπάρχουν στους αναπτυγμένους κανόνες στη μνήμη. Όσοι δεν υπάρχουν αποθηκεύονται στην λίστα με τους νέους κανόνες (new rules) και θα πρέπει να εξεταστούν για το αν παρουσιάζουν σύγκρουση με τους ήδη αναπτυγμένους που εμπεριέχονται στη μνήμη, στη λίστα(deployed list). 6.1.2 Βήμα Δεύτερο: Ανίχνευση συγκρούσεων ανάμεσα στους κανόνες πολιτικών Στο βήμα αυτό γίνονται οι κατάλληλοι έλεγχοι για τον εντοπισμό των συγκρούσεων ανάμεσα στους ήδη αναπτυγμένους κανόνες και στους νέους. Στην ουσία εξετάζεται η λίστα με τους νέους κανόνες (new Rules list) για τον εντοπισμό συγκρούσεων με τους κανόνες της λίστας των αναπτυγμένων κανόνων (Deployed list). Όπως αναφέρθηκε και στο πρώτο βήμα, έλεγχος για σύγκρουση (και επίλυση) μπορεί να επιτευχθεί όταν η λίστα των αναπτυγμένων κανόνων δεν είναι άδεια. Επίσης και η λίστα με τους νέους κανόνες (new Rules list) δεν πρέπει να είναι άδεια (σε περίπτωση που η μετάφραση δεν φέρει νέους κανόνες αλλά μόνο τους ήδη εφαρμοσμένους). Αυτό πρέπει να ισχύει γιατί δεν θα υπήρχε νόημα να εξετάζαμε για σύγκρουση, μιας και δεν υπάρχουν νέοι κανόνες που μπορεί να είναι αντικρουόμενοι με τους αναπτυγμένους. Κ. Βίτσας 46

Εικόνα 10: Δεύτερο νοητό βήμα μηχανισμού (Ανίχνευση συγκρούσεων) Στην Εικόνα 10 απεικονίζεται η διαδικασία του μηχανισμού μας για την ανίχνευση των συγκρούσεων. Όπως φαίνεται, πριν ξεκινήσει η διαδικασία, λαμβάνονται δυο λίστες από το πρώτο βήμα. Πρόκειται για τις λίστες των ήδη αναπτυγμένων και νέων κανόνων που βρίσκονται στην μνήμη (cache) και έχουν προκύψει από το πρώτο βήμα. Από αυτό το σημείο και μετά ξεκινάει ο έλεγχος συγκρούσεων. Ο έλεγχος για το αν υπάρχει σύγκρουση ανάμεσα σε ένα νέο κανόνα και σε ένα αναπτυγμένο εξετάζεται σε τρία επίπεδα. Εξετάζεται αν υπάρχει σύγκρουση στο επίπεδο συμβάντων (event level), στο επίπεδο συνθηκών (conditions level) και στο επίπεδο ενεργειών (action level). Ο νέος αυτός κανόνας θα βρίσκεται σε σύγκρουση με τον αναπτυγμένο αν και στα τρία επίπεδα παρουσιάζει ανωμαλίες. Αν παρουσιάζει μόνο στο πρώτο επίπεδο ή στο πρώτο και στο δεύτερο και όχι στο τρίτο τότε αυτός ο νέος κανόνας δεν μπορούμε να πούμε ότι βρίσκεται σε σύγκρουση με τον ήδη αναπτυγμένο. Επίσης, ο έλεγχος για τη σύγκρουση για κάθε επίπεδο γίνεται σειριακά. Δηλαδή πρώτα εξετάζεται αν υπάρχει σύγκρουση στο επίπεδο συμβάντων, αν υπάρχει η διαδικασία συνεχίζεται και οδηγούμαστε στον έλεγχο σύγκρουσης στο επίπεδο συνθηκών, αν και σε αυτό το επίπεδο υπάρχει τότε εξετάζουμε για πιθανή σύγκρουση στο τελευταίο επίπεδο (actions level). Το ερώτημα που προκύπτει από αυτή τη προσέγγιση είναι γιατί χρειάζεται η εμφάνιση σύγκρουσης και στα τρία επίπεδα της νέας πολιτικής για να καταλήξουμε στο συμπέρασμα ότι η συγκεκριμένη πολιτική βρίσκεται σε σύγκρουση. Η απάντηση μπορεί να δοθεί από ένα παράδειγμα όπου τον ρόλο των κανόνων πολιτικών θα απαρτίζουν φοιτητές ενός τμήματος. Ας πούμε ότι θέλαμε να συγκρίνουμε το βαθμό ενός δευτεροετή φοιτητή σε σχέση με τους άλλους φοιτητές. Αρχικά, θα έπρεπε να τον διακρίνουμε ανάλογα με το έτος στο οποίο βρίσκεται (δε θα μπορούσαμε να συγκρίνουμε πρωτοετή φοιτητή με τεταρτοετή φοιτητή). Από τους δευτεροετείς φοιτητές θα έπρεπε να διακρίνουμε τον αριθμό των μαθημάτων που έχει περάσει ο καθένας Κ. Βίτσας 47

κ.λπ. Οπότε, όπως είναι λογικό η σύγκριση θα προκύψει ανάμεσα σε φοιτητές με κοινό τόπο. Άρα στη περίπτωση μας χρειάζεται να ανιχνευθεί σύγκρουση και στα τρία επίπεδα για να καταλήξουμε ότι ο συγκεκριμένος κανόνας έχει κάποια ανωμαλία καθώς σύγκρουση μπορεί να υπάρξει ανάμεσα σε κανόνες που «μοιάζουν» μεταξύ τους και χρησιμοποιούν ίδιους πόρους. Στη διαδικασία της ανίχνευσης συγκρούσεων, όπως παρατηρούμε στην Εικόνα 10, από κάθε επίπεδο προκύπτει-δίνεται και από μια λίστα. Η λίστες αυτές αποτελούν υποσύνολα της αρχικής λίστας των ήδη αναπτυγμένων κανόνων. Σε κάθε επίπεδο (event, condition, action) η ανίχνευση σύγκρουσης παράγει και μια λίστα που περιέχει τους αναπτυγμένους κανόνες που βρίσκονται σε σύγκρουση με τον νέο κανόνα ως προς αυτό το επίπεδο. Έτσι η πρώτη λίστα που παράγεται από το επίπεδο των συμβάντων (event level) περιέχει τους αναπτυγμένους κανόνες που παρουσιάζουν σύγκρουση με το νέο κανόνα ως προς τα συμβάντα. Αυτή η λίστα δίνεται στο επίπεδο των συνθηκών. Αφού γίνουν οι κατάλληλοι έλεγχοι, παράγεται από το επίπεδο των συνθηκών μια άλλη λίστα που περιέχει τους αναπτυγμένους κανόνες που βρίσκονται σε σύγκρουση με τον νέο κανόνα ως προς τις συνθήκες (και τα συμβάντα από το προηγούμενο βήμα). Η διαδικασία ολοκληρώνεται από το επίπεδο των ενεργειών όπου το επίπεδο αυτό δέχεται την λίστα με τους αναπτυγμένους κανόνες που παρουσιάζουν σύγκρουση με τον νέο κανόνα στα επίπεδα των συμβάντων και των συνθηκών. Αυτό το επίπεδο θα παράξει και την τελική μας λίστα, αυτή τη λίστα δηλαδή, που περιέχει τους αναπτυγμένους κανόνες που παρουσιάζουν ανωμαλία ως προς και τα τρία επίπεδα του νέου κανόνα. Δηλαδή η τελική λίστα αποτελείται από τους αναπτυγμένους κανόνες που παρουσιάζουν σύγκρουση με το νέο κανόνα. Καταλαβαίνουμε, λοιπόν, ότι η συγκεκριμένη τεχνική έχει σαν σκοπό το φιλτράρισμα των αναπτυγμένων κανόνων στα διάφορα επίπεδα έτσι ώστε στο τέλος να έχουμε μόνο εκείνους τους κανόνες που παρουσιάζουν συγκρούσεις με το νέο κανόνα. Η όλη διαδικασία γίνεται για όλους τους νέους κανόνες που εισέρχονται στο μηχανισμό μας. Άρα όταν ολοκληρωθεί η διαδικασία για όλους τους νέους κανόνες θα έχει δημιουργηθεί μια δομή, όπως στην Εικόνα 11. Αυτή η δομή θα περιέχει από τη μία όλους τους νέους κανόνες και από την άλλη την αντίστοιχη λίστα με τους αναπτυγμένους κανόνες που παρουσιάζει σύγκρουση ο νέος αυτός κανόνας. Στη συνέχεια αυτή η δομή θα πρέπει να ληφθεί από την διαδικασία της επίλυσης, που θα αναφερθούμε παρακάτω, με σκοπό τη διατήρηση εκείνων των κανόνων που θα επιφέρουν την ομαλή λειτουργία στο σύστημα. Εικόνα 11: Δομή που προκύπτει από την διαδικασία της ανίχνευσης συγκρούσεων Κ. Βίτσας 48

Αφού έγινε η ανάλυση για τις λίστες που παράγονται σε κάθε ένα από τα τρία επίπεδα θα πρέπει να γίνει και η ανάλυση για το πως και με ποια κριτήρια δημιουργούνται οι λίστες αυτές. Σε κάθε μια από τις παρακάτω υποενότητες αναλύεται η διαδικασία για κάθε ένα από τα τρία επίπεδα. Η διαδικασία αυτή για κάθε επίπεδο αφορά την εύρεση σύγκρουσης των αναπτυγμένων κανόνων με τον νέο κάθε φορά κανόνα. 6.1.2.1 Ανίχνευση σύγκρουσης στο επίπεδο συμβάντων Πρόκειται για το αρχικό στάδιο της ανίχνευσης σύγκρουσης. Σε αυτό το επίπεδο εξετάζεται η πιθανή σύγκρουση των αναπτυγμένων και των νέων κανόνων στο επίπεδο των συμβάντων. Όπως έχει αναφερθεί (βλ. 4.2 Οντότητες αναπαράστασης πολιτικών) κάθε πολιτική μπορεί να φέρει περισσότερα από ένα συμβάντα στο σώμα της. Αυτό σημαίνει ότι ένας κανόνας (Policy rule) μπορεί να πραγματοποιεί περισσότερα από ένα πράγματα. Επίσης κάθε συμβάν χαρακτηρίζεται και από ένα τύπο (όνομα) όπου στη μορφή του αρχείου XML όπου αναφερόμαστε (βλ. Εικόνα 9) εμφανίζεται σαν χαρακτηριστικό με το όνομα eventtype. Άρα και με βάση τα παραπάνω ο έλεγχος του νέου κανόνα για το αν υπάρχει σύγκρουση στο επίπεδο των συμβάντων θα πρέπει να εστιάζει στο τύπο του κάθε συμβάν και στο πλήθος των συμβάντων. Επιπλέον, όπως αναφέρθηκε και στη προηγούμενη υποενότητα, από κάθε επίπεδο παράγεται και μια λίστα. Άρα για το επίπεδο των συμβάντων η λίστα θα προκύψει από τους παρακάτω ελέγχους: Αρχικά εξετάζεται αν ο νέος κανόνας και ο ήδη αναπτυγμένος δεν έχουν κάποιο συμβάν. Αν ισχύει αυτό τότε ο αναπτυγμένος κανόνας μπορεί να παρουσιάζει σύγκρουση με το νέο. Εδώ έχουμε σύγκρουση γιατί δεν γνωρίζουμε τα συμβάντα των δυο κανόνων(νέου και αναπτυγμένου) και δε μπορούμε να αποφασίσουμε για το αν βρίσκονται σε σύγκρουση άρα και αφήνουμε την διαδικασία για το επόμενο επίπεδο. Οπότε ο αναπτυγμένος κανόνας προστίθεται στην λίστα. Υπάρχει η πιθανότητα ο αναπτυγμένος κανόνας να περιέχει συμβάντα και ο νέος να μην περιέχει. Σε αυτή τη περίπτωση πρέπει να ενημερωθεί η λίστα με τον αναπτυγμένο κανόνα γιατί έχουμε σύγκρουση. Η σύγκρουση προκύπτει επειδή ο αναπτυγμένος κανόνας διαθέτει συμβάντα που δεν μπορούν να συγκριθούν με αυτά του νέου καθώς ο νέος δεν περιέχει. Άρα όπως και στη πρώτη περίπτωση η διαδικασία «αφήνεται» για το επόμενο επίπεδο. Η αντίθετη περίπτωση με τη προηγούμενη δηλαδή ο νέος κανόνας να περιέχει συμβάντα και ο αναπτυγμένος να μη περιέχει. Αν οι δυο κανόνες που συγκρίνονται (νέος και αναπτυγμένος) έχουν ο καθένας από ένα ή περισσότερα συμβάντα τότε θα παρατηρηθεί σύγκρουση αν υπάρχει ένα τουλάχιστον συμβάν του ενός που έχει ίδιο τύπο (eventtype) με ένα συμβάν του άλλου. Σε αυτή τη περίπτωση θα έχουμε σύγκρουση γιατί οι δυο αυτοί κανόνες θέλουν να πραγματοποιήσουν ένα κοινό γεγονός. Ο αναπτυγμένος κανόνας προστίθεται στη λίστα για να εξετάσουμε στα επόμενα επίπεδα αν προκύπτει σύγκρουση ή πρόκειται για συμβάν με διαφορετική συμπεριφορά. Κ. Βίτσας 49

Άρα, και με βάση τα παραπάνω, δεν οδηγούνται σε σύγκρουση στο επίπεδο αυτό με τους αναπτυγμένους κανόνες που έχουν τουλάχιστον ένα συμβάν. Επίσης θα πρέπει ο τύπος (eventtype) αυτού του συμβάντος να είναι διαφορετικός από το τύπο του συμβάντος του νέου κανόνα. Φυσικά, απαραίτητη προϋπόθεση είναι και ο νέος κανόνας να περιέχει ένα τουλάχιστον συμβάν. Μετά από αυτό το επίπεδο σειρά έχει η ανίχνευση συγκρούσεων στο επίπεδο το συνθηκών που θα λάβει την λίστα που έχει προκύψει από αυτό το βήμα. 6.1.2.2 Ανίχνευση σύγκρουσης στο επίπεδο συνθηκών Πρόκειται για το δεύτερο στάδιο της ανίχνευσης σύγκρουσης. Στο βήμα αυτό γίνονται όλοι οι κατάλληλοι έλεγχοι για να συγκρατηθούν μόνο οι αναπτυγμένοι κανόνες που παρουσιάζουν σύγκρουση με το νέο κανόνα ως προς τις συνθήκες τους (και ως προς τα συμβάντα από το προηγούμενο επίπεδο). Όπως αναφέρεται και στην 4.2 Οντότητες αναπαράστασης πολιτικών, οι συνθήκες ενός κανόνα είναι οι προϋποθέσεις που χρειάζονται για να ισχύει ο κανόνας αυτός. Οι συνθήκες μιας πολιτικής εμφανίζονται με το στοιχείο PolicyConditions. Αυτό το στοιχείο έχει σαν «υποκλάσεις» τα στοιχεία PolicyConditionAtomic που είναι οι ξεχωριστές συνθήκες-προυποθέσεις που χρειάζεται ο συγκεκριμένος κανόνας πολιτικής για να εφαρμοστεί. Για κάθε μια από αυτές τις ξεχωριστές συνθήκες το στοιχείο Statement αποτελεί την «υποκλάση» τους. Αυτό το στοιχείο οργανώνει την κάθε ατομική συνθήκη. Πιο συγκεκριμένα, αν θεωρήσουμε ότι έχουμε ένα πόρο στο σύστημα με το όνομα X και επίσης ότι ο κανόνας μας θα χρειαστεί να εκμεταλλευτεί αυτό το πόρο σε ποσότητα μεγαλύτερη από τη τιμή 5, η συνθήκη θα έμοιαζε: X 5 Εξίσωση 16 : Παράδειγμα συνθήκης Και θα έπρεπε να αναπαρασταθεί σαν: Εικόνα 12: Μορφή συνθήκης όπως αυτή γίνεται δεκτή από την διαδικασία της μετάφρασης Κ. Βίτσας 50