ΚΕΦΑΛΑΙΟ 11. Εισαγωγή στον προγραμματισμό κατανεμημένων συστημάτων λογισμικού Εισαγωγή

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΚΕΦΑΛΑΙΟ 11. Εισαγωγή στον προγραμματισμό κατανεμημένων συστημάτων λογισμικού Εισαγωγή"

Transcript

1 ΚΕΦΑΛΑΙΟ 11 Εισαγωγή στον προγραμματισμό κατανεμημένων συστημάτων λογισμικού Σύνοψη Το κεφάλαιο εισάγει τον αναγνώστη στον προγραμματισμό κατανεμημένων συστημάτων λογισμικού. Στο κεφάλαιο αυτό πραγματευόμαστε το μοντέλο πελάτη-διακομιστή (client-server), το προγραμματιστικό πλαίσιο Twisted το οποίο διευκολύνει σημαντικά τον προγραμματισμό κατανεμημένων συστημάτων, και ένα παράδειγμα προγραμματισμού της πλευράς του πελάτη στο κατανεμημένο σύστημα αποθήκευσης Cassandra. Προαπαιτούμενη γνώση Η κατανόηση των εννοιών και παραδειγμάτων σε αυτό το κεφάλαιο απαιτεί βασική γνώση της γλώσσας Python και του δικτυακού προγραμματισμού, όπως αντίστοιχα παρουσιάστηκαν στα Κεφάλαια 1-8 και 10 του παρόντος συγγράμματος Εισαγωγή Ένα κατανεμημένο σύστημα ορίζεται ως ένα σύστημα στο οποίο μέρη λογισμικού που βρίσκονται σε διαφορετικούς, δικτυωμένους υπολογιστές, επικοινωνούν και συντονίζουν τις δράσεις τους μέσω ανταλλαγής μηνυμάτων (Coulouris, Dollimore, & Kindberg, 2005). Στο Κεφάλαιο 10 μελετήσαμε τρόπους επικοινωνίας πάνω από δίκτυο μέσω της διεπαφής των sockets. Ο προγραμματισμός κατανεμημένων συστημάτων με κατευθείαν χρήση sockets, ωστόσο, οδηγεί σε προγράμματα υψηλής 272 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

2 πολυπλοκότητας (όπως της Εικόνας 10.10), και άρα χρειαζόμαστε έναν ευκολότερο τρόπο. Ένα διαδεδομένο μοντέλο κατανεμημένου συστήματος είναι αυτό του πελάτη-διακομιστή (client-server). Ο προγραμματισμός αυτού του μοντέλου κατανεμημένου συστήματος γίνεται συχνά με μια διεπαφή εφαρμογής-χρήστη υψηλότερου επιπέδου από τα sockets, αυτή των απομακρυσμένων κλήσεων διαδικασιών (remote procedure calls ή RPCs) (Birrell & Nelson, 1983). Ένας σχεδιαστικός στόχος των RPCs είναι να δώσουν την αίσθηση στον προγραμματιστή ότι εκτελεί μια τοπική κλήση συνάρτησης, αφαιρώντας την ανάγκη να χειριστεί ο ίδιος την πολυπλοκότητα της αποστολής και λήψης μηνυμάτων. Αυτό το χειρίζεται εσωτερικά η υλοποίηση των RPCs, αποστέλλοντας μηνύματα αίτησης (request) και απάντησης (response) πάνω από (συνήθως) TCP/IP συνδέσεις (Εικόνα 11.1). Οι υλοποιήσεις RPC παράγουν, αυτόματα, κώδικα ο οποίος χειρίζεται την εισαγωγή/εξαγωγή παραμέτρων και αποτελεσμάτων από τα μηνύματα αυτά, ώστε να μη χρειαστεί να το κάνει αυτό ο προγραμματιστής. Ο κώδικας αυτός συχνά αναφέρεται και ως stubs (Εικόνα 11.1). Ο αρχικός σκοπός, λοιπόν, των RPCs ήταν να μπορεί να εστιάσει ο προγραμματιστής, κυρίως, στη λογική της εφαρμογής του, σαν να προγραμμάτιζε μία μη-κατανεμημένη εφαρμογή. Η φύση, όμως, ενός κατανεμημένου συστήματος καθιστά δύσκολο αυτό το έργο: Εφόσον οι υπολογιστές που τρέχουν τα client και server μέρη του συστήματος, μπορεί να καταρρεύσουν ανεξάρτητα (δηλαδή, να καταρρεύσει ο server και όχι ο client ή αντίστροφα), είναι δυνατόν η εκτέλεση ενός RPC να τερματίσει με μια εξαίρεση που μπορεί να οφείλεται σε αστοχία στο δίκτυο ή στο διακομιστή πριν ή μετά την εκτέλεση της απομακρυσμένης διαδικασίας. Στην περίπτωση κατά την οποία ο πελάτης λάβει μια εξαίρεση κατά την εκτέλεση του RPC, δεν μπορεί να είναι σίγουρος αν η αστοχία έχει συμβεί πριν ή μετά την εκτέλεση της απομακρυσμένης διαδικασίας. Οι επιλογές του πελάτη είναι είτε να υποθέσει ότι δεν εκτελέστηκε και άρα να επαναλάβει την αίτηση μέχρι να λάβει επιτυχή απάντηση ή να θεωρήσει ότι εκτελέστηκε και άρα να μην επαναλάβει την αίτηση. Στην πρώτη περίπτωση λέμε ότι η υλοποίηση RPC εκτελεί την απομακρυσμένη διαδικασία «τουλάχιστον μια φορά» (τη φορά που έλαβε την επιτυχή απάντηση αλλά πιθανώς και σε κάποιες άλλες από τις προσπάθειες που έλαβε εξαί- 273 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

3 ρεση) ενώ στη δεύτερη περίπτωση «το μέγιστο μια φορά» (αν η απομακρυσμένη συνάρτηση εκτελέστηκε στη μία αυτή προσπάθεια). Client Server User process User process Stubs Stubs TCP/IP TCP/IP RCP request RCP response Εικόνα 11.1 Λειτουργία απομακρυσμένης κλήσης διαδικασίας (RPC) στο μοντέλο πελάτηεξυπηρετητή Υλοποιήσεις των RPCs έχουν χρησιμοποιηθεί σε πολλά και σημαντικά συστήματα, όπως το Network File System (NFS), και χρησιμοποιείται σήμερα για την υλοποίηση πολλών κατανεμημένων συστημάτων, όπως το σύστημα Cassandra που πραγματευόμαστε στην Ενότητα Παρά τα σημαντικά οφέλη του μοντέλου των RPCs, εφαρμογές που απαιτούν κυρίως τη μεταφορά δεδομένων και όχι την κλήση απομακρυσμένων διαδικασιών, ιδιαίτερα αυτές που εμπλέκουν επικοινωνία εντός μιας ομάδας διεργασιών (όπως η πολυεκπομπή που είδαμε στο Κεφάλαιο 10), ταιριάζουν περισσότερο σε ένα μοντέλο ανταλλαγής μηνυμάτων. Μια τέτοια διεπαφή η οποία μπορεί να χρησιμοποιηθεί για την ανταλλαγή μηνυμάτων, με χαμηλότερη πολυπλοκότητα κώδικα από αυτήν των sockets, προσφέρεται από το πλαίσιο προγραμματισμού (programming framework) Twisted, το οποίο θα δούμε στην Ενότητα Η έννοια του προγραμματιστικού πλαισίου γενικότερα στοχεύει στην απλοποίηση του προγραμματισμού συστημάτων και της γρήγορης παραγωγής πρότυπου κώδι- 274 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

4 κα (Wayner, 2015). Ένα προγραμματιστικό πλαίσιο παρέχει υποστηρικτικό κώδικα ο οποίος μειώνει αρκετά τον κώδικα που πρέπει να παρέχει ο χρήστης, επιτρέποντας στον τελευταίο να εστιάσει στη λογική της εφαρμογής. To προγραμματιστικό πλαίσιο, συνήθως, διαχειρίζεται τον έλεγχο ροής του προγράμματος και παρέχει μια όσο το δυνατόν απλούστερη διεπαφή χρήστη-πλαισίου. Ο τρόπος επικοινωνίας με χρήση του πλαισίου Twisted είναι υψηλότερου επιπέδου από τα sockets. Μοιάζει με το μοντέλο RPC στο ότι η κλήση μιας συνάρτησης αποστολής μηνύματος στην πλευρά του πελάτη, προκαλεί αυτόματα την κλήση μιας συνάρτησης λήψης μηνύματος στην πλευρά του διακομιστή (χωρίς ο τελευταίος να χρειαστεί να καλέσει socket.recv). Διαφέρει, ωστόσο, από τα RPCs στο ότι η ανταλλαγή μηνυμάτων υλοποιείται από την εφαρμογή. Με χρήση του πλαισίου Twisted μπορεί να υλοποιηθούν σημαντικές κατανεμημένες εφαρμογές, όπως διάφορες μορφές πολυεκπομπής (Coulouris et al., 2005) Το πλαίσιο δικτυακού προγραμματισμού Twisted Το πλαίσιο προγραμματισμού Twisted υποστηρίζει το δικτυακό προγραμματισμό, με βάση τη διαχείριση γεγονότων και την ασύγχρονη κλήση μεθόδων επικοινωνίας. Κεντρικές έννοιες στο Twisted είναι ο βρόγχος γεγονότων (event loop), εντός του οποίου εκτελεί, διαρκώς, το μοναδικό νήμα εκτέλεσης, και η βασική κλάση Protocol, την οποία επεκτείνει κάθε πρωτόκολλο επιπέδου εφαρμογής (όπως το Peer το οποίο θα αναλύσουμε παρακάτω). Στην Εικόνα 11.2 βλέπουμε μια γραφική απεικόνιση των βασικών χαρακτηριστικών της χρήσης του Twisted. Η απεικόνιση αυτή εστιάζει σε χαρακτηριστικά που θα χρησιμοποιήσουμε στη συνέχεια αυτού του κεφαλαίου και όχι σε μια πλήρη παρουσίαση του Twisted (ο ενδιαφερόμενος αναγνώστης μπορεί να συμβουλευτεί τον σύνδεσμο (Twisted Matrix Labs, 2015)). Ο χαρακτηρισμός ενός μέρους ως client ή server έχει να κάνει με το ποιος ξεκίνησε πρώτος το στήσιμο της σύνδεσης καλώντας connect και ποιος αποδέχθηκε την αίτηση σύνδεσης αντίστοιχα. Μετά το στήσιμο της σύνδεσης, οι δύο πλευρές εκτελούν το βρόγχο γεγονότων. 275 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

5 Ο βρόγχος αναφέρεται και ως reactor (το αντίστοιχο module ονομάζεται twisted. internet.reactor), λόγω της φύσης λειτουργίας του, η οποία είναι να αντιδρά (react) σε εισερχόμενα γεγονότα. Ο βρόγχος γεγονότων λαμβάνει ως είσοδο γεγονότα όπως εισερχόμενα δεδομένα, αιτήσεις για στήσιμο σύνδεσης, ή ειδοποιήσεις τερματισμού σύνδεσης. Κάθε γεγονός αντιστοιχίζεται στη σύνδεση στην οποία αναφέρεται, η οποία με τη σειρά της αντιστοιχεί σε ένα αντικείμενο τύπου Protocol (ένα σε κάθε πλευρά της σύνδεσης), που με τη σειρά του συνδέεται με το αντίστοιχο αντικείμενο τύπου Protocol στην επικοινωνούσα διεργασία. Το αντικείμενο δημιουργείται κατά το στήσιμο της σύνδεσης από την κλάση-εργοστάσιο ProtocolFactory. Κάθε δικτυακή εφαρμογή (όπως oι Echo και Peer που θα δούμε στη συνέχεια) δημιουργεί μια υποκλάση της Protocol, οι κύριες μέθοδοι της οποίας είναι οι παρακάτω χειριστές (handlers) των γεγονότων: connectionmade(self): Καλείται, όταν η σύνδεση έχει στηθεί επιτυχώς. datareceived(self, data): Καλείται, όταν υπάρχουν εισερχόμενα δεδομένα. connectionlost(self, reason): Καλείται, όταν διακοπεί η σύνδεση. Επιπρόσθετα, κάθε υποκλάση της Protocol ορίζει τη μέθοδο init (self, factory, p) η οποία καλείται από την ProtocolFactory κατά τη δημιουργία του αντικειμένου. Εκτός από τις μεθόδους-χειριστές (handlers), άλλες χρήσιμες μέθοδοι που προσφέρει ο βρόγχος γεγονότων (reactor) του Twisted, και οι οποίες καλούνται απευθείας από τον κώδικα είναι: reactor.calllater(sec, method): Καλεί τη μέθοδο method (ορισμένη από το χρήστη) εντός συγκεκριμένου χρονικού διαστήματος (sec). Αυτή η συνάρτηση είναι χρήσιμη για την περιοδική εκτέλεση λειτουργιών, όπως η περιοδική αποστολή μηνυμάτων τύπου heartbeat. reactor.listentcp(port, factory): Κατ αντιστοιχία με το socket.listen που είδαμε στο Κεφάλαιο 10, η listentcp ζητά από το βρόγχο να ακούει στην πόρτα port. Όταν ολοκληρωθεί κάποια σύνδεση, δημιουργείται νέο αντικείμενο τύπου Protocol (από την κλάση ProtocolFactory (όρισμα factory)). 276 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

6 reactor.connecttcp(host, port, factory): Κατ αντιστοιχία με το socket.connect που είδαμε στο Κεφάλαιο 10, η connecttcp ζητά από το βρόγχο να ξεκινήσει μια σύνδεση προς τη διεύθυνση host και πόρτα port. Όταν ολοκληρωθεί η σύνδεση, δημιουργείται νέο αντικείμενο τύπου Protocol (από την κλάση ProtocolFactory (όρισμα factory)). Handlers (methods) twisted.internet.protocol.protocol.connectionmade() datareceived() connectionlost() <any method> code code code code Protocol Factory Protocol Determine Protocol involved Demultiplexing Event loop twisted.internet.reactor. calllater() run() listentcp() connecttcp() Event sources Incoming data Connection setup requests Connection termination requests Εικόνα 11.2 Λειτουργία του βρόγχου γεγονότων του Twisted Στην Εικόνα 11.3 θα δούμε μια πιο εκτεταμένη γραφική απεικόνιση των βασικών χαρακτηριστικών και της τυπικής λειτουργίας του client μέρους με πολλαπλές συνδέσεις. Η αποστολή δεδομένων πάνω από μια σύνδεση την οποία ενθυλακώνει αντικείμενο τύπου Protocol γίνεται μέσω της συνάρτησης transport.write(data) η οποία προσφέρεται από τη γονική κλάση Protocol. Αν ο προγραμματιστής θέλει να εξειδικεύσει τη δημιουργία αντικειμένων Protocol, τότε πρέπει να δημιουργήσει μια υποκλάση της ProtocolFactory η οποία να κάνει ακριβώς αυτό. Οι μέθοδοι που, συνήθως, χρειάζεται να υλοποιηθούν σε αυτήν την περίπτωση είναι οι: buildprotocol(self, addr): Καλείται, για να δημιουργήσει ένα εξειδικευμένο αντικείμενο τύπου Protocol. 277 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

7 startfactory(self): Καλείται, πριν ζητηθεί από το βρόγχο να ακούει σε κάποια πόρτα. Αυτή η μέθοδος καλείται μόνο μία φορά για να εκτελέσει αρχικές δράσεις, ακόμα και αν ο βρόγχος ακούει σε περισσότερες της μίας πόρτες. stopfactory(self): Καλείται, πριν ζητηθεί από το βρόγχο να σταματήσει να ακούει σε κάποια πόρτα. Αυτή η μέθοδος καλείται, συνήθως, για να απελευθερώσει πόρους. Μια υποκλάση της ProtocolFactory, την οποία το Twisted προσφέρει έτοιμη, είναι η ClientFactory η οποία παράγει αντικείμενα τύπου ClientProtocol, εξειδικευμένα για λειτουργίες τύπου client. Μέθοδοι της ClientFactory (επιπρόσθετες των παραπάνω της ProtocolFactory) είναι οι: startedconnecting(self, connector): Καλείται, όταν η διαδικασία του στησίματος μιας σύνδεσης έχει ξεκινήσει. Το πλαίσιο Twisted δεν ενθαρρύνει τη χρήση του αντικειμένου connector από τους προγραμματιστές εφαρμογών και έτσι δε θα ασχοληθούμε περαιτέρω με αυτό. clientconnectionfailed(self, connector, reason): Καλείται, όταν μια προσπάθεια για σύνδεση ήταν ανεπιτυχής. clientconnectionlost(self, connector, reason): Καλείται, όταν κάποια υπάρχουσα σύνδεση διακοπεί. Η ClientFactory συνεργάζεται με τη μέθοδο reactor.connecttcp(host, port, factory) του βρόγχου γεγονότων. Μόλις μια σύνδεση έχει στηθεί μέσω της connecttcp, καλείται η μέθοδος startedconnecting. Στη συνέχεια θα δούμε δύο παραδείγματα προγραμματισμού με χρήση του Twisted. Θα ξεκινήσουμε με ένα απλό παράδειγμα (κλάση Echo) και θα συνεχίσουμε με ένα λίγο πιο σύνθετο (κλάση Peer). 278 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

8 Network Connections (TCP) Data sent via twisted.internet.protocol.protocol.transport.write() Protocol Factory Client Protocol Event loop twisted.internet.reactor. calllater() run() listentcp() connecttcp() buildprotocol() twisted.internet.protocol.protocolfactory. twisted.internet.protocol.clientfactory. startfactory() stopfactory() startedconnecting() Event sources Incoming data Connection setup requests Connection termination requests connectionlost() connectionfailed() Εικόνα 11.3 Λειτουργία του client μέρους στο Twisted με πολλαπλές συνδέσεις Echo class Η πρώτη μας εμπειρία με το πλαίσιο προγραμματισμού Twisted θα γίνει μέσω ενός απλού παραδείγματος, του γνωστού μας Echo (McKellar, 2013). Το παράδειγμα αυτό (Εικόνα 11.4) υποδεικνύει τη χρήση των μεθόδων των Protocol και reactor για την υλοποίηση ενός διακομιστή echo 1. Ο αναγνώστης καλείται να αντιπαραβάλει τη συνοπτικότητα και απλότητα του παραδείγματος αυτού με την υλοποίηση του ίδιου διακομιστή με χρήση του select (Εικόνα 10.11) ή των βασικών μεθόδων του socket API (Εικόνα 10.1). 1 O κώδικας αυτού του κεφαλαίου έχει δοκιμαστεί με την έκδοση του Twisted. 279 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

9 Εικόνα 11.4 Echo server Το EchoProtocol υλοποιεί τις τρεις μεθόδους-χειριστές (handlers) που περιγράφηκαν νωρίτερα. Στο κυρίως σώμα του προγράμματος καλούμε τον reactor σε δύο περιπτώσεις. Κατά την πρώτη για να του ζητήσουμε να ακούει στην πόρτα 8881, περνώντας του το ProtocolFactory που θα χρησιμοποιήσουμε για τη δημιουργία αντικειμένων Protocol σε κάθε σύνδεση. Σε αυτήν την περίπτωση χρησιμοποιούμε την standard υλοποίηση του ProtocolFactory, η οποία θα παράγει αντικείμενα τύπου EchoProtocol (factory.protocol = EchoProtocol). Στη δεύτερη κλήση (twisted.internet.reactor.run()) ξεκινάμε την αέναη εκτέλεση του βρόγχου γεγονότων. Σε αυτό το παράδειγμα, εστιάσαμε στην υλοποίηση ενός απλού server. Ο αναγνώστης μπορεί να δοκιμάσει την υλοποίηση του server χρησιμοποιώντας το πρόγραμμα telnet ή ssh προς την πόρτα 8881 (McKellar, 2013). Στο επόμενο παράδειγμα θα δούμε μια πληρέστερη υλοποίηση των μερών του client και server. 280 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

10 Peer class Σε αυτήν την ενότητα θα μελετήσουμε την κλάση Peer, η οποία μπορεί να αποτελέσει δομικό λίθο για την υλοποίηση γενικότερων λειτουργιών συστημάτων κατανεμημένου λογισμικού. Η κλάση Peer μαζί με τις υποστηρικτικές κλάσεις και συναρτήσεις μπορεί να συμπεριφερθεί είτε ως πελάτης (συνδεόμενη σε ένα διακομιστή και, περιοδικά, στέλνοντας ένα μήνυμα ενημέρωσης προς αυτόν) ή ως διακομιστής (δεχόμενος τα περιοδικά μηνύματα από συνδεδεμένους πελάτες και απαντώντας σε καθένα από αυτά με μια επιβεβαίωση). Το παράδειγμα της Εικόνας 11.5 υποδεικνύει το χειρισμό των παραμέτρων εισόδου, οι οποίες είναι (α) ο τρόπος λειτουργίας της συγκεκριμένης εκτέλεσης (πελάτης (client) ή διακομιστής (server)), και (β) η IP διεύθυνση του μηχανήματος και πόρτα στην οποία θα συνδεθεί ο πελάτης. Χρησιμοποιώντας το module optparse, παίρνουμε τις παραμέτρους εισόδου σαν μια πλειάδα (args). Στη συνέχεια εξάγουμε τον τρόπο λειτουργίας (peer_type), και την IP διεύθυνση και πόρτα μέσω της συνάρτησης parse_address. 281 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

11 Εικόνα 11.5 Ορισμός παραμέτρων εισόδου Το παράδειγμα της Εικόνας 11.6 υποδεικνύει την υλοποίηση της κλάσης Peer η οποία κληρονομεί από την κλάση Protocol. Αν η εκτέλεση συμπεριφέρεται ως πελάτης, με το στήσιμο της σύνδεσης καλεί κάθε 5 λεπτά τη μέθοδο sendupdate, η οποία στέλνει το string <update> στο διακομιστή. Αν η εκτέλεση συμπεριφέρεται ως διακομιστής, σε κάθε παραλαβή του <update> απαντά (μέθοδος sendack) με μια επιβεβαίωση <Ack>. 282 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

12 Εικόνα 11.6 Κλάση Peer 283 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

13 Το παράδειγμα της Εικόνας 11.7 υποδεικνύει την υλοποίηση της κλάσης PeerFactory. Εικόνα 11.7 Κλάση PeerFactory Το παράδειγμα της Εικόνας 11.8 αποτελεί το κυρίως πρόγραμμα, το οποίο διαχωρίζει τις περιπτώσεις κατά τις οποίες η εκτέλεση προορίζεται να λειτουργήσει ως πελάτης ή ως διακομιστής. Η λειτουργία πελάτη ξεκινά τη σύνδεση προς το διακομιστή και εισέρχεται στο βρόχο γεγονότων (event loop). Η λειτουργία διακομιστή ξεκινά να ακούει σε συγκεκριμένη πόρτα (στο παράδειγμα αυτό, στην 284 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

14 πόρτα 8888) και εισέρχεται στο βρόχο γεγονότων. Από το σημείο αυτό και μετά ο χειρισμός οποιουδήποτε γεγονότος εκτελείται ως η κλήση κάποιας συνάρτησης της κλάσης Peer. Εικόνα 11.8 Κυρίως πρόγραμμα Ο αναγνώστης καλείται να πειραματιστεί με το πρόγραμμα των Εικόνων , ξεκινώντας μια εκτέλεση διακομιστή σε ένα από τα τερματικά παράθυρα και μια εκτέλεση πελάτη σε ένα άλλο. Στη συνέχεια, η εκκίνηση ενός ακόμα πελάτη θα αναδείξει το πρόβλημα της διαχείρισης περισσότερης της μιας συνδέσεων στην πλευρά του διακομιστή (δείτε σχετική άσκηση στο τέλος του κεφαλαίου). 285 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

15 11.3 Προγραμματιστική πρόσβαση στο κατανεμημένο σύστημα Cassandra Σε αυτήν την ενότητα εισάγουμε τον αναγνώστη στην προγραμματιστική πρόσβαση στο κατανεμημένο συστήματος αποθήκευσης Cassandra (Lakshman, A., & Malik, 2010). Η περιγραφή ακολουθεί την παρουσίαση επιστημονικής εργασίας των συγγραφέων (Koromilas & Magoutis, 2011) και εστιάζει στη συνοπτικότητα και ταχεία παραγωγή πρωτότυπου συστήματος που καθιστά δυνατή η χρήση της Python. Το κατανεμημένο σύστημα αποθήκευσης Apache Cassandra ανήκει σε μια σχετικά νέα κατηγορία συστημάτων (γνωστή με το όνομα NoSQL) τα οποία προσφέρουν δομημένη οργάνωση δεδομένων, ταχεία αναζήτηση μέσω ευρετηρίων, χωρίς ωστόσο να υποστηρίζουν τις πλήρεις λειτουργίες διαχείρισης δεδομένων οι οποίες είναι διαθέσιμες στις παραδοσιακές σχεσιακές βάσεις δεδομένων SQL. Η νέα αυτή κατηγορία συστημάτων δημιουργήθηκε από την ανάγκη να επιτευχθεί καλύτερη κλιμακωσιμότητα από όση είναι εφικτή στις παραδοσιακές SQL παράλληλες/κατανεμημένες βάσεις δεδομένων, μειώνοντας τη λειτουργικότητα η οποία, ωστόσο, δεν είναι πάντα απαραίτητη στις εφαρμογές τις οποίες στοχεύουν τα NoSQL συστήματα. Το σύστημα Cassandra, λοιπόν, αποτελείται από μια ομάδα κόμβων, λειτουργικά ισοδύναμων, που προσδίδουν αποθηκευτική ικανότητα στο σύστημα (Εικόνα 11.9). Οι πελάτες του συστήματος (smtpd και pop3d στην Εικόνα 11.9) μπορούν να συνδεθούν σε οποιοδήποτε κόμβο για να προσπελάσουν δεδομένα μέσω ενός απλού put/get API. Το ευρετήριο δεδομένων το οποίο χρησιμοποιεί το Cassandra, βασίζεται σε μια δομή hash η οποία υλοποιείται με μια συνάρτηση τύπου MD5 ή SHA-1 και απεικονίζει το κύριο κλειδί κάθε γραμμής δεδομένων ενός πίνακα σε έναν ή περισσότερους από τους κόμβους του συστήματος (περισσότερους του ενός όταν έχει επιλεχθεί η χρήση αντιγράφων για λόγους υψηλής απόδοσης και διαθεσιμότητας). 286 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

16 anne pete smtpd pop3d smtpd pop3d smtpd pop3d ca ssa ndra ca ssa ndra ca ssa ndra 1 2 n hash function ring Εικόνα 11.9 Δομή κατανεμημένου συστήματος Cassandra και εφαρμογής SMTP server πάνω από αυτό Στη συνέχεια θα εστιάζουμε στο μοντέλο δεδομένων του Cassandra και το σχήμα δεδομένων που σχεδιάστηκε για την εφαρμογή διακομιστή (πρωτόκολλο SMTP) πάνω από το Cassandra. Η συγκεκριμένη εφαρμογή θα αναφέρεται στη συνέχεια ως CassMail. Η βασική μονάδα δεδομένων του Cassandra είναι η στήλη (column) την οποία στη συνέχεια θα αναφέρουμε και ως block. Ένα block αποτελείται από ένα κλειδί (key) και μια τιμή (value). Μια ακολουθία από blocks (οποιοσδήποτε αριθμός από αυτά) μαζί αποτελούν μια γραμμή (row). Τα blocks σε μια γραμμή μπορούν να ταξινομηθούν με οποιοδήποτε τρόπο επιθυμεί ο χρήστης, με βάση τον τύπο του κλειδιού (για παράδειγμα, με χρονική σειρά). Κάθε γραμμή ταυτοποιείται από το δικό της ιδιαίτερο κλειδί. Μια γραμμή αντιστοιχίζεται σε έναν ή περισσότερους Cassandra κόμβους, βάσει της δομής hashing που αναφέραμε νωρίτερα. Οι γραμμές ομαδοποιούνται σε οικογένειες στηλών (column families), οι οποίες είναι έννοιες που μοιάζουν με σχεσιακούς πίνακες. Οι οικογένειες στηλών ομαδοποιούνται σε χώρους κλειδιών (keyspaces). Στην Εικόνα βλέπουμε το μοντέλο δεδομένων που σχεδιάστηκε για την αποθήκευση και αναζήτηση από ένα διακομιστή του πρωτοκόλλου SMTP. 287 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

17 Mail :Mailboxes "pete:inbox" timeuuid msg0 timeuuid msg1... "pete:outbox" timeuuid msg0 timeuuid msg1... "anne:inbox" timeuuid msg0 timeuuid msg1... "anne:outbox" timeuuid msg0 timeuuid msg1... "anne:project" timeuuid msg0 timeuuid msg :Users "pete" "inbox" "outbox"... "anne" "inbox" "outbox" "project" Εικόνα Μοντέλο δεδομένων Cassandra για τον (SMTP) εξυπηρετητή Το Cassandra, όπως τα περισσότερα αντίστοιχα κατανεμημένα συστήματα, συνοδεύονται από κάποιον πελάτη/οδηγό γραμμένο σε Python και ο οποίος προσφέρει μια προγραμματιστική διεπαφή (API) προς τις εφαρμογές. Σε αυτήν την ενότητα θα μελετήσουμε έναν τέτοιο πελάτη/οδηγό, το pycassa (pycassa Documentation, 2015). Το παράδειγμα της Εικόνας υποδεικνύει τη χρήση, μεταξύ άλλων, του smtpd module, του re (regular expression), και του pycassa. Το smtpd υλοποιεί έναν SMTP server ως μια κλάση με τις παρακάτω μεθόδους: SMTPServer(localaddr, remoteaddr): Δημιουργεί ένα αντικείμενο τύπου SMTPServer στην τοπική πόρτα localaddr, σε σύνδεση με έναν upstream SMTP relay, στην πόρτα remoteaddr. Αυτή η κλάση κληρονομεί από το asyncore.dispatcher, ένα προγενέστερο του Twisted πλαίσιο ασύγχρονου δικτυακού προγραμματισμού, με αντίστοιχο βρόχο γεγονότων (asyncore.loop()). process_message(peer, mailfrom, rcpttos, data): Αυτή η μέθοδος πρέπει να γίνει override για να επεξεργαστεί ένα μήνυμα, διαφορετικά προκαλείται εξαίρεση τύπου NotImplementedError. Η διεύθυνση του απομακρυσμένου υπολογιστή είναι peer, η διεύθυνση του αποστολέα και πα- 288 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

18 ραλήπτη είναι mailfrom και rcpttos αντίστοιχα, και data είναι ένα string που περιέχει το μήνυμα του ηλεκτρονικού ταχυδρομείου (σε RFC 2822 format). Το παράδειγμα της Εικόνας δημιουργεί έναν SMTP διακομιστή (CassSMTPServer) ο οποίος αποθηκεύει μηνύματα ηλεκτρονικού ταχυδρομείου στο Cassandra. Εικόνα Προγραμματιστική πρόσβαση πελάτη στo κατανεμημένο σύστημα Cassandra 289 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

19 11.4 Επίλογος Σε αυτό το κεφάλαιο εξετάσαμε παραδείγματα προγραμματισμού κατανεμημένων συστημάτων που ακολουθούν το μοντέλο πελάτη-διακομιστή (client-server). Ξεκινήσαμε με μια εισαγωγή στο προγραμματιστικό πλαίσιο Twisted, εξετάζοντας αρχικά τη δομή της κλάσης Echo και στη συνέχεια την κλάση Peer, η οποία μπορεί να ενσωματώσει λειτουργικότητα πελάτη ή/και διακομιστή, επιλέγοντας κατά περίπτωση δυναμικά με βάση τις παραμέτρους εισόδου. Επεκτείνοντας το παράδειγμα της κλάσης Peer, μπορεί κανείς εύκολα να δημιουργήσει πιο πλούσια λειτουργικότητα, όπως μηχανισμούς πολυεκπομπής (Άσκηση 2). Είδαμε, τέλος, ένα παράδειγμα προγραμματισμού της πλευράς του πελάτη στο κατανεμημένο σύστημα Cassandra, ένα δημοφιλές κατανεμημένο σύστημα αποθήκευσης ανοικτού πηγαίου κώδικα. Βιβλιογραφία/Αναφορές Birrell, A. D., & Nelson, B. J. (1983). Implementing Remote procedure calls. ACM SIGOPS Operating Systems Review, 17(5), 3. Coulouris, G., Dollimore, J., & Kindberg, T. (2005). Distributed systems: Concepts and Design (4th Edition). Addison-Wesley Longman, Inc. Koromilas, L., & Magoutis, K. (2011). CassMail: A scalable, highly-available, and rapidlyprototyped service. In IFIP Distributed Applications and Interoperable Systems (DAIS 2011) (pp ). Heidelberg: Springer. Lakshman, A., & Malik, P. (2010). Cassandra: a decentralized structured storage system. ACM SIGOPS Operating Systems Review, 44(2), McKellar, J. (2013). Twisted Python: The engine of your Internet. Retrieved from radar.oreilly.com/2013/04/twisted-python-the-engine-of-your-internet.html pycassa Documentation. (2015). Retrieved from pycassa/ Twisted Matrix Labs. (2015). Retrieved from Wayner, P. (2015, March 30). 7 reasons why frameworks are the new programming 290 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

20 languages. InfoWorld. Retrieved from Κριτήρια αξιολόγησης Κριτήριο αξιολόγησης 1 (Βαθμός δυσκολίας: ) Ο αναγνώστης καλείται να ξεκινήσει μια εκτέλεση εξυπηρετητή Peer σε ένα από τα τερματικά παράθυρα και μια εκτέλεση πελάτη Peer σε ένα άλλο. H εκκίνηση ενός ακόμα πελάτη αναδεικνύει την ανάγκη διαχείρισης περισσότερων της μιας συνδέσεων στην πλευρά του εξυπηρετητή, πρόβλημα το οποίο καλείστε να επιλύσετε. Κριτήριο αξιολόγησης 2 (Βαθμός δυσκολίας: ) Η άσκηση αυτή σας ζητά να υλοποιήσετε ένα μηχανισμό πολυεκπομπής (multicasting) μεταξύ ενός αποστολέα και περισσοτέρων του ενός παραληπτών με χρήση του twisted. Η πολυεκπομπή είναι μια μορφή ομαδικής επικοινωνίας κατά την οποία κάθε μήνυμα που στέλνεται από τον αποστολέα λαμβάνεται από όλα τα μέλη της ομάδας των παραληπτών. Ο αποστολέας γνωρίζει εκ των προτέρων τον αριθμό των παραληπτών (έστω Ν) και περιμένει τις αιτήσεις συνδέσεών τους. Μετά τη δημιουργία των Ν συνδέσεων 291 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

21 προχωρά στην αποστολή ενός αριθμού μηνυμάτων, ενδεχομένως με κάποια χρονική καθυστέρηση μεταξύ τους, προς την ομάδα των παραληπτών. Κριτήριο αξιολόγησης 3 (Βαθμός δυσκολίας: ) Εγκαταστήστε το Cassandra στο μηχάνημά σας, εκκινήστε το στην ελάχιστή του μορφή (με έναν κόμβο) και σε διαφορετικό τερματικό εκτελέστε το παράδειγμα της Εικόνας Έχοντας ξεκινήσει τον SMTP server, πειραματιστείτε με το συνολικό σύστημα, για παράδειγμα χρησιμοποιώντας ένα benchmark, όπως το Postal ( 292 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

ΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή

ΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή ΚΕΦΑΛΑΙΟ 10 Δικτυακός προγραμματισμός Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε το δικτυακό προγραμματισμό μέσω της αφαίρεσης των sockets. Προαπαιτούμενη γνώση Η κατανόηση των εννοιών και παραδειγμάτων

Διαβάστε περισσότερα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

Διαβάστε περισσότερα

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο Βασικές Υπηρεσίες Διαδικτύου Επικοινωνίες Δεδομένων Μάθημα 2 ο Μεταφορά αρχείων (File Transfer Protocol, FTP) user at host FTP user interface FTP client local file system file transfer FTP server remote

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών. Αρχιτεκτονικές. Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Επικοινωνία Client/Server

Επικοινωνία Client/Server Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή ΚΕΦΑΛΑΙΟ 17: Web Services 17.1. Εισαγωγή Με τον όρο WebService αναφερόμαστε σε ένα σύστημα λογισμικού το οποίο σχεδιάστηκε με τρόπο τέτοιο ώστε να υποστηρίζει την ανεμπόδιστη συνεργασία δύο μηχανών μέσω

Διαβάστε περισσότερα

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ανάδοχοι Φορέας Υλοποίησης Έργο ΛΑΕΡΤΗΣ Λογισμικό Δικτύων Οδηγίες αξιοποίησης για τον Εκπαιδευτικό Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Ανάδοχος φορέας: CONCEPTUM A.E. 1 Προσομοίωση

Διαβάστε περισσότερα

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

Διαβάστε περισσότερα

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.4 Πρωτόκολλο Μέχρι τώρα περιγράψαμε συνδέσεις, που χρησιμοποιούν το πρωτόκολλο TCP. Θυμηθείτε, ότι το TCP είναι υπεύθυνο για το τεμαχισμό των μηνυμάτων σε τμήματα και την επανασύνδεση τους στον προορισμό.

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. DICOM Επικοινωνία Γενικά

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. DICOM Επικοινωνία Γενικά Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. DICOM Επικοινωνία Γενικά Το πρότυπο DICOM δεν καθορίζει μόνο τον μορφότυπο (format) ενός αρχείου που περιέχει μία ιατρική

Διαβάστε περισσότερα

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

Διαβάστε περισσότερα

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης Δίκτυα Υπολογιστών Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή Κ. Βασιλάκης Περίγραμμα Τι είναι το διαδίκτυο Στοιχεία που το συνθέτουν Τρόποι παροχής υπηρεσιών Τι είναι τα πρωτόκολλα Τα άκρα του δικτύου

Διαβάστε περισσότερα

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ Χαρίτων Ευσταθιάδης Σοφία Γεωργιάδου Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής ΕΠΛ 425

Διαβάστε περισσότερα

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστηµάτων Πρόγραµµα Προπτυχιακών Σπουδών Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο Κατανεµηµένος Προγραµµατισµός

Διαβάστε περισσότερα

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol)

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol) Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας Κέρκυρα ίκτυα - Internet 2 Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) ΜηχανέςΑναζήτησηςστοWeb Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία

Διαβάστε περισσότερα

7.2.2 Σχέση OSI και TCP/IP

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Δίκτυα Θεωρία

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 1 1. Ποια είναι τα επίπεδα που χρησιμοποιεί το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI); i. Φυσικό Επίπεδο ii. επίπεδο Ζεύξης ή Σύνδεσης Δεδομένων iii.

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client ΕΣΔ516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client Περιεχόμενα Περιεχόμενα Η Διεπίπέδη αρχιτεκτονική (2-tier architecture) Η τριεπίπεδη αρχιτεκτονική (3-tier architecture)

Διαβάστε περισσότερα

Εξοικείωση με τις εντολές ipconfig και ping

Εξοικείωση με τις εντολές ipconfig και ping Διαχείριση Δικτύων Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Εργαστηριακή Άσκηση Εξοικείωση με τις εντολές ipconfig και ping Σημείωση : Η άσκηση αναφέρεται σε εντολές των Windows. Υπάρχουν παρόμοιες

Διαβάστε περισσότερα

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 Το δίκτυο ARPANET ήταν ένα δίκτυο μεταγωγής πακέτων που χρηματοδοτήθηκε από το υπουργείο άμυνας των Η.Π.Α. στα τέλη της δεκαετίας του '60. 2 / 26 Από την αρχή κύριος

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

Διαβάστε περισσότερα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

Διαβάστε περισσότερα

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού Μεταφορά αρχείων Πρωτόκολλο FTP Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού Είναι ανεξάρτητο του λειτουργικού συστήματος και του

Διαβάστε περισσότερα

Asset Management Software Client Module. Οδηγός χρήσης

Asset Management Software Client Module. Οδηγός χρήσης Asset Management Software Client Module Οδηγός χρήσης Μονάδα-πελάτης Kodak Asset Management Software Κατάσταση και ρυθμίσεις πόρων... 1 Μενού κατάστασης πόρων... 2 Μενού ρυθμίσεων πόρων... 3 Διαχείριση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ10: Υπηρεσίες και Εφαρμογές Διαδικτύου 10.1 Υπηρεσίες Διαδικτύου Υπηρεσίες Επικοινωνίας Ηλεκτρονικό Ταχυδρομείο (e-mail) Υπηρεσία του Διαδικτύου για διακίνηση γραπτών

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση. ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / Γ- ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 21-02- 2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α. A1. Να γράψετε το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

Διαβάστε περισσότερα

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

Epsilon Net PYLON Platform

Epsilon Net PYLON Platform Epsilon Net PYLON Platform Οδηγίες Εγκατάστασης Top 1 / 31 Περιεχόμενα 1 ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ... 3 2 ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΗΣ... 5 3 ΕΓΚΑΤΑΣΤΑΣΗ DEMO... 7 4 ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΤΥΠΗΣ ΒΑΣΗΣ... 8 4.1 Φόρτωση πρότυπης

Διαβάστε περισσότερα

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Remote Method Invocation (RMI) Εισαγωγή Η αποµακρυσµένη επίκληση µεθόδων (RMI), επιτρέπει σε

Διαβάστε περισσότερα

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ Πολυτεχνειούπολη Ακρωτηρίου, Χανιά, 73100 Τηλ.: 28210 37400 (κεντρικό), 28210 37766 (κτίριο ΜΗΠΕΡ), Fax: 28210 37571 e-mail:

Διαβάστε περισσότερα

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης Δίκτυα Υπολογιστών Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή Κ. Βασιλάκης Περίγραμμα Τι είναι το διαδίκτυο Στοιχεία που το συνθέτουν Τρόποι παροχής υπηρεσιών Τι είναι τα πρωτόκολλα Τα άκρα του δικτύου

Διαβάστε περισσότερα

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

Διαβάστε περισσότερα

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 5

Εργαστηριακή Άσκηση 5 ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2012-2013 Τάξη : B Τομέας : Πληροφορικής Μάθημα : ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-internet Εργαστηριακή Άσκηση 5 Εκπαιδευτικοί

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

Διαβάστε περισσότερα

Κεφάλαιο 1. Εγκατάσταση και Περιβάλλον του SQL Server 2014

Κεφάλαιο 1. Εγκατάσταση και Περιβάλλον του SQL Server 2014 Κεφάλαιο 1. Εγκατάσταση και Περιβάλλον του SQL Server 2014 Σύνοψη Σ αυτό το κεφάλαιο περιγράφονται τα βασικά βήματα εγκατάστασης του SQL Server. Επιπλέον, περιγράφεται ο έλεγχος που απαιτείται να γίνει,

Διαβάστε περισσότερα

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που 1 Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που μπορούμε να χρησιμοποιήσουμε σε μία JDBC εφαρμογή. Υπάρχει

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.

Διαβάστε περισσότερα

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

Διαβάστε περισσότερα

Λογισμικό Δικτύων Τετράδιο μαθητή

Λογισμικό Δικτύων Τετράδιο μαθητή Ανάδοχοι Φορέας Υλοποίησης Έργο ΛΑΕΡΤΗΣ Λογισμικό Δικτύων Τετράδιο Μαθητή Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Ανάδοχος φορέας: CONCEPTUM A.E. 1 Προσομοίωση λειτουργίας των επιπέδων

Διαβάστε περισσότερα

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

Διαβάστε περισσότερα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

Διαβάστε περισσότερα

DNS. Όλες οι άλλες υπηρεσίες του Διαδικτύου, (WWW και Email) χρησιμοποιούν το DNS

DNS. Όλες οι άλλες υπηρεσίες του Διαδικτύου, (WWW και Email) χρησιμοποιούν το DNS DNS Domain Name System (Σύστημα Ονομάτων Τομέων ή Χώρων ή Περιοχών) είναι ένα ιεραρχικό σύστημα ονοματοδοσίας του Διαδικτύου. Aντιστοιχίζει ονόματα με διευθύνσεις IP και αντίστροφα. Όλες οι άλλες υπηρεσίες

Διαβάστε περισσότερα

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Για να διεκπεραιωθεί η μεταφορά των πακέτων από την πηγή στον προορισμό μεταξύ των κόμβων του επικοινωνιακού υποδικτύου απαιτείται η

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Εισαγωγή Το μοντέλο client-server παρέχει έναν μηχανισμό δόμησης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων Unified IT services Αγ. Παρασκευής 67 15234 Χαλάνδρι http://www.uit.gr Σύστημα Αναθέσεων Σχεδιασμός Υποσυστημάτων ΕΛΛΑΚ Ημερομηνία: 7/12/2010 UIT Χαλάνδρι Αγ. Παρασκευής 67 15234 210 6835289 Unified Information

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα