Definisi
RPC adalah sebuah metode yang memungkinkan kita
untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat
melakukan ini sebuah serverharus menyediakan layanan remote
procedure. Pendekatan yang dilakukan adalah sebuah server membuka socket, lalu
menunggu client yang meminta prosedur yang disediakan server. RPC
masih menggunakan cara primtif dalam pemrograman yaitu menggunakan
paradigma procedural programming.
Tujuan
RPC digunakan untuk administrasi sistem sehingga
seorang administrator jaringan dapat mengakses sistemnya dan mengelola
sistemnya darimna saja, selama sistemnya terhubung ke jaringan.
Socket
RPC menggunakan socket untuk berkomunikasi dengan
proses lainnya.
Cara Kerja RPC
Tiap prosedur yang dipanggil dalam RPC, maka
proses ini harus berkoneksi dengan server remote dengan mengirimkan semua
parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses
kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien.
Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi
permintaan mengenai prosedur tertentu.
Implementasi RPC
Untuk proses nya kurang lebih sama dengan RMI.
Kalau RMI kita mengenal proxy dan skeleton, pada RPC dikenal dengan Stub(
Client stub dan Server stub).
Gambar Ilustrasi Implementasi RPC
Remote Reference Modul dan Communication Modul
berada pada tatanan sistem operasi.
Contoh implementasi adalah Sun Microsystems Open
Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation)
standard, UDP atau TCP transport protocol. Xerox Courier : RPC model, Data
representation standard, XNS (Xerox Network
Systems) SPP (Sequenced Packet Protocol) sbg
transport protocol, Apollo s Network Computing Architecture (NCA), RPC
protocol, NDR (Network Data Representation).
Langkah-langkah dalam RPC
- Prosedur
client memanggil client stub
- Client
stub membuat pesan dan memanggil OS client
- OS
client mengirim pesan ke OS server
- OS
server memberikan pesan ke server stub
- Server
stub meng-unpack parameter-parameter untuk memanggil server
- Server
mengerjakan operasi, dan mengembalikan hasilnya ke server stub
- Server
stub meng-pack hasil tersebut dan memanggil OS server
- OS
server mengirim pesan (hasil) ke OS client
- OS
client memberikan pesan tersebut ke client stub
- Client
stub meng-unpack hasil dan mengembalikan hasil tersebut ke client
Contoh RPC dengan SUN RPC
Fungsi yg dipanggil client melalui RPC:
bin_date_1:
No arguments.
Result in long integer: waktu saat ini, dlm jumlah
detik sejak 00:00:00 GMT,
January 1, 1970.
str_date_1
Mengkonversi hasil bin_date_1 menjadi readable
ASCII sring.
Berkas yg dibuat programmer:
Server procedure: date_proc.c
RPC specification file: date.x
Client main function: rdate.c
date.x -> rpcgen ->
Server stub: date_svc.c
date.h
Client stub: date_clnt.c
Generate executable client program:
cc o rdate rdate.c date_clnt.c lrpclib
Generate executable server program:
cc o date_svc date_proc.c date_svc.c lrpclib