PENDAHULUAN Pemanfaatan perangkat lunak berperan erat bagi perkembangan di semua lini, baik itu institusi pendidikan, lingkungan bisnis, maupun kalangan pribadi. Tentunya berpulang dari penggunaan perangkat lunak tersebut, sampai sejauh mana fungsinya dapat diberdayakan dan seberapa besar biaya yang dibutuhkan untuk penerapannya. Pemilihan perangkat lunak yang sejalan dengan kebutuhan harus benar-benar diperhatikan, karena itu perencanan awal dimulai dengan mengindentifikasi kebutuhan di lingkungan yang ada. Setelah proses identifikasi kebutuhan didaftarkan, kita dapat memilih perangkat lunak seperti apa yang akan digunakan.
Pemamfaatan aplikasi yang berbasis client-server sangat banyak dan sering dijumpai di sekitar kehidupan kita dan tampa kita sadarai bahwa aplikasi tersebut merupakan aplikasi yang mengadopsi sistem client-server, CONTOH: Sistem Informasi pengurusan KRS di Kampus Aplikasi Pembayaran Rekening Listrik atau Air. Aplikasi Pemesanan Tiket Pesawat Terbang. Aplikasi Perbankkan, dan masih banyak yang lainnya. Contoh diatas merupakan aplikasi yang menggunakan server sebagai temapat penyimpanannya dan client sebagai tempat input data atau proses lainnya.
Selain contoh diatas, yang termasuk aplikasi yang mengadopsi system client-server yaitu facebook, yahoo, google, atau media yang lain Client dapat mengopersikannya dari mana saja selama terhubung dengan media internet dan data yang telah kita inputkan disimpan di server Data yang telah kita simpan dapat diambil kapanpun dan dimana pun selama kita terhubung dengan dengan server tersebut.
DEFINISI Aplikasi yang berbasis client- server itu sendiri didefinisikan: 1. Komputasi client-server melibatkan pembagian suatu aplikasi ke dalam beberapa task dan meletakkan setiap task pada platform yang dapat menangani secara efisien. 2. Pemrosesan data bisa berada pada client atau di-split diantara client dan server. 3. Server dihubungkan ke client melalui suatu jaringan SEHINGGA dapat disimpulkan bahwa yang dimaksud dengan aplikasi berbasis client- server itu sendiri yaitu sebuah sistem dimana client dan server terhubung satu sama lain untuk melakukan proses data dalam sebuah jaringan.
JARINGAN CLIENT SERVER Jaringan komputer atau dalam bahasa inggris disebut sebagai computer network adalah sebuah interkoneksi (saling keterhubungan) antara kelompok satu dengan kelompok lain. Dengan menggunakan jaringan, komputer-komputer akan menjadi satu kesatuan sehingga bisa saling mengakses dan membagi resource. Jaringan komputer juga dapat disambungkan ke internet. Arsitektur jaringan Client Server merupakan model konektivitas pada jaringan yang membedakan fungsi computer sebagai Client dan Server. Arsitektur ini menempatkan sebuah komputer sebagai Server.
Server ini yang bertugas memberikan pelayanan kepada terminalterminal lainnya tang terhubung dalam system jaringan atau yang kita sebut Clientnya. Server juga dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi). Pada model arsitektur ini, Client tidak dapat berfungsi sebagai Server, tetapi Server dapat berfungsi menjadi Client (server nondedicated). Prinsip kerja pada arsitektur ini sangat sederhana, dimana Server akan menunggu permintaan dari Client, memproses dan memberikan hasil kepada Client, Sedangkan Client akan mengirimkan permintaan ke Server, menunggu proses dan melihat visualisasi hasil prosesnya.
Sistem Client Server ini tidak hanya diperuntukkan bagi pembangunan jaringan komputer skala luas. Sistem ini menggunakan protokol utama Transmision Control Protocol/Internet Protocol (TCP/IP), sedangkam sistem operasi yang digunakan antara lain Unix, Linux dan Windows NT.
KEUNTUNGAN Memungkinkan akses basis data yang besar Menaikkan kinerja Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data. Biaya untuk hardware dapat dikurangi Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data Biaya komunikasi berkurang
Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan Meningkatkan kekonsistenan Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri Map ke arsitektur open-system dengan sangat alami
KERUGIAN Jika traffic jaringan terlalu padat, server bisa hang karena overload. Pada jaringan client-server, jika server down, maka jaringan akan down. Riskan terhadap ancaman
Dasar Pemrograman Client/Server Prototipe Pemrograman Client/Server Pemrograman berbasis Client/Server mempunyai dua komponen utama, yaitu mesin Client dan mesin Server. Mesin Client digunakan untuk meminta layanan kepada server data. Sedangkan mesin Server digunakan untuk menyimpan data sekaligus memberikan layanan terkait dengan database yang tersimpan. Untuk bisa berkomunikasi diperlukan sebuah media komunikasi data. Perhatikan gambar dibawah, untuk lebih jelasnya.
Hardware Dari gambar diatas, dalam tataran harware diperlukan sebuah mesin Server (computer server) dan mesin Client (computer Client).
Untuk dapat komunikasi, keduanya dihubungkan dengan media komunikasi baik berupa kabel ataupun media komunikasi yang lain. Karena sebuah server melayani semua permintaan dari Client, maka diperlukan spesifikasi computer yang baik. Kualifikasi tersebut diantaranya, kecepatan processor, besarnya memori, dan besarnya media simpan. Software Dalam tataran software, diperlukan Sistem operasi yang bekerja dalam kedua mesin, Database generator yang diletakan di server untuk menangani database dan memberikan serta menangani layanan.
Dalam mesin Client, diperlukan sebuah aplikasi untuk meminta layanan ke server. Disamping itu, diperlukan sebuah software yang menjembatani komunikasi antara database generator dan aplikasi yang biasa disebut Connector. Saat ini tersedia banyak database generator (database server), baik yang berlisensi (berbayar) maupun yang free. Misalkan; Berbayar : Oracle, SQLServer, DB2 dan lain Tidak berbayar: MySQL, PosgreSQL, FreeBSD dan lain. Connector biasanya akan dikeluarkan oleh Database generator masing-masing, tergantung platform koneksinya (ODBC-Open DataBase Connectivity, ADO ActiveX Data Object ataupun yang lain).
Arsitektur Client - Server Aplikasi database terdistribusi dikembangkan dalam bentuk arsitektur client/server. Pada umumnya sistem client/server beroperasi dilingkup jaringan komputer, yang memecah pemrosesan aplikasi antara sisi client (front-end) dan sisi server (back-end). Proses yang terjadi yaitu memecah suatu proses antara sisi client dan server, sehingga client akan memproses sebagian resourcenya, sedang pemrosesan yang lain diserahkan pada sisi server. Client dan server dapat berada pada komputer yang sama, atau dapat juga berada pada komputer yang berbeda yang saling terhubung pada suatu jaringan komputer (network). Secara umum, komputer disebut: Client: jika ia menerima layanan tertentu dari server, dan disebut Server: jika ia memberi layanan tertentu pada client.
Arsitektur DBMS Terpusat (Centralized DBMS Architecture) Arsitektur DBMS telah mengikuti trend sejalan dengan kemajuan arsitektur sistem komputer. Permulaan arsitektur DBMS dimulai dgn bentuk Arsitektur DBMS Terpusat (Centralized DBMS Architecture). Pada arsitektur ini digunakan komputer main frame yg menyediakan semua proses utama spt fungsinya pada DBMS (user application programs & user interface programs). Bentuk arsitektur terpusat ini menggambarkan pengaksesan terminal-terminal komputer (client) pada komputer server, berupa display informasi dan kontrol saja, karena pada terminal komputer tidak memungkinkan memiliki resource yang lebih. Seiring perkembangan teknologi dan turunnya harga hardware, banyak terminal user digantikan dengan PC, akan tetapi DBMS masih ditempatkan terpusat (Application program execution & user interface processing ditempatkan pada satu mesin).
Arsitektur DBMS Terpusat (Centralized DBMS Architecture)... Gambar fisik Arsitektur Terpusat
Dasar Arsitektur Client/Server Secara berangsur-angsur, sistem DBMS mulai dapat ditempatkan pada sisi user yang dikenal dengan arsitektur DBMS Client/Server. Arsitektur Client/Server dibangun untuk memenuhi lingkungan komputing dimana sejumlah PC, workstation, file server, printer, database server, web server serta peralatan lainnya dapat saling terhubung via network. Ide dasar arsitektur client/server ini adalah mendefinisikan spesifik server dengan kemampuan yang khusus pula. Sebagai contoh: menghubungkan berbagai PC sebagai client pada file server yang menangani berbagai file pada mesin client, mesin lain dapat dirancang sebagai printer server yang terhubung pada berbagai printer, mesin server lain Web server atau e-mail server, dsb.
Dasar Arsitektur Client/Server... Gambar Logic Arsitektur Two-Tier Client/Server Mesin-mesin client menyediakan interface yang sesuai bagi user sebagai penghubung dalam menggunakan server-server tersebut. konsep ini dapat diganti dengan adanya software khusus yang tersimpan pd mesin server yang spesifik pula (DBMS,CAD package, dll).
Dasar Arsitektur Client/Server... Gambar Fisik Arsitektur Two-Tier Client/Server
Dasar Arsitektur Client/Server... Konsep arsitektur client/server mengasumsikan sebuah kerangka dasar (framework) yang terdiri atas banyak PC yang terhubung melalui LAN beserta tipe-tipe jaringan komputer lainnya. Suatu Client adalah mesin user yang menyediakan kemampuan user interface dan local processing. Suatu Server adalah mesin yang menyediakan berbagai service ke mesin client (file access, printing, archiving, or database access). Ada kemungkinan suatu mesin hanya menginstall software client saja, yang lain software server, atau bahkan keduanya pada satu mesin (seperti pada gambar physical client/server sebelumnya). Dua jenis utama dari dasar arsitektur DBMS tersebut yang mendasari framework client/server: two-tier client/server dan three-tier client/server.
Arsitektur Two-Tier Client/Server untuk DBMS Pada dasarnya arsitektur two-tier sering disebut sebagai arsitektur client/server, yang terdiri komputer client dan komputer server, yang berinteraksi melalui protokol yang sifatnya well-defined. Dalam arsitektur client/server tradisional, client hanya mengimplementasikan GUI (Graphical User Interface), sedang server hanya mengimplementasikan logika bisnis dan manajemen data. Client tersebut disebut thin client (klien tipis). Logika Aplikasi Network Client... DBMS Client
Arsitektur Two-Tier Client/Server untuk DBMS Pada bentuk yang lain, terdapat juga client yang lebih powerfull dgn mengimplementasikan UI dan logika bisnisnya sedang sisanya pada sisi server, yang disebut thick client (klien tebal). DBMS Network Client Logika Aplikasi... Client Logika Aplikasi
Arsitektur Two-Tier Client/Server untuk DBMS Model thick client memiliki beberapa kelemahan: 1. Tidak memiliki tempat pusat untuk memperbaharui dan memelihara logika bisnis, karena berjalan pada sisi client. 2. Rasa saling percaya antara client & server. (Penggunaan strore procedure pada client) 3. Tidak dapat menangani jumlah client yang besar. 4. Thick client tidak diskalakan seiring dengan pertambahan akses aplikasi dan sistem database. Pada database client/server, saat pengaksesan DBMS dibutuhkan: program membuka koneksi ke DBMS server, sekali koneksi terbuat maka program client dapat berkomunikasi dengan DBMS. Contoh: ODBC (Open Database Connectivity) yang menyediakan API (Application Programming Interface), JDBC, yg digunakan program client Java utk akses ke DBMS.
Arsitektur Two-Tier Client/Server untuk DBMS Interaksi antara client dan server selama pemrosesan query SQL adalah sebagai berikut : 1. Client melakukan parsing query pemakai dan memecahnya ke dalam sejumlah query independent untuk setiap tempat. Setiap query tersebut dikirim ke server yang sesuai. 2. Setiap server memproses query lokal dan mengirim relasi hasil ke client. 3. Client mengkombinasikan hasil sub query untuk memproduksi hasil dari query asal yang dikirim. Pada pendekatan ini : Server SQL : juga disebut transaction server (database processor (DP) / back-end machine / DBMS), sedangkan Client : disebut application processor (AP) atau front-end machine.
Arsitektur Two-Tier Client/Server for DBMS... Arsitektur Three-Tier Client/Server merupakan model yang lebih maju dengan memisahkan antara logika aplikasi dari manajemen data, yang meliputi: 1. Presentation Tier (Client) Berisi interface natural yang dibutuhkan user untuk membuat request, menyediakan input dan melihat hasil. (GUI, Web Interface). 2. Middle Tier (Application Layer/Web Server) Berisi logika aplikasi untuk dieksekusi, berbagai macam kode program (C++, Java, dll) sebagai proses bisnis logic yang kompleks. (Application Programs, Web Pages). 3. Data Management Tier (Database Server) Berisi DBMS.
Arsitektur Two-Tier Client/Server for DBMS... Gambar arsitektur Three-Tier Client/Server:
Arsitektur Two-Tier Client/Server for DBMS... Berbagai keuntungan arsitektur three-tier: 1.Sistem Heterogen Mendukung pada berbagai platform yang berbeda. Sehingga modify code pada suatu tier tidak berdampak pada tier yang lain. 2.Thin Client Membutuhkan kemampuan komputasi yang memadai pada presentation layer (biasanya web browser). 3.Akses Data Terintegrasi Kemampuan middle tier dalam mengatur koneksi pada semua sistem database yang terlibat secara terpusat. 4.Stabilitas pada Banyak Client Kemampuan middle tier dalam mengatur hubungan database pada client. 5.Kemudahan dalam Pengembangan Software Masing-masing tier dapat dikembangkan lebih lanjut (debug, test) tanpa mempengaruhi yang lain.
Arsitektur N-Tier / Multi-Tier Client Server Database Pada arsitektur 3-tier memisahkan antara user interface, business interface dan data provider dalam bagian yang berbeda. Istilah arsitektur N-tier sendiri muncul disebabkan karena dimungkinkannya suatu aristektur aplikasi terdiri dari banyak tier didalamnya.
Arsitektur N-Tier / Multi-Tier Client Server Database... Case: Sumber: http://charless.wordpress.com/2008/0 5/02/arsitektur-model-aplikasi-saatini/ Pada gambar aplikasi N-tier diatas digambarkan bagaimana suatu pelanggan internet ingin memesan buku secara online pada situs amazon.com. Pelanggan dapat melihat katalog buku amazon.com yang sebenarnya ada pada database amazon.com. Setelah pelanggan ingin memesan salah satu buku, maka pelanggan tersebut perlu memasukkan informasi mengenai dirinya dan yang terlebih penting adalah data mengenai kartu kreditnya. Tentunya data kartu kredit pelanggan tersebut harus divalidasi terlebih dahulu informasinya, seperti PIN, masa berlaku kartu, limit kredit, dsb. Setelah itu, barulah transaksi pemesanan buku itu selesai. Dari ilustrasi diatas kita melihat berapa banyak tier yang terlibat dalam suatu sistem.