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.
Kelebihan RPC
- Relatif mudah digunakan :
Pemanggilan
remote procedure tidak jauh berbeda dibandingkan pemanggilan procedure.
Sehingga pemrogram dapat berkonsentrasi pada software
logic, tidak perlu memikirkan low level details seperti socket,
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.
Struktur Protokol Message RPC
- Call Message
- Dilakukan oleh klien, dimana meminta server untuk mengeksekusi suatu prosedur.
- Terdapat nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedurremote yang diminta:
1. Nomor Program
2. Nomor Versi dari Program
3. Nomor Prosedur
2. Nomor Versi dari Program
3. Nomor Prosedur
- Reply Message
- Dikirimkan oleh server jaringan, bervariasi tergantung apakah call messages yang diminta klien diterima atau ditolak.
- Mengandung informasi:
1. RPM mengeksekusi call message dengan sukses
2. Implementasi remote tidak sesuai dengan protokol yang digunakan (versi yang lebih tinggi atau lebih rendah ditolak)
3.Program remote tidak tersedia pada sistem remote
4. Program remote tidak mendukung versi yang diminta klien
5. Nomor prosedur yang diminta tidak ada
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 .
Langkah-langkah dalam RPC
1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub
7. Server stub mem-pack hasil tsb dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke client
Fitur dalam RPC
- Batching Calls : Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan )
- Broadcasting Call : Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data kejaringan dan menunggu balasan dari network. FItur ini menggunakanprotokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya.Broadcast RPC membutuhkan layanan port mapper RPC untukmengimplementasikanfung sinyA
- Callback Procedures : Fitur Callback Procedures mengijinkan server untuk bertindak sebagai
- Menggunakan select Subrutin : Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalamantrian untuk melihat apakah mereka siap untuk dibaca (diterima) atauditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedurini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksadatanya, dan kemudian melanjutkan proses aktivitas tersebut.