2-Tier VS 3-Tier Client Server Abstraction Since published about 15th years ago Client/ Server concepts has grown out from its origin concept. As we know when it published client/ server consists of two main components which are minicomputer as a client and mainframe as a server that can serve the process requested from client and stored the data on its database. That’s why we called it 2-tier client/ server. When internet and networking grown up there are some critical mission that can not be solved with 2-tier client/ server approached. So, we need a new giant method for solving this problem. 3-tier client/ server then introduced as the next generation of client/ server system in the internet era. Key word : client/ server, 2-tier, 3-tier, stored procedur. 15 tahun sejak diperkenalkan client/ server telah menjadi pilihan dalam arsitektur aplikasi. Client/ server diaplikasikan pada aplikasi mainframe yang sangat besar untuk membagi beban proses loading antara client dan server. Sebagai dampaknya client/ server telah mengubah cara/ pola pikir kita dalam men-desain dan membangun aplikasi. Dan ini sangat membantu end-user dalam peng-harapan tentang “the look and feel” dari multiuser software. Dalam perkembangannya, client/ server dikembangkan oleh dominasi perusahaanperusahaan software besar yaitu Baan, Informix, Lotus, Microsoft, Novell, Oracle, PeopleSoft, SAP, Sun, dan Sybase. Perusahaan-perusahaan ini adalah superstar pada era pertama dimunculkannya konsep client/ server. Saat ini perusahaanperusahaan ini telah menjadi perusahaan komputer yang stabil dan besar. Saat ini telah terjadi perubahan besar dari konsep client/ server itu sendiri. Awalnya pengertian client/ server yaitu sebuah sistem yang saling berhubungan dalam sebuah jaringan yang memiliki dua komponen utama yang satu berfungsi sebagai client dan satunya lagi sebagai server atau biasa disebut 2-Tier. Dengan adanya internet dan jaringan maka konsep 2-tier ini mulai bergeser dan berkembang menjadi 3-tier. Apa yang dimaksud dengan Tier? Awal 1980-an, vendor-vendor minicomputer memperkenalkan pola 3-tier (sebagai arsitektur 3-tier) untuk menjelaskan pembagian secara fisik dari sebuah aplikasi yang melalui terminal (tier ke-1), minicomputer (tier ke-2), dan mainframe (tier ke-3). Ini memberikan kesempatan pada vendor-vendor ini untuk menjual komputer level menengah (mid-range) mereka sebagai front-end untuk mainframe.
Hari ini, kita menggunakan istilah tier untuk menjelaskan pembagian sebuah aplikasi yang melalui client dan server. Pembagian proses kerja adalah bagian uatama dari konsep client/ server saat ini. Jadi saat ini pembagian kerja pada client dan server telah diatur secara lebih spesifik. 2-tier. Membagi proses load kedalam dua bagian. Aplikasi utama secara logika dijalankan/ berjalan pada sisi client yang biasanya mengirimkan request dalam bentuk sintaks SQL ke sebuah database server yang berfungsi sebagai media penyimpanan data. Kita bisa juga menyebutnya dengan arsitektur fat client karena bagian terbesar atau yang utama dari aplikasi berjalan pada sisi client/ komputer client. 3-tier. Membagi proses loading antara 1) komputer client menjalankan graphical user interface (GUI) logic, 2) aplikasi server menjalankan business logic, dan 3) database dan/ atau legacy application. Karena 3-tier memindahkan application logic ke server sehingga sering juga disebut sebagai arsitektur fat server. Dari semua definisi diatas, semua aplikasi client/ server haruslah memiliki paling tidak 2-tier : user interface pada sisi client dan data terdistribusi yang disimpan pada sisi server. Pembagian kerja ini adalah isu utama yang menjadikan perbedaan terbesar dalam penentuan sukses tidaknya aplikasi yang berhubungan penyelesaian masalah mission-critical. Keuntungan dan keterbatasan aplikasi 2-tier Pada sistem 2-tier client/ server, aplikasi logic ditempatkan pada sisi client dengan GUI. GUI dijalankan pada client yang akan mengirimkan SQL, file system calls, atau perintah HTTP melalui jaringan ke server. Kemudian server akan mem-proses request dari client dan mengembalikan hasil proses tersebut kembali ke komputer client. untuk meng-akses datanya, komputer client harus mengetahui bagaimana data tersebut diatur dan kemudian disimpan pada sisi server. Variasi pada pendekatan 2tier adalah dengan menggunakan stored procedures untuk meng-off-load beberapa proses pada sisi server. Walaupun pengiriman request SQL melalui jaringan, stored procedures membolehkan kita untuk menjalankan sebuah fungsi yang berjalan tanpa sebuah database. Kesederhanaan adalah faktor utama yang mengantarkan 2-tier client/ server menjadi populer. 2-tier sangat ideal digunakan jika kita ingin membangun sebuah aplikasi
dengan cepat dengan menggunakan bantuan visual builder tools seperti Delphi, VB, dll. Biasanya, hanya aplikasi yang berskala departemen/ bagian-bagian kecil yang menggunakan konsep 2-tier ini seperti sistem pengambilan keputusan (DSS) atau aplikasi berbasis web sederhana. Mengapa 3-Tier Client/ Server? Apa yang terjadisekarang dengan perkembangan internet dan jaringan yang begitu pesat tidak memungkinkan lagi diselesaikan dengan metode 2-tier client/ server sehingga perlu satu perubahan besar untuk menangani masalah ini. Saat ini kita telah mengembangkan aplikasi client/ server berskala luas dan E-Commerce berbasis internet. Konsekuensinya, kita harus meninggalkan dunia tradisional 2-tier client/ server. Sekarang kita sedang menghadapi masalah dunia yang kompleks dimana aplikasi-aplikasi dibagi menjadi beberapa komponen-komponen dan didistribusikan melalui multi prosesor. Yaitu dunia aplikasi 3-tier (dan N-tier). Saat ini perusahaan-perusahaan besar yang sudah menggunakan client/ server mulai merasakan 2-tier client/ server sudah tidak relevan lagi untuk diimplementasikan di perusahaan mereka. Karena yang terjadi saat ini dengan adanya internet maka dituntut agar aplikasi yang digunakan diperusahaan mereka harus dapat mendukung internet dan semua komponennya, aplikasi tersebut harus dapat melayani ribuan komputer client dimana aplikasi ini seringkali berjalan pada banyak server dan terdiri dari ratusan komponen-komponen software didalamnya. Dengan adanya internet, server dapat melayani request dari mana saja dengan PC yang terhubung ke internet. Dalam era internet saat ini, transaksi dapat berasal dari konsumen (melalui aplikasi internet), dari suplier atau distributor ( melalui perusahaan internet – ekstranet). Berikut ini perbandingan antara 2-tier dan 3-tier client/ server :
2-tier
3-tier
System administration
Complex (more logic on the client to manage)
Security
Low (data-level security)
Less complex (aplikasi dapat di-manage secara terpusat di server-program aplikasi dibuat sesuai standar system management tools) High (fine-tuned pada layanan atau level method)
Encapsulation of Data
Low (tabel data dapat dilihat)
Performance
Poor (many SQL statements are sent over the network; selected data must be downloaded for analisys on the client) Poor (limited management of client communication links)
Scale
Application reuse Ease of development
Server-to-server Infrastructure Internet support
Heterogeneous database support Hardware architecture flexibility
Poor (monolithic application on client) High
No Poor (internet bandwidth limitations make it harder to download fat clients and exacerbate the already noted limitations) No
Limited (you have a client and a server)
High (cthe client invokes services or methods) Good (only service requests and responses are sent between the client and server) Excellent (concentrates incoming sessions; can distribute loads across multiple servers) Excellent (can reuse services and objects) Getting better (standard tools can be used to create the clients, and tools are emerging that you can use to develop both the client and server sides of the application) Yes (via server-side middleware) Excellent (thin clients are easier to download as applets or beans; remote service invocations distribute the application load to the server) Yes (3-tier applications can use multiple databases within the same business transaction) Excellent (all three tiers may reside on different computers, or the second and third tiers may both reside on the same computer; with component-based environments, you can distribute the second tier across multiple servers as well)
Availability
Poor (can’t fail over to a backup server)
Excellent (can restart the middle components on other servers)
Kapan kita menggunakan 3-tier? Saat ini 3-tier menjadi sangat populer dibanding 2-tier arsitektur tapi 2-tier tidak akan bisa ditinggalkan. Masih terdapat banyak aplikasi yang ideal menggunakan arsitektur 2-tier. Lalu bagaimana kita mengetahui model apa yang cocok untuk aplikasi kita dan sesuai dengan karakteristik perusahaan? Berikut ini adalah beberapa kriteria yang bisa digunakan untuk menentukan kapan sebuah aplikasi menggunakan model arsitektur 3-tier client/ server : Banyaknya layanan atau class aplikasi lebih dari 50 Program aplikasi di buat atau ditulis dalam beebrapa bahasa pemrograman yang berbeda untuk masing-masing organisasi. Dua atau lebih data source yang heterogen seperti dua DBMs yang berbeda atau DBMs dan file system Suatu aplikasi akan digunakan lebih dari 3 tahun. Apalgi jika kita akan merencanakan banyak modifikasi atau penambahan Beban kerja yang sangat tinggi. Lebih dari 50000 transaksi perhari atau lebih dari 300 user yang mengakses ke sistem yang sama pada database yang sama dalam waktu bersamaan Ekspektasi bahwa aplikasi akan terus berkembang sepanjang waktu Conclusion Pada akhirnya, saat ini akan sangat mudah dan aman bagi kita untuk mengimplementasikan arsitektur 3-tier client/ server khususnya jika kita memiliki infrastruktur yang solid untuk itu. Dalam era intranet dan aplikasi internet sekarang ini, arsitektur 3-tier client/ server menjadi arsitektur paling favorit yang digunakan. 3tier memberikan kita keleluasaan untuk mengembangkan aplikasi kita mulai dari sistem yang paling kecil hingga kita mengembangkannya menjadi sebuah aplikasi berskala enterprise. Daftar Pustaka 3-tier client/ server at work by Jeri Edwards John Wiley & Sons, Inc
tier