Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara RPC dan RMI

RPC dan RMI adalah mekanisme yang memungkinkan klien untuk menjalankan prosedur atau metode dari server melalui menjalin komunikasi antara klien dan server. Perbedaan umum antara RPC dan RMI adalah bahwa RPC hanya mendukung pemrograman prosedural sedangkan RMI mendukung pemrograman berorientasi objek .

Perbedaan utama antara keduanya adalah bahwa parameter yang dilewatkan ke panggilan prosedur jarak jauh terdiri dari struktur data biasa . Di sisi lain, parameter yang diteruskan ke metode jarak jauh terdiri dari objek .

Grafik perbandingan

Dasar untuk perbandinganRPCRMI
MendukungPemrograman prosedural
Pemrograman berorientasi objek
ParameterStruktur data biasa diteruskan ke prosedur jarak jauh.Objek diteruskan ke metode jarak jauh.
EfisiensiLebih rendah dari RMILebih dari RPC dan didukung oleh pendekatan pemrograman modern (yaitu paradigma berorientasi objek)
OverheadLebih
Kurang komparatif
Parameter masuk-keluar adalah wajib.iya nihBelum tentu
Penyediaan kemudahan pemrograman
Tinggi
rendah

Definisi RPC

Remote Procedure Call (RPC) adalah fitur bahasa pemrograman yang dirancang untuk komputasi terdistribusi dan didasarkan pada semantik panggilan prosedur lokal . Ini adalah bentuk paling umum dari layanan jarak jauh dan dirancang sebagai cara untuk mengabstraksi mekanisme panggilan prosedur untuk digunakan antara sistem yang terhubung melalui jaringan. Ini mirip dengan mekanisme IPC di mana sistem operasi memungkinkan proses untuk mengelola data bersama dan berurusan dengan lingkungan di mana proses yang berbeda dijalankan pada sistem yang terpisah dan tentu saja memerlukan komunikasi berbasis pesan.

Mari kita pahami bagaimana RPC diimplementasikan melalui langkah-langkah yang diberikan:

  • Proses klien memanggil rintisan klien dengan parameter, dan pelaksanaannya ditunda hingga panggilan selesai.
  • Parameter kemudian diterjemahkan ke dalam bentuk mesin-independen dengan menyusun melalui rintisan klien. Kemudian pesan disiapkan yang berisi representasi dari parameter.
  • Untuk menemukan identitas situs, stub klien berkomunikasi dengan server nama tempat prosedur jarak jauh ada.
  • Menggunakan protokol pemblokiran, rintisan klien mengirim pesan ke situs tempat panggilan prosedur jarak jauh ada. Langkah ini menghentikan rintisan klien sampai mendapat balasan.
  • Situs server menerima pesan yang dikirim dari sisi klien dan mengubahnya menjadi format khusus mesin.
  • Sekarang stub server mengeksekusi panggilan pada prosedur server bersama dengan parameter, dan stub server dihentikan sampai prosedur selesai.
  • Prosedur server mengembalikan hasil yang dihasilkan ke rintisan server, dan hasilnya dapat dikonversi ke format bebas mesin di rintisan server dan membuat pesan yang berisi hasil.
  • Pesan hasil dikirim ke rintisan klien yang dikonversi kembali ke format spesifik mesin yang cocok untuk rintisan klien.
  • Pada klien terakhir, rintisan mengembalikan hasilnya ke proses klien.

Definisi RMI

Remote Method Invocation (RMI) mirip dengan RPC tetapi spesifik bahasa dan fitur java. Utas diizinkan untuk memanggil metode pada objek jarak jauh. Untuk menjaga transparansi di sisi klien dan server, ia mengimplementasikan objek jarak jauh menggunakan bertopik dan kerangka. Stub berada pada klien dan untuk objek jarak jauh ia berperilaku sebagai proxy.

Ketika klien memanggil metode jarak jauh, stub untuk metode jarak jauh dipanggil. Rintisan klien bertanggung jawab untuk membuat dan mengirim paket yang berisi nama metode dan parameter marshalled, dan kerangka bertanggung jawab untuk menerima parsel.

Kerangka unmarshals parameter dan memanggil metode yang diinginkan di server. Kerangka marsekal nilai yang diberikan (atau pengecualian) dengan parsel dan mengirimkannya ke rintisan klien. Stub merakit kembali paket yang dikembalikan dan mengirimkannya ke klien.

Di Jawa, parameter dilewatkan ke metode dan dikembalikan dalam bentuk referensi. Ini bisa merepotkan untuk layanan RMI karena tidak semua objek mungkin metode yang jauh. Jadi, itu harus menentukan mana yang bisa dilewatkan sebagai referensi dan mana yang tidak bisa.

Java menggunakan proses yang disebut sebagai serialisasi di mana objek dilewatkan sebagai nilai. Objek jarak jauh dilokalkan dengan nilai by pass. Itu juga dapat melewatkan objek dengan referensi melalui melewatkan referensi jarak jauh ke objek bersama dengan URL dari kelas rintisan. Lewat referensi membatasi rintisan untuk objek jarak jauh.

Perbedaan Kunci Antara RPC dan RMI

  1. RPC mendukung paradigma pemrograman prosedural dengan demikian berbasis C, sedangkan RMI mendukung paradigma pemrograman berorientasi objek dan berbasis java.
  2. Parameter yang diteruskan ke prosedur jarak jauh di RPC adalah struktur data biasa. Sebaliknya, RMI mentransmisikan objek sebagai parameter ke metode jarak jauh.
  3. RPC dapat dianggap sebagai versi RMI yang lebih lama, dan digunakan dalam bahasa pemrograman yang mendukung pemrograman prosedural, dan itu hanya dapat menggunakan metode pass by value. Sebaliknya, fasilitas RMI dirancang berdasarkan pendekatan pemrograman modern, yang dapat menggunakan nilai atau referensi lewat. Keuntungan lain dari RMI adalah bahwa parameter yang dilewatkan oleh referensi dapat diubah.
  4. Protokol RPC menghasilkan lebih banyak overhead daripada RMI.
  5. Parameter yang diteruskan dalam RPC harus “ in-out ” yang berarti bahwa nilai yang diteruskan ke prosedur dan nilai output harus memiliki tipe data yang sama. Sebaliknya, tidak ada paksaan untuk melewatkan parameter “ masuk-keluar ” di RMI.
  6. Dalam RPC, referensi tidak mungkin dimungkinkan karena kedua proses memiliki ruang alamat yang berbeda, tetapi dimungkinkan dalam kasus RMI.

Kesimpulan

Baik RPC dan RMI memiliki tujuan yang sama tetapi digunakan dalam bahasa yang mendukung paradigma pemrograman yang berbeda, oleh karena itu memiliki fitur yang berbeda.

Top