Nama : Lintang Fajar Adiatama
Nim : 10.01.53.0035
Kelas : A1
kelompok : 12
Nim : 10.01.53.0035
Kelas : A1
kelompok : 12
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 dimintaclient.
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.
Umumnya protokol RPC yang digunakan pada saat ini adalah DCOM
(Distributed Component Object Model). Saat ini ada alternatif protokol
baru, yakni SOAP (Simple Object Access Protocol), yang berdasarkan pada
teknologi XML.
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.
Prinsip RPC dalam program clien-server
Langkah-langkah dalam RPC
1. Client procedure memanggil
client stub secara normal
2. Client stub membuat pesan,
memanggil local OS
3. Clients OS mengirim pesan ke
remote OS
4. Remote OS member pesan ke
server stub
5. Server stub membuka
parameters, memanggil server
6. Server bekerja, mengembalikan
hasil ke stub
7. Server stub mengepak itu
kedalam pesan, memanggil local OS
8. Server OS mengirim pesan ke
client OS
9. Client OS member pesan client
stub
10. Stub membuka hasil,
mengembalikan ke client
Contoh Implementasi RPC dengan SUN RPC
• Fungsi yg dipanggil client
melalui RPC:
- bin_date_1:
No arguments.
Result in long integer: waktu
saat ini, dlm jumlah detik sejak 00:00:00 GMT, January 1, 1970.
- str_date_1
Mengkonversi hasil bin_date_1
menjadi readable ASCII sring.
• Berkas yg dibuat programmer:
- Server procedure: date_proc.c
- RPC specification file: date.x
- Client main function: rdate.c
• date.x -> rpcgen ->
- Server stub: date_svc.c
- date.h
- Client stub: date_clnt.c
• Generate executable client
program:
- cc o rdate rdate.c date_clnt.c
lrpclib
• Generate executable server
program:
- cc o date_svc date_proc.c
date_svc.c lrpclib
Tidak ada komentar:
Posting Komentar