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

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 1 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 13 Ενδέχεται 2024
Anonim
Vietnam VS China in Spratly Islands
Βίντεο: Vietnam VS China in Spratly Islands

Περιεχόμενο


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

Μια άλλη σημαντική διαφορά μεταξύ των δύο είναι ότι οι παράμετροι που διαβιβάζονται σε απομακρυσμένες κλήσεις διαδικασιών αποτελούνται από συνήθεις δομές δεδομένων. Από την άλλη πλευρά, οι παράμετροι που διαβιβάζονται σε απομακρυσμένη μέθοδο αποτελούνται από αντικείμενα.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςRPCRMI
ΥποστηρίζειΔιαδικαστικός προγραμματισμός
Αντικειμενοστραφής προγραμματισμός
ΠαράμετροιΟι συνήθεις δομές δεδομένων διαβιβάζονται σε απομακρυσμένες διαδικασίες.Τα αντικείμενα μεταβιβάζονται σε απομακρυσμένες μεθόδους.
ΑποδοτικότηταΚάτω από το RMIΠερισσότερο από το RPC και υποστηρίζεται από τη σύγχρονη προσέγγιση προγραμματισμού (δηλαδή τα παραδειγματικά προσανατολισμένα προς τα αντικείμενα)
Γενικά έξοδαΠερισσότερο
Λιγότερο συγκριτικά
Οι παράμετροι "out-out" είναι υποχρεωτικές.ΝαίΟχι απαραίτητα
Παροχή ευκολίας προγραμματισμού
Υψηλός
χαμηλός


Ορισμός RPC

Απομακρυσμένη κλήση διαδικασίας (RPC) είναι ένα χαρακτηριστικό γνώρισμα προγραμματισμού που σχεδιάστηκε για τον κατανεμημένο υπολογισμό και βασίζεται στη σημασιολογία του τοπική διαδικασία κλήσεις. Πρόκειται για τις πιο κοινές μορφές απομακρυσμένης υπηρεσίας και σχεδιάστηκε ως ένας τρόπος αφηρημένης χρήσης του μηχανισμού κλήσης διαδικασίας για χρήση μεταξύ συστημάτων που είναι συνδεδεμένα μέσω δικτύου. Είναι παρόμοιο με τον μηχανισμό IPC όπου το λειτουργικό σύστημα επιτρέπει στις διεργασίες να διαχειρίζονται τα κοινά δεδομένα και να ασχολούνται με ένα περιβάλλον όπου οι διαφορετικές διαδικασίες εκτελούνται σε ξεχωριστά συστήματα και απαραιτήτως απαιτούν επικοινωνία βασισμένη σε δεδομένα.

Ας καταλάβουμε πώς εφαρμόζεται το RPC μέσω των συγκεκριμένων βημάτων:

  • Η διαδικασία πελάτη καλεί τον παραλήπτη πελάτη με παραμέτρους και η εκτέλεση του αναστέλλεται μέχρι να ολοκληρωθεί η κλήση.
  • Οι παράμετροι στη συνέχεια μεταφράζονται σε ανεξάρτητη από μηχανή μορφή με την ταξινόμηση μέσω του stub πελάτη. Στη συνέχεια προετοιμάζεται η οποία περιέχει την παράσταση των παραμέτρων.
  • Για να βρείτε την ταυτότητα του ιστότοπου, ο πελάτης stub συνδέεται με το διακομιστή ονομάτων στο οποίο υπάρχει απομακρυσμένη διαδικασία.
  • Χρησιμοποιώντας το πρωτόκολλο δέσμευσης, ο πελάτης παραλείπει τον ιστότοπο στον οποίο υπάρχει κλήση απομακρυσμένης διαδικασίας. Αυτό το βήμα σταματάει το στέλεχος του πελάτη μέχρι να λάβει απάντηση.


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

Ορισμός του RMI

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

Όταν ένας πελάτης καλεί μια απομακρυσμένη μέθοδο, καλείται το stub για την απομακρυσμένη μέθοδο. Το στέλεχος του πελάτη είναι υπεύθυνο για τη δημιουργία και την εισαγωγή του δέματος που περιέχει το όνομα μιας μεθόδου και τις παραμετροποιημένες παραμέτρους και ο σκελετός είναι υπεύθυνος για την παραλαβή του δέματος.

Ο σκελετός καταργεί τις παραμέτρους και επικαλείται την επιθυμητή μέθοδο στο διακομιστή. Ο σκελετός τοποθετεί τη δεδομένη τιμή (ή τις εξαιρέσεις) με το δέμα και το στέλνει στον πελάτη. Το στέλεχος επανασυναρμολογεί το δέμα επιστροφής και είναι στον πελάτη.

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

Η Java χρησιμοποιεί διαδικασία που ονομάζεται ως σειριοποίηση όπου τα αντικείμενα μεταβιβάζονται ως τιμή. Το απομακρυσμένο αντικείμενο εντοπίζεται με βάση την τιμή. Μπορεί επίσης να μεταβιβάσει ένα αντικείμενο με παραπομπή μέσω της μετάδοσης μιας απομακρυσμένης αναφοράς στο αντικείμενο μαζί με τη διεύθυνση URL της κλάσης stub. Το Pass by reference περιορίζει ένα στέλεχος για το απομακρυσμένο αντικείμενο.

  1. Το RPC υποστηρίζει παραδείγματα διαδικαστικού προγραμματισμού, επομένως βασίζεται στο C, ενώ το RMI υποστηρίζει παραδειγματικά προγραμματισμένα αντικείμενα και βασίζεται σε java.
  2. Οι παράμετροι που διαβιβάζονται σε απομακρυσμένες διαδικασίες στο RPC είναι οι συνήθεις δομές δεδομένων. Αντίθετα, το RMI μετακινεί αντικείμενα ως παράμετρος στην απομακρυσμένη μέθοδο.
  3. Το RPC μπορεί να θεωρηθεί ως η παλαιότερη έκδοση του RMI και χρησιμοποιείται στις γλώσσες προγραμματισμού που υποστηρίζουν τον διαδικαστικό προγραμματισμό και μπορεί να χρησιμοποιήσει μόνο μέθοδο pass by value. Αντιθέτως, η διευκόλυνση της RMI σχεδιάζεται με βάση τη σύγχρονη προσέγγιση προγραμματισμού, η οποία θα μπορούσε να χρησιμοποιήσει τη μετάβαση από την αξία ή την αναφορά. Ένα άλλο πλεονέκτημα του RMI είναι ότι οι παράμετροι που πέρασαν με αναφορά μπορούν να αλλάξουν.
  4. Το πρωτόκολλο RPC παράγει περισσότερα γενικά έξοδα από το RMI.
  5. Οι παράμετροι που διαβιβάζονται στο RPC πρέπει να είναι "μέσα έξω"Που σημαίνει ότι η τιμή που μεταφέρεται στη διαδικασία και η τιμή εξόδου πρέπει να έχουν τα ίδια δεδομένα. Αντίθετα, δεν υπάρχει κανένας καταναγκασμός να περάσει "μέσα έξω"Παραμέτρους στο RMI.
  6. Στην RPC, οι αναφορές δεν θα μπορούσαν να είναι πιθανές επειδή οι δύο διεργασίες έχουν τον ξεχωριστό χώρο διευθύνσεων, αλλά είναι δυνατόν σε περίπτωση RMI.

συμπέρασμα

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