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
remote procedure. Pendekatan yang
dilakuan adalah sebuah
server membuka
socket, lalu menunggu
client yang meminta prosedur yang
disediakan oleh server. Bila
client tidak tahu harus menghubungi
port yang mana,
client bisa me-
request kepada sebuah
matchmaker pada sebuah RPC
port yang tetap.
Matchmaker akan memberikan
port apa yang digunakan oleh
prosedur yang diminta
client.
RPC masih menggunakan cara primitif dalam pemrograman,
yaitu menggunakan paradigma
procedural programming. Hal itu
membuat kita sulit ketika menyediakan banyak
remote procedure. RPC menggunakan
socket untuk berkomunikasi dengan
proses lainnya. Pada sistem seperti SUN, RPC secara
default sudah ter-
install 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.
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) sebagai 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.
Fitur dalam RPC
1. Batching Calls
Mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara berurutan.
2. Broadcasting Calls
Menijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network.
3. Callback Procedures
Mengijinkan server untuk bertindak sebagai klien dan melakukan PRC callback ke proses yang dijalankan klien.
4. Select Subrutin
Memeriksa
deskripsi suatu file dan messages dalamantrian untuk melihat apakah
siap dibaca atau ditulis,atau ditahan. (mengijinkan server untuk
menginterupsi suatu aktivitas.
Prinsip RPC dalam program Client-Server
Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan
- ƒ
Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam
formattransimisi. Langkah ini dinamakan marshalling
ƒProxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data
dan meminta instans dari komponen (remote)
- ƒStub
menerima request, unmarshall data, dan memanggil method yang
diminta. Kemudian proses mengembalikan nilai yang diinginkan
sumber :
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s06.html
http://alandalhaq.blogspot.com/2012/03/remote-procedure-call-rpc.html
http://dagger24.blogspot.com/2010/03/remote-procedure-call-rpc.html