02 Komunikasi

download 02 Komunikasi

of 23

Transcript of 02 Komunikasi

  • 8/15/2019 02 Komunikasi

    1/23

    2. KOMUNIKASI

  • 8/15/2019 02 Komunikasi

    2/23

    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.

  • 8/15/2019 02 Komunikasi

    3/23

    Gambar 2.1: Model komunikasi dan implementasi layer pada sistem terdistribusi

    Request dan reply diimplementasikan pada protokol jaringan.

  • 8/15/2019 02 Komunikasi

    4/23

    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

  • 8/15/2019 02 Komunikasi

    5/23

    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.

  • 8/15/2019 02 Komunikasi

    6/23

  • 8/15/2019 02 Komunikasi

    7/23

    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)

  • 8/15/2019 02 Komunikasi

    8/23

    UDP (User Datagram Protocol)

    UDP tidak memberikan garansi seperti halnya yang diberikanoleh 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.

  • 8/15/2019 02 Komunikasi

    9/23

    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 client2. Mengeksekusi permintaan dari client

    3. Mengirim hasil (reply) ke client.

  • 8/15/2019 02 Komunikasi

    10/23

  • 8/15/2019 02 Komunikasi

    11/23

    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 yangdidapatkan berasal dari server yang dikirim melalui jaringan.

  • 8/15/2019 02 Komunikasi

    12/23

    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

  • 8/15/2019 02 Komunikasi

    13/23

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

  • 8/15/2019 02 Komunikasi

    14/23

    • Skeleton for object B

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

    berhubungan ke class, kalau objek pada class tersebut dapatdiakses 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).

  • 8/15/2019 02 Komunikasi

    15/23

    • Communication Modul (Modul Komunikasi)

    - Communication modul pada client atau server bertanggung

     jawab dalam pertukaran pesan yang dilakukan melalui metoderequest dan reply.

    • Remote Reference Module

    - Bagian ini bertugas untuk menterjemahkan antara referensiobjek 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

  • 8/15/2019 02 Komunikasi

    16/23

    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.

  • 8/15/2019 02 Komunikasi

    17/23

    Langkah-langkah proses dengan RMI :

    - Urutan pemanggilan pada object client mengaktifkan methodpada 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.

  • 8/15/2019 02 Komunikasi

    18/23

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

  • 8/15/2019 02 Komunikasi

    19/23

    - 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

  • 8/15/2019 02 Komunikasi

    20/23

    Pada sisi server :

    • Server Method

    import java.rmi.*;

    public interface SimpleInterface extends Remote {

    String printMessage(String name) throws RemoteException;

    }

    • Server Object

    import 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);}

  • 8/15/2019 02 Komunikasi

    21/23

    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();

    }

    }

    }

  • 8/15/2019 02 Komunikasi

    22/23

    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();

    }

    }

    }

  • 8/15/2019 02 Komunikasi

    23/23

    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