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 format transimisi.
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 untuk mengimplementasikan fungsinya.
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.
Object
Remote
Meskipun teknologi RPC
ini relatif sudah memberikan kenyamanan bagi developer, tapi perkembangan
yang terjadi di bidang pemrograman berorientasi objek akhirnya menuntut
kehadiran teknologi baru. Sederet teknologi akhirnya benar-benar muncul, antara
lain; RMI (Remote Method Invocation), CORBA (Common Object Request Broker
Architecture), dan SOAP (Simple Object Access Protocol).