Selasa, 02 November 2010

WEB ENGINERING

TUGAS 2


Oleh :

Zanizar Miftahul Arifin / 070411100175

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO

2010

Sekretariat : Jl. Raya Telang PO BOX 02 Kamal – Bangkalan

Telp. (031)71406897-(031) 3011147. Fax (031) 3011506

SOA (Service Oriented Architecture)

SOA (Service Oriented Architecture) adalah suatu gaya arsitektur sistem y yang membuat dan menggunakan proses bisnis dalam bentuk paket layanan sepanjang siklus hidupnya . SOA juga mendefinisikan dan menentukan arsitektur teknologi informasi (TI) yang dapat menunjang berbagai aplikasi untuk saling bertukar data dan berpartisipasi dalam proses bisnis. Fungsi-fungsi ini tidak terikat dengan sistem operasi danbahasa pemrograman yang mendasari aplikasi-aplikasi tersebut.

SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui suatu jaringan 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 danpemrograman modular .

http://www.esriaustralia.com.au/images/Software/integration-platform-med.jpg

Arsitektur Berorientasi menyediakan layanan yang lebih komprehensif dan tangkas cara untuk mengintegrasikan sistem informasi dan proses bisnis lebih dari integrasi pendekatan tradisional. Perusahaan perlu reskill staf mereka untuk memanfaatkan metodologi baru ini.

Dengan SOA, aplikasi-aplikasi tidak lagi dibangun bersifat monolitik, SOA dibentuk dengan merangkai berbagai service modular. “Suatu service bisa berupa satu fungsi dari sebuah piranti lunak, misalnya fungsi GetAccountBalance atau CancelOrder. Fungsi tersebut bisa dieksekusi atas permintaan sistem apapun, tanpa memandang platform sistem operasinya, bahasa pemrogramannya, maupun lokasi geografisnya.

Implementasinya SOA dewasa ini, dalam bentuk web services , boleh dibilang merevolusi pengembangan piranti lunak. Dulu memang sudah ada distributed software architecture , yang juga menjanjikan agility dan penggunaan kembali komponen. Namun, cara itu memiliki kelemahan.

Untuk melakukan integrasi, seluruh komponen harus menggunakan object model atau bahasa pemrograman yang sama. Nah, web services menghilangkan halangan itu dan sanggup beroperasi melampaui batas yang memisahkan platform Microsof dari Unix, atau .Net dari J2EE,

Singkatnya, SOA bisa membantu menyederhanakan integrasi aplikasi dan manajemen proses.Jika Anda ingin memiliki proses bisnis yang lebih fleksibel dan adaptif, pindahkan aplikasi-aplikasi TI Anda ke SOA.

Keunggulan SOA

Pada SOA, para software developer membangun aplikasi-aplikasi komposit ( composite applications ) dengan saling menghubungkan atau memadukan berbagai layanan dalam suatu alur proses, yang semuanya ditampilkan sebagai satu service .

Kemampuan SOA memadukan proses dengan merangkai building block service standar merupakan inti dari kelincahan yang dijanjikan BPM. Piranti desain SOA standar menjadikan pembuatan sebuah model service secepat dan semudah menggambar sebuah diagram alur layanan. Piranti yang sama juga akan membuat model tersebut menjadi sebuah proses bisnis yang dapat dieksekusi.

Selain itu, bahasa berbasis XML yang digunakan untuk memadukan berbagai service itu juga telah distandarkan.Bahasa yang dinamakan Business Process Execution Language (BPEL) ini didukung berbagai vendor BPM dan hampir sebagian besar vendor infrastruktur maupun vendor enterprise application integration (EAI). Jadi, SOA juga memperlihatkan portabilitas model proses, yang bisa dieksekusi di berbagai platform infrastruktur dan dikelola menggunakan piranti desain yang tidak bergantung vendor tertentu.

Ada berbagai pendekatan untuk mewujudkan service – service ini. Salah satu cara adalah membuat kode programnya dari nol. Saat ini, server-server aplikasi dari vendor seperti IBM, Microsoft, BEA dan Oracle saling bersaing dalam hal piranti untuk membuat custom code yang bisa digunakan sebagai reusable web services . Kalau tidak ingin repot membuat kode sendiri, tersedia alternatif lain, yaitu “membungkus” sistem yang ada dengan komponen-komponen middleware bernama integration adapter .Adapter ini bisa ditampilkan fungsionalitasnya sebagai web service tanpa harus membuat kode.

Cara lain adalah membeli service itu dari para vendor aplikasi enterprise. Versi terbaru aplikasi enterprise, seperti dari SAP dan Siebel kini sudah dikemas dalam bentuk koleksi web services , yang siap dipadukan secara terpisah ( out-of-the-box ). Terakhir, Anda juga bisa mengakses service pihak ketiga melalui Web dengan menggunakan registry . Atau, Anda bisa mengombinasikan service – service yang diterapkan dengan cara di atas dalam suatu paduan proses bisnis. Keunggulan-keunggulan seperti itulah yang ditawarkan SOA.

Di banyak perusahaan, TI identik dengan cost center. Itulah sebabnya mengapa banyak perusahaan kini menaruh minat pada gagasan SOA (Service Oriented Architecture), yang menjanjikan pengembangan peranti lunak lebih cepat, fleksibel dan hemat biaya.Namun, ada beberapa hal yang perlu diperhatikan ketika perusahaan memutuskan untuk melangkah lebih jauh dengan SOA.

Pada dasarnya, SOA adalah arsitektur teknologi informasi yang menitikberatkan pada layanan (services), dimana komponen-komponen peranti lunak dapat digunakan kembali (reused) dan dipadukan kembali (recombined) dengan fleksibel.

Di lingkungan arsitektur peranti lunak berbasis SOA, yang memanfaatkan berbagai mekanisme standar seperti misalnya eXtensible Markup Language (XML), komponen-komponen peranti lunak itu tampil di jaringan menawarkan services, yang kemudian dimanfaatkan aplikasi-aplikasi lainnya. Alhasil, bagi departemen TI, cara ini lebih produktif. Kini mereka bisa dengan mudah mengubah atau membangun services baru tanpa harus membongkar berbagai jenis aplikasi satu per satu.

Filosofi desain peranti SOA memaksa perusahaan untuk membuat reusable service, ketimbang membuat satu aplikasi utuh. Aspek reuse atau penggunaan kembali di dalam SOA ini berdampak pada penghematan biaya, karena para pengembang peranti lunak bisa meminimalkan kode-kode software yang berlebihan, selain waktu pengembangan software juga lebih cepat. Hal ini berarti pula perusahaan bisa lebih siap merespon perubahan kebutuhan kastamer maupun rekanan usahanya.

Alan Goldstein, managing director, divisi technology risk management dan architecture, Bank of New York mengatakan bahwa SOA memungkinkan banknya memangkas 15 sampai 20 persen biaya pengembangan dan pengujian aplikasi baru. Waktu pengembangannya pun bisa dipangkas 10 persen.

“Hal yang benar-benar diperhatikan manajemen dan para pengelola bisnis di tempat kami adalah bagaimana menyediakan fungsionalitas yang inovatif kepada kastamer secepat mungkin, bekualitas tinggi dan cost-effective,” ujar Goldstein.

Efisiensi semacam inilah yang menjadi daya tarik utama SOA.Tak heran jika tren SOA belakangan semakin merebak.Perusahaan-perusahaan utama di AS misalnya, kini semakin banyak yang merangkul teknologi SOA.

Perusahaan riset Forrester Research tahun lalu mengeluarkan prediksi bahwa lebih dari separuh perusahaan-perusahaan besar di AS akan menggunakan SOA mulai akhir tahun lalu. Sementara perusahaan-perusahaan yang sudah terlebih dulu memanfaatkan SOA, hampir 70 persennya berniat meningkatkan penggunaannya di masa depan.


Kolaborasi TI dan bisnis

Seperti halnya inisiatif TI lainnya, SOA pun membutuhkan kerjasama erat antara departemen TI dengan lines of business perusahaan. Karena, bagaimanapun juga, seperti dikatakan Ajjampur dari Hartford, sebuah service didefinisikan sesuai dengan suatu kebutuhan spesifik bisnis.“Untuk membangun SOA seutuhnya, Anda perlu memahami apa yang ingin dicapai pengelola bisnis,” ujarnya.

Agar kolaborasi TI – bisnis ini berjalan lancar, sejumlah perusahaan melakukan pendekatan yang berbeda-beda.Thompson Learning misalnya membentuk semacam dewan yang terdiri dari para chief technology officer (CTO) dari masing-masing unit bisnis grup perusahaan.Mereka rutin melakukan pertemuan untuk membuat dan memperbaiki strategi teknologinya berdasarkan strategi masing-masing unit bisnis.

“Dengan cara ini, kami memastikan bahwa strategi teknologi kami sudah sejalan dengan strategi bisnisnya. Sedangkan dari sisi pengembangan peranti lunak, kami pun bisa memastikan bahwa kami memanfaatkan services yang sudah ada dan membuat servicesservices itu,” ujar Ray Lowrey, senior vice president dan CTO di Thomson Learning. sedemikian rupa sehingga memungkinkan penggunaan kembali (reuse).

Sementara itu, Bank of New York juga membentuk semacam dewan enterprise architecture.Dewan ini mengumpulkan para pakar arsitektur dari berbagai aktifitas pengembangan bank, yang biasanya berafiliasi dengan masing-masing link bisnis.Dewan ini mendorong pengadopsian common services dan juga memainkan peran dalam mengkaji seluruh usulan pengembangan aplikasi. Sebuah proyek pengembangan aplikasi di bank tersebut tidak akan berjalan sebelum arsitekturnya disetujui.

Agar implementasi SOA bisa diterima semua pihak, edukasi para stakeholder pun sangat diperlukan.Perusahaan perlu mengedukasi baik sisi teknologi maupun bisnis perusahaan. Edukasi semacam ini diharapkan juga akan memicu dialog antara kedua pihak, yang nantinya diharapkan juga akan menguak nilai positif SOA dengan lebih cepat.

Hubungan antara bisnis dan teknologi yang lebih dekat akan meningkatkan kemungkinan departemen TI bisa memberikan apa yang diinginkan para pengelola bisnis.

Salah satu keunggulan SOA adalah perusahaan tidak perlu membuang aplikasi-aplikasi legacy-nya, sekalipun SOA akan lebih banyak melibatkan pengembangan peranti-peranti lunak baru. Menurut Kevin Bohan, CIO Proginet Corp., sebuah vendor peranti lunak integrasi data, aplikasi-aplikasi lama sebenarnya dapat ditampilkan sebagai services, apakah itu melalui integrasi dari titik-ke-titik (point-to-point integration), peranti messaging queue maupun middleware, dan menghubungkannya dengan arsitektur yang lebih luas.


enam hal yang perlu dicermati.

Pertama, harus selalu diingat bahwa SOA adalah sebuah arsitektur.Jadi SOA tidak tergantung pada satu jenis teknologi atau metodologi saja.SOA bisa diimplementasi dengan berbagai teknik dan teknologi, karena SOA terdiri dari berbagai design principles.Berdasarkan pengamatan, kesuksesan implementasi SOA banyak ditentukan oleh mind frame seperti tersebut di atas.

Kedua, perlu diingat juga bahwa SOA bukan web services karena penerapan SOA adalah untuk semua jenis jasa (services) di sebuah perusahaan. Organisasi atau institusi yang tidak bisa membedakan antara SOA dan web services akan tertinggal dalam memanfaatkan SOA dalam konteks skalabilitas dan fleksibilitas.

Ketiga, dahulukanlah fungsi yang dibutuhkan bukan produk. Institusi yang lebih mendahulukan produk akan terperangkap dengan keterbatasan kemampuan/kapabilitas produk yang telah dibeli. Kita harus selalu mendahulukan fungsi yang dibutuhkan, karena dari kebutuhan tersebut kita bisa menganalisis secara objektif kapabilitas apa saja yang kita inginkan dari produk.

Keempat , tidak semua aplikasi harus diubah (convert) ke SOA. Harus selalu diingat bahwa keunggulan SOA adalah fleksibilitas. Jadi, aplikasi-aplikasi yang akan diubah ke SOA adalah aplikasi-aplikasi yang memang membutuhkan fleksibilitas tinggi.

Kelima, SOA bisa dimulai dalam skala yang kecil.Walaupun SOA menawarkan keuntungan yang sangat besar, implementasi SOA tetap mengandung risiko kegagalan.Sebaiknya organisasi/institusilebih konservatif melalui penerapan SOA secara bertahap dan dimulai dalam skala yang kecil.

Keenam, melakukan balancing antara hasil jangka pendek dan tujuan/objektif jangka panjang.Dengan melakukan proyek SOA secara bertahap, dimungkinkan untuk melakukan analisis bagaimana hasilnya bisa menjadi komplemen dari tujuan jangka panjang pada penerapan SOA secara menyeluruh.

CodeIgniter adalah sebuah framework yang menerapkan konsep Model-View-Controller (MVC) sebagai pola didalam mengembangkan aplikasi berbasis PHP.Dengan pola MVC ini memungkinkan developer untuk mengorganisir file-file untuk membangun aplikasi.

CodeIgniter berisi banyak sekali instant library yang memudahkan seorang programmer PHP didalam membangun aplikasi sehingga walaupun aplikasinya besar, seorang programmer tidak perlu mendefinisikan library-library tersebut dari awal. Sebagai contoh jika kita ingin membuat sebuah fungsi database untuk memunculkan list data dari sebuah table dengan query ‘SELECT’, maka kita hanya tinggal memanggil library yang sudah disediakan dan selebihnya akan dikerjakan oleh CodeIgniter. CodeIgniter merupakan Web Application framework dengan bahasa pemrograman PHP yang dikembangkan oleh EllisLab. Apa beda CMS dengan Framework? Jika CMS memungkinkan anda untuk membuat web dinamis, maka Framework pun bisa, tetapi dengan tingkatan yang lebih rumit, yaitu pemrograman. Dengan kata lain, anda dapat membuat sebuah CMS dengan framework, tetapi anda tidak dapat membuat framework dengan CMS.

CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun websitedinamis dengan menggunakan PHP.CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal.adalah salah satu dari sekian banyak PHP framework. Framework ini dikembangkan oleh EllisLab, dan dapat diunduh dan digunakan secara gratis.

Kelebihan yang dimiliki oleh CodeIgniter antara lain :

1. Gratis

2. Ringan, sehingga mempercepat web anda.

3. Menggunakan M-V-C

4. Menghasil URL yang bersih

5. Memiliki dokumentasi yang sangat bagus

STRURT

Struts adalah open-source framework yang dibuat oleh Apache Software Foundation. Dibawah ini menunjukkan bagaimana penanganan Model 2 Architecture oleh Struts.

Perhatikan object yang disediakan oleh framework pada komponen Model, View dan Controller.

CONTROLLER

ActionServlet

Pusat dari implementasi controller pada Struts adalaha ActionServlet. Berfungsi sebagai Front Controller servlet dan menyediakan jalur tunggal untuk mengakses aplikasi. ActionServlet juga mengandung logic dalam penanganan request dari client – terlihat pada HTTP request dari client, kemudian diteruskan menuju sebuah halaman Web atau mengirimkan request tersebut object penerima yang disebut dengan Actions yang kemudian bertanggungjawab untuk menentukan respon yang akan dihasilkan. ActionServlet memiliki detail – detail sebagai berikut, Action apa yang akan dipanggil untuk menangani request, komponen view mana yang akan dipanggil selanjutnya – dengan membaca konfigurasi XML, yang umunya bernama struts-config.xml.

Servlet ini menyediakan struts framework yang siap digunakan. Secara keseluruhan penting untuk menyertakannya pada aplikasi sebagai konfigurasi pada deployment aplikasi.

Action

Seperti yang telah disebutkan sebelumnya, beberapa request dari client diteruskan menuju Action yang sesuai oleh front controller servlet. Seluruh action objects mendefinisikan sebuah method yang disebut execute(), dan method inilah yang dipanggil oleh ActionServlet untuk menangani request yang terjadi. Aktifitas umum dalam aplikasi web adalah user log-in. Ditunjukkan di bawah ini adalah implementasi dari LoginAction class yang berfungsi untuk menangani request tersebut.

Perhatikan bahwa implementasi di atas menggunakan sebuah business object yang disebut dengan UserService, untuk menentukan otentifikasi user dan tidak menyediakan implementasi secara langsung pada method eksekusinya. Action instances harus dibuat dengan alur sebagai berikut – fungsi utama harus di teruskan kembali pada business object (yang dapat ditemukan pada bagian Model), tidak diimplementasikan dalam Action itu sendiri. Proses yang akan dijalankan pada Action adalah sebagai berikut :

o Menampung informasi user dari ActionForm bean terkait

o Menerjemahkan data dari form menjadi parameter yang diperlukan oleh business object yang mengimplementasikan fungsionalitasnya

o Menampung hasil operasi dari business object dan menentukan View selanjutnya yang akan ditampilkan pada user

o Secara opsional, menyimpan data hasil dari operasi bisnis ke dalam session atau request objects untuk digunakan dalam proses aplikasi selanjutnya

Hal lain yang perlu diperhatikan pada saat membuat kode instances dari Action objects adalah bahwa framework hanya akan menginstansiasi satu salinan object dan menggunakannya untuk memfasilitasi seluruh request. Hal ini berarti kita harus selalu membuat kode Action dalam thread-safe, dan memastikan bahwa hanya local variabel yang digunakan, bukan instance variabel.

Action instances berkemampuan untuk menginstruksikan ActionServlet dalammemilih komponen View mana yang akan digunakan dalam merespon dengan mengembalikan instances dari objek ActionForward. Actions memiliki akses terhadap ActionForward melalui penggunaan ActionMapping yang mengenkapsulasi data dari pemetaan logical path pada setiap Action. Pemetaan tersebut dibaca dari file konfigurasi oleh ActionServlet, yang kemudian bertanggungjawab untuk meneruskan ActionMapping pada Action yang sesuai. Sehingga menginstruksikan ActionServlet untuk meneruskan pada logical map dengan hasil “Success”.

ActionForm

Struts framework menyediakan sebuah class yang disebut dengan ActionForm. Instances dari class ini digunakan untuk memfasilitasi penampungan data yang berasal dari form yang dikumpulkan dari user pada Action instances yang menangani events pada form tersebut.

Tiap instances dari ActionForm merepresentasikan sebuah form atau rangkaian forms. Instances tersebut mendefinisikan properties dari elemen – elemen form, dan mempublikasikannya dengan menggunakan getters dan setters yang dapat diakses secara public. Action yang memerlukan data dari form kemudian memanggil method getter dari instance ActionForm. Struts menyertakan definisi class dasar; developer bertanggungjawab penuh atas implementasi buatan mereka sendiri.

MODEL

Struts framework secara eksplisit tidak menyediakan komponen apapun dalam elemen Model. Object mana yang akan digunakan sebagai komponen Model ditentukan sepenuhnya oleh developer, umumnya adalah JavaBeans, atau terkadang EJB.

VIEW

Struts dapat menggunakan teknologi presentation layer apapun, walaupun pada sebagian kasus yang presentation layer yang digunakan adalah JSP dan HTML. Apa saja yang disediakan oleh Struts, adalah serangkaian dari tag libraries yang mengijinkan penggunaan fitur – fitur dari Struts dalam pengumpulan dan validasi form secara otomatis.

MVC

Pengenalan Arsitektur Model-View-Controller

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.

Diagram di atas menunjukkan 3 komponen yang terdapat dalam pola MVC dan interaksi yang terjadi.

MODEL

Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai bagian terpisah, seperti penampungan data, persistence, serta proses manipulasi, terpisah dari bagian lain aplikasi.

Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat detail dari data dan operasinya dapat ditempatkan pada area yang ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup aplikasi. Hal ini memberikan keuntungan dalam proses maintenance aplikasi.

Kedua, dengan pemisahan total antara data dengan implementasi interface, komponen model dapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama.

VIEW

Layer ini mengandung keseluruhan detail dari implementasi user interface. Disini, komponen grafis menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi. Tidak ada layer lain yang berinteraksi dengan user, hanya View.

Penggunaan layer View memiliki beberapa kelebihan : Pertama, memudahkan pengabungan divisi desain dalam development team. Divisi desain dapat berkonsentrasi pada style, look & feel, dan sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain. Dan juga, memiliki layer View yang terpisah memungkinkan ketersediaan multiple interface dalam aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat dibuat (Swing, Web, Console), secara keseluruhan memiliki tampilan yang berbeda namun mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.

CONTROLLER

Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan detail alur program dan transisi layer, dan juga bertanggungjawab akan penampungan events yang dibuat oleh user dari View dan melakukan update terhadap komponen Model menggunakan data yang dimasukkan oleh user. Kelebihan dalam penggunaan layer Controller secara terpisah : Pertama, dengan menggunakan komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain tanpa harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan team pengembang multiple interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar komponen View terabstraksi dalam Controller.

Kedua, dengan menggunakan layer terpisah yang melakukan update terhadap komponen Model, detail tersebut dihapus dari layer presentasi. Layer presentasi kembali pada fungsi utamanya untuk menampilkan data kepada user. Detail tentang bagaimana data dari user mengubah ketetapan aplikasi disembunyikan oleh Controller. Hal ini memisahkan dengan jelas antara presentation logic dengan business logic.

Tidak dapat disimpulkan bahwa pola MVC hadir dengan kelebihan – kelebihan tanpa ada efek samping. Pembagian aplikasi dalam 3 bagian terpisah meningkatkan kompleksivitas. Pada aplikasi kecil yang tidak membutuhkan loose coupling pada Model, hal ini dapat menjadi blok penghalang dalam penggunaan pola ini. Bagaimanapun, yang terbaik adalah untuk meyakini bahwa sebuah aplikasi umumnya dimulai dari aplikasi sederhana, dan berkembang menjadi sistem yang kompleks., sehingga factor loose coupling harus selalu diutamakan dan diperhatikan.

Arsitektur MVC Untuk Web : Arsitektur Model 2

Arstitektur MVC secara sederhana dirancang dan diadaptasi dalam penggunaan dalam Web-Application. Arsitektur yang dihasilkan kemudian disebut dengan Model 2 Architecture.

Aplikasi Model 2 umumnya memiliki :

o Servlet Controller yang menyediakan akses tunggal terhadap keseluruhan aplikasi. Controller ini bertanggungjawab menyediakan manajemen terpusat terhadap alur aplikasi dan juga service lain seperti penganganan security dan user management.

o Controller Servlet umumnya menggunakan konfigurasi XML untuk menentukan alur aplikasi dan pemrosesan perintah. Hal itu juga membuat helper components yang berfungsi sebagai Command objects. Hal ini berarti helper components terasosiasikan dengan user actions dan dibuat/dipanggil untuk menangani actions yang terjadi, memanggil komponen Model sebagaimana diperlukan. Hal ini berfungsi untuk memisahkan untuk memisahkan antara controller servlet dari Model.

Model 2 Diagram

Implementasi sebuah pola dapat dipermudah dengan menggunakan third-party framework. Frameworks tersebut menyediakan detail terkait (request, konfigurasi, dan sebagainya) sehingga kita dapat berkonsentras pada hal lain yang lebih penting. Frameworks tersebut juga menyediakan fungsi - fungsi tambahan.