HEAL DSpace

Ιεράρχηση προτεραιοτήτων μηνυμάτων σε ένα gRPC κανάλι

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Retsa, Maria en
dc.contributor.author Ρέτσα, Μαρία el
dc.date.accessioned 2022-10-07T10:05:07Z
dc.date.available 2022-10-07T10:05:07Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/55865
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.23563
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject Κλήση απομακρυσμένης διαδικασίας el
dc.subject Χρονοδρομολογητής el
dc.subject Ιεράρχηση προτεραιοτήτων el
dc.subject Προτεραιότητα κλήσης el
dc.subject Πολυπλεξία πακέτων el
dc.subject gRPC en
dc.subject Scheduler en
dc.subject Prioritization en
dc.subject Packet multiplexing en
dc.subject Rpc priority en
dc.title Ιεράρχηση προτεραιοτήτων μηνυμάτων σε ένα gRPC κανάλι el
heal.type bachelorThesis
heal.classification Δίκτυα Υπολογιστών el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2022-05-31
heal.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 (ποιότητα υπηρεσίας) σε σχέση με την δημιουργία νέας σύνδεση για κάθε προτεραιότητα, καθώς δεν υπάρχει σπατάλη περισσότερων πόρων από όσους χρειάζονται. el
heal.abstract RPC (Remote Procedure Call) is a software protocol used for the communication between processes that live in different systems, which are connected through a network, without the need for the processes to understand the network details. RPC makes the implementation of a client – server model easy, and that is the reason why it is extremely popular in modern distributed systems and microservices architectures. GRPC (google RPC) is an open-source RPC framework based on Google Protocol Buffers that uses HTTP/2 connections. It has many advantages concerning the implementation and maintenance, as well as the performance of a system. GRPC is a cross-platform and cross-language framework, as it provides auto-generated code in many languages which can be used by the main application. Additionally, because of the use of the HTTP/2 protocol, it is possible to achieve multiplexing of the streams between the client and the server over the same TCP connection, without the need of the creation, establishment and termination of a new TCP connection for each rpc. In gRPC, each stream serving a rpc is coequal, so there is not a way to distinct the rpcs based on their priority. There are cases in which this would be really useful and desirable, though. The discrimination of the rpcs could be achieved with the creation of a new channel with a different connection for each one of them, although then there would be use of more resources, and the advantage from the existance of a sole TCP connection in gRPC would be lost. Purpose of this thesis is to approach a solution for the above problem. Specifically, a software component was developed on the client side, before the gRPC level, that serves the purpose of a scheduler: it receives requests from the client to send rpcs with different priorities, and based on them it allows only the rpc with the greatest priority to occupy the channel, without multiplexing, so that it is served first among the rest. This solution adds some time overhead due to delays in the scheduling process. Nevertheless, greater QoS (quality of service) is accomplished contrary to the creation of a new TCP connection for each priority, which leads to waste of resources. en
heal.advisorName Βαρβαρίγος, Εμμανουήλ el
heal.committeeMemberName Βαρβαρίγου, Θεοδώρα el
heal.committeeMemberName Παπαβασιλείου, Συμεών el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Επικοινωνιών, Ηλεκτρονικής και Συστημάτων Πληροφορικής el
heal.academicPublisherID ntua
heal.numberOfPages 85 σ. el
heal.fullTextAvailability false


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα