Perbezaan asas antara RPC dan RMI ialah RPC adalah mekanisme yang membolehkan panggilan prosedur pada komputer terpencil manakala RMI adalah pelaksanaan RPC di Java. RPC adalah bahasa neutral tetapi hanya menyokong jenis data primitif yang akan diluluskan. Sebaliknya, RMI terhad kepada Java tetapi membolehkan objek lulus. RPC mengikuti pembinaan bahasa prosedur tradisional manakala RMI menyokong reka bentuk berorientasikan objek.
RPC, yang bermaksud panggilan prosedur jauh, adalah sejenis komunikasi antara proses. Ini membolehkan memanggil fungsi dalam proses lain yang berjalan di komputer tempatan atau komputer terpencil. Konsep ini muncul lama dahulu pada tahun 1980, tetapi pelaksanaan terkenal pertama dilihat di Unix.
RPC melibatkan beberapa langkah. Pelanggan melakukan panggilan prosedur di komputer tempatan seperti biasa. Modul yang dipanggil stub klien mengumpul argumen dan membuat mesej dan lulus ke sistem operasi, sistem operasi melakukan panggilan sistem dan menghantar mesej ini ke komputer jauh. Sistem operasi di pelayan mengumpul mesej dan lulus ke modul pada pelayan yang dipanggil Server Stub. Kemudian pelayan pelayan memanggil prosedur di pelayan. Akhirnya, keputusan dihantar kembali kepada pelanggan.
Kelebihan menggunakan RPC adalah bahawa ia adalah bebas pada butiran rangkaian. Pengaturcara hanya perlu menentukan dengan cara abstrak manakala sistem pengendalian akan menjaga butiran rangkaian dalaman. Jadi ini menjadikan pengaturcaraan lebih mudah dan membolehkan RPC berfungsi di mana -mana rangkaian walaupun perbezaan fizikal dan protokol. Pelaksanaan RPC hadir dalam semua sistem operasi arus perdana seperti UNIX, Linux, Windows dan OS X. RPC biasanya bahasa neutral oleh itu ia mengehadkan jenis data kepada yang paling primitif kerana mereka mesti biasa untuk semua bahasa. Pendekatan dalam RPC tidak berorientasikan objek, tetapi ia adalah mekanisme prosedur tradisional seperti dalam c.
RMI, yang bermaksud Penyerahan Kaedah Jauh, adalah API (Antara Muka Pengaturcaraan Aplikasi) yang melaksanakan RPC di Java untuk menyokong sifat berorientasikan objek. Ini membolehkan panggilan kaedah Java pada mesin maya Java yang lain yang tinggal di komputer yang sama atau yang jauh. Batasan RMI adalah bahawa hanya kaedah Java yang boleh dipanggil, tetapi ini datang dengan kelebihan objek yang dapat diluluskan sebagai argumen dan nilai pulangan. Apabila prestasi dianggap RMI lebih perlahan daripada RPC kerana penglibatan bytecode pada mesin maya Java, tetapi RMI sangat mesra pengaturcara, dan sangat mudah digunakan.
RMI menggunakan mekanisme keselamatan terbina di Java dan juga memberikan kilang soket yang membolehkan penggunaan protokol lapisan pengangkutan bukan TCP bukan TCP. Selain itu, RMI menyediakan kaedah untuk memintas firewall. Langkah -langkah yang berlaku di RMI adalah serupa dengan RPC. Pelaksanaan RMI menjaga butiran rangkaian dalaman di mana pengaturcara tidak perlu bimbang tentang mereka.
• RPC adalah bahasa neutral manakala RMI terhad kepada Java.
• RPC adalah prosedur seperti di C, tetapi RMI berorientasikan objek.
• RPC hanya menyokong jenis data primitif manakala RMI membolehkan objek diluluskan sebagai argumen dan nilai pulangan. Apabila menggunakan RPC, pengaturcara mesti membahagikan sebarang objek kompaun kepada jenis data primitif.
• RMI mudah diprogramkan bahawa RPC.
• RMI lebih perlahan daripada RPC kerana RMI melibatkan pelaksanaan java bytecode.
• RMI membolehkan penggunaan corak reka bentuk kerana sifat berorientasikan objek sementara RPC tidak mempunyai keupayaan ini.
Ringkasan:
RPC adalah mekanisme neutral bahasa yang membolehkan panggilan prosedur di komputer terpencil. Walau bagaimanapun, ciri neutral bahasa mengehadkan jenis data yang diluluskan sebagai argumen dan nilai pulangan kepada jenis primitif. RMI adalah pelaksanaan RPC di Java dan ia menyokong objek lulus juga, menjadikan kehidupan pengaturcara lebih mudah. Kelebihan RMI adalah sokongan reka bentuk berorientasikan objek, tetapi batasan kepada Java adalah kelemahan.
Gambar ihsan: