Checksum
Setiap segment membawa checksum. Apabila checksum segmen yang di terima tidak sesuai maka paket data tersebut akan di drop dan
kemudian akan di transmit ulang
UDP UDP tidak memberikan garansi seperti halnya yang di berikan oleh
TCP.
UDP tidak memberikan garansi terhadap pengiriman data Pada Internet Protocol paket data dapat drop karena suatu hal
contohnya jaringan yang rusak, UDP tidak mempunyai mekanisme untuk menanggulangi hal tersebut.
Kalau ingin menggunakan UDP sebagai protocol pengiriman yang
handal, maka mekanisme kehandalan yang diinginkan di lakukan pada layer aplikasi.
b. Komunikasi Request – Reply Komunikasi antara proses dan objek pada sistem terdistribusi dilakukan
melalui message passing.
Gambar 5.5. Komunikasi Request – Reply Client melakukan :
1. Mengirim request pesan ke server 2. Menerima hasil reply dari server
Server melakukan : 1. Penerimaan pesan request dari client
2. Mengeksekusi permintaan dari client 3. Mengirim hasil reply ke client.
5.4. RPC dan RMI
Tujuan dari RPC dan RMI dibuat bagi programmer, agar computer yang terdistribusi terlihat seperti computer yang terpusat. Dan berguna untuk melihat
sistem terdistribusi dari sisi pemrogramman.
Gambar 5.6. RPC dan RMI berada pada Middleware RMI Remote Method Invocation
Gambar 5.7. Ilustrasi implementasi RMI Komponen2 dalam RMI dalam gambar:
Object A client : meminta layanan
Object B server : menghantarkan layanan
Proxy for B
- Ketika object A mempunyai remote reference ke object B, maka akan
timbul objek Proxy B pada host object A. Proxy terbuat ketika remote object reference digunakan pertama kali
- Proxy adalah perwakilan objek yang berada pada remote, dengan kata
lain ketika terjadi invokasi dari A ke B ditangani seolah-olah hanya mengakses Proxy B.
- Ketika invokasi terjadi proxy menggunakan metode marshals untuk
membungkus pesan yang akan dikirim ke server. Dan setelahmenerima hasil dari server proxy menggunakan metode unmarshalmembuka
bungkus untuk kemudian diteruskan ke client ObjectA
Skeleton for object B
- Pada sisi server, terdapat object kerangka skeleton yang
berhubungan ke class, kalau object pada class tersebut dapat diakses oleh RMI.
- Skeleton menerima pesan kemudian melakukan unmarshal dan
meneruskan ke method object yang dituju. Dan kemudian menunggu hasil dari object B dan kemudian membungkus hasil unmarshal dan
kemudian dikirimkan ke client Objec A.
- Ada bagian dari skeleton B yang disebut dengan dispatcher. dispatcher
menerima request dari communication module, dan kemudian mengidenti…kasi invokasi dan mengarahkan permintaan ke
corresponding method method pada skeleton yang berfungsi untuk berkomunikasi dengan object.
Communication Modul Modul Komunikasi
- Communication modul pada client atau server bertanggung jawab
dalam pertukaran pesan yang dilakukan melalui metode request dan reply.
Remote Reference Module
- Bagian ini bertugas untuk menterjemahkan antara referensi objek lokal
dan remote. Proses berkomunikasi antara mereka disimpan dalam remote object table.
Langkah2 proses dengan RMI :
Urutan pemanggilan pada object client mengaktifkan method pada proxy yang akan berhubungan dengan invoked method method yang ter-
invokasi pada object B.
Kemudian method yang ada pada proxy melakukan pembungkusan argumen menjadi suatu pesan marshalling dan meneruskan ke modul
komunikasi.
Berdasarkan pada remote reference yang didapat dari remote reference modul,modul komunikasi memulai request dan reply protocol melalui
network.
Modul komunikasi pada server menerima request dari client. Kemudian berdasarkan referensi lokal yang diterima dari remote reference modul
maka akan mengaktifkan method untuk berkomunikasi dengan object pada skeleton B corresponding method.
Method pada skeleton meng-ekstrak unmarshalling argumen pada pesan
yang di terima dan mengaktifkan corresponding method method yang berfungsi untuk melakukan komunikasi pada object B server.
Setelah menerima hasil dari object B, method dari skeleton akan
membungkus hasil tersebut dalam sebuah pesan marshalling dan meneruskan pesan yang sudah dibungkus ke modul komunikasi.
Modul komunikasi mengrimkan pesan tersebut ke client melalui jaringan.
Modul komunikasi pada client menerima hasil reply dari server dan
meneruskan ke corresponding method pada proxy.Kemudian proxy meng- ektrak hasil unmarshalling dan meneruskan ke object A client.
RPC Remote Procedure Call Proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal Proxy dan
Skeleton, pada RPC dikenal dengan Stub Client Stub dan Server Stub.
Gambar 5.8. Ilustrasi implementasi RPC Remote Procedure Call RPC adalah sebuah metoda yang
memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah komputer server harus
menyediakan layanan remote prosedur. Pendekatan yang dilakukan adalah, sebuah server membuka socket, menunggu client yang meminta prosedur
yang disediakan oleh server.
RPC masih menggunakan cara primitive dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita
sulit ketika menyediakan banyak remote procedure. RPC menggunakan soket untuk berkomunikasi dengan proses
lainnya. Pada sistem seperti SUN, RPC secara default sudah terinstall 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 sbg 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 proseduralstructured 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 client-server
Gambar 5.9. Prinsip RPC dalam Program Client – Server Langkah-langkah dalam RPC
Gambar 5.10. Langkah – langkah dalam RPC
1. Client procedure calls client stub in normal way 2. Client stub builds message, calls local OS
3. Clients OS sends message to remote OS 4. Remote OS gives message to server stub
5. Server stub unpacks parameters, calls server 6. Server does work, returns result to the stub
7. Server stub packs it in message, calls local OS 8. Servers OS sends message to clients OS
9. Clients OS gives message to client stub 10. Stub unpacks result, returns to 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
5.5. Object Remote