Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18324
Title: Ιεράρχηση προτεραιοτήτων μηνυμάτων σε ένα gRPC κανάλι
Authors: Ρέτσα, Μαρία
Βαρβαρίγος Εμμανουήλ
Keywords: κλήση απομακρυσμένης διαδικασίας
πρωτόκολλο
gRPC
HTTP/2
πελάτης
διακομιστής
χρονοδρομολογητής
ποιότητα υπηρεσίας
TCP σύνδεση
προτεραιότητα κλήσης
ιεράρχηση προτεραιοτήτων
εξοικονόμηση πόρων
πολυπλεξία πακέτων
Issue Date: 5-Jun-2022
Abstract: Το RPC (Remote Procedure Call) ή κλήση απομακρυσμένης διαδικασίας, είναι ένα πρωτόκολλο που χρησιμοποείται για την επικοινωνία μεταξύ διεργασιών – προγραμμάτων που βρίσκονται σε διαφορετικά συστήματα, τα οποία επικοινωνούν μεταξύ τους μέσω κάποιου δικτύου, χωρίς να χρειάζεται οι διεργασίες να γνωρίζουν τις λεπτομέρειες του δικτύου αυτού. Το RPC καθιστά το μοντέλο προγραμματισμού διακομιστή – πελάτη ιδιαίτερα εύκολο στην υλοποίησή του, γι’ αυτό και είναι ιδιαίτερα δημοφιλές στα σύγχρονα κατανεμημένα συστήματα και σε αρχιτεκτονικές μικροϋπηρεσιών. Το gRPC (google RPC) είναι ένα ανοιχτού κώδικα framework για την υποστήριξη του RPC πρωτοκόλλου που βασίζεται στα Google Protocol Buffers και λειτουργεί πάνω από HTTP/2 συνδέσεις. Παρουσιάζει πολλά πλεονεκτήματα τόσο στο κομμάτι της υλοποίησης και συντήρησης ενός συστήματος, όσο και σε επίπεδο απόδοσης. Το gRPC είναι ανεξάρτητο της πλατφόρμας και της γλώσσας προγραμματισμού που χρησιμοποιείται καθώς έχει τη δυνατότητα να παράγει αυτόματα κώδικα σε πληθώρα γλωσσών, ο οποίος μπορεί να χρησιμοποιηθεί από τη βασική εφαρμογή. Επίσης με τη χρήση του HTTP/2 πρωτοκόλλου επιτυγχάνεται πολυπλεξία των διαφόρων streams μεταξύ πελάτη και διακομιστή πάνω από την ίδια TCP σύνδεση χωρίς να απαιτείται να δημιουργηθεί, εδραιωθεί και τέλος να τερματιστεί μία νέα σύνδεση για κάθε νέα κλήση απομακρυσμένης διαδικασίας. Στο gRPC η κάθε ροή που εξυπηρετεί μία κλήση απομακρυσμένης διαδικασίας είναι ισότιμη, και επομένως δεν υπάρχει κάποιος τρόπος διαφοροποίησης των rpc με βάση την προτεραιότητά τους. Υπάρχουν περιπτώσεις όμως στις οποίες κάτι τέτοιο θα ήταν επιθυμητό. Ο διαχωρισμός των rpc θα μπορούσε να επιτευχθεί με τη δημιουργία νέου καναλιού με ξεχωριστή σύνδεση για κάθε ένα από αυτά, ωστόσο τότε θα υπήρχε χρήση περισσότερων πόρων, και θα χανόταν το πλεονέκτημα της ύπαρξης μόνο μίας TCP σύνδεσης στο gRPC. Στόχος της διπλωματικής αυτής ήταν μια προσέγγιση επίλυσης του προαναφερθέντος προβλήματος. Συγκεκριμένα, αναπτύχθηκε ένα κομμάτι λογισμικού στην πλευρά του πελάτη, πριν από το gRPC επίπεδο, το οποίο έχει το ρόλο ενός χρονοδρομολογητή: δέχεται από τον πελάτη αιτήματα να κάνει κλήσεις απομακρυσμένης διαδικασίας με διαφορετικές προτεραιότητες, και βάσει αυτών επιτρέπει στην κλήση με την μεγαλύτερη προτεραιότητα κάθε φορά να καταλαμβάνει το κανάλι, χωρίς να πολυπλέκεται, ώστε να στέλνεται και να εξυπηρετείται πρώτη. Η λύση αυτή προσθέτει μία χρονική επιβάρυνση λόγω των καθυστερήσεων στη διαδικασία της χρονοδρομολόγησης, ωστόσο επιτυγχάνει καλύτερο QoS (ποιότητα υπηρεσίας) σε σχέση με την δημιουργία νέας σύνδεση για κάθε προτεραιότητα, καθώς δεν υπάρχει σπατάλη περισσότερων πόρων από όσους χρειάζονται.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/18324
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File Description SizeFormat 
thesis_Maria_Retsa.pdf2.57 MBAdobe PDFView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.