RPC

RPC (Remote Procedure Call) adalah protokol komunikasi yang memungkinkan suatu program untuk meminta layanan dari program lain pada komputer berbeda dalam suatu jaringan. 

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Apa itu RPC (Remote Procedure Call)?

RPC adalah

Menurut techtarget.com, RPC (Remote Procedure Call) adalah protokol komunikasi yang memungkinkan suatu program untuk meminta layanan dari program lain pada komputer berbeda dalam suatu jaringan. 

RPC bermanfaat untuk melakukan request pada sistem jarak jauh, seolah-olah sedang menggunakan sistem lokal.

Pada sistem lokal yang biasanya, sebuah program dapat membuat request dalam alamat yang sama. Request tersebut kemudian bergerak dari pemanggil ke penerima, dan hasilnya dikembalikan. RPC memperluas fungsi tersebut dengan memfasilitasi komunikasi melalui jaringan. 

Dengan demikian, program di suatu mesin (client) dapat memanggil prosedur di komputer lain (server) dan menerima hasilnya kembali.

Mekanisme Kerja RPC

RPC  berfungsi sebagai mekanisme untuk komunikasi dan koordinasi antara proses atau program yang terletak pada mesin yang berbeda dalam suatu jaringan. Berdasarkan techtarget.com, berikut adalah cara kerja dalam panggilan RPC:

  • Client memulai panggilan: Program client memulai panggilan RPC seolah-olah meminta prosedur dalam mesin lokal dan memanggil client stub. Client stub bertindak sebagai proxy untuk prosedur jarak jauh yang sebenarnya dan bertanggung jawab untuk mengemas parameter prosedur ke dalam pesan.
  • Marshalling: Marshalling melakukan konversi parameter prosedur dari tipe data aslinya ke dalam format yang cocok untuk transmisi melalui jaringan. 
  • Mengirim pesan: Sistem operasi lokal client mengirimkan pesan yang berisi parameter prosedur yang disusun dari mesin client ke mesin server jarak jauh. 
  • Menerima pesan: Di sisi server, sistem operasi server menerima pesan masuk dari jaringan dan meneruskannya ke server stub.
  • Unmarshalling: Server stub menerima pesan dan membongkar parameter prosedur dari pesan. Pada tahap ini, dilakukan konversi data kembali ke format aslinya sehingga cocok untuk diproses oleh prosedur lokal server.
  • Eksekusi prosedur: Server stub kemudian memanggil prosedur server yang sebenarnya untuk melakukan tugas atau layanan yang diminta.
  • Menyusun return value: Setelah prosedur server menyelesaikan tugasnya, ia kembali ke server stub, yang kemudian mengatur return value ke pesan lain.
  • Mengembalikan Pesan: Server stub menyerahkan pesan yang berisi return value ke transport layer, yang menangani pengiriman pesan kembali ke transport layer client.
  • Menerima Pesan Kembali: Transport layer client mengirimkan pesan ke client stub. Client stub kemudian membongkar return value dari pesan dan mengonversinya kembali ke tipe data aslinya.
  • Kembali ke pemanggil: Client stub mengembalikan return value tersebut ke pemanggil, dan panggilan RPC selesai.

Kelebihan RPC

Melansir dari geekforgeeks.org, berikut ini adalah kelebihan RPC:

kelebihan RPC
  • Abstraksi komunikasi jaringan: RPC mempermudah pengguna untuk melakukan pengiriman pesan melalui jaringan.
  • Performa yang meningkat: RPC menghilangkan banyak protokol sehingga menghasilkan performa yang lebih baik.
  • Dukungan untuk aplikasi: RPC memungkinkan aplikasi berfungsi di berbagai lingkungan secara mulus.
  • Tidak memerlukan banyak coding ulang: RPC meminimalkan kebutuhan untuk penulisan ulang kode.
  • Dukungan untuk model berbeda: RPC mengakomodasi process-oriented model dan thread-oriented model.

Kekurangan RPC

Menurut javatpoint.com, kekurangan RPC di antaranya adalah:

  • Passing parameter terbatas: RPC hanya mengizinkan passing parameter berdasarkan nilai atau nilai pointer sehingga membatasi mekanisme passing parameter yang lebih canggih.
  • Peningkatan overhead: Pemanggilan prosedur jarak jauh menimbulkan overhead karena komunikasi jaringan sehingga berpotensi menyebabkan waktu respons lebih lambat dibandingkan dengan prosedur lokal.
  • Rentan terhadap kegagalan: Penggunaan banyak komponen seperti sistem komunikasi dan mesin jarak jauh membuat RPC lebih rentan terhadap kegagalan.
  • Kendala arsitektur hardware: RPC kurang fleksibel dalam beradaptasi dengan arsitektur hardware yang berbeda karena sebagian besar berbasis interaksi.
  • Biaya proses lebih tinggi: Penggunaan panggilan prosedur jarak jauh dapat meningkatkan biaya proses secara keseluruhan karena biaya tambahan yang diperlukan dalam komunikasi jaringan.

FAQ (Frequently Asked Question)

Bagaimana implementasi RPC?

RPC banyak diterapkan dalam berbagai kasus di mana komunikasi antara sistem jarak jauh diperlukan. Beberapa implementasi RPC yang umum meliputi:

  • Arsitektur client-server: RPC merupakan dasar untuk arsitektur client-server, di mana client membuat permintaan jarak jauh ke server untuk mengakses layanan atau data.
  • Distributed system: RPC sangat penting untuk membangun sistem terdistribusi, yang komponennya dapat didistribusikan ke beberapa mesin dan perlu berkomunikasi satu sama lain.
  • Arsitektur microservice: Dalam sistem berbasis microservice, RPC digunakan untuk memfasilitasi komunikasi antara berbagai microservice yang dapat digunakan secara independen dan dijalankan pada mesin yang berbeda.
  • Sistem file jarak jauh: RPC dapat dimanfaatkan untuk mengakses file dan sumber daya pada sistem file jarak jauh sehingga dapat berbagi dan manajemen file tanpa batas di seluruh jaringan.
  • Akses database jarak jauh: RPC dapat juga digunakan untuk mengakses database yang di-hosting di server jarak jauh sehingga client dapat melakukan operasi database pada mesin jarak jauh.

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:
Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Menu