Anda di halaman 1dari 6

BAB II

KOMUNIKASI

2.1. Sistem Komunikasi


Pada bab ini akan dibahas bagaimana komunikasi antara object-object dalam sistem terdistribusi,
khusus nya dengan menggunakan RMI (Remod Method Invokation) dan RPC (Remote Procedure
Call). RMI dan RPC berbasiskan metode request dan reply.

Gambar 2.1: Model komunikasi dan implementasi layer pada sistem terdistribusi Request dan reply
diimplementasikan pada protokol jaringan.

2.2. Network Protocol


Middleware dan aplikasi terdistribusi di implementasikan diatas protokol network. Protocol
diimplementasikan dalam beberapa lapisan (layer).

2.2.1. TCP dan UDP


TCP ( Transport Control Protocol) dan UDP (User Datagram Protocol) adalah protokol transport
yang berada di atas lapisan Internet Protocol (IP).

2.2.1.1. TCP (Transport Control Protocol)


TCP adalah protocol yang handal, TCP dapat memastikan data yang dikirimkan sampai ke tujuan
begitu juga sebaliknya. TCP menambahkan beberapa prosedur diatas layer internet protocol untuk
memastikan reliabilitas transport data :

Sequencing.
Pada setiap transmisi data (paket) diberi nomor urut. Sehingga pada titik tujuan tidak ada
segmen yang diterima sampai semua segmen pada urutan bawah belum di terima.

Flow Control
Pengirim tidak akanmembanjiri penerima.Karena pengiriman didasarkan pada periode
acknowledgment yang di terima oleh pengirim yang berasal dari penerima.

Retrasnmission dan duplicate handling.


Apabila segmen tidak mendapatkan acknowledge dari penerima sampai waktu timeout yang
ditentukan terlampaui maka pengirim akan mengirim ulang. Berdasarkan nomor urut
penerima data dapat mendeteksi dan menolak kalau terjadi duplikasi.

Buffering
Digunakan untuk menyeimbangkan antara pengirim dan penerima. Kalau buffer pada
penerima penuh, maka segmen yang datang akan putus, sehingga menyebabkan tidak ada
acknowledge ke pengirim dan pengirim akan melakukan transmot ulang.

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)

2.2.1.2. UDP (User Datagram Protocol)


User Datagram Protocol adalah Connetionlessprotocol (tidak menggunakan string). Digunakan
untuk mengirim data biner dari satu komputer ke komputer lainnya.

Adapun kelebihan dari UDP yaitu:


o Tidak seperti TCP yang harus menstabilkan koneksi (menggunakan stream) UDP tidak perlu
melakukannya.
o Cepat, data dapat langsung dikirim tanpa pemeriksaan koneksi.

Sedangkan kekurangannya yaitu :


o Banyak data yang hilang.
o Banyak kesalahan pengiriman.

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.

2.2.2. Komunikasi Request - Reply


Komunikasi antara proses dan objek pada sistem terdistribusi dilakukan melalui message passing.

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.

2.3. 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.

RPC dan RMI berada pada Middleware

2.4. RMI (Remote Method Invocation)

Berikut ilustrasi yang terjadi pada metode RMI :


Programmer pada client menulis :
server_id.service(values_to_server,result_arguments);
Pada sisi server mempunyai fungsi sebagai berikut :
public service(in type1 arg from client;
out type2 arg to_client);

Programmer pada client tidak mengetahui bahwa reply message yang didapatkan berasal dari server
yang dikirim melalui jaringan.

Komponen-komponen dalam RMI (gambar diatas):


1. Object A (client) : meminta layanan

2.

Object B (server) : menghantarkan layanan

3.

Proxy for B

Ketika object A mempunyai remote reference ke object B, maka akan timbul objek Proxy B
pada hostobject 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 setelah menerima hasil dari server proxy menggunakan metode
unmarshal (membuka bungkus) untuk kemudian diteruskan ke client (Object A)

Skeleton for object B


o Pada sisi server, terdapat object kerangka (skeleton) yang berhubungan ke class, kalau
object pada class tersebut dapat diakses oleh RMI.
o Skeleton menerima pesan kemudian melakukan unmarshal dan meneruskan ke method
object yang dituju.
o Dan kemudian menunggu hasil dari object B dan kemudian membungkus hasil (unmarshal)
dan kemudian dikirimkan ke client (Objec A).
o Ada bagian dari skeleton B yang disebut dengan dispatcher. dispatcher menerima request
dari communication module, dan kemudian mengidentifikasi 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


o Bagian ini bertugas untuk menterjemahkan antara referensi objek lokal dan remote. Proses
berkomunikasi antara mereka disimpan dalam remote object table. Yang mengenerate class
untuk proxy dan skeleton adalah middleware. contoh : CORBA, Java RMI.
o Object A dan object B dipunyai oleh aplikasi (berada pada Application Layer) Remote
Reference Modul dan Communication modul dimiliki oleh middleware.
o Proxy B dan Sekeleton B berada antara middleware dan aplikasi yang di generate oleh
middleware.

Langkah-langkah proses dengan RMI :


o Urutan pemanggilan pada object client mengaktifkan method pada proxy yang akan
berhubungan dengan invoked method (method yang ter-invokasi) pada object B.
o Kemudian method yang ada pada proxy melakukan pembungkusan argumen menjadi suatu
pesan (marshalling) dan meneruskan ke modul komunikasi.
o Berdasarkan pada remote reference yang didapat dari remote reference modul, modul
komunikasi memulai request dan reply protocol melalui network.
o Modul komunikasi pada servermenerima 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).

o Method pada skeletonmeng-ekstrak (unmarshalling) argumen pada pesan yang di terima dan
mengaktifkan corresponding method (method yang berfungsi untuk melakukan komunikasi)
pada object B (server).
o Setelah menerima hasil dari object B, method dari skeleton akan membungkus hasil tersebut
dalamsebuah pesan (marshalling) danmeneruskan pesan yang sudah dibungkus ke modul
komunikasi.
o Modul komunikasimengrimkan pesan tersebut ke clientmelalui jaringan.
o Modul komunikasi pada client menerima hasil (reply) dari server dan meneruskan ke
corresponding method pada proxy.
o Kemudian proxy meng-ektrak hasil (unmarshalling) dan meneruskan ke object A (client).

2.5. 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 2.3: Ilustrasi implementasi RPC


Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi.