BAB v Remote Procedure Call (COMPLETE)
-
Upload
sujana-aris-krisnawan-sahabatnoah -
Category
Documents
-
view
12 -
download
2
Transcript of BAB v Remote Procedure Call (COMPLETE)
-
V-1
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, suatu server proses
mendefinisikan prosedur-prosedur yang tersedia. RPC,
seperti RMI dapat diimplementasikan untuk 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 setiap prosedur dalam service
interface. Fungsi dari stub procedure sama dengan
fungsi di sebuah proxy. Stub procedure bertindak
seperti lokal prosedur kepada client, tetapi dia tidak
melaksanakan panggilan, melainkan stub procedure
mengatur identifikasi prosedur dan argument ke dalam
suatu request message yang kemudian dikirimkan oleh
stub procedure kepada server melalui communication
module. Ketika reply message datang maka stub procedure
-
V-2
mengatur hasil-hasilnya. Procedure process memiliki
sebuah pengirim bersama dengan satu stub procedure
server dan satu prosedur servis untuk setiap prosedur
dalam service interface. Pemanggil ini memilih satu
dari sekian stub procedure sesuai dengan
pengidentifikasi prosedur dalam request message. Stub
procedure Server menyerupai skeleton method dalam hal
cara stub procedure server mengacak argument dalam
request message, memanggil prosedur 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-3
dan interface compiler yang disebut dengan rpcgen, yang
menggunakan bahasa pemrograman C.
Sun XDR Language, yang mulanya di-design untuk
representasi spesifik data eksternal. Kemudian
dikembangkan menjadi interface definition language. Itu
mungkin digunakan untuk mendefinisikan service
interface untuk Sun RPC oleh 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 mengembangkan java objek model untuk
menyediakan dukungan bagi objek-objek yang
didistribusikan dalam bahasa pemrograman java. Secara
mengkhusus java RMI memungkinkan objek untuk memanggil
metode pada remote object dengan menggunakan sintaks
yang sama seperti pada pemanggilan lokal. Kemudian
pengecekan tipe berlaku sama baik untuk 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-4
remote interface. Meskipun model objek yang disebarkan
dintegrasikan ke dalam Java secara alami, semantik
parameter parsingnya berbeda karena 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 studi kasus ini, kita menggunakan sebuah
shared whiteboard sebagai contoh. Ini adalah sebuah
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-5
Server juga menyediakan operasi-operasi yang
memungkinkan client untuk memanggil bentuk-bentuk
terakhir yang dibuat oleh pengguna lain dengan pilihan
server. Server memiliki nomor versi (integer) yang
selalu bertambah setiap bentuk baru datang dan
dicantumkan ke dalam bentuk yang baru. Server
menyediakan operasi-operasi yang memungkinkan client
untuk menyakan nomor versinya dan nomor versi setiap
bentuk, sehingga mereka dapat menghindari pengambilan
bentuk-bentuk yang sudah dimiliki.