Arsitektur Aplikasi Web

Perbedaan Pattern dan Framework

Pattern adalah solusi umum yang dapat digunakan kembali pada permasalahan umum yang sering terjadi pada software 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. Design pattern dari object-oriented secara tipikal menunjukkan hubungan dan interaksi antara kelas dan objek tanpa menspesifikasikan kelas atau objek dari aplikasi final yang terlibat didalamnya

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.

Beberapa fungsi Framework:

  • Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
  • Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  • Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding, pengaturan session, error handling, dll

Penjelasan tentang MVC dan Struts

MVC  sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC.  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.  MVC terdiri dari tiga bagian yaitu;

  1. Model : Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu kita dalam pengelolaan database seperti memasukkan data ke database, update data dan lain-lain.
  2. View : View adalah bagian yang mengatur tampilan ke user. Bisa di katakan berupa halaman web.
  3. Controller : Controller merupakan bagian yang menjembatani model dan view. Controller berisi script-script php yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Struts adalah FrameWork Open Source yang di pakai untuk membangun aplikasi berbasis Web. yang sudah terinstregasi dengan standard technologi seperti Servlet, Java Beans dan Java Server Pages. Struts memiliki banyak keuntungan bagi pengembang web aplikasi. juga sangat cocok dalam penerapan MVC di aplikasi berbasis web. Arsitektur Model-View-Controller adalah sebuah pola yang terbukti membangun proyek secara lebih efektif. Hal itu dilakukan dengan memilah komponen antara Model, View dan Controller pada bagian – bagian dalam proyek. Struts sangat bagus untuk Arsitektur ini. Berikut Arsitektur dari Struts.

Codeigniter adalah php framework yang awalnya ditulis oleh mas Rick Ellis, pendiri dan CEO EllisLab.com, perusahaan yang mengembangkan codeigniter. Saat ini, codeigniter dikembangkan oleh komunitas dan disebarkan ke seluruh dunia dengan lisensi bebas.

Arsitektur dari Codelgniter

Point – point tentang  codeigniter :

  • Berinteraksi dengan database apapun dengan satu bahasa tunggal
  • Memanajemen session dan cookies
  • Melakukan validasi user input
  • Membangun html seperti tabel, form, link, dan lainnya dengan kode minimal
  • Berkomunikasi dengan xmlrpc, ftp, captcha, rss dan teknologi lainnya
  • dan lainnya

Kelebihan

  • Mudah digunakan dan tidak memerlukan konfigurasi yang rumit
  • Fungsi-fungsi pendukung yang cukup lengkap
  • Mendkung PHP4 dan PHP5
  • Mungkin merupakan Framework MVC paling populer dan paling banyak digunakan
  • Dokumentasi yang sangat bagus, friendly dan didukung oleh forum, wiki, dan komunitas yang besar

Kekurangan

  • Tidak mendukung AJAX, dan ORM
  • Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih memberikan kebebasan user untuk melanggar aturan MVC

Keterangan gambar:

–     index.php berfungsi sebagai controller depan, mnginisialisasi basic resource yang dibutuhkah untuk menjalankan CI.

–     Router menganalisa HTTP request untuk menentukan apa yang harus dilakukan dengan HTTP request itu.

–     Jika file cache masih ada , maka akan dikirim langsung ke browser, tanpa melewati eksekusi normal sistem.

–     Keamanan, sebelum controller aplikasi di panggil, HTTP request dan data yang dikirim user, di filter untuk alasan keamanan.

–     Controller memanggil model, librari inti , plugin, helper, dan resource lainnya yang di butuhkan untuk memroses request tertentu.

–     View yang sudah diproses, dikirim ke browser sebagai hasil yang terlihat. Jika status caching ON, view akan disimpan di cache, jadi jika ada request yang sama, view itu bisa ditampilkan lagi.

Struktur codeigniter

Integrasi Sistem dan SOA

Integrasi Sistem adalah proses menggabungkan atau menghubungkan sistem komputer atau aplikasi perangkat lunak yang berbeda secara fisik maupun fungsional.  Harus ada kebijakan-kebijakan yang sudah jelas dan struktur organisasi yang solid. Pengintegrasian sistem informasi merupakan salah satu konsep kunci dari sistem Informasi Manajemen. Berbagi sistem dapat saling berhubungan satu dengan yang lain dengan berbagai cara yang sesuai dengan keperluannya. Aliran informasi diantara sistem sangat bermanfaat bila data dalam file suatu sistem diperlukan juga oleh sistem yang lainnya, atau output suatu sistem menjadi input bagi sistem lainnya. Secara manual juga dapat dicapai suatu integrasi tertentu, misalnya data dari satu bagian dibawa kebagian lain, dan oleh petugas administrasi data tersebut digabung dengan data dari sistem yang lain.

Metode Integrasi

  • Vertical Integration (silos)
    • Proses pengintegrasian subsistem berdasarkan fungsinya dengan mendefinisikan entitas fungsi.
    • Keuntungan:
      • merupakan proses yang cepat
      • hanya melibatkan vendor-vendor terkait
      • murah jika dilakukan untuk jangka pendek
  • Kelemahan:
    1. biaya kepemilikan tinggi secara subtansial
    2. Implementasi dapat lebih dari satu silos untuk sistem skala besar
  • Star Integration ( Spaghetti Integration )
    • Proses integrasi sistem dimana setiap sistem dihubungkan ke subsistem yang tersisa.

SOA adalah sebuah konsep arsitektur software yang memanfaatkan service-service yang ada dalam sebuah jaringan sistem. Point pentingnya adalah SOA mengedepankan loose coupling komponen software sehingga service-service yang ada dapat digunakan kembali untuk pengembangan software lainnya.

SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui suatujaringan dan dikombinasikan serta digunakan ulang untuk membentuk aplikasi bisnis. Layanan-layanan ini saling berkomunikasi dengan mempertukarkan data antar mereka atau dengan mengkoordinasikan aktivitas antara dua atau lebih layanan. Konsep SOA sering dianggap didasari atau berkembang dari konsep-konsep yang lebih lama dari komputasi terdistribusi dan pemrograman modular.

SOA menggunakan paradigma find-bind-execute. Untuk menerapkan paradigma ini terdapat tiga komponen pokok, yaitu sevice provider (SP), registry (R), dan service consumer (SC) . Dalam hal ini SP sebagai penyedia service meregistrasikan jasanya ke dalam suatu public registry R. Public registry R ini yang kemudian digunakan oleh SC untuk menemukan service yang tepat baginya. Jika suatu registry menemukan service yang tepat, makan kontrak akan diberikan dan diberikan pula endpoint untuk service tersebut. Kontrak adalah suatu keterikatan service yang ada antara SP dan R, dan keterikatan service antara SC dan R.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s