Εναρξη Μαθήµατος Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 3 Μαρτίου, 2009 Αίθουσα ΑΠ7 Ο σκοπός του µαθήµατος: Σχεδιασµός κατανεµηµένων συστηµάτων (distributed systems) Τεχνικές και εργαλεία ανάπτυξης κατανεµηµένων εφαρµογών Προγραµµατισµό κατανεµηµένων εφαρµογών (distributed systems programming) Το µάθηµα ϑα διεξαχθεί γύρω από δύο άξονες: Τεχνολογίες Υλοποίησης ιαλέξεις Project Τυπικά Θέµατα Project Θεωρία ιαλέξεις 2 ώρες την εβδοµάδα Τετάρτη 11:00-13:00, ΑΠ7 4 ϑεµατικές ενότητες Θέµατα Σχεδιασµού Τεχνολογίες Υλοποίησης Κατανεµηµένων Συστηµάτων Εργαλεία Ανάπτυξης Λογισµικού Ειδικές Πλατφόρµες Βαθµολογία Project -- 100% Υποχρεωτικό το 100% του τελικού ϐαθµού Πρακτικό Οµαδικό Καταγραφή Προδιαγραφών ενός Κατανεµηµένου Συστήµατος Σχεδιασµός Κατανεµηµένου Συστήµατος Μελέτη ενός προβλήµατος των ΚΣ Σχεδιασµός Κατανεµηµένου Αλγορίθµου Προγραµµατισµός / Ανάπτυξη Παρουσίαση
Απορίες Συναντήσεις Υλη Μαθήµατος (1) Για οτιδήποτε χρειαστείτε ϑα µε ϐρείτε στο ΤΜΗΥΠ: Προκατασκευασµένα, δίπλα από γραφείο Καθ. Μεγαλοοικονόµου Τετάρτη 10:00-13:00 Αλλες µέρες/ώρες κατόπιν συνεννοήσεως -- 2610 997541 στο Ε.Α.Ι.Τ.Υ.: Γραφείο 0.Ι.3 Κατόπιν συνεννοήσεως -- 2610 960333 Μέσω e-mail: ichatz@ceid.upatras.gr Μέσω forum του µαθήµατος στο my.ceid.upatras.gr Μεταπτυχιακοί ϕοιτητές Χρήστος Κονίνης -- koninis@ceid.upatras.gr Κλεοπάτρα Χατζηπρίµου -- chatzipr@ceid.upatras.gr Θέµατα Σχεδιασµού 1. Επικοινωνία ιεργασιών 2. Σχήµατα Επικοινωνίας Request - Reply, Server - Client 3. Κλήση Αποµακρυσµένων ιαδικασιών 4. Κατανεµηµένα Αντικείµενα 5. Κατανεµηµένες Ουρές Μηνυµάτων 6. Ρεύµατα Επικοινωνίας 7. Java Enterprise Edition Τεχνολογίες Υλοποίησης Κατανεµηµένων Συστηµάτων 1. Java Server Pages 2. Java Remote Method Invocation (RMI) 3. Java Persistance -- Hibernate 4. Spring Framework Υλη Μαθήµατος (2) Βιβλιογραφία Εργαλεία Ανάπτυξης Λογισµικού 1. CVS, Subversion 2. GForge, SourceForge, TRAC 3. IDEA IntelliJ Ειδικές Πλατφόρµες Java Micro Edition (ME) SUN Small Programmable Object Technology (SPOT) isense Google Geo API Google Android Βιβλία 1. Christian Bauer, Gavin King: Java Persistence with Hibernate 2. Craig Walls, Ryan Breidenbach: Spring in Action" 3. Rob Harrop, Jan Machacek: Pro Spring" 4. G.Coulouris, J.Dollimore, T.Kindberg: Distributed Systems, Concepts and Design" 5. A.Tanenbaum, M.Steen: Distributed Systems: Principles and Paradigms" 6. Vijay K. Garg: "Concurrent and Distributed Computing in Java"
Ιστοσελίδα και Ανακοινώσεις Σύνοψη 1 ης ιάλεξης Η ιστοσελίδα του µαθήµατος ϐρίσκεται στη διεύθυνση: http: //www.ceid.upatras.gr/courses/katanemhmena/ds2/ Περιέχει: 1. ιαφάνειες των διαλέξεων 2. Συµπληρωµατικές σηµειώσεις 3. Το υλικό των ϕροντιστηρίων 4. Project και σχετικό υλικό 5. Υλικό από προηγούµενα έτη Ολες οι ανακοινώσεις ϑα γίνονται στο forum του µαθήµατος στο my.ceid.upatras.gr Θέµατα Μαθήµατος Γενικά ιαδικασία Υλικό Κατανεµηµένα Συστήµατα ΙΙ Internet of Things Project Μαθήµατος Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Ασύρµατα, Κινητά, Ενσωµατωµένα ίκτυα (1) Ασύρµατα, Κινητά, Ενσωµατωµένα ίκτυα (2) Είναι ϱεαλιστικό να περιµένουµε ότι στο µέλλον τα υπολογιστικά συστήµατα ϑα αποτελούνται απο χιλιάδες µικρές συσκευές µε υπολογιστικές ικανότητες.... ϑα ενσωµατώνονται στα αντικείµενα που χρησιµοποιούµε και µας περιβάλλουν καθηµερινά.... ϑα επεκτίνουν τις δυνατότητες των σηµερινών υπολογιστών. Υπάρχει µεγάλη ανάγκη να µελετηθούν σε ϑεωρητικό και τεχνολογικό επίπεδο. Επιµέρους ιδιότητες αυτών των δικτύων αντιµετωπίζονται µε µεγάλο ενδιαφέρον από την ερευνητική κοινότητα τα τελευταία χρόνια. Για κάθε επιµέρους δίκτυο έχουν προταθεί πλήθος αρχιτεκτονικών υλικού Οι διαθέσιµες συσκευές αν και δεν είναι µικροσκοπικές σε µέγεθος διαθέτουν ιδιαίτερα ικανοποιητικές υπολογιστικές ικανότητες ιασυνδέονται µε υπάρχοντα δίκτυα υπολογιστών υλοποιώντας το πρωτόκολλο TCP
Υπάρχουσες τεχνολογίες CrossBow MICA2/TelosB Platform picotux -- ιαστάσεις: 35mm 19mm 19mm, Επεξεργαστής: 32-bit, 55 MHz ARM 7, Μνήµη: 8 MB SDRAM, ίκτυο: 10 Mbit Wifi, Λειτουργικό: uclinux zaurus -- ιαστάσεις: 138mm 74mm 18mm, Επεξεργαστής: 32-bit, 206 MHz Intel StrongArm SA1110, Μνήµη: 64 MB SDRAM, ίκτυο: 10 Mbit Wifi / GPRS, Λειτουργικό: openzaurus Η εταιρεία Crossbow δραστηριοποιείται από το 1995 Η πλατφόρµα MICA/MICA2/TelosB είναι η ποιο διαδεδοµένη για Ασύρµατα ίκτυα Αισθητήρων Τα MICA2/TelosB είναι η 3η γενιά συσκευών Επεξεργαστής: 32 bit ATMega 128L Μνήµη: 128K Ram / 512K Flash Επικοινωνία: 2.4 GHz IEEE 802.15.4 ή 916 MHz Ενέργεια: 2 AA batteries Ε/Ε: Light, Temperature, RH, Barometric Pressure, Acceleration/Seismic, Acoustic, Magnetic... Λειτουργικό περιβάλλον: TinyOS Coalesences isense Platform SUN Small Programmable Object Technology (SPOT) Ανερχόµενη ευρωπαική πλατφόρµα για Ασύρµατα ίκτυα Αισθητήρων Τα MICA2/TelosB είναι η 3η γενιά συσκευών Επεξεργαστής: 16MHz 32bit RISC Μνήµη: 96K Ram / 128K Flash Επικοινωνία: 2.4 GHz IEEE 802.15.4 Ενέργεια: 2 AA batteries Ε/Ε: Light, Temperature, Humidity, Motion, Acceleration/Seismic, Acoustic, Magnetic... Λειτουργικό περιβάλλον: isense (C++) Το project Sun SPOT ξεκίνησε το 2004 Αφορµή ήταν το τεράστιο ενδιαφέρον της επιστηµονικής κοινότητας για τα Ασύρµατα ίκτυα Αισθητήρων Επεξεργαστής: 180 MHz 32 bit ARM920T Μνήµη: 512K Ram / 4M Flash Επικοινωνία: 2.4 GHz IEEE 802.15.4 radio Ενέργεια: 3.7V rechargeable 720 mah lithium-ion battery Ε/Ε: 3-axis accelerometer, Temperature sensor, Light sensor, 8 tri-color LEDs, 6 analog inputs, 2 momentary switches Λειτουργικό περιβάλλον: Squawk JVM
OpenMoko Neo FreeRunner (neo) Internet of Things Ανοιχτή σχεδίαση (ολα!) Ανοιχτό λογισµικό (ολα!) Επεξεργαστής: 400 MHz 32 bit ARM9 Μνήµη: 128MB SDRam / 256MB Flash / MicroSD slot Επικοινωνία: TriBand (900/1800/1900 MHz), Wi-Fi (802.11 b/g), Bluetooth 2.0, GPRS, AGPRS Ενέργεια: 1200 mah rechargable battery Ε/Ε: 3-axis accelerometer (2), 2mm audio jack, GPS, Touch Screen (2.8 VGA 480 640) Λειτουργικό: Openmoko Linux Ορισµένες Απλές Εφαρµογές Γενικά για το Project Ανάπτυξη εφαρµογών από την αρχή µέχρι το τέλος... Σχεδιασµός Ανάπτυξη / Υλοποίηση Ελεγχος / οκιµή / Επαλήθευση / Αποσφαλµάτωση Documentation / Παρουσίαση / Επίδειξη Η εφαρµογή να είναι κατανεµηµένη, να ϐασίζεται στο Internet Να υλοποιείται µε τεχνολογίες Java Προηγούµενα Ετη: Σύστηµα χρονοµίσθωσης αυτοκινήτων Ζώη., Χέλµης Χ. Σύστηµα διαχείρισης σκεπτόµενων συσκευών Γεωργίου Κ., Παπαγεωργίου Α., Παπαλουκόπουλος Γ. Σύστηµα ιαµοιρασµού Βιβλιογραφικών Αναφορών Κοντοτάσιου Ι., Μπέσσας Α. Σύστηµα ιαχείρισης ικτύων Αισθητήρων Γεράκιος Κ., Καραµπίνας., Παπαπαναγιώτου Β.
Project 2009 Ανάθεση και χρονοπρογραµµατισµός ερωτηµάτων (Queries) σε δίκτυα αισθητήρων και ελεκτών 1. Ανάθεση και χρονοπρογραµµατισµός ερωτηµάτων (Queries) σε δίκτυα αισθητήρων και ελεκτών 2. Σύστηµα ελέγχου δικτύου και εντοπισµού παρείσφρυσης (Intrusion Detection System) 3. Σύστηµα εντοπισµού ϑέσης σε εσωτερικούς χώρους µε χρήση πολλαπλών τεχνολογιών επικοινωνίας και καµερών 4. Συγχρονισµός ϱολογιών ετερογενών συσκευών µε χρήση πολλαπλών τεχνολογιών επικοινωνίας 5. Extremely Massive Multiplayer Browser-based Games 6. Computing Using Volunteer Resources (BOINC) Αισθητήρες παρακολουθούν µια συγκεκριµένη γεωγραφική περιοχή Ελεκτές χειρίζονται συσκευές ειδικού σκοπού Οι συσκευές επικοινωνούν µε ασύρµατο µέσω διάδοσης Υπάρχει µια κεντρική µοναδα το κέντρο ελέγχου Το κέντρο ελέγχου κάνει επερωτήµατα (queries) στις συσκευές για τιµές αισθητήρων Το κέντρο ελέγχου κάνει επερωτήµατα (queries) στις συσκευές για τον έλεγχο συσκευών Ανάθεση και χρονοπρογραµµατισµός ερωτηµάτων (Queries) σε δίκτυα αισθητήρων και ελεκτών Σύστηµα ελέγχου δικτύου και εντοπισµού παρείσφρυσης (Intrusion Detection System) Τα επερωτήµατα µπορει να αφορούν συγκεκριµένες συσκευές ή συσκευές µε συγκεκριµένες ιδιότητες Τα επερωτήµατα µπορεί να αφορούν περισσότερες απο µια συσκευές Τα επερωτήµατα µπορεί να απαιτούν περιοδική επανεκτέλεση τους Τα επερωτήµατα µπορεί να συνδέονται µε κάποιο γεγονός Μπορεί περισσότερες απο µια συσκευές να µπορεί να εκτελέσει ενα επερώτηµα Θέλουµε να µπορουµε να ακυρώνουµε τα επερωτήµατα Παρακολούθηση hosts δικτύου και ανίχνευση ύποπτης δραστηριότητας-εισβολών Host-based IDS Σε κάθε τρέχει ένας agent, αναλύει τα log files και παρακολουθεί για τροποποιήσεις σε αρχεία του συστήµατος
Σύστηµα ελέγχου δικτύου και εντοπισµού παρείσφρυσης (Intrusion Detection System) Σύστηµα ελέγχου δικτύου και εντοπισµού παρείσφρυσης (Intrusion Detection System) Sensors -- Παράγουν security events Console -- Ελέγχει τους sensors και παρακολουθεί τα events Engine -- Καταγράφει τα security events, παράγει alerts, πέρνει αντίµετρα. Η συµπεριφορά της Engine καθορίζεται από τα συγκεκριµένους κανόνες rules Οι agents επικοινωνούν µεταξύ τους µέσω RMI Ανταλλάσσουν security/alarm events Υποστήριξη για αποµακρυσµένη εποπτεία του δικτύου υναµική αλλαγή των rules Επέκταση της λειτουργικότητας µέσω plugins Σύστηµα εντοπισµού ϑέσης σε εσωτερικούς χώρους µε χρήση πολλαπλών τεχνολογιών επικοινωνίας και καµερών Σύστηµα εντοπισµού ϑέσης σε εσωτερικούς χώρους µε χρήση πολλαπλών τεχνολογιών επικοινωνίας και καµερών Τα συστήµατα εντοπισµού ϑέσης σε εξωτερικούς χώρους είναι πλεόν διαδεδοµένα Τα κινητά τηλέφωνα εχουν πρόσβαση σε τέτοια δίκτυα µε την χρήση ειδικών δεκτών Προσφέρουν µεγάλη ευκρίνεια µικρό περιθώριο λάθους Μεγάλο πλήθος εφαρµογών γνωστά και ως location based services/applications Σε εσωτερικούς χώρους δεν λειτουργούν οµως και εκει υπάρχει µεγάλο ενδιαφέρον για εφαρµογες Χρήση τεχνικής ραδιοφάρων συσκευές που εκπέµπουν ειδικό σήµα για τον εντοπισµό ϑέσης Χρήση πολλαπλών τέτοιων συσκευών για ϐελτίωση απόδοσης Παράλληλα µπορούµε να εγκαταστήσουµε κάµερες σε εσωτερικούς χώρους Ανάλυση εικόνας και εντοπισµός προσώπων Συνδιασµός µε ϱαδιοφάρους για περαιτέρο ϐελτίωση απόδοσης
Συγχρονισµός ϱολογιών ετερογενών συσκευών µε χρήση πολλαπλών τεχνολογιών επικοινωνίας Συγχρονισµός ϱολογιών ετερογενών συσκευών µε χρήση πολλαπλών τεχνολογιών επικοινωνίας Γνωστό πρόβληµα απο ΚΣ 1 Οι κόµβοι/διεργασίες διαθέτουν ένα τοπικό ϱολόι Οταν δύο διεργασίες ελέγξουν το ϱολόι την στιγµή t ϑέλουµε να διαβάσουν και οι δύο την τιµή t Οι συσκευές έχουν ετερογενές υλικό κάποιες έχουν πρόσβαση σε ϱολόγια χαµηλότερης ακρίβειας Ακρίβεια Η ακρίβεια του ϕυσικού ϱολογιού (επίπεδο υλικό) χαρακτηρίζεται ως προς: Ρυθµός απόκλισης (drift) -- ο ϱυθµός µε τον οποίο το ϱολόι επιβραδύνει ή επιταχύνει κατά την µέτρηση του χρόνου ιαφορά (skew) -- Η απόλυτη διαφορά C1(t) C2(t) µεταξύ των µετρήσεων δύο ϱολογιών την χρονική στιγµή t Οι συσκευές δεν συνδέονται µέσω µιας ενιαίας τεχνολογίας επικοινωνίας ιαφορετικές ταχύτητες σύνδεσης ιαφορετικοί χρόνοι απόκρισης ιαφορετικά επίπεδα σφαλµάτων Πως συγχρονίζουµε µε ακρίβεια τα ϱολόγια όλων των συσκευων του δικτύου ; Extremely Massive Multiplayer Browser-based Games Computing Using Volunteer Resources (BOINC) Τα τελευταία 10 χρόνια έχουν εµφανιστεί πολλά παιχνίδια που ϐασίζονται στη χρήση ενός browser Εχουν χαµηλές απαιτήσεις σε γραφικό περιβάλλον Εξελίσονται σε πραγµατικό χρονο Επιτρέπουν πάρα πολλούς χρήστες να παίζουν ταυτόχρονα IKARIAM -- 8,000 παίκτες ανα server TRAVIAN -- 30,000 παίκτες ανα server UTOPIA -- 100,000 παίκτες ανα server... Μπορούµε να σχεδιάσουµε ένα σύστηµα για περισσότερους πάικτες ; Πλατφόρµα που χρησιµοποιείται για την κατασκευή κατανεµηµένων εφαρµογών (π.χ. SETI) Βασίζεται στην εθελοντική συµµετοχή χρηστών σχηµατίζοντας έναν εικονικό grid computer Ενας κεντρικός server µοιράζει τα αρχεία της εφαρµογής στους client και συλλέγει τα αποτελέσµατα Υποστηρίζει ποικίλα OS ( Linux, freebsd, Windows )
Computing Using Volunteer Resources (BOINC) Σύνοψη 1 ης ιάλεξης Το shawn είναι ένας γρήγορος και επεκτάσιµος εξοµοιωτής για Ασύρµατα ίκτυα Αισθητήρων Ανάγκη για αποδοτική αξιοποίηση πολλών υπολογιστών για την εκτέλεση µιας σειράς εξοµοιώσεων (π.χ. ϑέλουµε να δούµε πόσο καλά κλιµακώνεται ένας αλγόριθµος όταν αυξάνεται το µέγεθος του δικτύου) Χρησιµοποίηση του BOINC για τον διαµοιρασµό των αναγκαίων αρχείων + παραµέτρων για την εξοµοίωση και την συλλογή των αποτελεσµάτων από τους clients Θέµατα Μαθήµατος Γενικά ιαδικασία Υλικό Κατανεµηµένα Συστήµατα ΙΙ Internet of Things Project Μαθήµατος Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Σύνοψη Μαθήµατος Βιβλιογραφία Συνοπτική παρουσίαση των τεχνολογιών που ϑα µελετηθούν Internet of Things Παρουσίαση του Projects Foundations of Adaptive Networked Societies of Tiny Artefacts (Project FRONTS) http://fronts.cti.gr SUN Spot World http://www.sunspotworld.com/ picotux -- the smallest Linux Computer in the World http://www.picotux.com/ openzaurus -- an alternative Operating System http://openzaurus.sourceforge.net/ µclinux -- Embedded Linux/Microcontroller Project http://www.uclinux.org/ Digi Connect Wi-SP http://www.digi.com/products/ externaldeviceservers/digiconnectwisp.jsp
Επόµενη ιάλεξη Επανάληψη στη JAVA Βοηθητικά Εργαλεία Ανάπτυξης Κώδικα Σχεδιαστικά Θέµατα Projects