2. komunikasi - gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+komunikasi.pdf ·...

23
2. KOMUNIKASI

Upload: others

Post on 13-Jan-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2. KOMUNIKASI

Page 2: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.1. Sistem Komunikasi

Pembahasan :

bagaimana komunikasi antar object dalam sistem terdistribusi,

khususnya dengan menggunakan RMI (Remote Method

Invocation) dan RPC (Remote Procedure Call). RMI dan RPC

berbasiskan metode request dan reply.

Page 3: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Gambar 2.1: Model komunikasi dan implementasi layer pada sistem terdistribusi

Request dan reply diimplementasikan pada protokol jaringan.

Page 4: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.2. Network Protocol

Middleware dan aplikasi terdistribusi diimplementasikan di atas

protokol network. Protocol diimplementasikan dalam beberapa

lapisan (layer).

Gambar 2.2 : Layer protocol pada Internet

Page 5: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.2.1 TCP dan UDP

protokol transport yang berada di atas lapisan IP

TCP (Transport Control Protocol)

• TCP dapat memastikan data yang dikirimkan sampai ke

tujuan begitu juga sebaliknya.

• TCP menambahkan beberapa prosedur di atas layer

IP untuk memastikan reliabilitas transport data :

a. 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 diterima.

Page 6: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

b. Flow Control

Pengirim tidak akan membanjiri penerima, karena

pengiriman didasarkan pada periode acknowledgment

yang diterima oleh pengirim yang berasal dari

penerima.

c. Retransmission dan duplicate handlingApabila segmen tidak mendapatkan acknowledge daripenerima sampai waktu timeout yang ditentukanterlampaui maka pengirim akan mengirim ulang. Berdasarkan nomor urut penerima data dapatmendeteksi dan menolak kalau terjadi duplikasi.

Page 7: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

d. BufferingBuffering digunakan untuk menyeimbangkan antarapengirim dan penerima. Kalau buffer pada penerima penuh, maka segmenyang datang akan putus, sehingga menyebabkan tidakada acknowledge ke pengirim dan pengirim akanmelakukan transmit ulang.

e. ChecksumSetiap segment membawa checksum. Apabila checksum segmen yang diterima tidak sesuaimaka paket data tersebut akan di-drop (dankemudian akan di transmit ulang)

Page 8: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

UDP (User Datagram Protocol)

UDP tidak memberikan garansi seperti halnya yang diberikan

oleh TCP.

• UDP tidak memberikan garansi terhadap pengiriman data.

Pada Internet Protocol paket data dapat drop karena suatu

hal.

contoh : 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 dilakukan pada layer aplikasi.

Page 9: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.2.2 Komunikasi Request – Reply

Komunikasi antara proses dan objek 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.

Page 10: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.3 RPC dan RMI

Tujuan dari RPC dan RMI dibuat bagi programmer :

• agar komputer yang terdistribusi terlihat seperti komputer

yang terpusat.

• untuk melihat sistem terdistribusi dari sisi pemrogramman.

RPC dan RMI berada pada Middleware

Page 11: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

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

Page 12: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Komponen-komponen dalam RMI (gambar 2.2):

• Object A (client) meminta layanan

• Object B (server) : menghantarkan layanan

• Proxy for B

Gambar 2.2 : Ilustrasi implementasi RMI

Page 13: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

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

Setelah menerima hasil dari server proxy menggunakan

metode unmarshal (membuka bungkus) untuk kemudian

diteruskan ke client (Object A)

Page 14: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

• Skeleton for object B

- Pada sisi server, terdapat object kerangka (skeleton) yang

berhubungan ke class, kalau objek pada class tersebut dapat

diakses oleh RMI.

- Skeleton menerima pesan kemudian melakukan unmarshal

dan meneruskan ke method objek yang dituju. Kemudian

menunggu hasil dari objek B dan kemudian membungkus hasil

(unmarshal) dan kemudian dikirimkan ke client (Objek A).

- 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 objek).

Page 15: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

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

Class untuk proxy dan skeleton di-generate oleh middleware.

contoh : CORBA, Java RMI

Page 16: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Object A dan object B dipunyai oleh aplikasi (berada pada

Application Layer)

Remote Reference Modul dan Communication modul dimiliki

oleh middleware.

Proxy B dan Sekeleton B berada antara middleware dan aplikasi

yang di generate oleh middleware.

Page 17: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Langkah-langkah proses dengan RMI :

- Urutan pemanggilan pada object client mengaktifkan method

pada proxy yang akan berhubungan dengan invoked method

(method yang terinvokasi) 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.

Page 18: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

- 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 mengekstrak (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.

Page 19: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

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

Contoh RMI dengan menggunakan Java RMI :

Server object akan mencetak ”Hello World” ke layar dan

mengembalikan pesan ke klien

Page 20: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Pada sisi server :

• Server Method

import java.rmi.*;

public interface SimpleInterface extends Remote {

String printMessage(String name) throws RemoteException;

}

• Server Objectimport java.rmi.*;

import java.rmi.server.*;

public class SimpleServer extends UnicastRemoteObject implements

SimpleInterfac

public SimpleServer() throws RemoteException { super(); }

public String printMessage(String name)throws RemoteException {

System.out.println(name);

return(Hello + name);

}

Page 21: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

public static void main(String args[]) {

System.setSecurityManager(new RMISecurityManager());

try {

SimpleServer newServer = new SimpleServer();

System.out.println(SimpleServer attempting to

bind to the registry);

Naming.rebind(//mark.info:30010/SimpleServer,

newServer);

System.out.println(SimpleServer bound in the registry);

} catch(Exception e) {

System.out.println(SimpleServer error: + e.getMessage());

e.printStackTrace();

}

}

}

Page 22: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

Pada sisi client :

import java.rmi.*;

public class SimpleClient {

private static SImpleInterface server = null;

public static void main(String args[]) {

try {

server = (SimpleInterface)

Naming.lookup(//mark.info:30010/SimpleServer);

System.out.println(server.printMessage(World));

} catch(Exception e) {

System.out.println(SimpleClient error: + e.getMessage());

e.printStackTrace();

}

}

}

Page 23: 2. KOMUNIKASI - Gunadarmadewi_anggraini.staff.gunadarma.ac.id/.../02+Komunikasi.pdf · •Communication Modul (Modul Komunikasi) - Communication modul pada client atau server bertanggung

2.3.2 RPC (Remote Procedure Call)

Proses kurang lebih sama dengan RMI. Pada RMI

dikenal Proxy dan Skeleton, pada RPC dikenal dengan

Stub (Client Stub dan Server Stub).

Gambar2.3: Ilustrasi implementasi RPC

Remote Reference Modul dan Communication Modul berada pada tatanan

sistem operasi