Κατανεμημένα Συστήματα και Υπηρεσίες Ιστού

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

Χαρακτηριστικά και Προκλήσεις Κατανεμημένων Συστημάτων. Μοντέλα Συστημάτων (Φυσικά μοντέλα, Αρχιτεκτονικά μοντέλα, Μοντέλο αλληλεπίδρασης, Μοντέλο αστοχιών, Μοντέλο ασφάλειας). Δικτύωση και Διαδικτύωση. Διαδιεργασιακή Επικοινωνία. Απομακρυσμένη Επίκληση (Απομακρυσμένη κλήση διαδικασίας, Απομακρυσμένη επίκληση μεθόδου, Java RMI). Υποστήριξη Λειτουργικού Συστήματος (Προστασία πόρων, Διεργασίες και νήματα, Επικοινωνία και υποστήριξη απομακρυσμένης επίκλησης). Κατανεμημένα Αντικείμενα και Συνιστώσες Λογισμικού (CORBA, Enterprise JavaBeans). Υπηρεσίες Παγκόσμιου Ιστού (Βασικές έννοιες και τεχνολογίες, Περιγραφή υπηρεσιών, Αναζήτηση υπηρεσιών, Εξασφάλιση, Συντονισμός). Ομότιμα Συστήματα (Peer-to-peer systems). Χρόνος και Καθολικές Καταστάσεις (Λογικός χρόνος και λογικά ρολόγια).

 

Επιδιωκόμενα μαθησιακά αποτελέσματα

  • Κατανόηση του τι είναι ένα κατανεμημένο σύστημα, γιατί αναπτύσσουμε τέτοια συστήματα και ποια είναι τα πιθανά προβλήματα που θα πρέπει να αντιμετωπίσουμε.
  • Κατανόηση βασικών αρχιτεκτονικών μοντέλων (client/server, peer-to-peer) και τον ρόλο του ενδιάμεσου λογισμικού (middleware) στην ανάπτυξη κατανεμημένων εφαρμογών.
  • Κατανόηση μοντέλων προγραμματισμού κατανεμημένων εφαρμογών (RPC, RMI, Publish/Subscribe, Web Services)
  • Κατανόηση των αρχών συγχρονισμού ρολογιών και της ομαδικής επικοινωνίας στα κατανεμημένα συστήματα και γιατί τα παραπάνω συνιστούν θεμελιώδεις υπηρεσίες.
  • Κατανόηση της σημασίας της κλιμακωσιμότητας στα κατανεμημένα συστήματα και των βασικών τεχνικών που χρησιμοποιούνται για την επίτευξη κλιμακώσιμων υπηρεσιών.
  • Εφαρμογή των θεωρητικών γνώσεων για την ανάπτυξη σύνθετων κατανεμημένων συστημάτων χρησιμοποιώντας την τεχνολογία Java RMI και την τεχνολογία των Web Services.

 

Προαπαιτούμενα

  • Προγραμματισμός σε Java.
  • Γνώση Αγγλικής γλώσσας.

 

Εγχειρίδια του μαθήματος

  1. G. Coulouris, J. Dollimore, T. Kindberg,    G. Blair (2011). Distributed Systems Concepts and Design (5th edition). Addison-Wesley. ISBN-10: 0132143011.
  2. Journal and conference papers

 

Συμπληρωματική βιβλιογραφία

  1. Ι. Κ. Κάβουρας, Ι.Ζ. Μήλης, Γ.Β. Ξυλωμένος, Α.Α. Ρουκουνάκη, Κατανεμημένα Συστήματα με Java. Συστήματα Υπολογιστών Τόμος ΙΙΙ, 2η έκδοση (2005), Κλειδάριθμος, ISBN: 960-209-829-5.
  2. A. Tanenbaum, M. Van Steen. Distributed Systems: Principles and Paradigms, Prentice Hall Inc., ISBN 0130888931.
  3. Vijay K. Garg. Elements of Distributed Computing. John Wiley & Sons, ISBN 0471036005

 

Διδακτικές και μαθησιακές μέθοδοι

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

 

Μέθοδοι αξιολόγησης / βαθμολόγησης

Εκπόνηση εργαστηριακών ή/και πρακτικών ασκήσεων, εκπόνηση και παρουσίαση ερευνητικής εργασίας, γραπτή εξέταση (για την επιτυχία στο μάθημα απαιτείται επιτυχία σε όλες τις ως άνω εξεταστικές διαδικασίες).

 

Γλώσσα διδασκαλίας

Ελληνική ή/και Αγγλική

 

Τρόπος παράδοσης μαθήματος

Το μάθημα υλοποιείται με πρότυπες μορφές εκπαίδευσης που συνδυάζουν: (α) μαθήματα και σεμινάρια, η παρακολούθηση των οποίων είναι υποχρεωτική, απαιτώντας προσδιορισμένη από τον κανονισμό σπουδών ελάχιστη φυσική παρουσία και (β) πρότυπες (ηλεκτρονικές) διαδικασίες εκπαίδευσης/μάθησης από απόσταση