Διαφορά μεταξύ RPC και RMI | RPC vs RMI

Anonim

η διαφορά μεταξύ RPC και RMI είναι ότι το RPC είναι ένας μηχανισμός που επιτρέπει την κλήση μιας διαδικασίας σε έναν απομακρυσμένο υπολογιστή, ενώ η RMI είναι η εφαρμογή του RPC σε java. Το RPC είναι ουδέτερο σε γλώσσα αλλά υποστηρίζει μόνο πρωτόγονους τύπους δεδομένων που πρέπει να περάσουν. Από την άλλη πλευρά, το RMI περιορίζεται στην Java, αλλά επιτρέπει τη διέλευση αντικειμένων. Το RPC ακολουθεί τις παραδοσιακές δομικές δομικές διαδικασίες, ενώ το RMI υποστηρίζει αντικειμενοστραφή σχεδίαση.

Τι είναι το RPC;

Το RPC, το οποίο αντιπροσωπεύει την κλήση απομακρυσμένης διαδικασίας, είναι ένας τύπος επικοινωνίας μεταξύ διαδικασιών. Αυτό επιτρέπει την κλήση μιας λειτουργίας σε μια άλλη διαδικασία που εκτελείται στον τοπικό υπολογιστή ή σε έναν απομακρυσμένο υπολογιστή. Αυτή η ιδέα εμφανίστηκε πριν από πολύ καιρό το 1980, αλλά η πρώτη διάσημη εφαρμογή εμφανίστηκε στο Unix.

Το RPC περιλαμβάνει διάφορα βήματα. Ο πελάτης κάνει μια κλήση διαδικασίας στον τοπικό υπολογιστή ως συνήθως. Η ενότητα που ονομάζεται στέλεχος πελάτη συλλέγει τα επιχειρήματα και δημιουργεί ένα μήνυμα και μεταβιβάζει στο λειτουργικό σύστημα. Το λειτουργικό σύστημα κάνει μια κλήση συστήματος και στέλνει αυτό το μήνυμα στον απομακρυσμένο υπολογιστή. Το λειτουργικό σύστημα του διακομιστή συλλέγει το μήνυμα και μεταβιβάζεται στη μονάδα στο διακομιστή που ονομάζεται στέλεχος διακομιστή. Στη συνέχεια, το stub server καλεί τη διαδικασία στο διακομιστή. Τέλος, τα αποτελέσματα αποστέλλονται πίσω στον πελάτη.

Το πλεονέκτημα της χρήσης του RPC είναι ότι είναι ανεξάρτητο από τις λεπτομέρειες του δικτύου. Ο προγραμματιστής πρέπει απλώς να καθορίσει με αφηρημένο τρόπο, ενώ το λειτουργικό σύστημα θα φροντίσει για τις λεπτομέρειες του εσωτερικού δικτύου. Έτσι, ο προγραμματισμός διευκολύνεται και επιτρέπει στο RPC να λειτουργεί σε οποιοδήποτε δίκτυο παρά τις φυσικές διαφορές και τις διαφορές πρωτοκόλλου. Οι εφαρμογές RPC υπάρχουν σε όλα τα κύρια λειτουργικά συστήματα όπως το Unix, το Linux, τα Windows και το OS X. Το RPC είναι γενικά ουδέτερο σε γλώσσες, επομένως περιορίζει τους τύπους δεδομένων στις πιο πρωτόγονες, αφού πρέπει να είναι κοινές σε όλες τις γλώσσες. Η προσέγγιση στο RPC δεν είναι αντικειμενοστρεφής, αλλά είναι ένας παραδοσιακός διαδικαστικός μηχανισμός όπως στο C.

Τι είναι η RMI;

Το RMI, το οποίο αντιπροσωπεύει την Απομακρυσμένη Μέθοδο Επίκλησης, είναι ένα API (Application Programming Interface) που υλοποιεί το RPC σε java για να υποστηρίζει τη φύση. Αυτό επιτρέπει την κλήση μεθόδων Java σε ένα άλλο Java Virtual Machine που βρίσκεται στον ίδιο υπολογιστή ή σε ένα απομακρυσμένο. Ο περιορισμός του RMI είναι ότι μπορούν να χρησιμοποιηθούν μόνο μέθοδοι Java, αλλά αυτό έρχεται με το πλεονέκτημα ότι τα αντικείμενα μπορούν να περάσουν ως επιχειρήματα και να επιστρέψουν αξίες. Όταν η απόδοση θεωρείται ότι η RMI είναι πιο αργή από την RPC λόγω της συμμετοχής του bytecode στην Java Virtual Machine, αλλά το RMI είναι πολύ φιλικό προς τον προγραμματιστή και είναι πολύ εύκολο στη χρήση.

Η RMI χρησιμοποιεί ενσωματωμένους μηχανισμούς ασφαλείας στην Java και δίνει επίσης ένα εργοστάσιο υποδοχής που επιτρέπει τη χρήση πρωτόκολλων προσαρμοσμένων μετασχηματιστών που δεν είναι TCP. Επιπλέον, η RMI παρέχει μεθόδους για την παράκαμψη τείχους προστασίας. Τα βήματα που συμβαίνουν στο RMI είναι παρόμοια με το RPC. Η εφαρμογή του RMI φροντίζει για τις λεπτομέρειες του εσωτερικού δικτύου, όπου ο προγραμματιστής δεν χρειάζεται να ανησυχεί γι 'αυτά.

Ποια είναι η διαφορά μεταξύ RPC και RMI;

• Το RPC είναι ουδέτερο σε γλώσσα ενώ το RMI περιορίζεται σε Java.

• Το RPC είναι διαδικαστικό όπως στο C, αλλά το RMI είναι αντικειμενοστρεφές.

• Το RPC υποστηρίζει μόνο πρωτόγονους τύπους δεδομένων ενώ το RMI επιτρέπει στα αντικείμενα να μεταβιβάζονται ως επιχειρήματα και να επιστρέφουν τιμές. Όταν χρησιμοποιείτε το RPC, ο προγραμματιστής πρέπει να χωρίσει τα σύνθετα αντικείμενα σε πρωτόγονους τύπους δεδομένων.

• Το RMI είναι εύκολο να προγραμματίσετε το RPC.

• Το RMI είναι πιο αργό από το RPC, από τη στιγμή που η RMI περιλαμβάνει την εκτέλεση του bytecode του java.

• Το RMI επιτρέπει τη χρήση σχεδιαστικών μοτίβων λόγω της αντικειμενοστρεφούς φύσης, ενώ το RPC δεν έχει αυτή τη δυνατότητα.

Περίληψη:

RPC vs RMI

Το RPC είναι ένας μηχανισμός ουδέτερης γλώσσας που επιτρέπει την κλήση μιας διαδικασίας σε έναν απομακρυσμένο υπολογιστή. Ωστόσο, η ουδέτερη γλώσσα περιορίζει τους τύπους δεδομένων που μεταβιβάζονται ως παραδοχές και επιστρέφει τιμές σε πρωτόγονους τύπους. Το RMI είναι η υλοποίηση του RPC σε Java και υποστηρίζει και το πέρασμα του αντικειμένου, διευκολύνοντας έτσι τη ζωή του προγραμματιστή. Το πλεονέκτημα του RMI είναι η αντικειμενοστρεφής υποστήριξη σχεδιασμού, αλλά ο περιορισμός στην Java είναι ένα μειονέκτημα.

Εικόνες Ευγένεια:

Σύγχρονη έναντι ασύγχρονης RPC από την επιχείρηση CAPS (CC BY-SA 3. 0)