Basis Data 2 Database Client / Server Arif Basofi, S.Kom. MT. Teknik Informatika, PENS Tujuan Memahami bentuk-bentuk arsitektur aplikasi dalam database. Memahami konsep arsitektur: 2 Single-Tier Two-Tier: Thin Client Two-Tier: Thick Client Three-Tier 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. 3 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). 4 Arsitektur DBMS Terpusat (Centralized DBMS Architecture)... Gambar fisik Arsitektur Terpusat 5 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 sebagai Web server atau e-mail server, dsb. 6 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). 7 Dasar Arsitektur Client/Server... Gambar Fisik Arsitektur Two-Tier Client/Server 8 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. 9 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). Client Logika Aplikasi Network DBMS 10 ... 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). Client Logika Aplikasi DBMS Network ... Client Logika Aplikasi 11 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. 12 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 : 13 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. 14 Arsitektur Two-Tier Client/Server for DBMS... Gambar arsitektur Three-Tier Client/Server: 15 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. 16 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. 17 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. 18 Kesimpulan Two -Tier Three -Tier N-Tier 19 S E K I A N... 20