Pengertian Framework

Diposkan oleh Dzaky Farras N on 23 September 2012

Pengembangan web bukan sekedar membutuhkan bahasa pemrograman (scripting) tertentu saja.
Suatu web site didukung oleh sistem kompleks yang terdiri dari berbagai komponen hardware dan software yang berbeda yang tergabung bersama dengan banyak protokol.
Oleh karenanya dibutuhkan suatu lingkungan yang memungkinkan kesemuanya itu dapat bekerja bersama dan berkomunikasi baik dengan antara mereka sendiri maupun komponen di luar lingkungan mereka.
Lingkungan inilah yang disebut Framework.
 

Dalam Pengembangan software, Framework didefinisikan sebagai :
Suatu struktur pendukung yang mana proyek perangkat lunak lain dapat diorganisasikan dan dikembangkan.
Atau dalam bahasa perangkat lunak, ada dikenal software framework yang memiliki pengertian :
Desain yang reusable untuk suatu sistem (atau subsistem) perangkat lunak .

Software framework diperlihatkan sebagai sekumpulan kelas-kelas abstrak dan cara mereka berkolaborasi untuk jenis software tertentu.
Dari sini terlihat bahwa semua software framework merupakan desain berorientasi objek, meskipun desain sendiri tidak harus diimplementasikan dalam suatu pemrograman berorientasi objek, namun secara umum hal itu dilakukan.

Benefits of framework
Beberapa keuntungan menggunakan framework :

  1. Lingkungan lengkap untuk pengembangan web site, hosting, interoperabilitas, security, dan maintenance sehingga pengembang tidak harus membangun sistem yang terkustomisasi setiap kali membuat suatu proyek web.
  2. Adanya standar dan konsistensi
  3. Komponen software sehingga pengembang dapat berbagi dan menggunakan ulang kode-kode yang telah ada tanpa harus membuat lagi fungsionalitas.
  4. Model atau arsitektur standar yang memungkinkan memvisualisasikan bagaimana keseluruhan sistem bekerja

Kebutuhan standarisasi sistem, bahasa, dan protokol merupakan kekuatan utama di balik konsolidasi industri.
Konsolidasi ini telah menghasilkan beberapa framework pengembangan web yang utama yakni :
Microsoft .Net, Sun’s Java 2 enterprise edition, dan Open Source.
Tiap framework memiliki kelebihan dan kekurangan masing-masing, sehingga perlu berhati-hati dalam mempertimbangkan dan memilih framework apa yang akan digunakan.

Microsoft .Net
.Net merupakan framework yang dibuat oleh Microsoft yang difokuskan pada Rapid Application Development (RAD), platform independence, dan network transparency.
Menurut Microsoft, .Net terdiri dari berbagai teknologi yang didesain untuk memfasilitasi rapid development Internet dan intranet.
.Net memberikan fungsionalitas dan tool-tool baru untuk API. Inovasi ini memungkinkan pengembang mengembangkan aplikasi-aplikasi untuk windows dan web sebaik komponen-komponen dan web service.

.Net terdiri dari 3 bagian utama yakni : Common Language Runtime, kelas-kelas framework, dan ASP.Net
Adapun 2 komponen utama .Net adalah : Common Language Infrastucture (CLI) dan Common Language Runtime (CLR).
CLI merupakan sekumpulan spesifikasi untuk runtime environment, termasuk tipe sistem yang umum, base class library, dan machine-independent intermediate code known as the Common Intermediate Language(CIL) .

CLR menyediakan suatu platform untuk menjalankan kode-kode yang sesuai dengan CLI. Dan sebelum CIL dapat dieksekusi, CLR harus menterjemahkannya menjadi kode mesin native.
Jika suatu bahasa implementasi men-generate CIL, bahasa tersebut dapat ditempatkan menggunakan CLR and kemudian dapat berinteraksi dengan data yang dihasilkan oleh bahasa.NET lainnya. CLR juga didesain menjadi operating system independent.
.Net memiliki mekanisme sekurity tersendiri dengan 2 fitur umum yakni : code access security, serta validasi dan verifikasi. Code access security berdasarkan pada pembuktian bahwa ia berasosiasi dengan bahasa assembly tertentu.
Code access security menggunakan pembuktian untuk menentukan ijin yang diberikan untuk suatu kode.
Ketika suatu bahasa assembly dijalankan, CLR melakukan berbagai tes. Dua di antaranya adalah validasi dan verifikasi
Selama proses validasi, CLR memeriksa apakah bhs assembly berisi metadata yang valid dan CIL, dan memeriksa apakah tabel-tabel internal sudah benar. Mekanisme verifikasi memeriksa apakah kode-kode mengerjakana sesuatu yang “tidak aman”.
Algortima yang digunakan cukup konservatif, dan oki kadang-kadang kode yang “aman” tidak diverifikasi.
Kode yang “tidak aman” hanya akan dieksekusi jika assembly memiliki ijin ‘skip verification’, yang mana secara umum berarti bahwa kode tersebut terinstall pada mesin lokal.
Beberapa bahasa yang didukung oleh .Net adalah :
  1. C# (C-Sharp), bahasa pemrograman berorientasi objek yg mirip C++ dan Java
  2. Visual Basic .Net
  3. Beberapa bahasa pihak ketiga :
1. Ada
2. perl
3. PHP
4. COBOL
5. Delphi 8 dan Delphi 2005
6. Fortran
7. IronPython dan boo, berbasis python
8. Smalltalk, dan lain-lain

Sun Microsystem J2EE
Framework java berdasar pada bahasa pemrograman Java.
Dengan menggunakan Java Virtual Machine (JVM) yang merupakan kompiler bahasa yang universal yang dapat berjalan pada berbagai sistem operasi. OKI, Sun mengklaim bahwa Java merupakan Bahasa pemrograman yang “ Write Once, Run Anywhere”.
J2EE memiliki 2 fitur unik yaitu :
  1. JSP (Java Server Pages)
  2. JavaBeans
  1. JSP
Dari sisi presentasi, JSP memungkinkan kode Java ditempelkan pada halaman HTML. Ketika dikompile, JSP secara dinamis menghasilkan halaman HTML dan mengirimkannya ke browser.
Dengan JSP dimungkinkan untuk membuat halaman web yang berisi Java namun menghasilkan HTML biasa yang ditampilkan secara langsung kepada klien.

2. JavaBeans
Logika aplikasi J2EE dibungkus menjadi komponen-komponen yang reusable yang disebut Enterprise JavaBeans (EJBs).
Komponen-komponen ini mengelola state (dengan menyimpan data) dan menghasilkan fungsi logis (yang disebut method).
Dengan EJB, mengurangi kompleksitas pengembangan middleware karena EJB menyediakan secara otomatis dukungan untuk layanan-layanan seperti konektivitas database.

Apache Struts
Apache Struts awalnya merupakan proyek di bawah proyek Apache Jakarta. Saat ini Struts merupkan proyek papan atas yang merupakan framework Open source untuk mengembangkan aplikasi J2EE.
Struts menggunakan dan memperluas Java Servlet API untuk mendorong developers mengadopsi sebuah arsitektr MVC. Awalnya dibuat oleh Craig McClanahan dan pada Mei 2000, disumbangkan untuk Apache Foundation.

Framework ini memungkinkan desain dan implementasi dari aplikasi web yang besar ditangani oleh beberapa kelompok yang berbeda. Dengan kata lain, desainer,pengembang komponen dan pengembang lainnya dapat menangani pekerjaan masing-masing dengan cara bersama-sama atau sendiri-sendiri.
Struts memiliki fitur I18N (internationalisasi), powerful custom tag library, tiled displays dan validasi for. Selain itu juga mendukung berbagai jenis lapisan presentasi, termasuk JSP, XML/XSLT,JavaServer Faces (JSF), dan Velocity dan berbagai lapisan model termasuk JavaBeans and EJB.

Ruby on Rails
Ruby on Rails (RoR) atau Rails, merupakan framework aplikasi web open source yang ditulis dengan Ruby, dan menerapkan arsitektur MVC (Model-View-Controller)
Rails berusaha keras agar sederhana dan memungkinkan aplikasi dunia nyata dikembangkan dengan sedikit baris kode dibandingkan framework lain dan minimum konfigurasi.

Arsitektur MVC Rails :
Model 
Pada orientasi objek, aplikasi web MVC berbasis-web, Model berisi kelas-kelas yang merepresentasikan tabel-tabel RDBMS.
Pada RoR, kelas-kelas model ditangani melalui Active Record. Umumnya programmer hanya membuat subclass dari Active Record, dan program akan secara otomatis menampilkan tabel-tabel RDBMS mana yang digunakan dan kolom-kolom tabel apa yang dimiliki.
Hubungan antar tabel ditentukan dengan perintah yang sederhana.

Arsitektur MVC Rails :
View
Pada MVC, View merupakan display logic,atau bagimana data dari kelas-kelas Controller ditampilkan. Pada aplikasi web, biasanya hal ini terdiri dari sejumlah kecil kode yang diselang-seling dalam HTML.
Views dianggap sebagai sebuah fragment dari HTML (file .rhtml) dengan Embedded Ruby yang diselang-seling dengan pure Ruby melalui Builder. 

Untuk setiap method pada controller yang akan menampilkan keluaran pengguna, dibutuhkan fragment kode HTML yang kecil.
Layout halaman dijelaskan secara terpisah dari aksi controller yang menampilkan layout, dan fragment-fragment juga dapat memanggil fragment lainnya

Arsitektur MVC Rails :
Controller
Pada MVC, kelas-kelas Controller merespon interaksi pengguna dan memanggil logika aplikasi, yang akan melakukan manipulasi data pada Model and menampilkan data melalui View.
Pada aplikasi MVC berbasis web, Method-method Controller dimulai oleh pengguna melalui web browser.

Implementasi Controller ditangani melalui Rails’ Action Pack, yang memiliki kelas ApplicationController.
Aplikasi-aplikasi Rails secara sederhana membuat subclass ApplicationController dan menulis aksi-aksi yang dibutuhkan sebagai method-method, yang kemudian dapat diakses melalaui web.

Modul-modul yang terdapat pada Rails di antaranya adalah Action Mailer untuk pengiriman email dan Action Web Service for SOAP dan dukungan XML-RPC.
Selain itu juga mendukung Ajax,yakni teknologi terpisah yang memungkinkan penggunaan Javascript dan XML untuk memproses query melalui web browser kepada web server sbg background-processing tanpa menampilkan halaman web tambahan.

Untuk pengembangan dan pengujian, web server yang digunakan biasanya adalah WEBrick yakni web server ringan yang sudah include dalam Ruby. Sedangkan untuk produksi, dianjurkan menggunakan Apache atau Lighthttpd dengan FastCGI.
Adapun RDBMS yang didukung oleh Rails adalah Mysql,PostgreSQL, SQLite,DB2,Oracle, dan SQL Server.

Framework untuk PHP
Cukup banyak framework untuk PHP, di antaranya yakni :
  • PRADO :
Framework pemrograman web berbasis komponen dan even-driven untuk PHP 5.
PRADO merekonsep pengembangan aplikasi web dengan terminologi komponen, event, dan propertis, ketimbang menggunakan istilah prosedur, URL, dan parameter query.

2. ZNF
Merupakan framework opensource untuk mengembangkan aplikasi web dengan PHP 5. Idenya mengambil dari Apache Struts.
Inti dari framework ini merupakan suatu lapisan kontrol yang flexibel berbasis pada teknologi standar seperti PHP5 dan XML.
ZNF menggunakan Model2, yg merupakan variasi dari arsitektur MVC.

Untuk Model, ZNF dapat berinteraksi dengan teknologi pengekasesan data standar, seperti PEAR:DB.
Untuk View, ZNF bekerja dengan baik dengan Smarty template engine dan XSL Transformation.


Sumber

{ 0 komentar... read them below or add one }

Poskan Komentar