Mekanisme Remote Procedure Call(RPC)
Remote Procedure Call(RPC)
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.
Otentifikasi RPC
·
Otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan
klien pada RPC.
·
Bagian-bagian otentifikasi RPC, yaitu :
1. Protokol Otentifikasi RPC
2. Otentifikasi NULL
Digunakan pada sistem dimana pemanggil RPC tidak
mengetahui identitasnya sendiri dan server tidak membutuhkan identitas
pemanggil
3. Otentifikasi UNI
Digunakan pada prosedur remote dalam sistem UNIX
4. Otentifikasi Data Encryption
Standard
Membutuhkan keyserv daemon yang harus berjalan baik di
sisi server maupun klien.
5. Protokol Otentifikasi DES
Meliputi protokol penanganan DES pada proses
otentifikasi RPC.
6. Enkripsi Diffie-Hellman
Digunakan pada pembuatan kunci publik pada otentifikasi
DES dengan 192-bit kunci.
·
RPC tidak berhubungan dengan kontrol akses terhadap layanan individual yang
diberikan.
·
Subsistem otentifikasi pada paket RPC bersifat open-ended, yaitu
beberapa otentifikasi dapatdiasosiasikan pada RPC klien
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.
Bahasa RPC
·
Merupakan bahasa yang dikembangkan dari bahasa XDR dengan penambahan
program definisi.
·
Implementasi layanan protokol dan rutin menggunakan command rpcgen, yang
bekorespondensi denga bahasa C.
Definisi dari bahasa RPC, yaitu :
1. Definition
File dengan bahasa RPC memiliki beberapa definisi, diantaranya adalah :
enum, struct, union, typedef, const, dan program.
2. Structure
Struktur pada bahasa RPC dideklarasikan seperti pada pendeklarasian
struktur dalam bahasa C.
3. Union
Union pada bahasa RPC berbeda dengan bahasa C. Kemiripan lebih ditunjukkan
dengan variasi pada bahasa Pascal
4. Enumeration
Enumerasi pada bahasa ini memiliki syntax yang sama dengan bahasa C.
5. TypeDef
Tipe Definisi ( Typedef ) pada bahasa ini memiliki syntax yang sama dengan
typedef pada bahasa C.
6. Constant
Constant pada bahasa ini dapat digunakan jika variabel integer konstant
dibutuhkan.
7. Programs
Program RPC dideklarasikan dengan syntax berikut secara berurutan :
programdefiniton, version-list, version, procedure-list, procedure.
8. Declarations
Dalam bahasa ini, terdapat empat jenis tipe
deklarasi yaitu : simple declarations, fixed
length array declarations, variable- length declaration, dan pointer
declaration.
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
·
Reply Message
·
Dikirimkan oleh server jaringan, bervariasi
tergantun
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.
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.
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
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).
SUMBER:
http://www.scribd.com/doc/21262194/Remote-Procedure-Call
http://www.scribd.com/doc/3389539/Tugas-Mk-Istem-Terdistribusi-Makalah-RPC
http://tyassyiin.blogspot.co.id/p/remote-procedure-call-rpc.html
http://alandalhaq.blogspot.co.id/2012/03/remote-procedure-call-rpc.html