Rizki Rachma Putri
18111238-4KA41
sumber: http://orida-orida.blogspot.com/2013/03/remote-procedure-call-rpc.html
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
dilakukan 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 paradigm
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.
RPC
dirancang sebagai suatu metoda yang powerfull, cepat, efisien, dan aman untuk
komunikasi dan sinkronisasi antara client dan server sehingga lebih mudah
memungkinkan pertukaran data pada proses yang berbeda. Proses bisa berada di
komputer yang sama, LAN atau Internet
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 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: hubungan anatara client dan server bersifat
static
Berdasarkan
prosedural/structured programming yang sudah ketinggalan jaman dibandingkan
OOP.
Protokol
Message RPC
Protokol
Message RPC didefinisikan dengan menggunakan deskripsi data eXternal Data
Representation ( XDR ) yang meliputi struktur, enumerasi dan union. Pembahasan
lebih
lanjut
akan diterangkan pada bab berikutnya mengenai implementasi RPC.
Protokol
Message ini membutuhkan faktor-faktor pendukung sebagai berikut:
1.
Spesifikasi yang unik untuk tiap prosedur call
2.
Respon message yang sesuai untuk tiap message yang diminta
3.
Otentifikasi klien untuk tiap layanan dan sebaliknya
Protokol
Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan
reply message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan
akan menerima balasan (reply) berupa hasil dari eksekusi prosedur tersebut.
Dengan menggunakan spesifikasi yang unik untuk tiap prosedure remote, maka RPC
dapat mencocokkan message balasan untuk tiap call message yang diminta klien.
Call
Message
Tiap
call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan
untuk mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah :
1.
Nomor Program
2.
Nomor Versi dari Program
3.
Nomor Prosedur
Reply
Message
Reply
message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call
messages yang diminta klien diterima atau ditolak. Reply message mengandung
informasi yang digunakan untuk membedakan kondisi-kondisi yang diminta sesuai
dengan call messages. Informasi ini antara lain :
1. RPM mengeksekusi call message dengan
sukses
2. Implementasi remote tidak sesuai dengan
protokol yang digunakan. Versi yang lebih
rendah
atau tinggi akan 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
· Batching Calls
Fitur
Batching calls mengijinkan klien untuk mengirim message calls ke server dalam
jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol
streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan
batching, klien tidak menunggu server untuk memberikan reply terhadap tiap
messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan
messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC
didesain agar pada tiap call message yang dikirimkan oleh klien harus ada
proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus
dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan
menerima peringatan apabila terjadi error pada message yang dikirim.
· Broadcasting Calls
Fitur
Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan
menunggu balasan dari network. FItur ini menggunakan protokol yang berbasiskan
paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan
port mapper RPC untuk mengimplementasikan fungsinya.
· Callback Procedures
Fitur
Callback Procedures mengijinkan server untuk bertindak sebagai klien dan
melakukan RPC callback ke proses yang dijalankan oleh klien.
· Menggunakan select Subrutin
Fitur
ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk
melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau
mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk
menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan
proses aktivitas tersebut.
· Otentifikasi RPC
Proses
otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan
klien pada RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC
menyediakan slot yang dipakai sebagai parameter otentifikasi yang berfungsi
agar pemanggil (caller) dapat, memberikan identitasnya kepada server. Parameter
otentifikasi ini dibuat di paket klien. Otentifikasi RPC terdiri atas beberapa
bagian. Berikut ini adalah bagian-bagian pada otentifikasi RPC :
Protokol
Otentifikasi RPC
Protokol
Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap
prosedur remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter
yang digunakan adalah respon verifier. Sedangkan pada pihak klien, setiap paket
RPC diberikan parameter otentifikasi dan parameter yang digunakan adalah
credential dan
verifier.
Otentifikasi
NULL
Otentifikasi
NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui
identitasnya sendiri dan server tidak membutuhkan identitas pemanggil.
Otentifikasi
UNIX
Otentifikasi
Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini
dibagi dua (2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi
server. Pada sisi klien, otentifikasi ini akan membuat otentifikasi handle
dengan AIX permissions agar dapat berasosiasi dengan parameter credentials pada
sistem UNIX. Sedangkan pada sisi server, server harus dapat menentukan tipe
otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap
tipe otentifikasi akan memberikan reply yang berbeda.
Otentifikasi
Data Encryption Standard ( DES )
Otentifikasi
DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun
klien. Tiap pengguna pada sistem ini harus memiliki kunci public ( public key
yang disahkan pada database kunci publik oleh Administrator jaringan tersebut.
Protokol
Otentifikasi DES
Protokol
Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi RPC.
Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan
panjang maksimum untuk user name pada jaringan yang digunakan.
Enkripsi
Diffie-Hellman
Enkripsi
Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES dengan
menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variable onstan,
yaitu BASE dan MODULUS yang digunakan pada protokol otentifikasi DES. PC
berhubungan hanya dengan proses otentifikasi, tidak dengan kontrol akses
terhadap ervices/layanan individual yang diberikan. Tiap layanan
mengimplementasikan eraturan mengenai kontrol akses masing-masing.
Prinsip
Dasar RPC
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 (Stub adalah kode untuk
mengkonversi parameter yang dipassing saat RPC berjalan)
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