Komunikasi antar Proses

Slides:



Advertisements
Presentasi serupa
EXCEPTION HANDLING.
Advertisements

Try, Catch, Finally Throws
TCP/IP & IP ADDRESS.
Kelas A & B Jonh Fredrik Ulysses STMIK PALANGKARAYA - JFU
TCP mengatur aliran data gram dari lapisan di atasnya (lapisan aplikasi) hingga lapisan IP, sebagaimana datagram yang datang dari lapisan IP hingga ke.
JAVA Network Programming. Apa itu JAVA? ● Bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun ● Dikembangkan.
Java Progamming Operasi I/O
Pemrograman Jaringan Socket Programming Aurelio Rahmadian.
Konsep Dasar Protokol Jaringan
Referensi Model TCP/IP Pertemuan III. TCP/IP dikembangkan sebelum model OSI ada. Namun demikian lapisan-lapisan pada TCP/IP tidaklah cocok seluruhnya.
Sistem Komunikasi.
Workshop SCS: Java Game Programming
Transport Layer Computer Networks Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2012.
Pemrograman Client Server
Pengenalan Pemrograman Jaringan Materi 1 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012.
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Transport Layer.
Sistem Terdistribusi 06 – Client Server Oleh : Muh. Ary Azali.
Mendapatkan input dari keyboard
Mendapatkan Input dari Keyboard
Pertemuan-10. Transport Layer Protocol
(TRANSMISSION CONTROL PROTOCOL/INTERNET PROTOCOL)
Socket Programming Hernando Ivan Teddy S.Kom. Pertemuan 6 Pemrograman Jaringan STMIK GI MDP PALEMBANG 2013.
Network Software (Perangkat Lunak Jaringan)
Socket Programming Isbat Uzzin.
IP Address Dedi Hermanto.
Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum Socket Programming.
Inter Process Communication
REMOTE SERVICE.
TRANSPORT LAYER PROTOCOLS ( TCP DAN UDP )
UDP Socket Programming
1 Pertemuan 1 Pendahuluan Matakuliah: H0483 – Network Programming Tahun: 2005 Versi: 1.0.
UDP.
Transport Layer Protocol
OSI LAYER.
DASAR SOCKET PROGRAMMING
- PERTEMUAN 8- NETWORK PBO. Pengantar Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan.
TCP Socket Programmning
TCP/IP SOCKET Sujoko.
SISTEM TERDISTRIBUSI CSG3L3 ~SPO~
Socket Programming - 1 (TCP)
Jaringan.
Zaini, PhD Jurusan Teknik Elektro Universitas Andalas 2012
Model Sistem.
Yuliana Setiowati Politeknik Elektronika Negeri Surabaya
Transport Layer Electronic Engineering Polytechnic Institut of Surabaya – ITS Kampus ITS Sukolilo Surabaya
Networking Belajar bagaimana menerapkan sebuah MIDlet yang mempunyai kemampuan koneksi ke dalam jaringan Membuat koneksi HTTP, HTTP Redirects, HTTPS,
Materi 6 Lapis Transport
Pengaksesan Jaringan (Connection)
Referensi Model TCP/IP
TCP & UDP.
Bab 12 Transport Layer Abdillah, MIT.
Bab 9 Transport Layer Abdillah, MIT.
BAB I                       Mata Kuliah  Sistem Terdistribusi _______________________ PROSES SISTER Oleh : Laseri, S.Kom.
Socket Programming - 1 (TCP)
Socket Programming - 2 (UDP)
TRANSPORT LAYER PROTOKOL
BAB I                       Mata Kuliah  Sistem Terdistribusi _______________________ PROSES SISTER Oleh : Laseri, S.Kom.
Chapter 4 Oktober 2010.
Referensi Model TCP/IP
Transport Layer.
JARINGAN KOMPUTER JARINGAN KOMPUTER EKI SAPUTRA, S.Kom., M.Kom.
Proses Secara informaladalah program proses dalam eksekusi prosesadalah lebih dari kode program, yang kadang-kadang dikenal sebagai bagian teks. proses.
Oleh : Laseri, S.Kom BAB I                       Mata Kuliah  Sistem Terdistribusi _______________________ PROSES SISTER.
Referensi Model TCP/IP
Komunikasi antar Proses
INTERNETWORKING Didi Juardi,ST.,M.Kom.
TCP Socket Programmning
UDP Socket Programming
TCP Socket Programming
Transcript presentasi:

Komunikasi antar Proses

Pendahuluan Sistem terdistribusi sangat bergantung pada pertukaran data dan sinkronisasi diantara proses otonom yang terdistribusi. Komunikasi antar proses tersebut dikenal dengan nama IPC (Inter Proses Communication) IPC dapat dilakukan dengan menerapkan beberapa teknik berikut : Semaphore, suatu struktur data yang di share beberapa proses untuk operasi sinkronisasi pemakaian sesumber secara bersama-sama Shared Memory, memungkinkan beberapa proses untuk membagi bersama virtual memory. RPC (Remote Procedure Call), memungkinkan sebuah proses client memanggil suatu subrutin beserta parameternya berdasar interface yang disediakan oleh proses server Message Passing, komunikasi antar proses di dasarkan pada pertukaran suatu format message dengan menggunakan suatu API tertentu.

Karakteristik IPC Pertukaran pesan antar sepasang proses dapat didukung dengan dua operasi komunikasi pesan : send dan receive. Sebuah proses mengirimkan sebuah pesan (sederetan byte) ke tujuan dan proses lain pada tujuan menerima pesan Pengiriman Pesan send expression_list to destination_designator expression_list di evaluasi Menambahkan pesan baru ke destination_designator receive variable_list from source_designator ● Menerima pesan ke variable_list ● Menghapus pesan yang diterima Aktifitas IPC : komunikasi data dari proses pengirim ke proses penerima Sinkronisasi antar sepasang proses tersebut Pada sisi penerima terdapat tumpukan antrian pesan

Karakteristik IPC Sinkronisasi Diperlukan karena adanya perbedaan kecepatan eksekusi proses pada dua komputer yang berbeda Diperlukan oleh suatu proses mempengaruhi komputasi di proses lainnya Komunikasi Synchronous, proses pengirim dan penerima melakukan sinkronisasi untuk tiap pesan yang dipertukarkan. Operasi send dan receive adalah operasi blocking. Komunikasi Asynchronous, operasi send adalah operasi non-blocking, sedangkan operasi receive dapat blocking ataupun non-blocking.

Karakteristik IPC Tujuan Pengiriman Pesan Pada protokol internet, pesan dikirim ke (alamat internet, port). Sebuah port dimiliki oleh 1 proses penerima, namun dapat memiliki beberapa proses pengirim. Setiap proses yang mengetahui angka port, dapat mengirim pesan ke proses tersebut. Jika proses client menggunakan alamat Internet tetap untuk menunjuk sebuah layanan, maka layanan yang diminta harus berada pada alamat tetap tersebut. Agar tidak selalu tertuju pada satu alamat tetap saja, maka dapat digunakan pedekatan berikut untuk transparansi lokasi : Name service Location Independent Identifier

Socket dan Port Socket dikembangkan dari UNIX BSD, dan saat ini sudah ada pada seluruh UNIX (juga Linux), MS Windows, Mac Socket Menyediakan endpoint untuk komunikasi antar proses Untuk proses penerima pesan, socket harus di kaitkan dengan port lokal dan satu alamat Internet komputer client Pesan yang dikirimkan ke suatu alamat Internet dan port tertentu hanya dapat diterima oleh proses yang socketnya dikaitkan dengan alamat Internet dan port tersebut Proses mungkin menggunakan socket yang sama untuk pengiriman dan penerimaan Setiap komputer dapat memiliki 216 port. Sebuah proses dapat membuat beberapa socket untuk menerima pesan Port yang sama tidak dapat digunakan oleh dua proses yang berbeda (kecuali IP multicasting)

Socket dan Port Nomor Port dibagi dalam 3 kelompok : ● Well known port, antara 0 – 1023 ● Registered Port , antara 1024 – 49151 ● Dynamic/Private Port, antara 49152 - 65535

API Java untuk Alamat Internet

Komunikasi Datagram UDP Mengirim datagram ke penerima Tidak memerlukan ACK atau pengiriman ulang Menggunakan socket Server menyediakan sebuah port untuk pengiriman Menerima pesan dan id pengirim (ip, port) Permasalahan pada UDP : Ukuran Pesan, proses penerimaan perlu menyediakan sejumlah elemen array untuk menerima sebuah pesan. Jika pesan terlalu besar akan dipotong sesuai ukuran array. Berdasar protokol IP, ukuran paket dapat sampai 64KB, namun biasanya max. 8 KB. Aplikasi yang membutuhkan pengiriman paket yang besar, harus melakukan pemotongan. Blocking, Socket menyediakan non-blocking send dan blocking receive untuk komunikasi datagram. Timeout, operasi block untuk receive sangat cocok untuk menunggu permintaan dari client. Namun sangat tidak baik jika terus dalam kondisi blocking pada saat menunggu balasan, maka perlu timeout.

Komunikasi Datagram UDP Model Kegagalan Omission Failure Pesan terkadang akan dibuang oleh karena buffer penuh atau ada kesalahan checksum. Ordering Failure Pesan yang dikirim terkadang tidak sesuai dengan permintaan. Aplikasi yang menggunakan UDP harus menyediakan sendiri suatu kualitas komunikasi yang diperlukan. Kapan menggunakan UDP? Jika service dapat menerima kondisi omission failure. Contoh: DNS Untuk mengurangi beban terhadap jaminan bahwa pesan harus terkirimkan dengan baik : Tidak perlu menyimpan informasi status Tidak perlu transmisi ulang Tidak ada latency pada pengirim (Latency : perlambatan antara waktu awal transmisi pengirim dan waktu bit pertama diterima oleh penerima.)

Java UDP Java menyediakan DatagramPacket, untuk memformat informasi menjadi sebuah paket datagram : pesan (array), panjang pesan, alamat proses (IP, port) DatagramSocket, untuk membentuk socket penghubung dengan proses lain. Beberapa method : send dan receive setSoTimeout connect

Contoh UDP Client import java.net.*; import java.io.*; public class UDPClient{ public static void main(String args[]){ // args berisi isi pesan dan hostname tujuan try { DatagramSocket aSocket = new DatagramSocket(); // buat socket byte [] m = args[0].getBytes(); InetAddress aHost = InetAddress.getByName(args[1]); // DNS lookup int serverPort = 6789; DatagramPacket request = new DatagramPacket(m, args[0].length(), aHost, serverPort); aSocket.send(request); //kirim nessage byte[] buffer = new byte[1000]; DatagramPacket reply = new DatagramPacket(buffer, buffer.length); aSocket.receive(reply); //tunggu reply System.out.println("Reply: " + new String(reply.getData())); aSocket.close(); }catch (SocketException e){System.out.println("Socket: " + e.getMessage()); }catch (IOException e){System.out.println("IO : " + e.getMessage());} }

Contoh UDP Server import java.net.*; import java.io.*; public class UDPServer{ public static void main(String args[]){ DatagramSocket aSocket = null; try{ aSocket = new DatagramSocket(6789); byte[] buffer = new byte[1000]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); aSocket.receive(request); DatagramPacket reply = new DatagramPacket(request.getData(), request.getLength(), request.getAddress(), request.getPort()); aSocket.send(reply); } }catch (SocketException e){System.out.println("Socket: " + e.getMessage()); } catch (IOException e) {System.out.println("IO: " + e.getMessage());} }finally {if(aSocket != null) aSocket.close();}

Komunikasi Datagram TCP Byte stream Baca dan tulis ke stream Connection oriented Permasalahan pada UDP : Pencocokan Data, dua proses yang berkomunikasi harus sepakat tentang format dan tipe data yang dipertukarkan. Blocking, Socket menyediakan blocking send dan blocking receive untuk komunikasi stream. Thread, ketika server menerima sebuah koneksi, biasanya dibuatkan sebuah thread untuk melayani koneksi tersebut, sehingga dapat melayani beberapa client, jika tidak ada thread, pada satu waktu hanya 1 koneksi client yang dapat terlayani

Komunikasi Datagram TCP Model Kegagalan Untuk menyediakan komunikasi yang handal, TCP menggunakan checksum untuk pendeteksian error dan sequence number untuk pendeteksian duplikasi data Untuk menyediakan validitas, TCP menggunakan timeout dan retransmisi terhadap data yang hilang Ketika hubungan terputus, proses yang menggunakan TCP akan diinformasikan hal tersebut, dengan kelemahan : Proses tidak dapat membedakan antara kegagalan pada jaringan dan kegagalan proses pasangannya Proses komunikasi tidak dapat memberitahukan apakah pesan terakhir diterima atau tidak Sehingga dengan TCP pun tidak menjamin kehandalan pengiriman data Kapan menggunakan TCP? Kebutuhan pengiriman paket data yang dinamis tanpa harus menyesuaikan dengan ukuran paket TCP Jika memang dapat menerima operasi blocking

JAVA TCP Java menyediakan Aplikasi Client Aplikasi Server JAVA TCP New: Socket Server Socket Accept0: return Socket Request : Response: Java menyediakan Server Socket, menyatakan suatu koneksi TCP yang berfungsi untuk listen yang siap menerima suatu permintaan dari proses lain Socket, membuat sebuah stream socket dan koneksi ke suatu nomor port pada sebuah komputer