Perbedaan antara RPC dan RMI

Perbedaan antara RPC dan RMI

RPC vs RMI
 

Perbedaan dasar antara RPC dan RMI adalah bahwa RPC adalah mekanisme yang memungkinkan panggilan prosedur pada komputer jarak jauh sementara RMI adalah implementasi RPC di Java. RPC netral bahasa tetapi hanya mendukung tipe data primitif yang akan dilewati. Di sisi lain, RMI terbatas pada Java tetapi memungkinkan objek yang lewat. RPC mengikuti konstruksi bahasa prosedural tradisional sementara RMI mendukung desain yang berorientasi objek.

Apa itu RPC?

RPC, yang merupakan singkatan dari Remote Procedure Call, adalah jenis komunikasi antar proses. Ini memungkinkan memanggil fungsi dalam proses lain yang berjalan di komputer lokal atau komputer jarak jauh. Konsep ini sudah lama muncul pada tahun 1980, tetapi implementasi terkenal pertama terlihat di UNIX.

RPC melibatkan beberapa langkah. Klien melakukan panggilan prosedur di komputer lokal seperti biasa. Modul yang disebut Klien Stub Kumpulkan Argumen dan buat pesan dan lulus ke sistem operasi, sistem operasi melakukan panggilan sistem dan mengirimkan pesan ini ke komputer jarak jauh. Sistem operasi di server mengumpulkan pesan dan meneruskan ke modul di server yang disebut server stub. Kemudian server Stub memanggil prosedur di server. Akhirnya, hasilnya dikirim kembali ke klien.

Keuntungan menggunakan RPC adalah independen pada detail jaringan. Programmer hanya perlu menentukan secara abstrak sementara sistem operasi akan menjaga detail jaringan internal. Jadi ini membuat pemrograman lebih mudah dan memungkinkan RPC bekerja di jaringan apa pun meskipun ada perbedaan fisik dan protokol. Implementasi RPC hadir di semua sistem operasi utama seperti UNIX, Linux, Windows dan OS X. RPC umumnya netral bahasa sehingga membatasi tipe data pada yang paling primitif karena mereka harus umum untuk semua bahasa. Pendekatan dalam RPC tidak berorientasi objek, tetapi merupakan mekanisme prosedural tradisional seperti di C.

Apa itu RMI?

RMI, yang merupakan singkatan dari Remote Method Doa, adalah API (Antarmuka Pemrograman Aplikasi) yang mengimplementasikan RPC di Java untuk mendukung sifat berorientasi objek. Ini memungkinkan panggilan metode java pada mesin virtual java lain yang berada di komputer yang sama atau yang jauh. Keterbatasan RMI adalah bahwa hanya metode Java yang dapat dipanggil, tetapi ini datang dengan keuntungan bahwa objek dapat dilewati sebagai argumen dan nilai pengembalian. Ketika kinerja dianggap RMI lebih lambat dari RPC karena keterlibatan bytecode pada mesin virtual java, tetapi RMI sangat ramah programmer, dan sangat mudah digunakan.

RMI menggunakan mekanisme keamanan bawaan di Java dan juga memberikan pabrik soket yang memungkinkan penggunaan protokol lapisan transport kustom non-TCP. Selain itu, RMI menyediakan metode untuk memotong firewall. Langkah -langkah yang terjadi dalam RMI mirip dengan RPC. Implementasi RMI menjaga detail jaringan internal di mana programmer tidak perlu khawatir tentang mereka.

Apa perbedaan antara RPC dan RMI?

• RPC netral bahasa saat RMI terbatas pada Java.

• RPC adalah prosedural seperti di C, tetapi RMI berorientasi objek.

• RPC hanya mendukung tipe data primitif sementara RMI memungkinkan objek dilewati sebagai argumen dan nilai pengembalian. Saat menggunakan RPC, programmer harus membagi objek senyawa apa pun menjadi tipe data primitif.

• RMI mudah diprogram RPC itu.

• RMI lebih lambat dari RPC karena RMI melibatkan eksekusi java bytecode.

• RMI memungkinkan penggunaan pola desain karena sifat berorientasi objek sementara RPC tidak memiliki kemampuan ini.

Ringkasan:

RPC vs RMI

RPC adalah mekanisme netral bahasa yang memungkinkan panggilan prosedur pada komputer jarak jauh. Namun, fitur netral bahasa membatasi tipe data yang dilewatkan sebagai argumen dan nilai pengembalian ke tipe primitif. RMI adalah implementasi RPC di Java dan mendukung pengesahan objek juga, membuat kehidupan programmer lebih mudah. Keuntungan RMI adalah dukungan desain yang berorientasi objek, tetapi batasan untuk Java adalah kerugian.

Gambar milik:

  1. RPC sinkron versus asinkron oleh Caps Entreprise (CC BY-SA 3.0)