Apa Itu RPC ? Cara Kerja dan Pembahasannya Secara Lengkap

Pengertian Apa Itu RPC ?

Apa Itu RPC – Remote Procedure Calls (RPC) adalah suatu protokol yang menyediakan mekanisme komunikasi antar proses yang memungkinkan suatu program untuk berjalan di komputer lain tanpa merasa adanya eksekusi kode di sistem yang jauh (remote system). Ini berbeda dengan REST.

RPC menggunakan protokol transportasi seperti TCP atau UDP untuk mengirim pesan data dalam komunikasi suatu program. Protokol RPC dibangun di atas protokol eXternal Data Representation (XDR), yang merupakan standar untuk representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari setiap layanan RPC yang disediakan. Protokol RPC memungkinkan pengguna untuk bekerja dengan prosedur remote seolah-olah mereka bekerja dengan prosedur lokal.

RPC didefinisikan menggunakan rutin yang terdapat dalam protokol RPC. Setiap pesan panggilan akan disesuaikan dengan pesan balikan. Protokol RPC sendiri sebenarnya adalah protokol untuk “mengirim pesan” yang mengimplementasikan protokol non-RPC lain seperti panggilan batching remote dan broadcasting.

Protokol ini juga mendukung adanya prosedur callback dan subroutine select di sisi server. Klien dan Server Klien adalah komputer atau proses yang mengakses layanan atau sumber daya dari proses atau komputer lain di jaringan. Server adalah komputer yang menyediakan layanan dan sumber daya, dan yang mengimplementasikan layanan jaringan.

Setiap layanan di jaringan adalah kumpulan program remote, dan setiap program remote mengimplementasikan prosedur remote. Semua prosedur beserta parameter dan hasilnya didokumentasikan secara spesifik dalam protokol suatu program. Protokol pesan RPC didefinisikan menggunakan deskripsi data eXternal Data Representation (XDR) yang mencakup struktur, enumerasi, dan union.

Otentifikasi RPC

Berikut ini adalah bagian-bagian pada otentifikasi RPC :

  1. Protokol Otentifikasi RPC adalah bagian dari protokol RPC yang digunakan untuk mengotentikasi setiap prosedur remote di server dengan menggunakan parameter respon verifier. Di klien, setiap paket RPC diberikan parameter otentifikasi dengan menggunakan credential dan verifier. Ada dua jenis otentifikasi yang dapat digunakan dalam sistem UNIX, yaitu otentifikasi NULL dan otentifikasi UNIX.
  2. Otentifikasi NULL digunakan di sistem di mana pemanggil RPC tidak mengetahui identitasnya sendiri dan server tidak memerlukan identitas pemanggil.
  3. Sedangkan otentifikasi UNIX digunakan untuk prosedur remote di sistem UNIX dan terdiri dari otentifikasi di sisi klien dan otentifikasi di sisi server. Pada sisi klien, otentifikasi ini akan membuat otentifikasi handle dengan izin AIX yang dapat diasosiasikan dengan credential di sistem UNIX. Sementara itu, di sisi server, server harus dapat menentukan jenis otentifikasi yang diberikan oleh pemanggil RPC dan memberikan respon yang berbeda tergantung pada dukungan yang diberikan terhadap jenis otentifikasi tersebut.
  4. Otentifikasi Data Encryption Standard (DES) memerlukan daemon keyserv yang harus berjalan dengan baik di sisi klien maupun server. Setiap pengguna sistem ini harus memiliki kunci public yang telah disahkan oleh administrator jaringan di database kunci publik.
  5. Protokol Otentifikasi DES mencakup protokol penanganan DES dalam proses otentifikasi RPC, termasuk blok data DES 64-bit yang terenkripsi dan panjang maksimum untuk nama pengguna di jaringan yang digunakan.
  6. Enkripsi Diffie-Hellman digunakan dalam pembuatan kunci public pada otentifikasi DES dengan menggunakan kunci 192-bit. Enkripsi ini memiliki dua variable onstan yaitu BASE dan MODULUS yang digunakan dalam protokol otentifikasi DES. PC hanya terkait dengan proses otentifikasi, bukan dengan kontrol akses terhadap layanan individual yang diberikan. Setiap layanan memiliki aturan sendiri mengenai kontrol akses. Subsistem otentifikasi pada paket RPC bersifat terbuka, artinya beberapa otentifikasi dapat diasosiasikan dengan RPC klien.

Cara Kerja RPC

Setiap prosedur yang dipanggil dalam RPC harus terhubung dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server, dan kemudian melakukan proses sebelum selesai. Proses tersebut disebut juga sebagai stub pada sisi klien. Sementara itu, stub pada sisi server adalah proses menunggu setiap pesan yang berisi permintaan tentang prosedur tertentu.

Diagram di atas memberikan gambaran tentang aliran dari eksekusi dalam proses RPC. Berikut adalah diagram yang akan menjelaskan secara rinci tentang proses yang terjadi pada klien dan server dalam eksekusi suatu prosedur RPC.

Berikut ini adalah penjelasan mengenai diagram di atas:

  1. Klien memanggil prosedur stub lokal. Prosedur Stub akan mengirimkan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut marshalling.
  2. Fungsi Network pada O/S (Operating System) akan dipanggil oleh stub untuk mengirim suatu pesan.
  3. Kemudian Kernel akan mengirim pesan ke sistem remote. Kondisi ini bisa berupa connectionless atau connection-oriented.
  4. Stub pada sisi server akan melakukan proses unmarshalling pada paket yang dikirim ke jaringan.
  5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.
  6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server.
  7. Stub server akan melakukan proses marshalling lagi dan mengirimkan pesan nilai balikan (hasilnya) kembali ke jaringan.
  8. Pesan ini akan dikirim kembali ke klien.
  9. Stub klien akan membaca pesan ini dengan menggunakan fungsi pada jaringan.
  10. Proses unmarshalling kemudian dilakukan pada pesan ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

Proses di atas akan dilakukan berulang-ulang (rekursif) dalam pengeksekusian RPC dalam suatu remote sistem. Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan putty untuk melakukan SSH.

Kelebihan RPC

Berikut ini adalah beberapa kelebihan dari RPC:

  1. Relatif mudah digunakan.
  2. Pemanggilan prosedur remote tidak jauh berbeda dari pemanggilan prosedur lokal.
  3. Sehingga, pemrogram dapat fokus pada logika software, tidak perlu memikirkan detail-detail low level seperti soket, marshalling, dan unmarshalling.
  4. Robust (sempurna).
  5. Sejak tahun 1980-an, RPC banyak digunakan dalam pengembangan aplikasi mission-critical yang membutuhkan skalabilitas, fault tolerance, dan keandalan.

Kelemahan RPC

Berikut beberapa kelemahan dari RPC:

  1. Tidak fleksibel terhadap perubahan.
  2. Hubungan statis antara klien dan server pada saat runtime.
  3. Berdasarkan pemrograman prosedural/terstruktur yang ketinggalan zaman dibandingkan dengan pemrograman berorientasi objek.
  4. Kurangnya transparansi lokasi.
  5. Misalnya, pemrogram hanya bisa melakukan pass by value, bukan pass by reference.
  6. Komunikasi hanya antara 1 klien dan 1 server (one-to-one pada suatu waktu).
  7. Komunikasi antara 1 klien dan beberapa server membutuhkan beberapa koneksi terpisah.

Jadi, dapat disimpulkan bahwa Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini, sebuah server harus menyediakan layanan prosedur remote.

 

Demikian ulasan mengenai Apa Itu RPC Cara Kerja dan Pembahasannya Secara Lengkap, semoga bisa mudah kalian pahami ya, dan bisa di jadikan sebagai penambah wawasan. Terima kasih

administrator

Halo, Saya adalah penulis artikel dengan judul Apa Itu RPC ? Cara Kerja dan Pembahasannya Secara Lengkap yang dipublish pada January 6, 2023 di website Markas Info

Artikel Terkait

Leave a Comment