Download - Webeng2010 05-arsitektur-aplikasi-web
Web Engineering 2010Pertemuan ke-05
Arsitektur Aplikasi Web
Husni.trunojoyo.ac.idKomputasi.wordpress.com
Outline
• Pendahuluan• Metode dan Pendekatan• Seluk beluk Arsitektur Web• Komponen dasar dari Arsitektur• MVC, Struts, OOHDM
2
Pendahuluan
• Pertimbangkan besarnya dari kebutuhan (requirements) dan batasan (constraints)
• Meliputi:– Kebutuhan fungsional: pemesanan produk berbasis
web– Kebutuhan kualitas: kinerja, ketersediaan– Integrasi dengan sistem yang telah ada
• Normalnya tidak dikembangkan “from scratch” (tidak dari nol)
3
Arsitektur?
• Arsitektur mendeskripsikan struktur: Menurut (Bassetal.1998), Arsitektur dari sistem perangkat lunak (software) terdiri dari strukturnya, dekomposisinya ke dalam komponen-komponen, dan interface dan hubungannya.
• Arsitektur menjelaskan aspek statis dan dinamis dari sistem software sehingga dapat diperkirakan rancangan bangunan (building design) dan diagram alir (flow chart) bagi suatu produk software.
4
Arsitektur?
• Arsitektur membentuk transisi dari analisis ke implementasi: Saat membuat arsitektur, kita mencoba untuk memecah kebutuhan fungsional dan kebutuhan kualitas ke dalam komponen-komponen software dan relationship dan interfacenya dalam pendekatan iteratif.
• Proses ini didukung oleh sejumlah pendekatan, seperti Unified Process (Baca Bab 10)
5
Pengembangan Arsitektur(Sangat dipengaruhi oleh kebutuhan)
6
Pengembangan Arsitektur
• Kembangkan dengan cara berulang–Buatlah resiko (kemungkinan rugi) sebagai
hasil dari kebutuhan tidak aman.• Mengapa?
– Tentukan batasan yang dapat diperhitungkan (calculateable) dan dapat dikendalikan (controlable )
7
Pola (Patterns)
• Menjelaskan masalah rancangan berulang. Berupa konteks rancangan spesifik dan menawarkan satu atau lebih solusi.
• Solusi menjelaskan komponen-komponen yang berpartisipasi, tanggungjawabnya, relationship antar komponen-komponen ini, dan saling mempengaruhi dari komponen-komponen ini dalam masalah spesifik tersebut.
• Pattern memungkinkan kita menggunakan ulang pengetahuan rancangan gabungan dan telah terbukti (terjamin)
8
Framework
• Pilihan lain untuk menggunakan ulang pengetahuan arsitektur yang ada– Memuat pengetahuan arsitektural
• Framework adalah sistem software yang dapat digunakan ulang (reusable) dengan fungsi umum yang telah diimplementasikan.
• Harus mempertimbangkan kekurangannya– Perlunya training (mungkin mahal dan sulit)– Tak ada (atau kurang) standard– Misalnya...
9
Kategori Arsitektur
• Aspek Layering: Sistem Software distrukturkan dalam beberapa tier (deretan bertingkat) untuk mengimplementasikan prinsip “pemisahan urusan (konsen)”
• Aspek Data: Data dapat berupa:– Structured (Terstruktur)• Relational DB• XML
– Non-structured (Tak-Terstruktur)• Konten Multimedia • Gambar, audio, video 10
Pokok2 Arsitektur Aplikasi Web
Kebutuhan aplikasi Web lebih menuntut daripada sistem software◦ Changeability, performance, security, scalability, availability
Hingga membedakan infrastruktur web (platform) dan arsitektur aplikasi web
Platform◦ Variasi masalah yang luas◦ J2EE, .NET
Masalah◦ Kesulitan memanfaatkan wide range sistem berbeda meningkat◦ Inhomogeneity (ketakserbasamaan, tiadanya keseragaman)◦ Immaturity (ketidakmatangan, kurangnya pengalaman) 11
Komponen Arsitektur Aplikasi Web Dasar
12
Komponen Arsitektur Aplikasi Web Dasar
Client: Biasanya browser (user agent). Dikendalikan oleh pengguna untuk mengoperasikan aplikasi web. Fungsionalitas client dapat diperluas dengan menginstall plug-in (atau applet).
Firewall: Bagian dari software yang mengatur komunikasi antara jaringan tak-aman (misal: Internet) dan jaringan aman (misal: LAN perusahaan). Komunikasi ini difilter oleh aturan akses. 13
Komponen Arsitektur Aplikasi Web Dasar
Proxy: Biasanya digunakan untuk secara temporer menyimpan halaman-halaman web dalam suatu cache. Proxy dapat pula memikul fungsi lain seperti mengadaptasikan content bagi pengguna (customization), atau user tracking.
Web server: bagian dari software yang mendukung berbagai protokol Web seperti HTTP dan HTTPS, untuk memroses permintaan client.
14
Komponen Arsitektur Aplikasi Web Dasar
Database server: Server ini normalnya menyediakan data produksi organisasi dalam bentuk terstruktur, misalnya dalam tabel-tabel.
Media server: Komponen ini terutama digunakan untuk content streaming dari data besar yang tak-terstruktur (misal: audio atau video).
Content management server: Mirip database server, server ini menangani content untuk melayani aplikasi. Content ini biasanya tersedia dalam bentuk data semi-terstruktur, misal: dokumen XML.
15
Komponen Arsitektur Aplikasi Web Dasar
Application server: Server ini menangani fungsionalitas yang dibutuhkan oleh beberapa aplikasi, misal: workflow atau kustomisasi.
Legacy application: Ini adalah sistem (aplikasi) yang lebih tua yang sebaiknya diintegrasikan sebagai komponen internal atau eksternal.
16
Arsitektur 2-Layer
• Terdapat 2-layer: Client dan Server. Server terdiri dari beberapa komponen yang saling bekerjasama.
17
Arsitektur N-Layer
Bagaimana melekatkan (embed) layanan-layanan ke dalam komponen application server?◦ Kustomisasi, workflow◦ Business logic
Layanan dilekatkan dalam application server dengan suatu interface terdefinisi.
18
Arsitektur N-Layer
19
JSP Model 2Berbasis Arsitektur MVC (Model View Controller)
20
JSP Model 2
Meletakkan fondasi bagi integrasi aspek-aspek navigasi, internasionalisasi dan pengiriman multi-platform dalam aplikasi Web.
View Representasi Grafis, JSP
Controller Aliran (flow) dan Logik Control
Logik (model), View Bagian dari fungsionalitas model
Java bean, Komponen software 21
Struts
Berguna untuk penanganan error, internasionalisasi
Menggunakan file konfigurasi XML Kontrol dari pemrosesan mengalir dalam pola
MVC untuk men-fasilitasi pemrosesan dari request client
Mungkin mengkonfigurasi alokasi view dan model dalam file konfigurasi. Content dapat disajikan secara lebih fleksibel
22
Implementasi JSP Model 2 dalam Struts
23
Struts
1. Terima request (dari pengguna) dan temukan controller (Action) atau application logic.
2. Sampaikan ke Action3. Pilih dan buat suatu model dalam bentuk
JavaBean4. ActionServlet dapat memilih view utuk
menyajikan content5. View terpilih mengenerate output
24
OOHDM Java 2
• Berbasis pada arsitektur MVC (Model View Controller)
• Komponen navigasi eksplisit• User interface diperkaya dengan aspek-aspek
navigasi
25
Komponen OOHDM Java 2
26
Arsitektur Integrasi
Sistem yang ada dapat diintegrasikan pada 3 level◦ Presentation ◦ Application logic◦ Content
Istilah kunci: Enterprise Application Integration ◦ Fokus pada integrasi sistem
lama (legacy)27
Arsitektur IntegrasiMuncul dari integrasi business-to-business
Point to point: Bertukar content untuk diintegrasikan melalui komunikasi eksternal
Data delivery: akses ke data internal secara langsung (misal: akses database)
Integrasi Data: beberapa aplikasi menggunakan tempat penyimpanan data yang sama
Functionality Delivery: Sistem lama membolehkan akses fungsionalitas (misal: terhadap suatu API)
Rekonstruksi fungsionalitas: Akses ke fungsi transparan bagi client
Porting : Sistem lama dimigrasikan ke platform Web, menggantikan sistem aslinya 28
Arsitektur Aspek Data
• Data terstruktur dan sejenis ditangani dalan database
• Dokumen dan sejenis digunakan dalam document management system
• Data multimedia dan sejenis ditangani dalam media server
29
Arsitektur Centric Database
• Integrasikan DB ke dalam aplikasi Web• Diakses secara langsung dalam ekstensi Web
server atau application server.– JDBC– ODBC
30
Arsitektur Manajemen Dokumen Web
• Arsitektur Manajemen Content– Integrasikan dokumen dari sumber berbeda– Sediakan mekanisme untuk menginte-
grasikan content ke dalam Web
31
Arsitektur Manajemen Dokumen Web
32
Arsitektur Data Multimedia
• Lamban untuk menampilkan data multimedia
• Streaming –Client dapat mulai memutarkan audio
beberapa detik setelah ia mulai menerima file dari server–Bandwitdh yang sesuai, jitternya rendah,
videonya juga
33
Arsitektur Multimedia(Point-to-Point)
34
Arsitektur Multimedia
35
Tugas
• Jelaskan perbedaan antara Pattern dan Framework!
• Jelaskan tentang MVC dan Struts!• Jelaskan arsitektur dari CodeIgniter, sertakan
gambar!• Jelaskan tentang Integrasi Sistem dan SOA,
sertakan gambar!
36