JASMAN PARDEDE Client Server
JASMAN PARDEDE
Client Server
Arsitektur Client/Server
Suatu model umum yang diterapkan untuk pemrograman jaringan adalah model client/server
Pengembangan aplikasi jaringan lebih dikenal dengan istilah aplikasi client/server
Konsep Client-Server
client/server mempunyai konsep yang sederhana
sebuah proses atau aplikasi client melakukan permintaan(request) untuk suatu informasi atau mengirimkan sebuah perintah ke suatu aplikasi server
server akan menerima permintaan dari clientpermintaan tersebut diproses berdasarkan
permintaan client, mengembalikan suatu respon ke client
sebagai suatu hasil dari pemrosesan yang sudah dilakukan
Respon Server
berupa sekumpulan record, pesan kesalahan, sebuah nilai boolean
=>>mengindikasikan apakah permintaan telah dieksekusi dengan sukses
Tugas Server dan Client
Tugas dari server adalah melakukan listen suatu koneksi
Tugas dari client mencoba membuat koneksi ke server
Setelah koneksi terbentuk, hubungan pertukaran data antara client dan server diawali dengan suatu stream input dan output
Arsitektur Client/Server
Data
response
request
server
client
client
Protokol
Protokol adalah suatu aturan atau mekanisme di mana dua atau lebih komputer dapat saling berinterkoneksi
Komunikasi dibentuk dengan dua buah aliran data (stream)
Satu stream membaca data dari proses ke proses yang lain, sedangkan stream lainnya mengirimkan data dengan arah yang berlawan dengan arah pertama
Salah satu protokol yang paling banyak digunakan saat ini adalah protokol TCP/IP
Dua tipe komunikasi pemrograman jaringan
Pemrograman Connection-orientedmemiliki sebuah komunikasi yang terbuka dan aktif memberi kepastian bahwa paket yang dikirimkan dapat diterima dalam suatu urutan waktu Contoh, TCP/IP (Transmission Control Protocol)
Pemrograman Connectionless Komunikasi antara pengirim dan penerima tidak akan dipelihara setelah paket telah diterima lebih cepat dari pada connection-oriented tidak dijamin bahwa paket yang dikirimkan dapat sampai dengan selamat ke penerimaContoh UDP (User Datagram Protocol)
socket
Suatu antar muka dan pustaka kelas atau fungsi yang memberikan kemudahan bagi pemrograman untuk memperkaya aplikasi client/server yang dapat berjalan pada jaringan TCP/IP
Untuk menyembunyikan kekompleksitasan penggunaan protokol pendukung aplikasi client/server berbasis TCP/IP
Jenis-jenis Socket
SOCK_STREAM, SOCK_DGRAMSOCK_RAW
SOCK_STREAM
menyediakan komunikasi byte-to-byte stream digunakan pada komuniksi TCP aliran data secara kontinudiperlukan pengaturan headerLoad server lebih besar
SOCK_DGRAM
untuk komunikasi pengiriman datagramdigunakan pada komunikasi UDPdata mungkin tidak diterima di tujuanTerduplikasidata datang tidak berurutan
SOCK_RAW
digunakan oleh programmer yang membutuhkan tingkat pengontrolan yang tinggi terhadap pengiriman pesan
memperbolehkan pemrogramer untuk menspesifikasi path yang digunakan saat pengiriman packet pada suatu jaringan
Komunikasi Client/Server
Model clien/server merupakan suatu bentuk pemrograman terdistribusi di mana suatu program (client) berkomunikasi dengan program yang lainnya (server) untuk tujuan pertukaran informasi
komunikasi socket client/server
1. Server : Socket
2. Listen
4. Accept
3. Client : Socket
5. Read5. Write
5. Read5. Write
6. Close 6. Close
Server Client
Sequence diagram Socket dan ServerSocket
AplikasiClient :
Socket :
AplikasiServer :
ServerSocket :
new new
accept ( )
Socket :
return ;
request( )
response
network
Pemrograman Java Socket
Untuk membuat suatu hubungan ke mesin atau proses lain sehingga dapat mempertukarkan data baik berupa input stream maupun output stream, membutuhkan socket
Kelas pada pemrograman java dalam mendukung tipe Connection-oriented
Java.net.ServerSocket; digunakan server untuk listen koneksi
Java.net.Socket; digunakan oleh client untuk menginisialisasi koneksi
Kelas Socket
sebuah kelas yang dirancang sebagai “wakil” sebuah koneksi menggunakan protokol TCP
Saat Socket dibuat maka koneksi akan terbentuk ke suatu mesin atau proses yang dituju
Langkah pemrograman Socket
Menciptakan socketMembentuk suatu data input streamMembentuk suatu data output streamMenutup socket
Menciptakan socket disisi Client
protected Socket socket;// set up the client socketsocket = new Socket(host, portnumber);
Menciptakan socket disisi Server protected ServerSocket myServerSocket; protected Socket mySocket;
try { // create server socket client myServerSocket = new ServerSocket(port); } catch (IOException e) { System.exit(1); } try { // terima koneksi dgn client mySocket = myServerSocket.accept(); } catch (IOException e) { myServerSocket.close(); System.exit(1); }
Membentuk suatu data input stream
protected DataInputStream istream;
// Get an input stream to correspond to the client socketistream = new DataInputStream( socket.getInputStream());
Membentuk suatu data output stream
protected DataOutputStream ostream;
// Get the output streamostream = new
DataOutputStream( socket.getOutputStream());
Menutup socket
try { istream.close(); } catch (IOException e) {} try { synchronized (ostream){ ostream.flush(); ostream.close(); } // close up my socket socket.close(); } catch (IOException e) {}