Εναρξη Μαθήµατος Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 17 Φεβρουαρίου, 2010 Αίθουσα ΑΠ7 Ο σκοπός του µαθήµατος: Τεχνικές και εργαλεία ανάπτυξης κατανεµηµένων εφαρµογών Προγραµµατισµό κατανεµηµένων εφαρµογών (distributed systems programming) Σχεδιασµός, υλοποίηση και µελέτη κατανεµηµένων εφαρµογών Το µάθηµα ϑα διεξαχθεί γύρω από δύο άξονες: Τεχνολογίες Υλοποίησης ιαλέξεις Project Τυπικά Θέµατα Project Θεωρία ιαλέξεις 2 ώρες την εβδοµάδα Τετάρτη 11:00-13:00, ΑΠ7 4 ϑεµατικές ενότητες Θέµατα Σχεδιασµού Τεχνολογίες Υλοποίησης Κατανεµηµένων Συστηµάτων Εργαλεία Ανάπτυξης Λογισµικού Ειδικές Πλατφόρµες Βαθµολογία Project -- 100% Υποχρεωτικό το 100% του τελικού ϐαθµού Πρακτικό Οµαδικό Καταγραφή Προδιαγραφών ενός Κατανεµηµένου Συστήµατος Σχεδιασµός Κατανεµηµένου Συστήµατος Μελέτη ενός προβλήµατος των ΚΣ Σχεδιασµός Κατανεµηµένου Αλγορίθµου Προγραµµατισµός / Ανάπτυξη Παρουσίαση ηµοσίευση
Απορίες Συναντήσεις Υλη Μαθήµατος Για οτιδήποτε χρειαστείτε ϑα µε ϐρείτε στο ΤΜΗΥΠ: Προκατασκευασµένα, δίπλα από γραφείο Καθ. Μεγαλοοικονόµου κατόπιν συνεννοήσεως -- 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 Αποστόλης Πυργελής -- pyrgelis@ceid.upatras.gr Ορέστης Ακριβόπουλος -- akribopo@ceid.upatras.gr Τεχνολογίες Υλοποίησης Κατανεµηµένων Συστηµάτων 1. Java Server Pages 2. Java Remote Method Invocation (RMI) 3. Java Persistance -- Hibernate 4. Spring Framework 5. Java Web Services Ειδικές Πλατφόρµες 1. Java Micro Edition (ME) 2. SUN Small Programmable Object Technology (SPOT) 3. isense 4. Google Geo API 5. 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" Η ιστοσελίδα του µαθήµατος ϐρίσκεται στη διεύθυνση: http: //www.ceid.upatras.gr/courses/katanemhmena/ds2/ Περιέχει: 1. ιαφάνειες των διαλέξεων 2. Συµπληρωµατικές σηµειώσεις 3. Το υλικό των ϕροντιστηρίων 4. Project και σχετικό υλικό 5. Υλικό από προηγούµενα έτη Ολες οι ανακοινώσεις ϑα γίνονται στο forum του µαθήµατος στο my.ceid.upatras.gr
Σύνοψη 1 ης ιάλεξης Ασύρµατα, Κινητά, Ενσωµατωµένα ίκτυα (1) Θέµατα Μαθήµατος Γενικά ιαδικασία Υλικό Είναι ϱεαλιστικό να περιµένουµε ότι στο µέλλον τα υπολογιστικά συστήµατα ϑα αποτελούνται απο χιλιάδες µικρές συσκευές µε υπολογιστικές ικανότητες.... ϑα ενσωµατώνονται στα αντικείµενα που χρησιµοποιούµε και µας περιβάλλουν καθηµερινά.... ϑα επεκτίνουν τις δυνατότητες των σηµερινών υπολογιστών. Κατανεµηµένα Συστήµατα ΙΙ Internet of Things Project Μαθήµατος Επόµενη ιάλεξη Ασύρµατα, Κινητά, Ενσωµατωµένα ίκτυα (2) CrossBow MICA2/TelosB Platform Υπάρχει µεγάλη ανάγκη να µελετηθούν σε ϑεωρητικό και τεχνολογικό επίπεδο. Επιµέρους ιδιότητες αυτών των δικτύων αντιµετωπίζονται µε µεγάλο ενδιαφέρον από την ερευνητική κοινότητα τα τελευταία χρόνια. Για κάθε επιµέρους δίκτυο έχουν προταθεί πλήθος αρχιτεκτονικών υλικού Οι διαθέσιµες συσκευές αν και δεν είναι µικροσκοπικές σε µέγεθος διαθέτουν ιδιαίτερα ικανοποιητικές υπολογιστικές ικανότητες ιασυνδέονται µε υπάρχοντα δίκτυα υπολογιστών υλοποιώντας το πρωτόκολλο TCP Η εταιρεία 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 / Παρουσίαση / Επίδειξη Publication / ηµοσίευση Η εφαρµογή να είναι κατανεµηµένη, να ϐασίζεται στο Internet Προηγούµενα Ετη Project 2010 Σύστηµα χρονοµίσθωσης αυτοκινήτων Ζώη., Χέλµης Χ. (2005-2006) Σύστηµα διαχείρισης σκεπτόµενων συσκευών Γεωργίου Κ., Παπαγεωργίου Α., Παπαλουκόπουλος Γ. (2005-2006) Σύστηµα ιαµοιρασµού Βιβλιογραφικών Αναφορών Κοντοτάσιου Ι., Μπέσσας Α. (2006-2007) Σύστηµα ιαχείρισης ικτύων Αισθητήρων Γεράκιος Κ., Καραµπίνας., Παπαπαναγιώτου Β. (2006-2007) FINN: Fun In Numbers Ακριβόπουλος Ο., Λογαράς Μ., Βασιλάκης Ν., Μπούσης., Ευσταθίου., Κουτσουρίδης Χ., Λούκας Α., Νάφας Α., Θηραιού Ε. (2007-2008) TARIFA: Traffic & Abnormalities Road Instructor For Anyone Αδάµ Γ., Γκορτσίλας., Οικονοµίδης Γ. (2008-2009) BOINC - Enforce RAM limits Αραβανής Κ., Καρσεράς Σ., ηµήτρης Λ. (2008-2009) For nothing is fun, unless you play with it...
Project 2010 Moway Robot Hunters (1/2) 1. Moway Robot Hunters 2. Συνεργατικά παιχνίδια: Εξοµοιωτής αεροπλάνου 3. ιάχυτα υπολογιστικά συστήµατα: Εικονικό καράτε 4. Πανταχού Παρόντα ίκτυα Αισθητήρων και Κοινωνική δικτύωση 5. e-money 6. Υλοποίηση κατανεµηµένων αλγορίθµων σε δίκτυα αισθητήρων Σενάριο Οµάδα από ϱοµπότ, παίζουν κλέφτες και αστυνόµους, δανειολήπτης και δανειστές, κ.ο.κ. Moway: µικρά ϱοµπότ, δυνατότητα κίνησης, αισθητήρας ϕωτός, εντοπισµός εµποδίων, ανίχνευση ίχνους στο δάπεδο. Σύνδεση Moway µε SPOTs µεσω I2C bus. Moway Robot Hunters (2/2) Συνεργατικά παιχνίδια: Εξοµοιωτής αεροπλάνου (1/2) SPOTs: Επιταχυνσιόµετρο, ϕως, ϑερµοκρασία, ϐρεαδβοαρδ, κτλ. Sun SPOT για την ασύρµατη επικοινωνία, υλοποίηση εφαρµογής και τον έλεγχο του Moway. Προγραµµατισµός σε Java. Moway για την κίνηση, εντοπισµό και αποφυγή εµποδίων, κτλ. Υλοποίηση (ϐέλτιστων) αλγορίθµων για τον εντοπισµό του δανειολήπτη Υλοποίηση (ϐέλτιστων) αλγορίθµων για την αποφυγή των δανειστών Συνδιασµός πολλαπλών αισθητήρων (Sensor data fusion) Μέτριση απόδοσης συστήµατος Μελέτη απόδοσης σε περιβάλλοντα µε εµπόδια Πολλοί παίχτες, ενδεχοµένως διαφορετικές οµάδες Οι παίχτες χρησιµοποιούν συσκευές όπως τα SPOTs Χρήση gestures για το interaction Κατενεµηµένο δίκτυο ασύρµατη επικοινωνία Συνεργασία για την επίτευξη στόχου Συντονισµός κινήσεων στο χώρο gestures αλλά και ϑέση στο χώρο / απόσταση
Συνεργατικά παιχνίδια: Εξοµοιωτής αεροπλάνου (2/2) ιάχυτα υπολογιστικά συστήµατα: Εικονικό καράτε (1/2) Body sensor networks Οµάδα από παίχτες Πηδάλιο, ουρά, ϕρένο, κτλ. Χρήση gestures για το interaction Χρήση πολλών οθονών Σύνδεση µε Google Earth Χρήση πολλαπλών αισθητήρων στον ίδιο χρήστη σε διαφορετικά σηµεία του σώµατος Παράδειγµα: πολλαπλά SPOTs για την ανίχνευση κίνησης µέσω επιταχυνσιόµετρου Πρόβληµα: επικοινωνία, συγχρονισµός, αναγνώριση ολοκληρωµένων κινήσεων ιάχυτα υπολογιστικά συστήµατα: Εικονικό καράτε (2/2) Πανταχού Παρόντα ίκτυα Αισθητήρων και Κοινωνική δικτύωση Παιχνίδι: ανίχνευση deathmatch µέσω body sensor network µε virtual/augmented reality στοιχεία Συνδυασµός συνεργατικού παιχνιδιού µε body sensor network Audiovisual στοιχεία Processing Η κοινωνική δικτύωση π.χ., µέσω Facebook, Twitter, κτλ., είναι µέρος της καθηµερινότητας πολλών από µας. Η τοπικότητα είναι επιθυµητή ιδιότητα στην πληροφορική... Συνδυασµός των παραπάνω για τη δηµιουργία µιας κατανεµηµένης εφαρµογής µε στόχο νέες δύνατότητες Αύξηση της (κοινωνικής) εντροπίας Αξιοποίηση συσκευών όπως κινητά τηλέφωνα µε bluetooth, wifi,... Εισαγωγή δεδοµένων π.χ., από facebook profile, Youtube, vimeo, etc. Χρήση προβολέων / ηχείων Συνδυασµός για την παραγωγή νέου αποτελέσµατος
e-money Ψηφιακό υποκατάστατο των ϕυσικών χρηµάτων Αναφέρεται στον ψηφιακό τρόπο αναπαράστασης των χρηµάτων ή σε κάποιο σύστηµα ηλεκτρονικής πληρωµής (Electronic Funds Transfer) Εµπεριέχονται έννοιες όπως δίκτυα υπολογιστών, internet, ψηφιακά συστήµατα αποθήκευσης αξίας Αγορά αγαθών χωρίς ϕυσική παρουσία στο κατάστηµα, ευκολία και κέρδος χρόνου, πληρωµή µέσω δικτύων υπολογιστών Εύκολη µεταφορά, κατανοµή και επεξεργασία λόγω της ψηφιακής αναπαράστασης (smart cards) Credstick (1/2) Credstick A credstick is a combination passport, keyring, credit card, checkbook, and business card. It s a small plastic cylinder tapering to a point. The blunt end houses a computer. The chip in the credstick contains the owner s System Identification Number (SIN), credit balance, financial records, and resumé, as well as passcodes for the owner As locks. (Shadowrun 2) Future Scenario : Οι πληρωµές στην καθηµερινή µας Ϲωή γίνονται µέσω κάποιας µικροσκοπικής USB συσκευής (usb stick, isense node) Στη συσκευή αποθηκεύεται ψηφιακό χρήµα και αποτελεί το πλεόν ψηφιακό µας πορτοφόλι Οµως, προκύπτουν Ϲητήµατα ασφάλειας και ιδιωτικότητας Credstick (2/2) Στη συγκεκριµένη εργασία ϑα γίνουν προσπάθειες απάντησης στα παρακάτω ϑέµατα: Ψηφιακή αναπαράσταση χρήµατος και διαιρετότητα του Ηλεκτρονικές πληρωµές Αυθεντικότητα του ψηφιακού χρήµατος Over-spending prevention : Αποτροπή αντιγραφής του ψηφιακού χρήµατος Ανωνυµία : Ενας πελάτης δε µπορεί να εντοπιστεί από τα ψηφιακά χρήµατα που ξοδεύει. Θα πρέπει όµως να υπάρχει δυνατότητα ανάκλησης της ανωνυµίας για την αποφυγή κατάχρησης του ανώνυµου ψηφιακού χρήµατος Loss-tolerance : Τι γίνεται σε περίπτωση που το ηλεκτρονικό χρήµα χαθεί ή κλαπεί Γενικότερα, ϑέµατα που σχετίζονται µε προσεκτικό σχεδιασµό συστήµατος και κρυπτογραφία Υλοποίηση κατανεµηµένων αλγορίθµων σε δίκτυα αισθητήρων Ασύρµατα δίκτυα αισθητήρων: ο παράδεισος του ϑεωρητικού computer scientist Χιλιάδες κόµβων που επικοινωνούν µεταξύ τους ασύρµατα, έχουν περιορισµένους υπολογιστικούς πόρους, κ.ο.κ. Η καλύτερη ϐάση για την εξέταση της λειτουργίας κατανεµηµένων αλγορίθµων για δροµολόγηση, data aggregation, consensus,... Υλοποίηση σε Shawn Πειραµατική αξιολόγηση σε Testbed 100+ πραγµατικών κόµβων
Χρονοδιάγραµµα ηµοσίευση Αποτελεσµάτων Φοιτητικά Συνέδρια 1. ήλωση Project 26/Φεβ/2010 2. Παρουσίαση Βασικής Ιδέας 12/Μαρ/2010 3. Παρουσίαση Demo 26/Μαρ/2010 4. Τεχνική Αναφορά (5 σελίδες) 17/Απρ/2010 5. Τελική Παρουσίαση 14/Μαι/2010 1. EUREKA! 2010: International Student Conference on Computer Engineering, Informatics, related Technologies and Applications 15-16 October 2010, Patras, Greece Deadline: 25 March (συνήθως παίρνει επέκταση για τέλος Απριλίου) 2. SWWSN 2010: 3rd Student Workshop on Wireless Sensor Networks 30-31 October 2010, Athens, Greece Deadline: 30 August ηµοσίευση Αποτελεσµάτων Εθνικά Συνέδρια ηµοσίευση Αποτελεσµάτων ιεθνή Συνέδρια 1. 14th Panhellenic Conference on Informatics 10-12 September 2010, Tripoli, Greece Deadline: 26 March (συνήθως παίρνει επέκταση για τέλος Απριλίου) 1. 13th ACM* International Conference on Modeling Analysis and Simulation of Wireless and Mobile Systems October 17-21, 2010, Bodrum, TURKEY Deadline: 25 April 2. 7-th ACM Symposium on Performance Evaluation of Wireless Ad Hoc, Sensor, and Ubiquitous Networks October 17-21, 2010, Bodrum, TURKEY Deadline: 8 June
Επόµενη ιάλεξη Επανάληψη στη JAVA Βοηθητικά Εργαλεία Ανάπτυξης Κώδικα Σχεδιαστικά Θέµατα Projects