Apa itu Client Server ?
Client/Server adalah teknologi pendistribusian kerja aplikasi antara dua komputer atau lebih, yang dihubungkan oleh jaringan komunikasi, dimana yang satu akan bertindak sebagai Client atau peminta layanan, dan yang lainnya sebagai Server, atau pemberi layanan. Baik Client ataupun Server memiliki pemroses atau CPU sendiri, sedangkan jaringan yang digunakan bisa berupa jaringan lokal (LAN) ataupun jaringan yang lebih luas lagi (WAN).
Model konsep Client/Server
Sesuai dengan kebutuhan dan juga sarana penunjang yang dimiliki, pada dasarnya implementasi aplikasi Client/Server tergantung dari pendistribusian kebutuhan prosesnya. Oleh sebab itu, pada umumnya definisi implementasi Client/Server dibagi atas 5 model yaitu :
1. Distributed Presentation
2. Remote Presentation
3. Distributed Logic
4. Remote Data
5. Distributed Data
1. Distributed Presentation
Implementasi aplikasi Client/Server dengan model ini, pada dasarnya adalah menterjemahkan tampilan antar muka aplikasi (layar) yang statis dan kaku pada terminal di Server (umumnya aplikasi di Mini Komputer ataupun Mainframe), dan membentuk tampilan antar muka di Client (PC) yang grafikal dan juga dapat mengeksploitasi fasilitas di Client seperti mouse, layar sentuh, dll.
Hal ini biasanya dilakukan pada aplikasi yang berjalan di Mainframe atau Mini komputer, dimana pada dasarnya tidak terjadi perubahan pada aplikasi tersebut hanya ditambahkan ‘jembatan’ antara layar terminal mainframe dan layar PC dengan prinsip pemetaan instruksi. Dalam prakteknya, model ini digunakan hanya untuk menjembatani tampilan kaku dan statis menjadi lebih grafikal, tanpa merubah proses asli dari aplikasi tersebut dan tampilan dari aplikasi di Server itu sendiri. Implementasi ini adalah yang paling aman dalam tahap awal penerapan Client/Server bagi pemakai Mainframe dan Mini komputer, walaupun bukan cara yang paling efektif.
CLIENT SERVER
* Presentasi Grafis * Presentasi Statis
* Proses
* Data
Gambar 1. Distributed Presentation
Remote Presentation
Pada model ini interaksi antara Client dan Server mulai dilakukan dalam bentuk pembagian kerja yang baku. Dalam implementasinya, Client akan berfungsi menjadi pemberi layanan antar muka (alat presentasi informasi) antara pemakai akhir dan aplikasi, sedang seluruh proses dan manajemen data akan dilakukan di Server.
Dengan kata lain Client akan menjadi ‘dialog manager’ antara pemakai dan aplikasi, dimana dengan jaringan komunikasi data, masukan yang terjadi akan di sampaikan ke Server untuk diproses, dan tanggapan/response balik dari Server akan dikembalikan ke jaringan komunikasi data dan ditampilkan oleh Client sebagai sarana untuk tindak lanjutnya oleh pemakai akhir.
Contoh hal ini adalah sebuah PC yang memiliki tampilan grafis yang baik akan menjadi Client bagi sebuah aplikasi Mainframe, tapi manipulasi data dan proses akan terjadi di Servernya. Hal ini dilakukan dengan menggunakan fasilitas Advanced Program to Program Communication (APPC), yang mana program di PC akan memanggil suatu prosedur/program di Mainframe dengan parameter tertentu. Program ini biasanya cukup kompleks, sebab proses Call, Wait and Response diatur oleh program tersebut.
Implementasi model ini banyak dilakukan diawal tahun 80’an, dimana konsep Client/Server mulai berkembang, tapi kemampuan PC belum berkembang seperti sekarang, dan juga teknologi Distributed Data pada RDBMS belum maju seperti saat ini. Sekarang model ini sudah agak jarang diimplementasikan.
CLIENT SERVER
* Presentasi Grafis * Proses
* Data
Gambar 2. Remote Presentation
Distributed Logic
Implementasi model ini telah memanfaatkan sumber daya pemroses yang dimiliki oleh Client. Sehingga yang menjadi perbedaannya adalah sebagian dari logika/proses aplikasi akan didelegasikan ke Client, dan presentasi data tetap di Client sepenuhnya. Dalam model ini akan terjadi pembagian kerja antara Client dan Server yang berhubungan dengan pengolahan data, dimana umumnya pembagian kerja tersebut akan berbentuk seperti hal-hal berikut ini :
• Alur kerja, data editor dan validasi dapat dibebankan ke prosesor di Client, sehingga akan meringankan beban Server, sebab semua data yang disampaikan ke Server sudah dalam bentuk yang siap pakai, tanpa perlu pengujian lebih lanjut.
• Pelaksanaan logika/kriteria proses dan integrasi data akan dilakukan oleh Server, hal ini untuk menjaga keselarasan kerja antar seluruh pemakai akhir.
Implementasi model ini adalah pengembangan dari model sebelumnya, dimana sejalan dengan meningkatnya kemampuan prosessor pada PC dan juga tersedianya perangkat lunak PC yang dapat berkolaborasi dengan perangkat lunak di Mainframe. Tapi pada umumnya aplikasi ini belum memanfaatkan RDBMS sebagai basis datanya.
CLIENT SERVER
* Presentasi Grafis * Proses Server
* Proses Client * Data
Gambar 3. Distributed Logic
Remote Data
Model ini dikembangkan sejalan dengan meningkatnya kemampuan yang dapat dilakukan oleh PC sebagai Client dari RDBMS. Pada model ini presentasi data dan logika aplikasi dilakukan seluruhnya di tingkat Client, sedang Server hanya berfungsi untuk melayani permintaan data dengan kriteria yang ditentukan Client berikut proses manajemen dari data itu sendiri.
Pada umumnya implementasi model dilakukan dengan implementasi ‘Relational Database Management System (RDBMS)’ yang berbasis SQL baik di PC (Client) dan juga di Mainframe (Server). Dengan berkembangnya kemampuan ini dimungkinkan untuk membentuk aplikasi Client/Server yang jauh lebih kompleks, dan lebih mudah digunakan oleh pemakai akhir dengan memakai alat bantu tertentu, dan membentuk proses yang mendukung hal berikut :
• Ad Hoc Query/Laporan
• Decision Support System
• Executive Information System
• Business Simulation
Hal ini sebelumnya sangat sulit dilakukan, sebab komunikasi antara program di Client dan di Server harus diprogram dan diatur sendiri oleh pemrogram, sedang pada model ini proses tersebut sudah terintegrasi menjadi satu dengan fasilitas data manajemen, sehingga lokasi data cenderung transparent kepada pemakai.
CLIENT SERVER
* Presentasi Grafis * Proses Server
* Proses Client * Data Korporate
* Data Lokal
Gambar 4. Remote Data
Distributed Data
Model ini adalah yang paling maju dan canggih dari aplikasi Client/Server. Dimana data tersebar dalam jaringan komputer dan umumnya dibutuhkan fasilitas manajemen data yang lebih kompleks.
Pada prinsipnya dengan model ini, tidak ada lagi batas antara Client dan Server, sebab pada saat tertentu Client akan dapat menjadi Server, dan begitu juga sebaliknya. Semua kontrol atas data sudah didelegasikan secara tersebar, sesuai dengan lokasi kerja yang bertanggung jawab pada data tertentu. Oleh sebab itu, dalam implementasinya bukan hanya dibutuhkan fasilitas manajemen data yang canggih, tapi juga hal-hal pokok sebagai berikut :
• Pembentukan standarisasi sistem informasi yang berlaku untuk semua lokasi, aplikasi, jaringan dan prosedur kerja pendukung sistem informasi.
• Pembentukan ‘Corporate Data Model’ yang akan menjadi acuan bagi seluruh aplikasi yang ada dan akan berjalan.
• Rancangan ‘Backbone’ untuk komunikasi data, yang akan menjadi acuan bagi seluruh jaringan aplikasi.
• Sumber daya manusia yang handal untuk menangani hal tersebut diatas, dan juga,
• Dokumentasi yang ‘up to date’, sebagai syarat utama untuk manajemen model ini.
Umumnya penerapan model ini sangat bergantung dari kemampuan RDBMS yang digunakan, dimana telah memiliki fasilitas Distributed RDBMS (DRBMS) yang memungkinkan terjadinya komunikasi data bolak balik antara Data Manajer di satu lokasi dan Data Manajer dilokasi lain, yang bahkan berbeda platform ataupun produknya. Keuntungan dari model ini, alokasi data dapat dilakukan sesuai dengan komputer yang menanganinya, tapi keberadaan lokasi dan data tersebut transparent ke pemakai.
CLIENT/Server SERVER/Client
* Presentasi Grafis * Presentasi
* Proses * Proses
* Data * Data
Gambar 5. Distributed Data
Usulan Pola Implementasi Client/Server
Untuk menerapkan aplikasi Client/Server dilingkungan suatu organisasi perlu dipertimbangkan beberapa syarat dasar yang akan menjadi landasan operasi Client/Server tersebut. Persyaratan tersebut pada dasarnya dapat dikelompokan dalam hal sebagai berikut :
• Rancangan dasar struktur Client/Server
• Sarana penunjang yang dibutuhkan
• Strategi pengembangan aplikasi
• Sumber daya manusia, dan juga
• Dukungan dari pihak eksekutif perusahaan.
Struktur Client/Server
Pada prinsipnya untuk mengimplementasikan aplikasi Client/Server perlu didefinisikan perangkat keras apa yang akan digunakan sebagai ‘Master Server’ atau Server Utama dari semua Server yang akan dipakai. Server tersebut akan menjadi Server utama dalam manajemen arsitektur Client/Server secara keseluruhan. Tapi dalam konteks yang lebih kecil, mungkin Server ini dapat juga berfungsi sebagai Client bagi Server lainnya.
Karena sifatnya sebagai pengelola jaringan Client/Server, diperlukan kriteria sebagai berikut dalam mempertimbangkan kebutuhan ‘Master Server’ :
• Non Dedicated
Non Dedicated adalah Server tidak diperuntukan hanya untuk satu fungsi tertentu, seperti menjadi ‘Data Server’ atau ‘File Server’ saja. Tapi juga untuk ‘Network management’, administrasi seperti pelaporan, dst. Contoh ‘Non Dedicated’ adalah Server yang menggunakan sistem operasi yang ‘Multi Tasking’ atau bahkan ‘Multi Threading’, seperti OS/2, Windows NT, Unix, OS/400 dan lainnya. Sedang contoh ‘Dedicated’ adalah Netware versi 3 keatas, yang dipasang dengan karakteristik DOS. Dimana hanya bisa berfungsi sebagai Server tapi tidak dapat berfungsi sebagai Client, atau fungsi-fungsinya.
• Kapasitas Besar
Kapasitas perangkat keras secara keseluruhan dari arsitektur mesin, memori, tempat penyimpanan, prosesor dan juga media pembantu lainnya yang lebih lengkap, seperti CD-ROM, Optikal Disk, Tape dan lainnya.
• Lokasi di Kantor Pusat
Karena fungsinya sebagai pengelola, dimana berfungsi juga untuk mengintegrasikan data, dan menyimpan rangkuman data perusahaan, biasanya Server Utama ini berlokasi di kantor pusat perusahaan yang umumnya memiliki sarana penunjang yang lebih baik, seperti telekomunikasi, listrik, ‘Cabling’, dan juga sumber daya manusia yang ada.
Hal ini sebenarnya cocok dengan model Client/Server Remote Data ke atas, dimana proses sehari-hari dan juga sebagian dari data akan menjadi tanggung jawab Client, sedang sebagian data yang diperlukan sebagai konsolidasi dan sifatnya ‘sharing’ dengan proses lainnya akan diletakan di Mainframe sebagai Server utama.
Dari hal tsb di atas, ada beberapa keuntungan :
• Server Utama dapat berfungsi sebagai penyedia informasi bagi sistem informasi eksekutif, dimana untuk data rangkuman akan ditempatkan di Server Utama, sedang analisis dan observasi lanjut dapat pergi ke lokasi komputer Client sesuai dengan bidang informasi yang dibutuhkan. Sebagai contoh aplikasi sumber daya manusia, biodata pegawai akan berada di Server Utama, dimana menyimpan informasi yang baku, sedang sejarah informasi, seperti sejarah jabatan, kepangkatan akan didapat pada komputer Client.
• Pemakai akhir akan dapat memproses lebih cepat dan independen. Hal ini dimungkinkan karena pemakai akhir akan memiliki sebuah komputer yang lebih kecil, apakah itu Mini atau PC, yang memiliki kemampuan proses sendiri. Hal ini mengurangi ketergantungan dari komputer pusat dan juga prosesor dapat disesuaikan dengan kebutuhan pemakai.
• Integrasi data yang lebih terpadu, dimana semua unit kerja berbagi informasi yang sama, tanpa harus memilikinya dilokasi sendiri.
• Mudah dikembangkan menjadi model Client/Server yang lebih maju, yaitu ‘Distributed Data’.
Sarana Penunjang
Sebelumnya telah disinggung secara langsung mengenai sarana penunjang Server Utama. Tapi hal yang harus diperhatikan adalah sarana komunikasi data, yaitu :
• Menentukan protokol komunikasi apa yang akan menjadi standar,
• Menyediakan sarana jaringan komunikasi data disetiap komputer, khususnya Server Utama, baik perangkat lunak dan perangkat kerasnya,
• Menyediakan saluran telekomunikasi, seperti saluran telepon, Radio Link, Satelit antara setiap jaringan komputer,
• Membentuk ‘Network Management System’ di Server Utama, dimana dapat memantau seluruh jaringan Client/Server melalui Server Utama.
Strategi Pengembangan Aplikasi
Untuk menunjang aplikasi Client/Server harus digunakan perangkat lunak yang memang dirancang dengan menggunakan pola Client/Server. Pada dasarnya pembentukan aplikasi ini ditentukan oleh implementasi ‘Relational Database Management System (RDBMS)’. Hal ini dilakukan dengan jalan memanfaatkan kemampuan RDBMS dalam melakukan pendistribusian data secara transparan (Distributed Data) antar Database kepada pemakai akhir. Dengan fungsi ‘Distributed Data’ ini, pemakai tidak perlu tahu lokasi dari data yang akan digunakannya secara fisik, selama ia memiliki otorisasi akses ke suatu data, tanpa perlu tahu data itu di komputer mana, fungsi RDBMS akan mencarikan lokasi data tersebut untuknya. Hal ini juga transparan ke aplikasi. Sehingga RDBMS sangat menunjang dalam membuat aplikasi Client/ Server.
Sumber Daya Manusia
Untuk mengembangkan aplikasi Client/Server, diperlukan bukan hanya kemampuan teknis komputerisasi semata. Tapi perlu dikembangkan wawasan berpikir untuk dapat mencakup pola kerja Client/Server, dimana dibutuhkan integrasi, sinkronisasi dan perencanaan yang matang secara keseluruhan.
Disamping itu perlu pula dikembangkan kemampuan perorangan di bidang aplikasi dan jaringan, yang mana sangat kritikal dalam implementasi aplikasi Client/Server, dengan cara memberi pendidikan dan juga ‘magang’.
Untuk mendapatkan pengalaman yang dibutuhkan, dapat dipertimbangkan suatu bentuk kerja sama dengan pihak luar yang lebih berpengalaman. Sebagai contoh, dapat dipilih salah satu aplikasi yang akan dikonversikan menjadi aplikasi Client/Server, dan dalam proses pengerjaannya melibatkan pihak luar sebagai konsultan teknis, yang mana akan memberi pengalaman implementasi bagi tenaga ahli dilingkungan perusahaan.
Dukungan Eksekutif
Menerapkan aplikasi Client/Server dilingkungan perusahaaan, diproyeksikan akan memberikan dampak positif bagi penggunaan teknologi informasi di jajaran eksekutif perusahaan, seperti lebih mudahnya membuat sistem informasi untuk eksekutif. Tapi disisi lain diperlukan biaya yang tidak sedikit dalam pelaksanaannya.
Oleh sebab itu perlu dipikirkan program kerja khusus yang berhubungan dengan aktifitas eksekutif, yang bertujuan untuk membangun minat eksekutif dalam mendukung program Client/Server ini, seperti :
• Pembentuk prototipe aplikasi Sistem Informasi Eksekutif,
• Memberikan laporan kemajuan perusahaan yang dihasilkan oleh teknologi informasi,
• Melakukan kunjungan kerja studi banding dibidang teknologi informasi bagi para eksekutif, dll.
Pertemuan 8
Client / Server Komunikasi menggunakan TCP / IP
Client / Server Komunikasi menggunakan TCP / IP
Aliran TCP socket server aplikasi mendengarkan pada jaringan untuk paket permintaan klien masuk. Aliran TCP socket aplikasi klien memulai komunikasi dengan server dengan mengirimkan paket permintaan. Ketika server menerima permintaan, itu proses dan merespon. Setelah pertukaran pesan sequencing awal, klien dan server dapat saling bertukar data.
Langkah-langkah berikut terjadi ketika membangun koneksi TCP antara dua komputer menggunakan soket:
1. Server instantiates objek ServerSocket, adalah yang menunjukkan nomor port komunikasi
2. Server memanggil metode accept () dari kelas ServerSocket. Metode ini menunggu sampai klien terhubung ke server pada port diberikan
3. Setelah server sedang menunggu, klien instantiates objek Socket, menentukan nama server dan nomor port untuk menyambung .
4. Konstruktor dari kelas Socket mencoba untuk menghubungkan klien ke server tertentu dan nomor port. Jika komunikasi didirikan, klien sekarang memiliki objek Socket mampu berkomunikasi dengan server.
5. Di sisi server, yang menerima () metode mengembalikan referensi ke soket baru pada server yang terhubung ke soket klien.
6. Setelah koneksi ditetapkan, komunikasi dapat terjadi menggunakan I / O stream. Masing-masing memiliki soket baik OutputStream dan InputStream. OutputStream klien terhubung ke InputStream server, dan InputStream klien terhubung ke OutputStream server. TCP merupakan protokol komunikasi dua arah, sehingga data dapat dikirim di kedua jaringan pada waktu yang sama.
Gambar berikut menggambarkan langkah-langkah yang diperlukan untuk menerapkan client dan server menggunakan StreamSocket
Langkah-langkah untuk menerapkan Server ;
• Langkah 1 : Membuat objek socket server. Obyek ini digunakan untuk menghubungkan ke aplikasi menggunakan port.
ServerSocket s=new ServerSocket(int port, int queue length);
Nomor Port
Panjang antrian = jumlah maksimum klien yang dapat meminta server
• Langkah 2 : Menunggu permintaan dari klien. Hal ini dilaksanakan dengan menggunakan obyek Socket.
Socket ss=s.accept();
• Langkah 3 : Buat input dan output stream untuk menerima dan mengirim komunikasi ke klien masing-masing.
BufferedReader in = new BufferedReader(new InputStream (ss.getInputStream()));
BufferedReader - Untuk menerima komunikasi dari klien.
PrintWriter out = new PrintWriter(ss.getOutStream(),true);
PrintWriter - Untuk pengiriman komunikasi ke klien
• Langkah 4 : Server dan client berkomunikasi dengan menggunakan benda-benda masuk dan keluar.
out.println(message);
Message = (String)in.readLine();
• Langkah 5 : Ketika komunikasi lebih menutup semua objects.Server menciptakan input, output dan soket dan berkomunikasi klien menggunakan benda-benda masuk dan keluar.
in.close();
out.close();
ss.close();
Langkah-langkah untuk mengimplementasikan klien menggunakan StreamSocket ;
• Langkah 1 : Buat objek soket klien untuk menghubungkan klien dengan server. objek digunakan untuk menghubungkan ke aplikasi server menggunakan port.
Socket cs=new Socket(InetAddress, int port);
Port-nomor port
Alamat-alamat server.
• Langkah 2 : Buat input dan output stream untuk menerima dan mengirim komunikasi ke klien masing-masing.
BufferedReader in = new BufferedReader(new InputStream (cs.getInputStream()));
BufferedReader - Untuk menerima komunikasi dari klien.
PrintWriter out = new PrintWriter(cs.getOutStream(),true);
PrintWriter - Untuk pengiriman komunikasi ke klien
• Langkah 3: Server dan client berkomunikasi dengan menggunakan benda-benda masuk dan keluar.
out.println(message);
Message = (String)in.readLine();
• Langkah 4: Bila komunikasi lebih dekat semua diciptakan input, output dan soket objek.
in.close();
out.close();
cs.close();
Gambar berikut menunjukkan komunikasi clinet Server menggunakan Socket Streaming ;
Program chatting menggunakan TCP / IP
Program berikut membuat aplikasi chat client / server. Komunikasi berlanjut sampai klien mengirimkan pesan Bye ke server.
Server Program:
• import java.io.*;
import java.net.*;
public class server
{
public static void main(String a[])throws IOException
{
try
{
ServerSocket s=new ServerSocket(95);
System.out.println("Server Waiting For The Client");
Socket cs=s.accept();
InetAddress ia=cs.getInetAddress();
String cli=ia.getHostAddress();
System.out.println("Connected to the client with IP:"+cli);
BufferedReader in=new BufferedReader(new
InputStreamReader(cs.getInputStream()));
PrintWriter out=new PrintWriter(cs.getOutputStream(),true);
do
{
BufferedReader din=new BufferedReader(new
InputStreamReader(System.in));
System.out.print("To Client:");
String tocl=din.readLine();
out.println(tocl);
String st=in.readLine();
if(st.equalsIgnoreCase("Bye")||st==null)break;
System.out.println("From Client:"+st);
}while(true);
in.close();
out.close();
cs.close();
}
catch(IOException e) { }
}
}
client Program:
• import java.io.*;
import java.net.*;
public class Client
{
public static void main(String a[])throws IOException
{
try
{
Socket con=new Socket("localHost",95);
BufferedReader in=new BufferedReader(new
InputStreamReader(con.getInputStream()));
PrintWriter out=new PrintWriter(con.getOutputStream(),true);
while(true)
{
String s1=in.readLine();
System.out.println("From Server:"+s1);
System.out.print("Enter the messages to the server:");
BufferedReader din=new BufferedReader(new
InputStreamReader(System.in));
String st=din.readLine();
out.println(st);
if(st.equalsIgnoreCase("Bye")||st==null)break;
}
in.close();
out.close();
con.close();
}
catch(UnknownHostException e){ }
}
}
Client/Server adalah teknologi pendistribusian kerja aplikasi antara dua komputer atau lebih, yang dihubungkan oleh jaringan komunikasi, dimana yang satu akan bertindak sebagai Client atau peminta layanan, dan yang lainnya sebagai Server, atau pemberi layanan. Baik Client ataupun Server memiliki pemroses atau CPU sendiri, sedangkan jaringan yang digunakan bisa berupa jaringan lokal (LAN) ataupun jaringan yang lebih luas lagi (WAN).
Model konsep Client/Server
Sesuai dengan kebutuhan dan juga sarana penunjang yang dimiliki, pada dasarnya implementasi aplikasi Client/Server tergantung dari pendistribusian kebutuhan prosesnya. Oleh sebab itu, pada umumnya definisi implementasi Client/Server dibagi atas 5 model yaitu :
1. Distributed Presentation
2. Remote Presentation
3. Distributed Logic
4. Remote Data
5. Distributed Data
1. Distributed Presentation
Implementasi aplikasi Client/Server dengan model ini, pada dasarnya adalah menterjemahkan tampilan antar muka aplikasi (layar) yang statis dan kaku pada terminal di Server (umumnya aplikasi di Mini Komputer ataupun Mainframe), dan membentuk tampilan antar muka di Client (PC) yang grafikal dan juga dapat mengeksploitasi fasilitas di Client seperti mouse, layar sentuh, dll.
Hal ini biasanya dilakukan pada aplikasi yang berjalan di Mainframe atau Mini komputer, dimana pada dasarnya tidak terjadi perubahan pada aplikasi tersebut hanya ditambahkan ‘jembatan’ antara layar terminal mainframe dan layar PC dengan prinsip pemetaan instruksi. Dalam prakteknya, model ini digunakan hanya untuk menjembatani tampilan kaku dan statis menjadi lebih grafikal, tanpa merubah proses asli dari aplikasi tersebut dan tampilan dari aplikasi di Server itu sendiri. Implementasi ini adalah yang paling aman dalam tahap awal penerapan Client/Server bagi pemakai Mainframe dan Mini komputer, walaupun bukan cara yang paling efektif.
CLIENT SERVER
* Presentasi Grafis * Presentasi Statis
* Proses
* Data
Gambar 1. Distributed Presentation
Remote Presentation
Pada model ini interaksi antara Client dan Server mulai dilakukan dalam bentuk pembagian kerja yang baku. Dalam implementasinya, Client akan berfungsi menjadi pemberi layanan antar muka (alat presentasi informasi) antara pemakai akhir dan aplikasi, sedang seluruh proses dan manajemen data akan dilakukan di Server.
Dengan kata lain Client akan menjadi ‘dialog manager’ antara pemakai dan aplikasi, dimana dengan jaringan komunikasi data, masukan yang terjadi akan di sampaikan ke Server untuk diproses, dan tanggapan/response balik dari Server akan dikembalikan ke jaringan komunikasi data dan ditampilkan oleh Client sebagai sarana untuk tindak lanjutnya oleh pemakai akhir.
Contoh hal ini adalah sebuah PC yang memiliki tampilan grafis yang baik akan menjadi Client bagi sebuah aplikasi Mainframe, tapi manipulasi data dan proses akan terjadi di Servernya. Hal ini dilakukan dengan menggunakan fasilitas Advanced Program to Program Communication (APPC), yang mana program di PC akan memanggil suatu prosedur/program di Mainframe dengan parameter tertentu. Program ini biasanya cukup kompleks, sebab proses Call, Wait and Response diatur oleh program tersebut.
Implementasi model ini banyak dilakukan diawal tahun 80’an, dimana konsep Client/Server mulai berkembang, tapi kemampuan PC belum berkembang seperti sekarang, dan juga teknologi Distributed Data pada RDBMS belum maju seperti saat ini. Sekarang model ini sudah agak jarang diimplementasikan.
CLIENT SERVER
* Presentasi Grafis * Proses
* Data
Gambar 2. Remote Presentation
Distributed Logic
Implementasi model ini telah memanfaatkan sumber daya pemroses yang dimiliki oleh Client. Sehingga yang menjadi perbedaannya adalah sebagian dari logika/proses aplikasi akan didelegasikan ke Client, dan presentasi data tetap di Client sepenuhnya. Dalam model ini akan terjadi pembagian kerja antara Client dan Server yang berhubungan dengan pengolahan data, dimana umumnya pembagian kerja tersebut akan berbentuk seperti hal-hal berikut ini :
• Alur kerja, data editor dan validasi dapat dibebankan ke prosesor di Client, sehingga akan meringankan beban Server, sebab semua data yang disampaikan ke Server sudah dalam bentuk yang siap pakai, tanpa perlu pengujian lebih lanjut.
• Pelaksanaan logika/kriteria proses dan integrasi data akan dilakukan oleh Server, hal ini untuk menjaga keselarasan kerja antar seluruh pemakai akhir.
Implementasi model ini adalah pengembangan dari model sebelumnya, dimana sejalan dengan meningkatnya kemampuan prosessor pada PC dan juga tersedianya perangkat lunak PC yang dapat berkolaborasi dengan perangkat lunak di Mainframe. Tapi pada umumnya aplikasi ini belum memanfaatkan RDBMS sebagai basis datanya.
CLIENT SERVER
* Presentasi Grafis * Proses Server
* Proses Client * Data
Gambar 3. Distributed Logic
Remote Data
Model ini dikembangkan sejalan dengan meningkatnya kemampuan yang dapat dilakukan oleh PC sebagai Client dari RDBMS. Pada model ini presentasi data dan logika aplikasi dilakukan seluruhnya di tingkat Client, sedang Server hanya berfungsi untuk melayani permintaan data dengan kriteria yang ditentukan Client berikut proses manajemen dari data itu sendiri.
Pada umumnya implementasi model dilakukan dengan implementasi ‘Relational Database Management System (RDBMS)’ yang berbasis SQL baik di PC (Client) dan juga di Mainframe (Server). Dengan berkembangnya kemampuan ini dimungkinkan untuk membentuk aplikasi Client/Server yang jauh lebih kompleks, dan lebih mudah digunakan oleh pemakai akhir dengan memakai alat bantu tertentu, dan membentuk proses yang mendukung hal berikut :
• Ad Hoc Query/Laporan
• Decision Support System
• Executive Information System
• Business Simulation
Hal ini sebelumnya sangat sulit dilakukan, sebab komunikasi antara program di Client dan di Server harus diprogram dan diatur sendiri oleh pemrogram, sedang pada model ini proses tersebut sudah terintegrasi menjadi satu dengan fasilitas data manajemen, sehingga lokasi data cenderung transparent kepada pemakai.
CLIENT SERVER
* Presentasi Grafis * Proses Server
* Proses Client * Data Korporate
* Data Lokal
Gambar 4. Remote Data
Distributed Data
Model ini adalah yang paling maju dan canggih dari aplikasi Client/Server. Dimana data tersebar dalam jaringan komputer dan umumnya dibutuhkan fasilitas manajemen data yang lebih kompleks.
Pada prinsipnya dengan model ini, tidak ada lagi batas antara Client dan Server, sebab pada saat tertentu Client akan dapat menjadi Server, dan begitu juga sebaliknya. Semua kontrol atas data sudah didelegasikan secara tersebar, sesuai dengan lokasi kerja yang bertanggung jawab pada data tertentu. Oleh sebab itu, dalam implementasinya bukan hanya dibutuhkan fasilitas manajemen data yang canggih, tapi juga hal-hal pokok sebagai berikut :
• Pembentukan standarisasi sistem informasi yang berlaku untuk semua lokasi, aplikasi, jaringan dan prosedur kerja pendukung sistem informasi.
• Pembentukan ‘Corporate Data Model’ yang akan menjadi acuan bagi seluruh aplikasi yang ada dan akan berjalan.
• Rancangan ‘Backbone’ untuk komunikasi data, yang akan menjadi acuan bagi seluruh jaringan aplikasi.
• Sumber daya manusia yang handal untuk menangani hal tersebut diatas, dan juga,
• Dokumentasi yang ‘up to date’, sebagai syarat utama untuk manajemen model ini.
Umumnya penerapan model ini sangat bergantung dari kemampuan RDBMS yang digunakan, dimana telah memiliki fasilitas Distributed RDBMS (DRBMS) yang memungkinkan terjadinya komunikasi data bolak balik antara Data Manajer di satu lokasi dan Data Manajer dilokasi lain, yang bahkan berbeda platform ataupun produknya. Keuntungan dari model ini, alokasi data dapat dilakukan sesuai dengan komputer yang menanganinya, tapi keberadaan lokasi dan data tersebut transparent ke pemakai.
CLIENT/Server SERVER/Client
* Presentasi Grafis * Presentasi
* Proses * Proses
* Data * Data
Gambar 5. Distributed Data
Usulan Pola Implementasi Client/Server
Untuk menerapkan aplikasi Client/Server dilingkungan suatu organisasi perlu dipertimbangkan beberapa syarat dasar yang akan menjadi landasan operasi Client/Server tersebut. Persyaratan tersebut pada dasarnya dapat dikelompokan dalam hal sebagai berikut :
• Rancangan dasar struktur Client/Server
• Sarana penunjang yang dibutuhkan
• Strategi pengembangan aplikasi
• Sumber daya manusia, dan juga
• Dukungan dari pihak eksekutif perusahaan.
Struktur Client/Server
Pada prinsipnya untuk mengimplementasikan aplikasi Client/Server perlu didefinisikan perangkat keras apa yang akan digunakan sebagai ‘Master Server’ atau Server Utama dari semua Server yang akan dipakai. Server tersebut akan menjadi Server utama dalam manajemen arsitektur Client/Server secara keseluruhan. Tapi dalam konteks yang lebih kecil, mungkin Server ini dapat juga berfungsi sebagai Client bagi Server lainnya.
Karena sifatnya sebagai pengelola jaringan Client/Server, diperlukan kriteria sebagai berikut dalam mempertimbangkan kebutuhan ‘Master Server’ :
• Non Dedicated
Non Dedicated adalah Server tidak diperuntukan hanya untuk satu fungsi tertentu, seperti menjadi ‘Data Server’ atau ‘File Server’ saja. Tapi juga untuk ‘Network management’, administrasi seperti pelaporan, dst. Contoh ‘Non Dedicated’ adalah Server yang menggunakan sistem operasi yang ‘Multi Tasking’ atau bahkan ‘Multi Threading’, seperti OS/2, Windows NT, Unix, OS/400 dan lainnya. Sedang contoh ‘Dedicated’ adalah Netware versi 3 keatas, yang dipasang dengan karakteristik DOS. Dimana hanya bisa berfungsi sebagai Server tapi tidak dapat berfungsi sebagai Client, atau fungsi-fungsinya.
• Kapasitas Besar
Kapasitas perangkat keras secara keseluruhan dari arsitektur mesin, memori, tempat penyimpanan, prosesor dan juga media pembantu lainnya yang lebih lengkap, seperti CD-ROM, Optikal Disk, Tape dan lainnya.
• Lokasi di Kantor Pusat
Karena fungsinya sebagai pengelola, dimana berfungsi juga untuk mengintegrasikan data, dan menyimpan rangkuman data perusahaan, biasanya Server Utama ini berlokasi di kantor pusat perusahaan yang umumnya memiliki sarana penunjang yang lebih baik, seperti telekomunikasi, listrik, ‘Cabling’, dan juga sumber daya manusia yang ada.
Hal ini sebenarnya cocok dengan model Client/Server Remote Data ke atas, dimana proses sehari-hari dan juga sebagian dari data akan menjadi tanggung jawab Client, sedang sebagian data yang diperlukan sebagai konsolidasi dan sifatnya ‘sharing’ dengan proses lainnya akan diletakan di Mainframe sebagai Server utama.
Dari hal tsb di atas, ada beberapa keuntungan :
• Server Utama dapat berfungsi sebagai penyedia informasi bagi sistem informasi eksekutif, dimana untuk data rangkuman akan ditempatkan di Server Utama, sedang analisis dan observasi lanjut dapat pergi ke lokasi komputer Client sesuai dengan bidang informasi yang dibutuhkan. Sebagai contoh aplikasi sumber daya manusia, biodata pegawai akan berada di Server Utama, dimana menyimpan informasi yang baku, sedang sejarah informasi, seperti sejarah jabatan, kepangkatan akan didapat pada komputer Client.
• Pemakai akhir akan dapat memproses lebih cepat dan independen. Hal ini dimungkinkan karena pemakai akhir akan memiliki sebuah komputer yang lebih kecil, apakah itu Mini atau PC, yang memiliki kemampuan proses sendiri. Hal ini mengurangi ketergantungan dari komputer pusat dan juga prosesor dapat disesuaikan dengan kebutuhan pemakai.
• Integrasi data yang lebih terpadu, dimana semua unit kerja berbagi informasi yang sama, tanpa harus memilikinya dilokasi sendiri.
• Mudah dikembangkan menjadi model Client/Server yang lebih maju, yaitu ‘Distributed Data’.
Sarana Penunjang
Sebelumnya telah disinggung secara langsung mengenai sarana penunjang Server Utama. Tapi hal yang harus diperhatikan adalah sarana komunikasi data, yaitu :
• Menentukan protokol komunikasi apa yang akan menjadi standar,
• Menyediakan sarana jaringan komunikasi data disetiap komputer, khususnya Server Utama, baik perangkat lunak dan perangkat kerasnya,
• Menyediakan saluran telekomunikasi, seperti saluran telepon, Radio Link, Satelit antara setiap jaringan komputer,
• Membentuk ‘Network Management System’ di Server Utama, dimana dapat memantau seluruh jaringan Client/Server melalui Server Utama.
Strategi Pengembangan Aplikasi
Untuk menunjang aplikasi Client/Server harus digunakan perangkat lunak yang memang dirancang dengan menggunakan pola Client/Server. Pada dasarnya pembentukan aplikasi ini ditentukan oleh implementasi ‘Relational Database Management System (RDBMS)’. Hal ini dilakukan dengan jalan memanfaatkan kemampuan RDBMS dalam melakukan pendistribusian data secara transparan (Distributed Data) antar Database kepada pemakai akhir. Dengan fungsi ‘Distributed Data’ ini, pemakai tidak perlu tahu lokasi dari data yang akan digunakannya secara fisik, selama ia memiliki otorisasi akses ke suatu data, tanpa perlu tahu data itu di komputer mana, fungsi RDBMS akan mencarikan lokasi data tersebut untuknya. Hal ini juga transparan ke aplikasi. Sehingga RDBMS sangat menunjang dalam membuat aplikasi Client/ Server.
Sumber Daya Manusia
Untuk mengembangkan aplikasi Client/Server, diperlukan bukan hanya kemampuan teknis komputerisasi semata. Tapi perlu dikembangkan wawasan berpikir untuk dapat mencakup pola kerja Client/Server, dimana dibutuhkan integrasi, sinkronisasi dan perencanaan yang matang secara keseluruhan.
Disamping itu perlu pula dikembangkan kemampuan perorangan di bidang aplikasi dan jaringan, yang mana sangat kritikal dalam implementasi aplikasi Client/Server, dengan cara memberi pendidikan dan juga ‘magang’.
Untuk mendapatkan pengalaman yang dibutuhkan, dapat dipertimbangkan suatu bentuk kerja sama dengan pihak luar yang lebih berpengalaman. Sebagai contoh, dapat dipilih salah satu aplikasi yang akan dikonversikan menjadi aplikasi Client/Server, dan dalam proses pengerjaannya melibatkan pihak luar sebagai konsultan teknis, yang mana akan memberi pengalaman implementasi bagi tenaga ahli dilingkungan perusahaan.
Dukungan Eksekutif
Menerapkan aplikasi Client/Server dilingkungan perusahaaan, diproyeksikan akan memberikan dampak positif bagi penggunaan teknologi informasi di jajaran eksekutif perusahaan, seperti lebih mudahnya membuat sistem informasi untuk eksekutif. Tapi disisi lain diperlukan biaya yang tidak sedikit dalam pelaksanaannya.
Oleh sebab itu perlu dipikirkan program kerja khusus yang berhubungan dengan aktifitas eksekutif, yang bertujuan untuk membangun minat eksekutif dalam mendukung program Client/Server ini, seperti :
• Pembentuk prototipe aplikasi Sistem Informasi Eksekutif,
• Memberikan laporan kemajuan perusahaan yang dihasilkan oleh teknologi informasi,
• Melakukan kunjungan kerja studi banding dibidang teknologi informasi bagi para eksekutif, dll.
Pertemuan 8
Client / Server Komunikasi menggunakan TCP / IP
Client / Server Komunikasi menggunakan TCP / IP
Aliran TCP socket server aplikasi mendengarkan pada jaringan untuk paket permintaan klien masuk. Aliran TCP socket aplikasi klien memulai komunikasi dengan server dengan mengirimkan paket permintaan. Ketika server menerima permintaan, itu proses dan merespon. Setelah pertukaran pesan sequencing awal, klien dan server dapat saling bertukar data.
Langkah-langkah berikut terjadi ketika membangun koneksi TCP antara dua komputer menggunakan soket:
1. Server instantiates objek ServerSocket, adalah yang menunjukkan nomor port komunikasi
2. Server memanggil metode accept () dari kelas ServerSocket. Metode ini menunggu sampai klien terhubung ke server pada port diberikan
3. Setelah server sedang menunggu, klien instantiates objek Socket, menentukan nama server dan nomor port untuk menyambung .
4. Konstruktor dari kelas Socket mencoba untuk menghubungkan klien ke server tertentu dan nomor port. Jika komunikasi didirikan, klien sekarang memiliki objek Socket mampu berkomunikasi dengan server.
5. Di sisi server, yang menerima () metode mengembalikan referensi ke soket baru pada server yang terhubung ke soket klien.
6. Setelah koneksi ditetapkan, komunikasi dapat terjadi menggunakan I / O stream. Masing-masing memiliki soket baik OutputStream dan InputStream. OutputStream klien terhubung ke InputStream server, dan InputStream klien terhubung ke OutputStream server. TCP merupakan protokol komunikasi dua arah, sehingga data dapat dikirim di kedua jaringan pada waktu yang sama.
Gambar berikut menggambarkan langkah-langkah yang diperlukan untuk menerapkan client dan server menggunakan StreamSocket
Langkah-langkah untuk menerapkan Server ;
• Langkah 1 : Membuat objek socket server. Obyek ini digunakan untuk menghubungkan ke aplikasi menggunakan port.
ServerSocket s=new ServerSocket(int port, int queue length);
Nomor Port
Panjang antrian = jumlah maksimum klien yang dapat meminta server
• Langkah 2 : Menunggu permintaan dari klien. Hal ini dilaksanakan dengan menggunakan obyek Socket.
Socket ss=s.accept();
• Langkah 3 : Buat input dan output stream untuk menerima dan mengirim komunikasi ke klien masing-masing.
BufferedReader in = new BufferedReader(new InputStream (ss.getInputStream()));
BufferedReader - Untuk menerima komunikasi dari klien.
PrintWriter out = new PrintWriter(ss.getOutStream(),true);
PrintWriter - Untuk pengiriman komunikasi ke klien
• Langkah 4 : Server dan client berkomunikasi dengan menggunakan benda-benda masuk dan keluar.
out.println(message);
Message = (String)in.readLine();
• Langkah 5 : Ketika komunikasi lebih menutup semua objects.Server menciptakan input, output dan soket dan berkomunikasi klien menggunakan benda-benda masuk dan keluar.
in.close();
out.close();
ss.close();
Langkah-langkah untuk mengimplementasikan klien menggunakan StreamSocket ;
• Langkah 1 : Buat objek soket klien untuk menghubungkan klien dengan server. objek digunakan untuk menghubungkan ke aplikasi server menggunakan port.
Socket cs=new Socket(InetAddress, int port);
Port-nomor port
Alamat-alamat server.
• Langkah 2 : Buat input dan output stream untuk menerima dan mengirim komunikasi ke klien masing-masing.
BufferedReader in = new BufferedReader(new InputStream (cs.getInputStream()));
BufferedReader - Untuk menerima komunikasi dari klien.
PrintWriter out = new PrintWriter(cs.getOutStream(),true);
PrintWriter - Untuk pengiriman komunikasi ke klien
• Langkah 3: Server dan client berkomunikasi dengan menggunakan benda-benda masuk dan keluar.
out.println(message);
Message = (String)in.readLine();
• Langkah 4: Bila komunikasi lebih dekat semua diciptakan input, output dan soket objek.
in.close();
out.close();
cs.close();
Gambar berikut menunjukkan komunikasi clinet Server menggunakan Socket Streaming ;
Program chatting menggunakan TCP / IP
Program berikut membuat aplikasi chat client / server. Komunikasi berlanjut sampai klien mengirimkan pesan Bye ke server.
Server Program:
• import java.io.*;
import java.net.*;
public class server
{
public static void main(String a[])throws IOException
{
try
{
ServerSocket s=new ServerSocket(95);
System.out.println("Server Waiting For The Client");
Socket cs=s.accept();
InetAddress ia=cs.getInetAddress();
String cli=ia.getHostAddress();
System.out.println("Connected to the client with IP:"+cli);
BufferedReader in=new BufferedReader(new
InputStreamReader(cs.getInputStream()));
PrintWriter out=new PrintWriter(cs.getOutputStream(),true);
do
{
BufferedReader din=new BufferedReader(new
InputStreamReader(System.in));
System.out.print("To Client:");
String tocl=din.readLine();
out.println(tocl);
String st=in.readLine();
if(st.equalsIgnoreCase("Bye")||st==null)break;
System.out.println("From Client:"+st);
}while(true);
in.close();
out.close();
cs.close();
}
catch(IOException e) { }
}
}
client Program:
• import java.io.*;
import java.net.*;
public class Client
{
public static void main(String a[])throws IOException
{
try
{
Socket con=new Socket("localHost",95);
BufferedReader in=new BufferedReader(new
InputStreamReader(con.getInputStream()));
PrintWriter out=new PrintWriter(con.getOutputStream(),true);
while(true)
{
String s1=in.readLine();
System.out.println("From Server:"+s1);
System.out.print("Enter the messages to the server:");
BufferedReader din=new BufferedReader(new
InputStreamReader(System.in));
String st=din.readLine();
out.println(st);
if(st.equalsIgnoreCase("Bye")||st==null)break;
}
in.close();
out.close();
con.close();
}
catch(UnknownHostException e){ }
}
}
MAU DOWNLOAD MODULNYA??
0 Response to "Modul Jaringan Client Server "
Post a Comment