Σύνοψη 5 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων.

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

Download "Σύνοψη 5 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων."

Transcript

1 Σύνοψη 5 ης ιάλεξης Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 16 Απριλίου, 2008 Αίθουσα ΑΠ7 Κατανεµηµένα Συστήµατα ΙΙ Επικοινωνία ιεργασιών µέσω TCP/IP Μοντέλο Πελάτη-Εξυπηρέτη Κλήση Αποµακρυσµένων ιαδικασιών Αντικειµενοστραφής Προγραµµατισµός σε JAVA Sockets Sockets στη JAVA Παράδειγµα Sockets Server Παράδειγµα Sockets Client Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Γενικά ίκτυα TCP/IP Μοντέλα Κατανεµηµένων Συστηµάτων Σύνολο Υπολογιστικών Μονάδων Σύνολο ιεργασιών ίκτυο Επικοινωνίας Αποτυπώνουν σε µεγάλο ϐαθµό τις πραγµατικές συνθήκες Υπάρχουν σηµαντικά τεχνικά ϑέµατα που παραλείπονται Ετερογένεια Υλικού: Οι Υπολογιστικές Μονάδες δεν έχουν τα ίδια τεχνικά χαρακτηριστικά Ετερογένεια Λογισµικού: Οι ιεργασίες εκτελούνται σε διαφορετικό Λειτουργικό Σύστηµα Ετερογένεια ικτύου: ιαφορετικές Τεχνολογίες Εστιάζουµε στα κατανεµηµένα συστήµατα όπου το δίκτυο επικοινωνίας υλοποιεί το πρωτόκολλο TCP/IP Μεγάλη οµάδα δικτύων Τοπικά δίκτυα Ethernet Ευρυζωνικά δίκτυα ADSL Ασύρµατα δίκτυα WLAN ιαδίκτυο -- Internet Η αρχιτεκτονική TCP/IP περιγράφει πέντε επίπεδα Οι διαφορετικές τεχνολογίες υλικού κρύβονται από τα χαµηλότερα επίπεδα Οι διαφορετικές τεχνολογίες λογισµικού κρύβονται από τα υψηλότερα επίπεδα

2 Επικοινωνία ιεργασιών Τύποι Επικοινωνίας (1) Οι διεργασίες υλοποιούν µια ουρά εισερχόµενων µηνυµάτων Η ανταλλαγή µηνυµάτων µεταξύ των διεργασιών υποστηρίζεται από δύο λειτουργίες: send, receive Ορίζονται σύµφωνα µε τον προορισµό και τον τύπο των µηνυµάτων Η επικοινωνία (ανταλλαγή δεδοµένων) διεξάγετε ως εξής: Μια διεργασία (αποστολέας) στέλνει ένα µήνυµα (ακολουθία bytes) σε κάποιο προορισµό (παραλήπτης) Κάποια άλλη διεργασία στον προορισµό παραλαµβάνει το µήνυµα Η διεργασία που στέλνει ένα µήνυµα, το τοποθετεί στην ουρά µηνυµάτων του προορισµού Η διεργασία που παραλαµβάνει ένα µήνυµα, το αφαιρεί από την τοπική ουρά Σύγχρονη επικοινωνία Οι δύο διεργασίες συγχρονίζονται σε κάθε µήνυµα Η εντολή send ακινητοποιεί την ϱοή εκτέλεσης (blocking operation) έως ότου η αντίστοιχη εντολή receive εκτελεστεί Η εντολή receive ακινητοποιεί την ϱοή εκτέλεσης (blocking operation) έως ότου παραληφθεί ένα µήνυµα Τύποι Επικοινωνίας (2) Τύποι Επικοινωνίας (3) Οι διεργασίες υλοποιούν µια ουρά εξερχόµενων µηνυµάτων Η διεργασία που στέλνει ένα µήνυµα το τοποθετεί στην τοπική ουρά Μια υποκείµενη διεργασία αναλαµβάνει να αποστείλει τα µηνύµατα που περιµένουν στην τοπική ουρά Ασύγχρονη επικοινωνία Η εντολή send δεν ακινητοποιεί την ϱοή εκτέλεσης (non-blocking operation). Η ϱοή εκτέλεσης συνεχίζει παράλληλα µε την αποστολή του µηνύµατος Η εντολή receive έχει δύο εκδοχές: 1. blocking receive -- ακινητοποιεί την ϱοή εκτέλεσης (όπως πριν) 2. non-blocking receive -- δεν ακινητοποιεί την ϱοή εκτέλεσης, αν δεν υπάρχει µήνυµα τερµατίζει (επιστρέφοντας null) Παραλλαγές της non-blocking receive Προσφέρεται δυνατότητα διακοπής της ϱοής όταν παραληφθεί ένα µήνυµα (interupt) Οταν παραληφθεί ένα µήνυµα δηµιουργείτε ένα γεγονός (event -- soft interupt) Η blocking receive µπορεί να παρακαµφθεί µε την χρήση νηµάτων (threads) Η ασύγχρονη επικοινωνία είναι πιο αποδοτική απαιτεί πιο σύνθετες υλοποιήσεις Σηµείωση: Ο όρος σύγχρονη/ασύγχρονη επικοινωνία είναι διαφορετικός από αυτόν των προηγούµενων ενοτήτων του µαθήµατος

3 Τύποι Επικοινωνίας (4) Αξιοπιστία Μεταβατική (Transient) Η πιο συνηθισµένη µορφή επικοινωνίας Υπάρχει η ιδέα της σύνδεσης, όπως στην τηλεφωνία Τα µηνύµατα παραµένουν στο σύστηµα όσο ο αποστολέας και ο παραλήπτης είναι ενεργοί (δηλ. οι διεργασίες εκτελούνται) εν προσφέρει διαχείριση σφαλµάτων Εµµένουσα (Persistent) Τα µηνύµατα παραµένουν στο σύστηµα έως ότου παραδοθούν στον παραλήπτη Ο αποστολέας µπορεί να τερµατίσει µετά την αποστολή µηνυµάτων Ο παραλήπτης λαµβάνει τα µηνύµατα όταν ενεργοποιηθεί Επιβαρύνει τις διεργασίες του συστήµατος Αξιόπιστη παράδοση το σύστηµα προσφέρει εγγύηση παράδοσης µηνυµάτων υπό την παρουσία ενός συγκεκριµένου αριθµού σφαλµάτων (εκ των προτέρων ορισµένο) Αναξιόπιστη παράδοση το σύστηµα δεν προσφέρει καµία εγγύηση παράδοσης µηνυµάτων υπό την παρουσία σφαλµάτων (έστω και µόνο ένα) Εγκυρότητα τα µηνύµατα παραδίδονται αναλλοίωτα (δεν έχει αλλάξει το περιεχόµενο τους) και µία και µόνο µία ϕορά (δεν γίνονται πολλαπλές παραδόσεις) Μερικές εφαρµογές απαιτούν τα µηνύµατα να παραδίδονται µε την ίδια σειρά µε την οποία στάλθηκαν Η παράδοση των µηνυµάτων εκτός σειράς ϑεωρείτε σφάλµα (αποτυχηµένη αποστολή) Σχήµα Επικοινωνίας request-reply Παράδειγµα Επικοινωνίας request-reply Σενάριο: Η διεργασία πελάτης στέλνει µια αίτηση σε µια αποµακρυσµένη διεργασία εξυπηρέτη Η διεργασία εξυπηρέτης επεξεργάζεται την αίτηση και δίνει µια απάντηση µε το αποτέλεσµα Μια διεργασία πελάτης µπορεί να κάνει αιτήσεις σε διαφορετικές διεργασίες εξυπηρέτες Μια διεργασία εξυπηρέτης µπορεί να δέχεται αιτήσεις από διαφορετικές διεργασίες πελάτες Μια διεργασία µπορεί να είναι ταυτόχρονα πελάτης και εξυπηρέτης Το σχήµα µας επιτρέπει να υλοποιήσουµε ένα µεγάλο εύρος υπηρεσιών 1. Σύγχρονη επικοινωνία request-reply Παράδειγµα Επικοινωνίας

4 Παράδειγµα Επικοινωνίας request-reply Παράδειγµα Επικοινωνίας Παράδειγµα Επικοινωνίας request-reply Παράδειγµα Επικοινωνίας 2. Πολλαπλοί πελάτες: Σειριακή επεξεργασία 3. Εξυπηρέτης µε 2 επεξεργαστές: Παράλληλη επεξεργασία Παράδειγµα Επικοινωνίας request-reply 4. Πολλαπλοί εξυπηρέτες: Συνεργασία εξυπηρετών Παράδειγµα Επικοινωνίας Υλοποίηση Επικοινωνίας request-reply (1) ιεργασία Πελάτη: Reply requestrepl(request r); Στέλνει την αίτηση r στον εξυπηρέτη Περιµένει απάντηση -- blocking Επιστρέφει την απάντηση του εξυπηρέτη ιεργασία Εξυπηρέτη: Request req = getrequest(); οµή Λογισµικού Επιστρέφει την επόµενη αίτηση -- blocking Reply rep = exec("application %1", req); Εκτέλεση εφαρµογής µε παράµετρο την αίτηση req void sendreply(reply rep); Επιστρέφει την απάντηση rep

5 Υλοποίηση Επικοινωνίας request-reply (2) Παρουσία Σφαλµάτων Η διεργασία εξυπηρέτης εκτελεί την εφαρµογή για κάθε αίτηση Κόστος ηµιουργίας νέας διεργασίας (εκτέλεση εφαρµογής) Κόστος ιαχείρισης πολλαπλών εκτελέσεων αντιστοίχηση αποτελεσµάτων µε αιτήσεις Εναλλακτικός Τρόπος: Η διεργασία του εξυπηρέτη προσφέρει την δυνατότητα επέκτασης εγκατάσταση νέων λειτουργιών (προσθήκη νέας συνάρτησης/διαδικασίας) Η επεξεργασία των αιτηµάτων γίνεται εσωτερικά Η διαδικασία παραλαβής αιτηµάτων, επεξεργασίας και αποστολής απαντήσεων µπορεί να σειριοποιηθεί Σφάλµατα Επικοινωνίας Υλοποίηση µηνυµάτων επιβεβαίωσης (ack) Σφάλµατα στον Εξυπηρέτη Η εφαρµογή δεν ολοκληρώνει την επεξεργασία Ορφανές αιτήσεις Σφάλµατα στον Πελάτη Η διεργασία σταµατάει πριν λάβει την απάντηση Ορφανές απαντήσεις Ακύρωση αιτήσεων (µετά από χρονικό διάστηµα) Ποιότητα Επεξεργασίας Αιτήσεων (1) Ποιότητα Επεξεργασίας Αιτήσεων (2) Το πολύ µία (at-most-once) -- η λειτουργία ίσως εκτελεσθεί το πολύ µια ϕορά, υπάρχει περίπτωση να µην εκτελεσθεί καθόλου Ο πελάτης ϑέτει ένα χρονικό περιθώριο αναµονής µετά ϑεωρεί την αίτηση αποτυχηµένη και σταµατά Επαναλαµβάνει την αίτηση έως ότου λάβει την απάντηση Ο εξυπηρέτης µπορεί να λάβει πολλαπλά αντίγραφα της ίδιας αίτησης υπάρχει µηχανισµός εντοπισµού Οταν ολοκληρωθεί η επεξεργασία τα αντίγραφα διαγράφονται Τουλάχιστον µια (at-least-once) -- η λειτουργία ϑα εκτελεσθεί τουλάχιστον µια ϕορά, αλλά µπορεί να εκτελεσθεί και περισσότερες εν υπάρχει µηχανισµός εντοπισµού διπλών αιτήσεων Ακριβός µια (exactly-once) -- η λειτουργία ϑα εκτελεσθεί µια µόνο ϕορά Υπάρχει µηχανισµός εµµένουσας αποθήκευσης, π.χ. τοπικός αποθηκευτικός χώρος Επανεξέταση των αιτήσεων µετά την ανάκαµψη από το σφάλµα Υπάρχει µηχανισµός εντοπισµού των αντιγράφων µιας αίτησης για εγγύηση µοναδικής (ορθής) εκτέλεσης ιπλές Μηχανισµός Μηχανισµός Ποιότητα Αιτήσεις Εντοπισµού Αποθήκευσης Το πολύ µία Ναι Ναι Οχι Τουλάχιστον µια Ναι Οχι Οχι Ακριβός µια Οχι Ναι Ναι

6 Παράδειγµα Πρωτοκόλλου request-reply: HTTP Σύστηµα πολλών επιπέδων (multi-tier) ιεργασία Πελάτη Εφαρµογή πλοήγησης (π.χ. Firefox) Η αίτηση αφορά την ανάκτηση µιας σελίδας (Get Request) Η αίτηση αφορά την αποστολή στοιχείων (Post Request) ιεργασία Εξυπηρέτη ιακοµιστής σελίδων (π.χ. Apache) Η απάντηση αποτελείτε από το περιεχόµενο της σελίδας Η απάντηση έχει σχέση µε την επεξεργασία των στοιχείων Σύγχρονη Επικοινωνία ο πελάτης περιµένει την απάντηση Μεταβατική Επικοινωνία ο πελάτης δηµιουργεί µια νέα σύνδεση για κάθε αίτηση Λογική επέκταση του µοντέλου πελάτη-εξυπηρέτη Χωρίζουµε την λειτουργικότητα σε ανεξάρτητα τµήµατα Κάθε τµήµα αναθέτετε σε διαφορετικό εξυπηρέτη (tier) Μια αίτηση µπορεί να απασχολήσει πολλούς εξυπηρέτες Αλυσιδωτές αιτήσεις κατά µήκος των διαφορετικών τµηµάτων Παράδειγµα Multi-tier Συστήµατος Παράδειγµα Multi-tier Συστήµατος Ατοµικότητα ιεργασία Πελάτη ίδιο µε πρωτόκολλο HTTP Οµάδα Εξυπηρετών 1. ιακοµιστής σελίδων (π.χ. Apache) 2. Επεξεργαστής προγραµµάτων (π.χ. PHP, JSP, Servlets) 3. Βάση εδοµένων (π.χ. MySQL, Postgres, Oracle,...) υναµικό περιεχόµενο σελίδων Επεξεργασία αίτησης πελάτη από το 1 o επίπεδο προώθηση στο 2 o επίπεδο Προετοιµασία περιεχοµένου στο 2 o επίπεδο Ανάκτηση πληροφοριών από το 3 o επίπεδο Ευρέως διαδεδοµένο µοντέλο για την αποδοτική υλοποίηση web εφαρµογών (υψηλή κλιµάκωση) Η αίτηση του πελάτη µπορεί να διασπαστεί σε επιµέρους υπο-αιτήµατα Κάθε υπο-αίτηµα διεκπεραιώνεται από διαφορετικό εξυπηρέτη Ατοµικότητα Είτε ϑα εκτελεσθούν όλα τα υπο-αιτήµατα, είτε κανένα από αυτά Εξασφάλιση ακεραιότητας συστήµατος σε περίπτωση σφαλµάτων στα επιµέρους τµήµατα του συστήµατος Παράδειγµα Πολλαπλών Αιτήσεων

7 Παράδειγµα Ατοµικότητας Αιτήσεων Ασύγχρονη Επικοινωνία request-reply (1) ιεργασία Πελάτη ίδιο µε πρωτόκολλο HTTP Οµάδα Εξυπηρετών ίδιο µε σύστηµα Multi-tier ιεκπεραίωση Αιτήµατος Επεξεργασία αίτησης πελάτη από το 1 o επίπεδο προώθηση στο 2 o επίπεδο Προετοιµασία περιεχοµένου στο 2 o επίπεδο Ενηµέρωσης ϐάσης δεδοµένων (3 o επίπεδο) σε πολλαπλά σηµεία -- multiple SQL insert/update/delete queries Αν ένα SQL query αποτύχει (π.χ. ελλιπής στοιχεία) όλα τα queries ακυρώνονται ( roll-back ) Πρόβληµα επικύρωσης δοσοληψιών Συναίνεση υπό την παρουσία σφαλµάτων Το µπλοκάρισµα της διεργασίας του πελάτη δεν είναι πάντα επιθυµητό Υπάρχουν κλήσεις που δεν επιστρέφουν κάποιο αποτέλεσµα Ο πελάτης πραγµατοποιεί µια κλήση και συνεχίζει την ϱοή εκτέλεσης Οταν ολοκληρωθεί η αίτηση, το αποτέλεσµα αποθηκεύεται στη τοπική, προσωρινή µνήµη Παράδειγµα Ασύγχρονης Επικοινωνίας Ασύγχρονη Επικοινωνία request-reply (2) Κλήση Αποµακρυσµένων ιαδικασιών RPC (1) Το ενδιάµεσο λογισµικό επικοινωνίας προσφέρει ασύγχρονες υπηρεσίες µε την χρήση νηµάτων Η διεργασίας του πελάτη συνεχίζει την ϱοή εκτέλεσης και συλλέγει την απάντηση αργότερα ή καθόλου Ο προγραµµατιστής δεν χρειάζεται να υλοποιήσει µε ειδικό τρόπο τον κώδικα Και στις δύο περιπτώσεις η διεργασία του εξυπηρέτη παραµένει ίδια Παράδειγµα Ασύγχρονης Επικοινωνίας Ακολουθεί το σχήµα επικοινωνίας Request-Reply Μοντέλο Πελάτη - Εξυπηρέτη Ειδικά προσαρµοσµένο και ενσωµατωµένο στο επίπεδο της γλώσσας προγραµµατισµού Ο προγραµµατιστής χειρίζεται την αποµακρυσµένη κλήση ως µια απλή κλήση µιας τοπικής διαδικασίας εν εµπλέκεται σε ϑέµατα αίτησης/απάντησης Με µεγάλη ευκολία µια τοπική διαδικασία µπορεί να µετατραπεί σε αποµακρυσµένη ιαφάνεια πρόσβασης Ευκολία χρήσης Γρήγορη ανάπτυξη εφαρµογών Λιγότερα λάθη

8 Κλήση Αποµακρυσµένων ιαδικασιών RPC (2) Κλήση Αποµακρυσµένων ιαδικασιών RPC (3) Κατά την µεταγλώττιση του προγράµµατος, εισάγεται µια σειρά λειτουργιών που υλοποιούν την υποκείµενη επικοινωνία Το Ενδιάµεσο Λογισµικό Επικοινωνίας ενσωµατώνεται στην εφαρµογή RPC Runtime -- Το ενδιάµεσο λογισµικό που υλοποιεί το πρωτόκολλο request-reply ως προς την ανταλλαγή αιτήσεων και απαντήσεων Client Stub -- Το ενδιάµεσο επίπεδο σύνδεσης του κώδικα της διεργασίας του πελάτη µε το RPC Runtime ηµιουργεί τις αιτήσεις σύµφωνα µε τις παραµέτρους της κλήσης της διαδικασίας αποστολή µέσω δικτύου Επεξεργάζεται τις απαντήσεις του εξυπηρέτη και επιστέφει τις αντίστοιχες µεταβλητές παραλαβή µέσω δικτύου Server Stub -- Το ενδιάµεσο επίπεδο σύνδεσης του κώδικα της διεργασίας του εξυπηρέτη µε το RPC Runtime Επεξεργάζεται την αίτηση και καλεί την διαδικασία µε τις δοσµένες παραµέτρους παραλαβή µέσω δικτύου ηµιουργεί τις απαντήσεις σύµφωνα µε τις τιµές που επιστρέφει η διαδικασία αποστολή µέσω δικτύου Το RPC Runtime προσφέρεται από την γλώσσα προγραµµατισµού Τα Client και Server Stubs παράγονται αυτόµατα µέσω ειδικών εργαλείων (stub generators) µε ϐάση τον κώδικα των διεργασιών πελάτη - εξυπηρέτη Η αποµακρυσµένη κλήση υλοποιείτε µε 2 κλήσεις: Μια κλήση στο Client Stub Μια κλήση στο Server Stub Παράδειγµα Αποµακρυσµένης Κλήσης ιαδικασίας Υποστήριξη ιαφορετικών Γλωσσών (1) 1. (Πελάτης) Τοπική Κλήση 2. (Client Stub) Πακετάρισµα παραµέτρων 3. (Λειτουργικό) Αποστολή αίτησης 4. (Λειτουργικό) Παραλαβή αίτησης 5. (Server Stub) Ξεπακετάρισµα 6. (Εξυπηρέτης) Εκτέλεση διαδικασίας 7. (Server Stub) Πακετάρισµα απάντησης 8. (Λειτουργικό) Αποστολή απάντησης 9. (Λειτουργικό) Παραλαβή απάντησης 10. (Client Stub) Ξεπακετάρισµα 11. (Πελάτης) Επιστροφή από Κλήση Ροή Εκτέλεσης υνατότητα χρήσης διαφορετικής γλώσσας προγραµµατισµού για την διεργασία πελάτη και την διεργασία εξυπηρέτη Ετερογένεια υλικού εν υπάρχει κοινή γλώσσα (π.χ. διεργασία πελάτη είναι ενσωµατωµένη σε συσκευή περιορισµένων δυνατοτήτων) Σχεδιαστικοί λόγοι Χρήση διαφορετικής γλώσσας για το επίπεδο της διεπαφής µε τον χρήστη (διεργασία πελάτη) και το επίπεδο της επεξεργασίας (διεργασία εξυπηρέτη) Γλώσσα Ορισµού ιεπαφών IDL Τυποποιηµένη περιγραφή των παραµέτρων των διαδικασιών Ανεξάρτητη από την γλώσσα προγραµµατισµού Ανεξάρτητη από το λειτουργικό σύστηµα / υλικό

9 Υποστήριξη ιαφορετικών Γλωσσών (2) Οι γλώσσες προγραµµατισµού υποστηρίζουν την IDL προσφέροντας προσαρµοστές (adapters) µέσω των οποίων κατασκευάζονται τα client και server stubs που συνδέουν τον υπόλοιπο κώδικα µε τον ενδιάµεσο λογισµικό επικοινωνίας Κατά την εκτέλεση του κώδικα IDL παράγεται ο κώδικας για την γλώσσα προγραµµατισµού που επιθυµούµε να χρησιµοποιήσουµε Ο κώδικας της διεργασίας (πελάτη ή εξυπηρέτη) αφού µεταγλωττιστεί, συνδέεται (linking) µε τα client και server stubs που δηµιούργησε η IDL Η IDL υποστηρίζεται από όλα τα διαδεδοµένα λειτουργικά συστήµατα Sun XDR -- για το SunOS DCE IDL -- για SunOS, Windows, Linux, Mac,... ιευθέτηση Παραµέτρων -- Marshaling (1) Η µεταφορά των παραµέτρων κλήσης µιας διαδικασίας είναι απλή όταν πρόκειται για έναν ακέραιο για ένα string? Πως µεταφέρονται σύνθετοι τύποι µεταβλητών; πίνακας, λίστα, διάνυσµα,... Ακόµα και για του ακέραιους δεν είναι ξεκάθαρο 1. Pentium -- αποστολή {5, JILL 2. SPARC -- διαβάζει λάθος ακέραιο και σωστό string 3. SPARC -- µε αντιστροφή bytes διαβάζει σωστό ακέραιο αλλά ανάποδο string ιευθέτηση Παραµέτρων -- Marshaling (2) Κατανεµηµένο Περιβάλλον Επεξεργασίας DCE Οι διαφορετικές αρχιτεκτονικές χειρίζονται διαφορετικά τις µεταβλητές Κατά την µεταφορά πρέπει να υπάρχει ενηµέρωση για τον τύπο της µεταβλητής Συµφωνία για την µορφή των τύπων µεταβλητών Παρόµοιος τρόπος µε Java Serialization εν µπορούµε να µεταφέρουµε δείκτες Ολες οι µεταβλητές µεταφέρονται κατά τιµή (by value) Υλοποίηση του Συστήµατος Αποµακρυσµένης Κλήσης ιαδικασίας Αρχικά σχεδιάστηκε για κατανεµηµένα συστήµατα ϐασισµένα στο Unix Πλέον υποστηρίζει διαφορετικά λειτουργικά συστήµατα: Unix, Windows, Mac,... Χρησιµοποιεί ένα κλασικό µοντέλο πελάτη-εξυπηρέτη οι διαθέσιµες υπηρεσίες παρέχονται είτε από το ίδιο το DCE είτε από ξεχωριστές εφαρµογές Υποστηρίζει εγγυήσεις at-most-once και at-least-once

10 Παράδειγµα Χρήσης DCE Ανοιχτός ικτυακός Υπολογισµός ONC Παράδειγµα Χρήσης DCE Υλοποίηση του Συστήµατος Αποµακρυσµένης Κλήσης ιαδικασίας Σχεδιάστηκε για το Sun OS Γνωστό και ως Sun RPC Αντικαταστήθηκε από το DCE που είναι συµβατό και µε άλλα λειτουργικά Απλός τρόπος χρήσης ενδιάµεσο λογισµικό Οι λειτουργίες RPC υλοποιούνται ως ξεχωριστή ϐιβλιοθήκη Παράδειγµα Χρήσης ONC (1) Παράδειγµα Χρήσης ONC Παράδειγµα Χρήσης ONC (2) demo.x #in struct add3_params{ int i, j, k; ; program DEMO { version DEMOVERS1 { int ADD3(add3_params) = 1; int MYABS(int) = 2; = 1; = 0x c;

11 Παράδειγµα Χρήσης ONC (3) demo.h #include <rpc/rpc.h> struct add3_params{ int i, j, k; ; typedef struct add3_params add3_params; #define DEMO ((unsigned long)(0x c)) #define DEMOVERS1 ((unsigned long)(1)) #define ADD3 ((unsigned long)(1)) extern int * add3_1(); #define MYABS ((unsigned long)(2)) extern int * myabs_1(); extern int demo_1_freeresult(); extern bool_t xdr_add3_params(); Παράδειγµα Χρήσης ONC (4) demo_funcs.x #include "demo.h" int *add3_1(add3_params *in) { static int result; result = in->i + in->j + in->k; return &result; int *myabs_1(int *in) { static int result; result = (*in < 0)? -*in : *in; return &result; Παράδειγµα Χρήσης ONC (5) Παράδειγµα Χρήσης ONC (6) demo_main.x (1) #include <stdio.h> #include "demo.h" main(int argc, char *argv[]) { CLIENT *cl; int abs_arg *result1, *result2; add3_params add3_arg; if ((cl = clnt_create(" ", DEMO, DEMOVERS1, "tcp")) == NULL) { clnt_pcreateerror(" "); exit(1); demo_main.x (2) add3_arg.i = argv[1]; add3_arg.j = argv[2]; add3_arg.k = argv[3]; result1 = add3_1(&add3_arg, cl); if (result == null) { clnt_perror(cl, " "); exit(2); printf("sum is %d\n", *result1);

12 Παράδειγµα Χρήσης ONC (7) ιαφάνεια Πρόσβασης (1) demo_main.x (3) result2 = myabs_1(*result1, cl); if (result == null) { clnt_perror(cl, " "); exit(3); printf("abs value is %d\n", *result2); xdr_free(xdr_int, result1); xdr_free(xdr_int, result2); Η υπολογιστική µονάδα όπου εκτελείτε η διεργασία του εξυπηρέτη δεν έχει σταθερή διεύθυνση στο δίκτυο (IP address) ή δεν είναι εκ των προτέρων γνωστή Binding -- Ο πελάτης πρέπει να εντοπίσει και να συνδεθεί µε τον εξυπηρέτη δυναµικά κατά την διάρκεια της εκτέλεσης Η υλοποίηση της διαδικασίας εντοπισµού και σύνδεσης συνήθως γίνεται µε την χρήση µιας υπηρεσίας καταλόγου εναλλακτικά µπορεί να υλοποιηθεί κάποια µέθοδος ανακάλυψης / εντοπισµού Η υπηρεσία εντοπισµού δεν είναι κρυµµένη από το ενδιάµεσο λογισµικό επικοινωνίας π.χ. χρησιµοποιούνται ειδικές κλήσεις µέσω των οποίων γίνεται το binding εν επιτυγχάνεται πλήρης διαφάνεια τοποθεσίας και πρόσβασης σε επίπεδο εφαρµογής ιαφάνεια Πρόσβασης (2) ιαφάνεια Πρόσβασης (3) Σε επίπεδο προγραµµατισµού δεν µπορούµε να περάσουµε ως παράµετρο έναν δείκτη σε µία ϑέση µνήµης Μια αποµακρυσµένη κλήση µπορεί να αποτύχει λόγω παρουσίας σφαλµάτων στην επικοινωνία, στον εξυπηρέτη, σφάλµατος binding, κλπ. Είναι απαραίτητο να οριστούν κατάλληλες συµβάσεις για την επιστροφή κωδικών σφάλµατος Ερχεται σε αντίθεση µε την επιθυµία να υπάρχει διαφάνεια πρόσβασης Μια αποµακρυσµένη κλήση διαδικασίας µοιάζει µε τοπική κλήση δεν είναι όµως ακριβώς ίδια Παράδειγµα Εντοπισµού Εξυπηρέτη στο DCE

13 Απόδοση Σύνοψη 5 ης ιάλεξης Η κλήση µιας τοπικής, κενής, διαδικασίας (null invocation) χωρίς παραµέτρους: Λιγότερο από 1µs Η κλήση µιας αποµακρυσµένης, κενής, διαδικασίας (null invocation) χωρίς παραµέτρους, µεταξύ δύο υπολογιστών που είναι συνδεδεµένοι από ένα δίκτυο: Για απ ευθείας σύνδεση των υπολογιστών µε την χρήση Ethernet 100 Mbps -- 1ms 10k ϕορές περισσότερο! Καθυστέρηση προκύπτει και από το ενδιάµεσο λογισµικό επικοινωνίας (π.χ. πακετάρισµα, δηµιουργία αίτησης, κλπ.) Καθυστέρηση προκύπτει και από το λειτουργικό σύστηµα (π.χ. πρωτόκολλα µεταφοράς, αντιγραφή παραµέτρων, κλπ.) Κατανεµηµένα Συστήµατα ΙΙ Επικοινωνία ιεργασιών µέσω TCP/IP Μοντέλο Πελάτη-Εξυπηρέτη Κλήση Αποµακρυσµένων ιαδικασιών Αντικειµενοστραφής Προγραµµατισµός σε JAVA Sockets Sockets στη JAVA Παράδειγµα Sockets Server Παράδειγµα Sockets Client Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Sockets στη JAVA Ο καθιεροµένος τρόπος επικοινωνίας µε µηνύµατα Μπορεί να υλοποιήσει είτε σύγχρονες είτε ασύγχρονες µεταφορές δεδοµένων Είναι η βασικότερη τεχνολογία υλοποίησης Χαµηλότερο επίπεδο από τις υπόλοιπες τεχνολογίες, π.χ. RMI, CORBA Χαρακτηρίζεται ως η assembly του TCP/IP Σε αναλογία µε την assembly -- τα προγράµµατα που ϐασίζονται στα Sockets προσφέρουν καλύτερες επιδόσεις ως προς την ταχύτητα συνδεσης, µετάδοσης, κλπ. Προσφερουν δεν είναι όµως πάντα έτσι Μερικά προγράµµατα σε assembly χρησιµοποιούν όση µνήµη χρειάζεται ένα πρόγραµµα σε άλλη γλώσσα και είναι εξίσου αργά (ή σχεδόν το ίδιο) Με τον ίδιο τρόπο ένα πρόγραµµα που χρησιµοποιεί απέυθίας Sockets µπορεί να έχει τις ίδιες επιδώσεις µε ένα πρόγραµµα RMI Θέµατα Σχεδιασµού µε Sockets Ακόµα και αν δεν είµαστε ϐέβαιοι για τα πλεονεκτήµατα των Sockets -- µπορούµε να εκτιµήσουµε το κόστος Η υλοποίηση µε Sockets είναι σχεδόν πάντα πιό δύσκολη και έχει µεγαλύτερο κόστος σε σχέση µε τις τεχνολογίες υψηλότερου επιπέδου Αν δεν µεταφέρουµε απλά στοιχεία (ASCII) Αν χρειάζεται να αντιµετωπίσουµε πολλά σφάλµατα Αν πρέπει να χρησιµοποιεί πολλαπλούς servers Αν υπάρχουν απαιτήσεις σε ασφάλεια / κρυπτογραφεία Ο κεντρικός στόχος δεν είναι µια αποδοτική υλοποίηση Μπορεί να επιτευχθεί µε την χρήση ισχυρότερων µηχανηµάτων Ο στόχος είναι να καλύψουµε τις προδιαγραφές Βελτίωση στην απόδοση δεν γίνεται ποτέ εκ των προτέρων

14 Η κλάση URL Αν ϑέλουµε να µεταφέρουµε δεδοµένα προς µία κατεύθυνση, µπορούµε να χρησιµοποιήσουµε το προτώκολλο HTTP public URL(String url) throws MalformedURLException URL up = new URL(" boolean equals(object x) -- ελέγχει την ισότητα µεταξύ αντικειµένων URL String gethost() -- επιστρέφει το κοµµάτι που αντιστοιχεί στο host -- String getfile() -- επιστρέφει το κοµµάτι που αντιστοιχεί στη σελίδα -- index.html int getport() -- επιστρέφει το κοµµάτι που αντιστοιχεί στην πόρτα/θύρα InputStream openstream() -- επιστρέφει µια ϱοή που αντιστοιχεί στη σελίδα Η κλάση Socket Η κλάση InetAddress Αντιπροσωπεύει την διεύθυνση ενός υπολογιστή Χρησιµοποιήτε από τις κλάσεις Socket και DatagramPacket Η κλάση δεν έχει constructor -- προσφέρει 3 static µεθόδους InetAddress getlocalhost() -- η διεύθυνση του τοπικού µηχανήµατος InetAddress getbyname(string host) -- η διεύθυνση του µηχανήµατος host getbyname(" InetAddress [] getallbyname(string host) -- ένα πίνακα µε όλες τις διεύθυνσεις του µηχανήµατος host στην περίπτωση που έχει πολλαπλές συνδέσεις Ολες οι µεθόδοι δηµιουργούν ένα UnknownHostException αν η διεύθυνση δεν είναι σωστή Η κλάση ServerSocket Μια µονάδα συνδεδεµένη στο ιαδίκτυο έχει ένα σύνολο από local ports -- ένας προορισµός µηνυµάτων στο εσωτερικό της υπολογιστικής µονάδας, ορίζεται από έναν ακέραιο Η κλάση socket συνδέετε σε µία port και προσφέρει µεθόδους για την αποστολή/παραλλαβή µηνυµάτων προς/από την αποµακρυσµένη µονάδα Socket(String host, int port) Socket(InetAddress address, int port) Εφόσον δηµιουργηθεί το αντικείµενο, µε τη µέθοδο getinputstream() δηµιουργούµε ένα αντικείµενο τύπου InputStream Με τη µέθοδο getoutputstream() δηµιουργούµε ένα αντικείµενο τύπου OutputStream Η κλάση Socket υλοποιεί µία local port και προσφέρει µεθόδους για την αποστολή/παραλλαβή µηνυµάτων ServerSocket(int port) Αν η local port είναι δεσµευµένη δηµιουργήται ένα IOException Οταν µια αποµακρύσµένη µονάδα επιχυρίσει να συνδεθεί η local port η µέθοδος accept() δηµιουργεί ένα αντικείµενο Socket Μέσω του νέου αντικειµένου Socket πραγµατοποιείτε η επικοινωνία µε την αποµακρυσµένη µονάδα

15 Επικοινωνία µε Sockets Επεκτείνουµε την συνιστόσα Socket για να µπορούµε να µεταφέρουµε αντικείµενα (SuperSocket) Χρησιµοποιούµε τις συνιστόσες ObjectInputStream και ObjectOutputStream για την σειριοποίηση των αντικειµένων Για την αποφυγή προβληµάτων µε την µεταφορά αντικειµένων µέσω ενός Socket κάνουµε µια ακόµα µετατροπή Χρησιµοποιούµε τις συνιστόσες ByteInputStream και ByteOutputStream για την µετάδοση των (σειριοποιηµένων) αντικειµένων υπο την µορφή ϱεύµατος από byte Συνιστώσα SuperSocket public class SuperSocket { Socket m_sock; DataInputStream m_in; DataOutputStream m_out; public SuperSocket(String host, int port) throws UnknownHostException, IOException { this(new Socket(host, port)); public SuperSocket(Socket s) throws UnknownHostException, IOException { m_sock = s; m_in=new DataInputStream(m_sock.getInputStream()) m_out=new DataOutputStream(m_sock.getOutputStream Συνιστώσα SuperSocket public void writevector(vector x) throws IOException { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bytes); out.writeobject(x); byte [] buffer = bytes.tobytearray(); out.close(); m_out.writeint(buffer.length); m_out.write(buffer); Συνιστώσα SuperSocket public Vector readvector() throws IOException, ClassNotFoundException { int n = m_in.readint(); byte [] buffer = new byte[n]; theinput.read(buffer); ByteArrayInputStream bytes = new ByteArrayInputStream(buffer); ObjectInputStream in = new ObjectInputStream(bytes); Object x = in.readobject(); in.close(); return (Vector) x;

16 Παράδειγµα Sockets στη JAVA Υλοποιούµε τον εξυπηρέτη µε ένα µόνο νήµα Για να µπορέσουµε να εξυπηρετήσουµε πολλούς χρήστες ταυτόχρονα, η επέκταση είναι σχετικά εύκολη Για κάθε νέα σύνδεση, ο εξυπηρέτης αναθέτει ένα νέο αντικείµενο SuperSocket Τα στοιχεία της αίτησης στέλνονται υπό την µορφή ενός διανύσµατος από αντικείµενα Η µέθοδος processrequest επεξεργάζεται το διάνυσµα για να εξυπηρετήση την αίτηση του πελάτη Η απάντηση του Εξυπηρέτη είναι (επίσης) υπό την µορφή ενός διανύσµατος από αντικείµενα Συνιστώσα Server public class Server { public static final int PORT = 1234; Connection theconnection; ServerSocket thesocket; SuperSocket theclient; public Server() { try { thesocket = new ServerSocket(PORT); while (true) { System.err.println("Server is ready."); Socket s = thesocket.accept(); theclient = new SuperSocket(s); processrequest(); catch (Exception ex) { /*... */ Συνιστώσα Server public void processrequest() { try { Vector v = theclient.readvector(); String opcode = (String) v.elementat(0); Vector out = null; if (opcode.equals("search Flights")) out = searchflights(); else if (opcode.equals("search Seats")) out = searchseats(v); else if (opcode.equals("book Seat")) out = bookseat(v); else System.err.println("Ignored request"); if (out!= null) theclient.writevector(out); theclient.close(); catch (Exception ex) { /*... */ Συνιστώσα Server public Vector searchflights() { Vector out = new Vector(); try { Flight [] flights = Flight.getFlightsFromDB(); for (int i = 0; i < flights.length; i++) { String s = flights[i].packasstring(); out.addelement(s); catch (Exception ex) { /*... */ return out;

17 Συνιστώσα RemoteClient Υλοποιούµε τον πελάτη χρησιµοποιόντας συνιστόσες του SWING Μπορούµε να εµφανίσουµε τα ίδια στοιχεία µε διαφορετικούς τρόπους (thin/thick clients) Υλοποίηση ως Applet Χρήση HTML, Flash, Για κάθε αίτηση του χρήστη, ο πελάτης συνδέετε µε τον Εξυπηρέτη και στέλνει ένα διάνυσµα από αντικείµενα που περιγράφουν την αίτηση Ο Πελάτης δεν γνωρίζει πως εκτελείτε η αίτηση public void searchflights() { try { theresults.settext(""); thesocket = new SuperSocket(HOST, PORT); thesocket.getsocket().setsotimeout(timeout); Vector v = new Vector(); v.addelement("search Flights"); thesocket.writevector(v); v = thesocket.readvector(); thesocket.close(); for (int i = 0; i < v.size(); i++) { String s = (String) v.elementat(i); theresults.append(s + "\n"); catch (Exception ex) { /*... */ Σύνοψη 5 ης ιάλεξης Σύνοψη Φροντιστηρίου Κατανεµηµένα Συστήµατα ΙΙ Επικοινωνία ιεργασιών µέσω TCP/IP Μοντέλο Πελάτη-Εξυπηρέτη Κλήση Αποµακρυσµένων ιαδικασιών Αντικειµενοστραφής Προγραµµατισµός σε JAVA Sockets Sockets στη JAVA Παράδειγµα Sockets Server Παράδειγµα Sockets Client Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενη ιάλεξη Επικοινωνία ιεργασιών µέσω TCP/IP Τύποι Επικοινωνίας Sockets Σχήµα Επικοινωνίας Request-Reply Μοντέλο Πελάτη - Εξυπηρέτη Αντικειµενοστραφής Προγραµµατισµός σε JAVA Sockets

18 Βιβλιογραφία Βιβλίο Distributed Systems, Concepts and Design" (G.Coulouris, J.Dollimore, T.Kindberg) 1. Κεφάλαιο 4: Interprocess Communication 2. Κεφάλαιο 5: Distributed Objects and Remote Invocation Βιβλίο Distributed Systems: Principles and Paradigms" (A.Tanenbaum, M.Steen) 1. Κεφάλαιο 2: Communication -- Μόνο 2.1, 2.2, 2.3 Βιβλίο Κατανεµηµένα Συστήµατα µε Java (Ι.Κ.Κάβουρας, Ι.Ζ.Μήλης, Γ.Β.Ξυλωµένος, Α.Α.Ρουκουνάκη) 1. Κεφάλαιο 7: Επικοινωνία µέσω δικτύου 2. Κεφάλαιο 8: ικτύωση στην Java Trail: Custom Networking networking/index.html Επόµενη ιάλεξη Κατανεµηµένα Αντικείµενα Θέµατα Σχεδιασµού Αντικειµενοστραφής Προγραµµατισµός σε JAVA RMI

Σύνοψη 3 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων.

Σύνοψη 3 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 18 Μαρτίου, 2009 Αίθουσα ΑΠ7 Κατανεµηµένα Συστήµατα

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

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

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

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

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1 ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε

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

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

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

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

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

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

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

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

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

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

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τρίτη, 15 Μαΐου, 2007 Αίθουσα ΑΠ7 Μελετάµε ένα κατανεµηµένο σύστηµα για την

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

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

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

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

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

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

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

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

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

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

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

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τρίτη, 22 Μαΐου, 2007 Αίθουσα ΑΠ7 Μελετάµε ένα κατανεµηµένο σύστηµα για την

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

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Βασικοί Ορισµοί

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Βασικοί Ορισµοί Γενικά Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, 24 Σεπτεµβρίου, 2012 Αίθουσα Β3 Σκοπός του µαθήµατος: Κατανόηση

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

Remote Method Invocation (RMI)

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

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

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

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

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

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Μοντέλο Σύγχρονου ικτύου Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης ευτέρα, Νοεµβρίου, 0 Αίθουσα Β Μία συλλογή υπολογιστικών

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

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

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1 Σύστηµα CORBA οµή συστήµατος Μεταβίβαση παραµέτρων Μοντέλα επικοινωνίας υναµικές κλήσεις Αναφορές αντικειµένων Ονόµατα αντικειµένων ιαχείριση αντικειµένων Υλοποίηση συστηµάτων CORBA Κατανεµηµένα Συστήµατα

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

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

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1 Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

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

Κατανεµηµένασυστήµατα αρχείων

Κατανεµηµένασυστήµατα αρχείων Κατανεµηµένασυστήµατα αρχείων Θέµατα σχεδίασης ιεπαφή υπηρεσίας αρχείων και ευρετηρίων Ονόµατα και αναγνωριστικά Οργάνωση εξυπηρετητών Σηµασιολογία (κατα)µερισµού αρχείων Ενταµίευση αρχείων Συνέπεια συστήµατος

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

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

Εισαγωγή στον Κατανεμημένο Προγραμματισμό Εισαγωγή στον Κατανεμημένο Προγραμματισμό Περιεχόμενα Βασικές γνώσεις υποδοχών δικτύων Ιστορία του κατανεμημένου προγραμματισμού Εξέλιξη των πλαισίων ανάπτυξης επιχειρηματικών εφαρμογών Βασικές γνώσεις

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

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

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

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

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων Εισαγωγή Χαρακτηρισµός Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Κύπρου

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Αρχές

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

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

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

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

HY335 4ο Φροντιστήριο

HY335 4ο Φροντιστήριο HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία

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

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

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

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Σύστηµα Java RMI. Κατανεµηµένα Συστήµατα 17-1

Σύστηµα Java RMI. Κατανεµηµένα Συστήµατα 17-1 Σύστηµα Java RMI οµή συστήµατος Μεταβίβαση παραµέτρων Μοντέλα επικοινωνίας Αναφορές αντικειµένων Ονόµατα αντικειµένων ιαχείριση αντικειµένων Υλοποίηση συστηµάτων Java RMI Κατανεµηµένα Συστήµατα 17-1 οµήσυστήµατος

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

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

Τεχνολογίες ιαδικτύου

Τεχνολογίες ιαδικτύου Τεχνολογίες ιαδικτύου Εισαγωγή Αρχιτεκτονική, Πρωτόκολλα και Πρότυπα Βασικών Υπηρεσιών Ιστορικά Στοιχεία ARPANET Ο «παππούς» των δικτύων Αναπτύχθηκε από την DARPA στα τέλη του 60 Το 83 διασπάται σε MILNET

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

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Δοκιμή και Αποσφαλμάτωση Testing and Debugging Δοκιμή και Αποσφαλμάτωση Testing and Debugging XVI-1 Ο μεταγλωττιστής εντοπίζει τα συντακτικά λάθη ενός προγράμματος. Δεν είναι όμως σε θέση να εντοπίσει λάθη στη λογική του προγράμματος. δεδομένα πρόγραμμα

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ. ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 2016 Γ Τάξη Ε.Π.Α.Λ. ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις και δίπλα το γράµµα Σ, αν είναι σωστή, ή το γράµµα

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

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) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ (Kεφ. 10) ΑΡΧΕΣ ΜΕΤΑΓΩΓΗΣ ΠΑΚΕΤΩΝ Τεχνική Μεταγωγής Μέγεθος Πακέτου Σύγκριση Μεταγωγής Κυκλώµατος και Μεταγωγής Πακέτου Εξωτερική και Εσωτερική Λειτουργία Βιβλίο Μαθήµατος: Επικοινωνίες

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής Πληροφορίες Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κλήση Αποµακρυσµένων ιαδικασιών» Σελίδα µαθήµατος http://www.cs.uoi.gr/~phadjido/courses/e-03/e-03.htm Βιβλίο Κατανεµηµένα Συστήµατα µε

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

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

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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

7.11 Πρωτόκολλα εφαρµογής

7.11 Πρωτόκολλα εφαρµογής 7.11 Πρωτόκολλα εφαρµογής Ερωτήσεις 1. Ποιος ο ρόλος των πρωτοκόλλων εφαρµογής και πώς χειρίζονται τις συνδέσεις δικτύου; 2. Γιατί κάθε πρωτόκολλο εφαρµογής ορίζει συγκεκριµένο τρόπο παρουσίασης των δεδοµένων;

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

Σύστηµα µετάδοσης µετεωρολογικών δεδοµένων σε πραγµατικό χρόνο µέσω του Internet

Σύστηµα µετάδοσης µετεωρολογικών δεδοµένων σε πραγµατικό χρόνο µέσω του Internet Βασίλης Βλάχος Σύστηµα µετάδοσης µετεωρολογικών δεδοµένων σε πραγµατικό χρόνο µέσω του Internet Αναπλ. Καθηγητής κ. Κ.Καλαϊτζάκης Καθηγητής κ. Ν.Βούλγαρης Καθηγητής κ. Μ.Πατεράκης RES-ADMIN On Line Data

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

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

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

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP Εισαγωγή... 1 Σε Ποιους Απευθύνεται το Βιβλίο... 1 Η Οργάνωση του Βιβλίου... 2 Ο Πηγαίος Κώδικας του Βιβλίου... 3 Συμβάσεις που Χρησιμοποιούνται σε Αυτό το Βιβλίο... 3 Μέρος Ι: Εγκατάσταση και ιαμόρφωση

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

Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1

Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1 Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1 llis@inf.uth.gr Απομακρυσμένα αντικείμενα Οι μέθοδοι τους μπορεί να κληθούν απομακρυσμένα στο πνεύμα των RPCs Οι τοπικές αναφορές σε

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

Οι δείκτες στη γλώσσα C

Οι δείκτες στη γλώσσα C Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς

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

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,

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

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance Ανοχή απέναντι σε Σφάλµατα Fault Tolerance Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Κύπρου Βασικές

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

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Τυπικά Θέµατα.

Γενικά. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Τυπικά Θέµατα. Γενικά Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Τετάρτη, 15 Οκτωβρίου, 2007 Αίθουσα Β3 Σκοπός του µαθήµατος: Κατανόηση

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθηµα 1 Ο ρόλος του ΛΣ Υλικό Υπολογιστικό σύστηµα Λειτουργικό σύστηµα Λογισµικό Προγράµµατα εφαρµογής Στόχοι του ΛΣ Χρήστες ιευκόλυνση των χρηστών ιευκόλυνση

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

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Μάιος 2004 Πίνακας Περιεχοµένων ΕΙΣΑΓΩΓΗ 3 ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ 4 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

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

Βασικές Έννοιες Web Εφαρμογών

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες

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

Συνεχής ροή πολυµέσων

Συνεχής ροή πολυµέσων Συνεχής ροή πολυµέσων Εισαγωγή ικτυακά πρωτόκολλα Πολυµέσα και δίκτυα Συνεχής ροή Ροή από εξυπηρετητές ιστοσελίδων Ροή από εξυπηρετητές µέσων Πρωτόκολλο RTSP Πρωτόκολλο RTP οµή πακέτων RTP Πρωτόκολλο RTCP

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009 Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική

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

Αρχεία και Ρεύματα. Αρχεία

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Όροι IP διεύθυνση (IP address) Ένας 32 bit αριθμός που χρησιμοποιείται

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

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

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

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

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

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Πλωτάρχης Γ. ΚΑΤΣΗΣ ΠΝ Γιατί χρησιµοποιούµε δίκτυα? Δίκτυο Σύνολο Η/Υ και συσκευών Συνδεδεµένα µε κάποιο µέσο Stand-alone

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

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

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

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης GUnet e-class Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

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