Arsitektur Aplikasi WEB

Perbedaan Pattern dan Framework

  • Pattern

Pattern merupakan solusi umum yang dapat digunakan kembali pada permasalahan umum yang sering terjadi software design. Design pattern ini bukan merupakan design final yang dapat ditransformasikan secara langsung kedalam kode. Tapi hanya sebuah deskripsi atau template untuk mengetahui bagaimana cara 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.

  • Framework

Framework merupakan 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 penting lainnya seperti koneksi database, form validation, GUI, dan security umumnya telah disediakan oleh framework.

Beberapa manfaat penggunaan framework:

  1. Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
  2. Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  3. 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
  4. Lebih bebas dalam pengembangan jika dibandingkan CMS

Penjelasan tentang MVC dan Struts

  • MVC (Model View Controller)

MVC merupakan sebuah metode untuk membuat sebuah aplikasi web dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework  dalam apilaksi 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.

Adapun bagian dari MVC, yaitu :

  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, View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman 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).

  • Struts

Struts merupakan Frame Work 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 dari Codelgniter

Kerangka Codelgniter memiliki wiki yang memungkinkan anda untuk dapat mudah menemukan dokumen yang relevan. Dukungan adalah PHP4. CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal.

Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,

  1. Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
  2. Konfigurasi yang sangat minim (nearly zero configuration)  : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config.
  3. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
  4. Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.

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.

Penjelasan tentang Integrasi Sistem dan SOA

  • Integrasi Sistem

Dalam konteks sistem informasi, sistem integrasi (integrated system) merupakan sebuah rangkaian proses untuk mengubungkan beberapa sistem-sistem komputerisasi dan software aplikasi baik secara fisik maupun secara fungsional. Sistem integrasi akan menggabungkan komponen sub-sub sistem ke dalam satu sistem dan menjamin fungsi-fungsi dari sub sistem tersebut sebagai satu kesatuan sistem.

Sistem integrasi merupakan tantangan menarik dalam software development karena pengembangannya harus terus mengacu pada konsistensi sistem, agar sub-sub sistem yang sudah ada dan tetap dimanfaatkan secara operasional masih tetap berfungsi sebagaimana mestinya baik ketika proses mengintegrasikan sistem maupun setelah terintegrasi. Tantangannya adalah bagaimana merancang sebuah mekanisme mengintegrasikan sistem-sistem tersebut dengan effort paling minimal – bahkan jika diperlukan, tidak harus melakukan refactoring atau re-developing lagi sistem-sistem yang sudah ada. Ada beberapa metode yang dapat dipergunakan dalam membangun sistem terintegrasi, yaitu :

  1. Vertical Integration, merupakan proses mengintegrasikan sub-sub sistem berdasarkan fungsionalitas dengan menghubungkan sub-sub sistem yang sudah ada tersebut supaya bisa berinteraksi dengan sistem terpusat dengan tetap berpijak pada arsitektur sub sistem yang lama.
  2. Star Integration, atau lebih dikenal sebagai spaghetti integration, adalah proses mengintegrasikan sistem dengan cara menghubungkan satu sub sistem ke semua sub-sub sistem lainnya. Sebuah fungsi bisnis yang diimplementasikan dalam sebuah sub sistem akan di-broadcast ke semua sub-sub sistem lain yang dependen terhadap fungsi bisnis tersebut supaya dapat dipergunakan sebagaimana mestinya.
  3. Horizontal Integration, atau ada yang mengistilahkan dengan Enterprise Service Bus (ESB), merupakan sebuah metode yang mengintegrasikan sistem dengan cara membuat suatu layer khusus yang berfungsi sebagaiinterpreter, dimana semua sub-sub sistem yang sudah ada akan berkomunikasi ke layer tersebut.
  • SOA (Service Oriented Srchitecture)

SOA merupakan 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