1 Κλήση Απομακρυσμένων Διεργασιών (Remote Procedure Call - RPC) Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Προγραμματισμός PASCAL
Επιμέλεια: Τίκβα Χριστίνα
Υλοποίηση Συστήματος Ψηφοφορίας με τη χρήση Java RMI
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Η Γλώσσα Προγραμματισμού LOGO
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Προστασία Λογισμικού - Ιοί
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
7.5.2 Αντικειμενοστραφής προγραμματισμός
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1.Τοποθέτηση παραμέτρων 2.Μεταβίβαση ελέγχου στη διαδικασία 3.Λήψη πόρων αποθήκευσης.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Σελ. 1 Ε.2.2 Υπηρεσίες – Λειτουργία Helpdesk Καταχώρηση και παρακολούθηση αιτημάτων μέσω web Ε Καταχώρηση αιτημάτων υποστήριξης.
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Προγραμματισμός
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Σελίδα 1 ΕΚΠΑ. «Διαμόρφωση υπηρεσίας καταλόγου Active Directory σε Windows 2003» Τηλέμαχος Ράπτης Εθνικό και Καποδιστριακό.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
Γραφήματα & Επίπεδα Γραφήματα
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Ολυμπιάδα Πληροφορικής
ΣΥΝΑΡΤΗΣΕΙΣ.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
1 6.Εισαγωγή γραφικού 6.1 Εισαγωγή γραφικού Στο μενού «Εισαγωγή» τοποθετούμε τον κέρσορα στην επιλογή «Εικόνα»
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ενότητα Α.4. Δομημένος Προγραμματισμός
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 8: Πίνακας Συμβόλων Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας.
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
RPC Multithreaded voting system Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Βασικά στοιχεία της Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κατανεμημένα Συστήματα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Γιώργος Θάνος Παρασκευή 5 Δεκεμβρίου 2008
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Υποστήριξη διαδικασιών στο υλικό των υπολογιστών
Υποστήριξη διαδικασιών στο υλικό των υπολογιστών
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Μεταγράφημα παρουσίασης:

1 Κλήση Απομακρυσμένων Διεργασιών (Remote Procedure Call - RPC) Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης

2 Βασική Ιδέα  Να επιτραπεί στα προγράμματα να καλούν διαδικασίες που εκτελούνται σε διαφορετικές μηχανές.  Διεργασία στη μηχανή Α καλεί διαδικασία στη μηχανή Β:  Η εκτέλεση της διεργασίας στην Α αναστέλλεται και η εκτέλεση πραγματοποιείται στη Β  Πληροφορίες μπορούν να δοθούν από την καλούσα και την καλούμενη με τη μορφή παραμέτρων ή και να επιστραφούν σαν το αποτέλεσμα της διαδικασίας.  Ο προγραμματιστής δεν γνωρίζει για οποιαδήποτε μεταβίβαση μηνύματος πραγματοποιηθεί.

3 Βασική RPC Λειτουργία Πυρήνας Μεταδιδόμενο μήνυμα μέσα στο δίκτυο Μηχανή ΕξυπηρετούμενουΜηχανή Εξυπηρέτη Ψευδορουτίνα Εξυπηρετούμενου Ψευδορουτίνα Εξυπηρέτη ΕξυπηρέτηςΕξυπηρε- τούμενος Κλήση Επιστροφή Τακτοποίηση Παραμέτρων Αποτακτο- ποίηση Παραμέτρων Αποτακτοποίηση αποτελέσματος Τακτοποίηση Αποτελέσματος

4 Client stub  Διαφορετική έκδοση της απομακρυσμένης διαδικασίας  Δεν τοποθετεί τις παραμέτρους σε καταχωρητές και δεν ζητάει δεδομένα  Τακτοποιεί τις παραμέτρους σε μήνυμα και ζητά από τον πυρήνα να το στείλει στον εξυπηρέτη.  Παίρνει το αποτέλεσμα και το προωθεί στον εξυπηρετούμενο

5 Server stub  Συνδέεται με την πραγματική διεργασία εξυπηρέτη  Περιμένει για εισερχόμενα μηνύματα  Αποτακτοποιεί τις παραμέτρους από το μήνυμα που της έστειλε η ψευδορουτίνα εξυπηρετούμενου  Παίρνει τις παραμέτρους και καλεί την πραγματική διεργασία εξυπηρέτη  Τακτοποιεί το αποτέλεσμα και το στέλνει στον εξυπηρετούμενο

6 Βήματα Εκτέλεσης Κλήσης RPC 1. Η διαδικασία του εξυπηρετούμενου καλεί την ψευδορουτίνα εξυπηρετούμενου με τον συνηθισμένο τρόπο 2. Η ψευδορουτίνα εξυπηρετούμενου σχηματίζει ένα μήνυμα προκαλώντας παγιδεύσεις στον πυρήνα. 3. Ο πυρήνας στέλνει το μήνυμα στον απομακρυσμένο πυρήνα. 4. Ο απομακρυσμένος πυρήνας παραδίδει το μήνυμα στην ψευδορουτίνα εξυπηρέτη. 5. Η ψευδορουτίνα εξυπηρέτη παίρνει τις παραμέτρους από το μήνυμα και καλεί τον εξυπηρέτη.

7 Βήματα Εκτέλεσης Κλήσης RPC 6. Ο εξυπηρέτης ολοκληρώνει την εκτέλεση του και επιστρέφει τα αποτελέσματα στην ψευδορουτίνα. 7. Η ψευδορουτίνα εξυπηρέτη σχηματίζει μηνύματα με τα αποτελέσματα προκαλώντας παγιδεύσεις στον πυρήνα. 8. Ο απομακρυσμένος πυρήνας στέλνει το μήνυμα στον πυρήνα του εξυπηρετούμενου. 9. Ο πυρήνας του εξυπηρετούμενου παραδίδει το μήνυμα στην ψευδορουτίνα εξυπηρετούμενου. 10. Η ψευδορουτίνα εξυπηρετούμενου παίρνει τα αποτελέσματα και τα επιστρέφει στον εξυπηρετούμενο.

8 Υλοποίηση Έστω η παρακάτω συνάρτηση που παίρνει σαν όρισμα έναν αριθμό και επιστρέφει το τετράγωνο του. int square(int num){ return num*num; } Θα παρουσιαστεί ο τρόπος μετατροπής του προγράμματος με αυτήν την τοπική κλήση συνάρτησης σε απομακρυσμένη κλήση της συνάρτησης

9 Protocol Definition File  Το πρώτο βήμα είναι η δημιουργία του αρχείου με τους ορισμούς  Η κατάληξη του αρχείου είναι.x  Περιέχεται ο ορισμός του τύπου της επιστρεφόμενης τιμής και του τύπου των ορισμάτων square.x program SQUARE{ version FIRST{ int square(int)=1; }=1; }=0x ;

10 rpcgen Αφού έχει δημιουργηθεί το αρχείο με τους ορισμούς καλούμε την εντολή rpcgen –C –a square.x Μετά το τρέξιμο δημιουργούνται τα ακόλουθα αρχεία:  square.h: υπάρχουν ορισμοί. Περιέχεται σε όλα τα παρακάτω αρχεία.  square_xdr.c: καθορίζεται η μορφή αναπαράστης των δεδομένων.  square_clnt.c και square_svc.c : είναι οι ψευδορουτίνες εξυπηρετούμενου και εξυπηρέτη

11 Συνέχεια… square_client.c  Tο αρχείο στο οποίο θα γραφεί ο κώδικας για τον client.  Περιέχει έτοιμο τον κώδικα για τη δημιουργία του client  Περιέχει έτοιμες τις κλήσεις για τις συναρτήσεις που εκτελούνται στον server (οι οποίες καθορίζονται στο.x αρχείο). Στο παράδειγμα μας η συνάρτηση square square_server.c  Είναι το αρχείο στο οποίο θα γραφεί ο κώδικας για τις λειτουργίες του server οι οποίες ορίζονται στο.x αρχείο  Περιέχει τον σκελετό των συναρτήσεων

12 Περιγραφή του συστήματος ηλεκτρονικής ψηφοφορίας Εφαρμογή client-server με τη χρήση RPC

13 Ανάλυση απαιτήσεων της εφαρμογής  Κάθε ψηφοφόρος έχει ένα μοναδικό id.  Τα ids, τα ονόματα των υποψηφίων και οι ψήφοι ανά υποψήφιο αποθηκεύονται στον server.  Η εφαρμογή προσφέρει δυνατότητα επαναφοράς από σφάλματα στο server, λόγω της χρήσης αρχείων για την αποθήκευση όλων των δεδομένων του συστήματος.

14 Η εφαρμογή vote_client  Όταν ο client συνδέεται στον server εμφανίζεται το ακόλουθο μενού στην οθόνη του: 1. Vote 2. Results 3. Exit ?

15 Η εφαρμογή vote_server  Στον server αποθηκεύονται τα αρχεία:  candidates που περιέχει:  το πλήθος των ψηφοφόρων.  το πλήθος των υποψηφίων  τα ονόματα των υποψηφίων  votes:  με τις ψήφους ανά υποψήφιο  ενημερώνεται κάθε φορά που καταχωρείται μία επιτυχής ψήφος

16 Συνέχεια...  voters:  Για κάθε ψηφοφόρο:  τον αυξοντά αριθμό του  έναν τυχαίος κωδικός παραγώμενο από τον server  Αν έχει ψηφίσει η όχι.  voters.txt:  με τους κωδικούς των ψηφοφόρων, που παράγονται από τη συνένωση του αύξοντα αριθμού του και του τυχαίου κωδικού που είναι αποθηκευμένα στο αρχείο voters.  Υποθέτουμε ότι οι κωδικοί μοιράζονται στους ψηφοφόρους.

17 Η επιλογή Vote Client  Ζητείται από τον ψηφοφόρο το id του.  Τυπώνεται στην οθόνη μια λίστα με τους υποψηφίους  Ζητείται να ψηφίσει κάποιον. Ο server θα του επιστρέψει έναν κωδικό λάθους / επιτυχίας. Server  O server ελέγχει την σωστή διεξαγωγή της ψηφοφορίας και στέλνει τα κατάλληλα μηνύματα.  Αν το pin (id) είναι σωστό ή όχι. (αρχείο voters)  Αν υπάρχει ο υποψήφιος. (αρχείο candidates)  Αν έχει ήδη ψηφίσει ο συγκεκριμένος ψηφοφόρος. (αρχείο voters)  Αν η ψήφος καταχωρήθηκε με επιτυχία.  Αν η ψηφοφορία είναι επιτυχής οι αλλαγές γράφονται αμέσως στα αρχεία του server.

18 Vote Screen ***************MENU***************** 1. Vote 2. Results 3. Exit ?. 1 Give your id:4677 ********CANDIDATES*********** 1: Ilias Leontiadis 2: Tasos Kontogiorgis 3: Georgia Koloniari 4: Alkis Georgopoulos 5: Giannis Petrakis Give candidate number:5 Vote Succeeded

19 Η επιλογή Results Client  O client ζητάει να δει τα μέχρι τότε αποτελέσματα  Καλείται η Remote procedure results. Server  Διαβάζει το αρχείο votes που περιέχει τα μέχρι στιγμής αποτελέσματα  Δημιουργεί ένα string με τα αποτελέσματα:  Σύνολο ψήφων  Όνομα υποψηφίων  Αριθμός ψήφων ανά υποψήφιο  Ποσοστά  Και το επιστρέφει στον client.

20 Results Screen Voted: 7 ID Name Votes % 1. Ilias Leontiadis % |** | 2. Tasos Kontogiorgis % |***** | 3. Georgia Koloniari 0 0.0% | | 4. Alkis Georgopoulos 0 0.0% | | 5. Giannis Petrakis % |******* | 6. Evagelia Pitoura % |** | 7. Lefko 0 0.0% | |