P2 Declarative Networking Θεόδωρος Αθανασιάδης Α.Μ. 133
Το πρόβλημα Η σχεδίαση, ανάπτυξη και δοκιμή ενός υπερκείμενου δικτύου είναι μία δύσκολη και χρονοβόρα διαδικασία. Παρόλο που πολλές λειτουργίες είναι κοινές μεταξύ των υπερκείμενων δικτύων, οι προγραμματιστές συχνά αναγκάζονται να αντιμετωπίσουν τα ίδια προβλήματα. Η εύρεση των αποτυχιών σε ένα κατανεμημένο δίκτυο μεγάλης κλίμακας είναι δύσκολη. Η συνολική επίβλεψη ενός υπερκείμενου δικτύου είναι σημαντική για την δοκιμή και αξιολόγηση ενός δικτύου.
P2 To P2 είναι ένα σύστημα ανάπτυξης και εκτέλεσης παράλληλων αλγορίθμων ειδικά σχεδιασμένο για την υλοποίηση υπερκείμενων κατανεμημένων δικτύων. Στόχος του είναι η ταχεία ανάπτυξη και δοκιμή υπερκείμενων δικτύων. Τα βασικά του πλεονεκτήματα είναι η ευκολία διατύπωσης των προδιαγραφών του overlay και η δυνατότητα επαναχρησιμοποίησης του κώδικα. Η σύνταξη του είναι εξαιρετικά περιεκτική. To overlay π.χ. του Chord μπορεί να εκφραστεί μόνο με 47 λογικούς κανόνες.
Αρχιτεκτονική P2 Βασικά μέρη της αρχιτεκτονικής : Data Model Specification Language Data Flow
Αρχιτεκτονική P2 (Data Model) Το overlay μοντελοποιείται παρόμοια με μία σχεσιακή βάση δεδομένων. Χρησιμοποιούνται πλειάδες για την αναπαράσταση της κατάστασης του συστήματος. Για παράδειγμα οι εξωτερικές συνδέσεις του routing table ενός κόμβου μπορούν να αναπαρασταθούν με μία πλειάδα της μορφής : [my address, neighbor address, link weight].
Αρχιτεκτονική P2 (Language) Χρησιμοποιείται μία γλώσσα υψηλού επιπέδου που ονομάζεται OverLog και αποτελεί μία παραλλαγή της Datalog. Ένα πρόγραμμα Overlog αποτελείται από : Δηλώσεις πινάκων (tables) Ορισμό κανόνων (rules) Επερωτήσεις (queries)
Αρχιτεκτονική P2 (Overlog Κανόνες) Οι κανόνες έχουν την μορφή, :-. : : Όνομα κανόνα. : λίστα από σχέσεις που πρέπει να ικανοποιούνται : σύνολο πλειάδων που παράγονται από τον κανόνα Τα κόμματα μεταξύ των σχέσεων στο εκφράζουν λογική σύζευξη (AND). H σειρά των σχέσεων στο δεν έχει σημασία.
A Παράδειγμα C W B P : [A,X][X,Y][Y,C], με κόστος Y X Y path(B,C,[B,A]+P,W+Y) :- link(A,B,W), path(A,C,P,Y) σημαίνει ότι αν ο A έχει μία αμφίδρομη σύνδεση κόστους W προς τον B και ο κόμβος A έχει ένα μονοπάτι P προς τον κόμβο C με κόστος Y, τότε ο B έχει ένα μονοπάτι προς τον C μέσω του Α με κόστος W+Y.
Αρχιτεκτονική P2 (Data Flow) Η overlog γλώσσα μεταγλωττίζεται σε μία εκτελέσιμη μορφή. Χρησιμοποιούνται data flow graphs για την εκτέλεση και προσομοίωση του συστήματος. Η αναπαράσταση της ανταλλαγή μηνυμάτων σε ένα δίκτυο και η υλοποίηση κάποιου δικτυακού πρωτοκόλλου με data flow graphs προσφέρει μεγαλύτερη επεκτασιμότητα και ευελιξία σε σχέση με την κλασσική προσέγγιση των αυτομάτων.
Project Υλοποίηση του υπερκείμενου δικτύου CAN σε γλώσσα OverLog. Θα αξιολογηθεί κατά την ανάπτυξη το σύστημα P2 σχετικά με τις δυνατότητες του και τα πλεονεκτήματα που προσφέρει. Θα αξιολογηθεί η ωριμότητα του συστήματος. Αυτή την στιγμή το σύστημα βρίσκεται σε Alpha Stage.
Υλοποίηση Υλοποιήθηκαν Εισαγωγή κόμβου Αναζήτηση στο CAN Περιοδικό Update κόμβων Αποχώρηση κόμβου Αποτελέσματα Χρειάστηκαν 5 tables Συνολικά 36 κανόνες
Υλοποίηση – Tables materialize(neighbor, infinity, infinity, keys(1,2)) materialize(zone, infinity, infinity, keys(1,2)) materialize(landmark,infinity,1,keys(1)) materialize(join,10,5,keys(1)) materialize(leave,10,5,keys(1)) Περιέχουν πλειάδες της μορφής neighbor(MyAddress,NeighborAddress,RefreshTime,isValid) zone(Address,Dim,ZoneMin,ZoneMax) landmark(MyAddress,LandmarkAddress) join(Address,ID) leave(Address,ID)
Υλοποίηση – Περιοδικό Update R1 :- R2 Dim, ZoneMin,ZoneMax) :- isValid == TRUE. R3 :-
Υλοποίηση – Περιοδικό Update R4 X, TimeX, isValid) :- _, _, _), TimeX := := FALSE. R5 X) :- – LastRefreshTime > TIMEOUT. R6 delete :- R7 delete :-
Συμπεράσματα Πλεονεκτήματα : Μικρό πλήθος κανόνων απαιτούνται για την περιγραφή του CAN σε αντίθεση με τυπικές υλοποιήσεις σε C,C++. Οι κανόνες έχουν εύκολα αναγνώσιμη και συμπαγής μορφή. Λεπτομέρειες υλοποίησης όπως την μετάδοση μηνυμάτων τις αναλαμβάνει το P2. Η μορφή του κώδικα σε Overlog είναι αρκετά γενική ώστε να μπορεί να επαναχρησιμοποιηθεί ο κώδικας σε υλοποιήσεις παρόμοιων υπερκείμενων δικτύων. Μεγάλες δυνατότητες debugging και ενδοσκόπησης του δικτύου και της εκτέλεσης του κώδικα.
Συμπεράσματα Μειονεκτήματα : Η εκμάθηση μία δηλωτικής γλώσσας όπως η Overlog είναι μία χρονοβόρα διαδικασία. Η καμπύλη εκμάθησης δεν είναι γραμμική. Μικρός αριθμός παραδειγμάτων χρήσης της γλώσσας. Το σύστημα P2 είναι αρκετά ανώριμο ακόμα για να χρησιμοποιηθεί εκτεταμένα.
Βιβλιογραφία [1] B.T. Loo, T. Condie, J. M. Hellerstein P. Maniatis, T. Roscoe, and I. Stoica. Implementing Declarative Overlays. In 20th ACM Symposium on Operating Systems Principles (SOSP), [2] I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. F.Kaashoek, F. Dabek, and H. Balakrishnan. Chord: a scalable peer-to-peer lookup protocol for internet applications. In Proceeding ACM Sigcomm 2001, San Diego, CA, Aug [3] S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Shenker. A Scalable Contents-Addressable Network. In ICSI Technical Report, Jan [4] B.T. Loo, J. M. Hellerstein and I. Stoica. Customizable routing with declarative queries. In Third Workshop on Hot Topics in Networks (HotNets-III), Nov