Web Engineering 2010 - Komputasi

advertisement
Web Engineering 2010
Arsitektur Aplikasi Web
Husni
[email protected]
Husni.trunojoyo.ac.id
Komputasi.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
2
Pokok
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 plugin (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 takterstruktur (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) layananlayanan 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 2
Berbasis Arsitektur MVC (Model View Controller)
20
JSP Model 2




Meletakkan fondasi bagi integrasi aspek-aspek
navigasi, internasionalisasi dan pengiriman multiplatform 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.
2.
3.
4.
5.
Terima request (dari pengguna) dan temukan
controller (Action) atau application logic.
Sampaikan ke Action
Pilih dan buat suatu model dalam bentuk
JavaBean
ActionServlet dapat memilih view utuk
menyajikan content
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 Integrasi
Muncul 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 mengintegrasikan 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
Download