Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google