Selasa, 03 Januari 2012

3-Tier Architecture

Dalam menghadapi kompleksitas kita perlu menggunakan politik Belanda waktu menjajah Indonesia "Devide et Impera", pecah belah lalu kuasai. Ketika membangun aplikasi yang kompleks , ada baiknya kita "memecah belah" aplikasi menjadi 3 layer. Pemisahan ini bisa jadi hanya secara logik (software), tidak harus berkorespondensi secara fisik (hardware). Masih ingat arsitektur TCP/IP yang dibuat berlapis-lapis? kira-kira apa tujuannya? pemisahan arsitektur aplikasi menjadi beberapa layer dimaksudkan untuk meminimalkan terjadinya ripple effect. Efek ini terjadi jika sebuah modul sangat tergantung dengan modul yang lain, sehingga jika terjadi perubahan disatu sisi, sisi lain harus ikut diubah. Istilah kerennya adalah tighty couple

Pada pendekatan 3-tier architecture aplikasi ini dipecah menjadi 3 layer yaitu : Presentation, Business Logic dan Data Access layer. Pemecahan ini tidak harus berkorespondensi secara fisik (hardware), bisa jadi hanya secara logik (software).

Presentation layer bertanggung jawab dengan tampilan (user interface), Business Logic dengan logika business/domain permasalahan dan Data Access bertanggung jawab bagaimana mekanisme akses ke basis datanya. Dengan pemisahan ini aplikasi tidak tergantung dengan user interface nya apa (Console, WinForm, Web/ASP.NET) atau pilihan DBMS (SQL Server, Oracle, MySQL), sehingga apabila terjadi perubahan dikemudian hari karena suatu hal, developer tidak harus menulis ulang program dari awal.

Perbedaan 1-Tier dengan 3-Tier
   1.  Classic (1-Tier)                                                               
  • Semua kode (SQL dan C#) diletakkan disatu tempat, yaitu di bagian user interface.
  • Terjadi pengulangan penulisan program atau syntax SQL, sehingga ada banyak duplikasi kode

  • Struktur program tidak teratur
  • Jika terjadi perubahan user interface, maka program harus ditulis ulang
  2.  Classic (3-Tier)
  • Kode dipecah menjadi 3 layer sesuai dengan fungsi dan tanggung jawabnya
  • Method-method yang sudah dibuat tinggal dipanggil, sehingga class dapat di reusable (penggunaan ulang kembali)
  • Program lebih modular dan mudah dibaca

Tidak ada komentar:

Posting Komentar