BAB V Remote Procedure Call (RPC) Remote Procedure Call (RPC) sangat mirip dengan Remote
Method
Invocation,
pada
program
client
yang
memanggil sebuah program yang sedang berjalan di server. Server ini mungkin sebuah client dari server yang lain. Dalam
service
interface-nya,
mendefinisikan seperti
RMI
suatu
prosedur-prosedur
dapat
server
yang
diimplementasikan
proses
tersedia. untuk
RPC,
mengambil
satu dari sekian pilihan invocation semantic – yang biasa dipilih adalah at-least- once atau at-most-once. RPC umumnya diimplementasikan request reply protocol yang
disederhanakan
dengan
menghilangkan
beberapa
referensi objek dari pesan-pesan permintaan. Software yang mendukung RPC ditunjukan pada gambar 5.1. Client yang mengakses suatu servis memasukkan satu stub
procedure
untuk
interface.
Fungsi
fungsi
sebuah
di
setiap
dari
stub
proxy.
prosedur
dalam
procedure
Stub
sama
procedure
service dengan
bertindak
seperti lokal prosedur kepada client, tetapi dia tidak melaksanakan
panggilan,
melainkan
stub
procedure
mengatur identifikasi prosedur dan argument ke dalam suatu
request
stub
procedure
message kepada
yang kemudian server
dikirimkan
melalui
oleh
communication
module. Ketika reply message datang maka stub procedure
V-1
mengatur sebuah
hasil-hasilnya.
pengirim
bersama
Procedure dengan
process
satu
stub
memiliki procedure
server dan satu prosedur servis untuk setiap prosedur dalam
service
dari
interface.
sekian
stub
Pemanggil
ini
procedure
memilih
sesuai
satu
dengan
pengidentifikasi prosedur dalam request message. Stub procedure Server menyerupai skeleton method dalam hal cara
stub
request
procedure
message,
server
mengacak
memanggil
prosedur
argument
dalam
servis
yang
berkaitan dan mengatur pengembalian hasil untuk sebuah reply
message.
Prosedur
servis
mengimplementasikan
prosedur-prosedur di dalam service interface.
5.2 Sun RPC (Studi Kasus) Sun RPC di-design untuk komunikasi client-server pada Sun NFS (Network File System). Sun RPC sering disebut dengan ONC (Open Network Computing) RPC. Ini disediakan oleh Sun dan operating sistem UNIX yang lain, juga disediakan oleh instalasi NFS yang lain. Seseorang yang
mengimplementasikan
memiliki
pilihan
untuk
menggunakan RPC melalui UDP atau TCP. Ketika Sun RPC digunakan
pada
UDP,
panjang
dari
request
dan
reply
message sangat ditentukan dengan ketat. Sun RPC sistem menyediakan interface language yang disebut dengan XDR
V-2
dan interface compiler yang disebut dengan rpcgen, yang menggunakan bahasa pemrograman C. Sun
XDR
representasi
Language,
yang
spesifik
mulanya
data
di-design
eksternal.
untuk
Kemudian
dikembangkan menjadi interface definition language. Itu mungkin
digunakan
interface
untuk
untuk
Sun
mendefinisikan
RPC
oleh
service
spesifik
kumpulan
procedure definition dan supporting type definition. Notasi
yang
digunakan
agak
terbelakang
jika
dibandingkan dengan yang digunakan oleh CORBA IDL atau Java.
5.3 Java RMI (Studi Kasus) Java
RMI
menyediakan
mengembangkan dukungan
java
bagi
objek
model
objek-objek
untuk yang
didistribusikan dalam bahasa pemrograman java. Secara mengkhusus java RMI memungkinkan objek untuk memanggil metode pada remote object dengan menggunakan sintaks yang
sama
pengecekan
seperti tipe
pada
berlaku
pemanggilan sama
baik
lokal. untuk
Kemudian penggilan
remote atau pemanggilan lokal. Namun suatu objek yang melakukan pemanggilan remote menyadari bahwa targetnya jauh karena objek ini harus menangani Remote Exceptions; dan pengimplementasi objek remote ini juga sadar bahwa dia
itu
jauh
karena
dia
harus
mengimplementasikan
V-3
remote interface. Meskipun model objek yang disebarkan dintegrasikan parameter
ke
dalam
parsingnya
Java
secara
berbeda
alami,
karena
semantik
pemanggil
dan
targetnya berjauhan. Pemrograman
aplikasi-aplikasi
yang
terdistribusi
pada Java RMI seharusnya cukup sederhana karena Java merupakan
sistem
single-language
–
remote
interface
didefinisikan dalam Java. Jika digunakan sistem multi language
seperti
CORBa.
Pemrogram
perlu
belajar
mengenai IDL dan perlu memahami bagaimana IDL memetakan ke dalam implementasi sebuah bahasa pemrograman. Namun, dalam sistem single-language pun pemrogram remote objek harus memperhitungkan kebiasaan objek tersebut dalam lingkungan yang sering dialaminya. Pada shared
studi
whiteboard
kasus
ini,
kita
sebagai contoh.
menggunakan
sebuah
Ini
sebuah
adalah
program tersebar yang memungkinkan sekelompok pengguna untuk menggunakan secara bersama-sama pandangan umum drawing surface yang berisi objek grafis seperti, bujur sangkar, baris dan lingkaran, yang sudah digambar oleh salah
satu
pengguna.
Server
mempertahankan
kondisi
terkini suatu drawing dengan menyediakan operasi untuk client
untuk
menginformasikan
gambar-gambar
terakhir
yang sudah dibuat oleh pengguna dalam kelompok itu dan untuk
menyimpan
semua
bentuk
yang
sudah
diterima.
V-4
Server
juga
memungkinkan
menyediakan client
untuk
operasi-operasi memanggil
yang
bentuk-bentuk
terakhir yang dibuat oleh pengguna lain dengan pilihan server.
Server
selalu
bertambah
dicantumkan menyediakan
ke
memiliki
nomor
setiap dalam
versi
bentuk bentuk
operasi-operasi
yang
(integer)
baru yang
datang baru.
memungkinkan
yang dan
Server client
untuk menyakan nomor versinya dan nomor versi setiap bentuk, sehingga mereka dapat menghindari pengambilan bentuk-bentuk yang sudah dimiliki.
V-5