Jumat, 08 Mei 2015

Web Arsitektur dan Konsep MVC

Pemograman Jaringan 1

Arsitektur web merupakan struktur rancangan (desain) web agar dapat tersusun suatu informasi yang tepat (terorganisasi) dan mudah ditemukan isinya. Dimana struktur rancangan harus memenuhi beberapa aspek antara lain form, fungsi, navigasi, interface, interaksi, visual, dan maksud informasi itu sendiri, yang akan dibangun dalam sebuah web.

Pertimbangan besarnya dari kebutuhan dan batasan dalam pembangunan sebuah web meliputi:
  • Kebutuhan fungsional
  • Kebutuhan kualitas
  • Integrasi dengan sistem yang telah ada

Kategori arsitektur web :
  1. Aspek Layering yaitu software distrukturkan dalam beberapa tier atau tingkatan untuk mengimplementasikan pemisahan urusan
  2. Aspek data, terbagi dua yaitu secara terstruktur seperti relasional database dan XML, dan secara non struktur meliputi konten multimedia dan gambar,audio,video.

Komponen arsitektur aplikasi web dasar yaitu:
  1. Client : biasanya browser
  2. Firewall : software yang mengatur jaringan internet dengan LAN perusahaan
  3. Proxy : untuk menyimpan halaman web pada cache
  4. Web server: bagian pendukung protokol web untuk memproses permintaan client.
  5. Database server: menyediakan data dalam bentuk terstruktur
  6. Media server: untuk content streaming data besar yang tidak terstruktur
  7. Content management server: menangani content untuk melayani aplikasi
  8. Aplikasi server: melayani permintaan akses dari komputer client.

Pattern
Pattern adalah solusi yang digunakan untuk menangani masalah pada design. Design pattern bukan desain final yang dapat ditransformasikan secara langsung kedalam kode. Ini hanyalah deskripsi atau template untuk mengetahui bagaimana menyelesaikan permasalahan yang dapat digunakan pada berbagai macam situasi yang berbeda.

Framework
Fremework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana kita membangun aplikasi. Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework.

3 Tier
Konsep pemrogramman three tier (3 tier) atau yang biasa disebut dengan konsep client server programming merupakan konsep pemrograman yang terdiri dari 3 komponen logic layer yang saling berkaitan . 

Layer pada 3 tier:  
1. Client Layer yaitu komponen yang berjalan diatas local komputer user / client. (tier 1) Pada layer ini , akses tidak bisa sampai pada RDBMS layer jika tidak ada koneksi ke aplikasi server (layer 2 / tier 2) .
2. Server Layer yaitu komponen yang berjalan pada remote server yang berfungsi sebagai koneksi antara klien dengan database system. (Tier 2). Pada layer ini , merupakan layer yang menghubungkan antara layer client (tier 1) dengan layer RDBMS Application (tier 3). layer ini berisi package, objek, method, fungsi dan segala aktifitas query yang akan dijalankan pada layer 3 / tier 3 (RDBMS Application).
3. RDBMS Layer yaitu kumpulan database , data resource manager dan aplikasi mainframe (Tier 3). Pada layer ini, berisi kumpulan database dan data resource manager yang merupakan pusat database suatu sistem. Layer 3 / tier 3 atau aplikasi RDBMS , tidak bisa diakses secara langsung melalui layer 1 / tier 1 atau aplikasi klien. jika aplikasi klien tidak terkoneksi ke layer 2 / tier 2 atau aplikasi server .

Kelebihan arsitektur 3 Tier : 
- Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil. Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah. Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
- Keamanan dibelakang firewall.Transfer informasi antara web server dan server database optimal. Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah. Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database. 

Beberapa Keuntungan Arsitektur 3-Tier : 
- Keluwesan teknologi. 
- Mudah untuk mengubah DBMS engine. 
- Kemungkinkan pula middle tier ke platform yang berbeda 
- Biaya jangka panjang yang rendah. 
- Perubahan-perubahan cukup dilakukan pada middle tier daripada pada aplikasi keseluruhan. 
- Keunggulan kompetitif. 
- Kemampuan untuk bereaksi terhadap perubahan bisnis dengan cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi 

Kekurangan arsitekture 3 Tier : 
- Lebih susah untuk merancang 
- Lebih susah untuk mengatur 
- Lebih mahal 

Beberapa software aplikasi yang biasa menggunakan konsep 3 tier yaitu : sybase, webspherre, java , dll.
Secara visual, penggambaran arsitektur 3 tier adalah sebagai berikut : 
N-Tier
N-Tier merupakan arsitektur client server dimana presentasi, pemrosesan aplikasi, dan data fungsi manajemen secara logis dipisahkan. Huruf n pada n-tier menunjukan variabel yang dapat berisi angka sebanyak apapun.

Komponen yang ada pada N-Tier:
  1. Presentasi layer: dapat disebut user interface, berfungsi sebagai penertemahkan tugas dan hasil yang telah dikerjakan layer sebelumnya.
  2. Bisnis logic layer : koordinat dari aplikasi, memproses perintah, membuat keputusan logic dan evaluasi serta menghitung performa.
  3. Data Layer : untuk menyimpan informasi dan mengolah file system.

Keuntungan N-Tier:
  1. Kemudahan perubahan bisnis logic pada masa depan
  2. Bisnis logic yang mudah diimplementasikan
  3. Aplikasi client dapat mengakses berbagai tipe DBMS yang berbeda beda secara transparan.

Kerugian N-Tier:
  1. Sistem N tier termasuk mahal untuk development dan instalasinya
  2. memerlukan adaptasi yang semakin luas ruang lingkupnya
  3.  memerlukan rentang waktu relatif lama
  4. penggunaan memori komputer yang besar.

MVC 
Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi web dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.
Bagian dari MVC :
  1. Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi skrip-skrip php yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrogram berorientasi objek (Object Oriented Programming).
 
cara-kerja-mvc 
 
Jenis MVC:
  1. Server slide MVC : terjadi pada aplikasi web tradisional yang tidak melibatkan client side
  2. Mixed client side dan server side MVC
  3. Rich internet application MVC

Kelebihan dengan adanya Model adalah :
a. Proses maintenance aplikasi
Penempatan detail data dan operasinya pada area yang ditentukan (Model) sehingga tidak tersebar pada keseluruhan lingkup aplikasi.
b. Reusable Model
Penggunaan kembali aplikasi model oleh aplikasi lain yang disebabkan adanya pemisahan data dengan interface.
 
Kelebihan dari View adalah :
a. Memudahkan penggabungan divisi desain dalam development team.
b. Ketersediaan multiple interface dalam aplikasi.
 
Kelebihan dari Controller adalah :
a. Komponen view dapat didesain tanpa harus memperhatikan bagian lain secara berlebih
b. Pemisahan jelas antara presentation logic dan business logic


Kelemahan MVC :
adanya peningkatan kompleksifitas sehingga pada aplikasi kecil yang tidak membutuhkan loose coupling pada Model yang menjadi blok penghalang dalam pola MVC ini sendiri.


Referensi:
http://criztian-blacklizt.blogspot.com/2011/12/about-mvc.html
https://chachataki.wordpress.com/2011/05/05/arsitektur-mvc/
http://nikenkinanti212.blogspot.com/2014/09/pengertian-3-tier-dan-n-tier-serta.html
https://lizana89.wordpress.com/2010/10/30/perbedaan-pattern-dan-framework-pengertian-mvc-dan-struts-arsitektur-codeigniter-integrasi-sistem-dan-arsitektur-soa/

1 komentar: