Satu lagi perbezaan utama antara keduanya adalah bahawa parameter yang diluluskan kepada prosedur jauh panggilan terdiri daripada struktur data biasa . Sebaliknya, parameter yang diluluskan kepada kaedah jauh terdiri daripada objek .
Carta Perbandingan
Asas untuk perbandingan | RPC | RMI |
---|---|---|
Menyokong | Pengaturcaraan prosedur | Pengaturcaraan berorientasikan objek |
Parameter | Struktur data biasa dihantar kepada prosedur jauh. | Objek diluluskan kepada kaedah yang jauh. |
Kecekapan | Lebih rendah daripada RMI | Lebih daripada RPC dan disokong oleh pendekatan pengaturcaraan moden (iaitu paradigma berorientasi objek) |
Overhed | Lebih banyak | Kurang agak |
Parameter yang dikeluarkan adalah mandatori. | Ya | Tidak semestinya |
Menyediakan kemudahan pengaturcaraan | Tinggi | rendah |
Definisi RPC
Panggilan Prosedur Jauh (RPC) adalah bahasa bahasa pengaturcaraan yang direka untuk pengkomputeran yang diedarkan dan berdasarkan semantik panggilan prosedur tempatan . Ini adalah bentuk perkhidmatan terpencil yang paling biasa dan direka bentuk sebagai cara untuk menggagalkan mekanisme panggilan prosedur untuk menggunakan antara sistem yang disambungkan melalui rangkaian. Ia sama dengan mekanisme IPC di mana sistem operasi membolehkan proses menguruskan data yang dikongsi dan menangani persekitaran di mana proses yang berlainan dijalankan pada sistem yang berasingan dan semestinya memerlukan komunikasi berasaskan mesej.
Mari kita fahami bagaimana RPC dilaksanakan melalui langkah-langkah yang diberikan:
- Proses klien memanggil stub klien dengan parameter, dan pelaksanaannya digantung sehingga panggilan selesai.
- Parameter tersebut kemudian diterjemahkan ke dalam bentuk bebas mesin dengan melompat melalui stub klien. Kemudian mesej disediakan yang mengandungi perwakilan parameter.
- Untuk mencari identiti tapak stub pelanggan itu berkomunikasi dengan pelayan nama di mana prosedur jauh wujud.
- Menggunakan protokol penyekatan stub klien menghantar mesej ke tapak di mana panggilan prosedur jauh ada. Langkah ini menghentikan stub klien sehingga mendapat balasan.
- Tapak pelayan menerima mesej yang dihantar dari sisi klien dan mengubahnya menjadi format khusus mesin.
- Sekarang pelayan stub menjalankan panggilan pada prosedur pelayan bersama-sama dengan parameter, dan stub server dihentikan sehingga prosedur selesai.
- Prosedur pelayan mengembalikan hasil yang dihasilkan ke stub server, dan hasilnya ditukar menjadi format bebas mesin di stub server dan membuat mesej yang berisi hasilnya.
- Mesej hasil dihantar ke stub klien yang ditukar kembali ke format khusus mesin yang sesuai untuk stub klien.
- Pada klien terakhir, stub mengembalikan hasilnya kepada proses klien.
Definisi RMI
Penyerahan Kaedah Jauh (RMI) adalah serupa dengan RPC tetapi bahasa tertentu dan ciri java. Satu thread dibenarkan untuk memanggil kaedah pada objek terpencil. Untuk mengekalkan ketelusan di sisi klien dan pelayan, ia melaksanakan objek terpencil menggunakan stubs dan skeletons. Stub tinggal dengan pelanggan dan untuk objek terpencil yang berfungsi sebagai proksi.
Apabila pelanggan memanggil kaedah jauh, stub untuk kaedah jauh dipanggil. Stub klien bertanggungjawab untuk membuat dan menghantar bungkusan yang mengandungi nama kaedah dan parameter marshalled, dan rangka bertanggung jawab untuk menerima petak tersebut.
Di Jawa, parameter tersebut diluluskan kepada kaedah dan dikembalikan dalam bentuk rujukan. Ini boleh menyusahkan perkhidmatan RMI kerana tidak semua objek mungkin kaedah terpencil. Jadi, ia mesti menentukan yang boleh diluluskan sebagai rujukan dan yang tidak boleh.
Java menggunakan proses yang dinamakan sebagai serialisasi di mana objek diluluskan sebagai nilai. Objek jauh disetempatan oleh nilai lulus. Ia juga boleh lulus objek dengan rujukan melalui lulus rujukan jauh ke objek bersama dengan URL kelas rintisan. Lulus mengikut rujukan menyekat stub untuk objek terpencil.
Perbezaan Utama antara RPC dan RMI
- RPC menyokong paradigma pengaturcaraan prosedur dengan itu adalah C berasaskan, sementara RMI menyokong paradigma pengaturcaraan berorientasikan objek dan berasaskan java.
- Parameter yang diluluskan kepada prosedur jauh di RPC adalah struktur data biasa. Sebaliknya, RMI mengalihkan objek sebagai parameter kepada kaedah jauh.
- RPC boleh dianggap sebagai versi lama RMI, dan ia digunakan dalam bahasa pengaturcaraan yang menyokong pengaturcaraan prosedur, dan ia hanya boleh menggunakan kaedah lulus dengan nilai. Sebaliknya, kemudahan RMI disediakan berdasarkan pendekatan pengaturcaraan moden, yang boleh menggunakan lulus mengikut nilai atau rujukan. Satu lagi kelebihan RMI adalah bahawa parameter yang diluluskan oleh rujukan boleh diubah.
- Protokol RPC menjana lebihan daripada RMI.
- Parameter yang diluluskan dalam RPC mestilah " keluar " yang bermaksud bahawa nilai yang dihantar kepada prosedur dan nilai output mesti mempunyai data yang sama. Sebaliknya, tidak ada paksaan parameter " keluar " dalam RMI.
- Dalam RPC, rujukan tidak mungkin kerana kedua-dua proses mempunyai ruang alamat yang berbeza, tetapi mungkin dalam hal RMI.
Kesimpulannya
Kedua-dua RPC dan RMI mempunyai tujuan yang sama tetapi digunakan dalam bahasa menyokong paradigma pengaturcaraan yang berbeza, oleh itu mempunyai ciri-ciri yang berbeza.