Remote Procedure Call (RPC)
adalah sebuah metoda yang memungkinkan kita untuk
mengakses sebuah prosedur yang
berada di komputer lain. Untuk dapat melakukan ini
sebuah komputer (server) harus
menyediakan layanan remote prosedur. Pendekatan yang
dilakukan adalah, sebuah server
membuka socket, menunggu client yang meminta
prosedur yang disediakan oleh
server.
RPC masih menggunakan cara
primitive dalam pemrograman, yaitu menggunakan
paradigma procedural programming.
Hal itu membuat kita sulit ketika menyediakan
banyak remote procedure.
RPC menggunakan soket untuk
berkomunikasi dengan proses lainnya. Pada sistem
seperti SUN, RPC secara default
sudah terinstall kedalam sistemnya, biasanya RPC ini
digunakan untuk administrasi
sistem. Sehingga seorang administrator jaringan dapat
mengakses sistemnya dan mengelola
sistemnya dari mana saja, selama sistemnya
terhubung ke jaringan.
Umumnya protokol RPC yang
digunakan pada saat ini adalah DCOM (Distributed
Component Object Model). Saat ini
ada alternatif protokol baru, yakni SOAP (Simple
Object Access Protocol), yang
berdasarkan pada teknologi XML.
Implementasi RPC
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).
Kelebihan RPC
Relatif mudah digunakan :
Pemanggilan remote procedure
tidak jauh berbeda dibandingkan pemanggilan local
procedure. Sehingga pemrogram
dapat berkonsentrasi pada software logic, tidak perlu
memikirkan low level details
seperti soket, marshalling & unmarshalling.
Robust (Sempurna):
Sejak th 1980-an RPC telah banyak
digunakan dlm pengembangan mission-critical
application yg memerlukan
scalability, fault tolerance, & reliability.
Kekurangan RPC
Tidak fleksibel terhadap
perubahan :
- Static relationship between
client & server at run-time.
- Berdasarkan
prosedural/structured programming yang sudah ketinggalan jaman
dibandingkan OOP.
Kurangnya location transparency :
- Misalnya premrogram hanya boleh
melakukan pass by value, bukan pass by
reference.
- Komunikasi hanya antara 1 klien
& 1 server (one-to-one at a time).
- Komunikasi antara 1 klien &
beberapa server memerlukan beberapa koneksi yg
terpisah.
Prinsip RPC dalam program clien-server
Langkah-langkah dalam RPC.
1. Client
procedure calls client stub in normal way
2. Client stub builds message, calls local OS
3. Client's OS sends message to remote OS
4. Remote OS gives message to server stub
5. Server stub unpacks parameters, calls server
6. Server does work, returns result to the stub
7. Server stub packs it in message, calls local OS
8. Server's OS sends message to client's OS
9. Client's OS gives message to client stub
10. Stub unpacks result, returns to client
Contoh
Implementasi 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
0 Response to "Remote Procedure Call"
Post a Comment