Software
Architecture
Muhammad Bagir, S.E., M.T.ISoftware Architecture
Architectural Design
Proses untuk mengidentifikasi subsistem
yang menyusun sebuah sistem
Mendefinisikan framework komunikasi
dan kontrol sub-sistem
Software Architecture
Deskripsi sistem yang menghasilkan
Proses Architectural Design
System structuring
Sistem yang dibagi menjadi beberapa subsistem Komunikasi subsistem dibangun
Control modeling
Model keterhubungan kontrol antar komponen
sistem yang dibangun
Modular decomposition
Mengenali subsistem yang dibagi menjadi
Architectural Models
Static structural model
Menunjukkan komponen-komponen sistem
utama
Dynamic process model
Menunjukkan struktur proses sistem
Interface model
Mendefinisikan interface subsistem
Relationships model
CASE Repository Model
Project repository Design
translator Programeditor Design
editor generatorCode
Design
Call-Return Model
Routine 1.2
Routine 1.1 Routine 3.1 Routine 3.2 Routine 2 Routine 3
Routine 1
Main program
Real-Time System Control Model
System contr oller
User
interface handlerFault Computation processes Actuator processes Sensor processes
Selective Broadcasting Model
Sub-system 1
Event and message handler Sub-system
Interrupt-Driven Control Model
Handler
1 Handler2 Handler3 Handler4
Process
1 Process2 Process3 Process4 Interrupts
Interrupt vector
Compiler Model
Lexical analysis Syntactic analysis Semantic analysis Code generation Symbol tableOSI Reference Model
Application Presentation Session Transport Network Data link Physical 7 6 5 4 3 2 1 Communications medium Network Data link Physical Application Presentation Session Transport Network Data link Physical ApplicationDistributed Systems
Kebanyakan sistem komputer besar
diimplementasikan sebagai sistem
terdistribusi
Informasi juga didistribusikan melalui
beberapa komputer ketimbang
dipandang sebuah mesin tunggal
Distributed software engineering
System Types
Personal systems
Didesain untuk berjalan pada sebuah sistem user
tunggal
Embedded systems
Dapat berjalan pada sebuah prosesor tunggal Dapat berjalan pada sekelompok processor
terintegrasi
Distributed systems
System software berjalan pada sekelompok
processor yang bekerja sama terintegrasi yang dihubungkan oleh sebuah jaringan
Distributed Systems
Karakteristik
Resource sharing
Openness
Concurrency
Scalable
Fault tolerant
Transparent
Yang perlu diperhatikan
Complexity
Communication
Security
Manageability
Quality of Service
Unpredictability
Arsitektur Distributed Systems
Client/Server
Memberikan layanan terdistribusi yang dapat
dipanggil oleh klien
Server memberikan layanan yang dilayani secara
berbeda dibandingkan klien yang menggunakan servis
Distributed Object
Tidak ada perbedaan yang dibuat antara klien
dan server
Setiap objek sistem dapat menyediakan dan
Middleware
Software yang mengatur dan mendukung
komponen-komponen yang berbeda dari
sistem terdistribusi
Berada di tengah sistem
broker service
request
antara komponen-komponen
Biasanya produk jadi ketimbang kustom
Arsistektur yang mewakili
CORBA (ORB) COM (Microsoft) JavaBeans (Sun)
Arsitektur Multiprocessor
Sistem Model terdistribusi paling
sederhana
Sistem yang terdiri dari banyak proses
yang dapat dieksekusi pada processor
yang berbeda
Model digunakan pada banyak sistem
ril-time besar.
Distribusi proses ke processor dapat di
mulai atau diawasi oleh sebuah
Arsitektur Client/Server
Aplikasi dimodel sebagai seperangkat
layanan yang diprovide oleh server dan
seperangkat klien yang menggunakan
servis-servis ini.
Klien mengenal server namun
server-server tidak butuh mengetahui seluruh
klien
Klien dan server berproses secara logis
(tidak selalu mesin fisik)
Pemetaan proses ke processor tidak selalu
Representative Sistem Client/Server
Part 1
File servers
Klien meminta rekod terpilih dari sebuah file Server mentransmisikan rekod ke klient
melalui jaringan
Database servers
Klien mengirimkan permintaan SQL ke
server
Server memproses permintaan
Server mengembalikan hasil ke klien melalui
Representative Sistem Client/Server
part 2
Transaction servers
Klien mengirimkan permintaan yang
memanggil prosedur remote di server
Server mengeksekusi prosedur yang
dipanggil dan mengembalikan hasil ke klien
Groupware servers
Server menyediakan seperangkat aplikasi
yang memampukan komunikasi antara klien menggunakan teks, gambar, papan buletin, video dan lain-lain.
Komponen Software
Client/Server
Subsistem interaksi/presentasi user. Subsistem Aplikasi
Mengimplementasikan kebutuhkan-kebutuhan yang
didefinisikan aplikasi dalam konteks lingkungan operasi.
Komponen-komponen dapat berada disisi server atau
klien
Susbistem Manajemen Database Middleware
Seluruh komponen-komponen software yang ada
pada sisi klien dan server yang memungkinkan pertukaran informasi
Representative Konfigurasi
Client/Server - part 1
Distributed presentation
Logika Database dan aplikasi berada di server Software klien memformar kembalo data server
menjadi formasi GUI
Remote presentation
Mirip ke distributed presentation
Logika Database utama dan aplikasi berada di
server
Data yang dikirimkan server digunakan oleh
Representative Konfigurasi
Client/Server - part 2
Distributed logic
Klien ditugaskan semua kegiatan presentasi user
yang berhubungan entri data dan formulasi kueri server
Server ditugaskan kegiatan manajemen data
dan update informasi berdasarkan tindakan user
Remote data management
Aplikasi pada sisi server menciptakan sumber
data baru
Aplikasi pada sisi klien memproses data baru
Representative Konfigurasi
Client/Server - part 3
Distributed databases
Data disebar lintas server dan klien
Membutuhkan klien untuk mendukung manajemen
data sebagaimana komponen-komponen aplikasi dan GUI
Fat server
Kebanyakan fungsi-fungsi software untuk sistemC/S
dialokasikan ke server
Thin clients
Pendekatan komputer jaringan yang menugaskan
Thin Client Model
Digunakan ketika sistem yang ada
dimigrasikan ke arsitektur client server
Sistem yang ada dapat bertindak sebagaisebuah server dengan hak aksesnya sendiri
GUI dapat diimplemetasikan di sebuah
klien
Kerugian utamanya adalah load
proses data sangat berat pada server
dan jaringan
Fat Client Model
Lebih banyak proses yang didelegasikan ke
klien sebagaimana proses aplikasi yang diperluas secara lokal
Cocok untuk sistem client/server yang baru
dimana kemampuan sistem klien telah dikenali terlebih dahulu
Lebih komplek ketimbang model thin klien
dengan mempertimbangkan isu manajemen
Versi baru masing-masing aplikasi butuh untuk
Three-tier Architecture
Masing-masing later arsitektur aplikasi
(presentation, application, database) dapat berjalan pada proses yang terpisah
Mengizinkan kinerja yang lebih baik
ketimbang pendekatan thin-client
Lebih sederhana untuk dikelaola ketimbang
pendekatan fat client
Mudah di skala atau diukur (ketika
permintaan bertambah tinggal tambahkan server lebih)
Petunjuk Subsistem Aplikasi
terdistribusi
Subsistem interkasi/presentasi yang
secara umum ditempatkan di klien.
Jika database dishare oleh banyak user
yang terhubung melalui sebuah LAN,
database dilokasikan di server.
Data static digunakan untuk referensi
Menghubungkan subsistem
software Client/Server
Pipes
Mengizinkan pengiriman pesan antara mesin
yang berbeda yang menjalankan sistem operasi yang berbeda.
Remote procedure calls
Mengizinkan proses berjalan pada sebuah
mesin untuk memanggil eksekusi proses pada mesin yang lain
Interaksi SQL Client/server
Request SQL dikirinkan dari client leserver DBMS,
Desain Sistem Client/Server
Systems - part 1
Desain Data and architectural
Mendominasi proses desain agar dapat
secara efektif menggunakan kemampuan RDBMS atau OODBMS
Paradigma Event-driven
Ketika digunakan, pemodelan perilaku
harus dijalankan
Aspek yang berorientasi kontrol dari model
perilaku harus diterjemahkan menjadi model desain.
Desain Sistem Client/Server -
part 2
Interface design
Meningkat berdasarkan tingkat
kepentingannya
Komponen interaksi/presentasi user
mengimplementasikan seluruh fungsi yang berhubungan dengan sebuah GUI
Sudut Pandang Object-oriented
Seringkali dipilih, ketika struktur objek diberikan
oleh even-even yang diinisiasikan di dalam GUI dan event-event handler di dalam suatu
Desain Arsitektur Sistem
Client/Server - part 1
Menggambarkan arsitektur proses
komunikasi
Tujuan Arsitektural digunakan untuk
mencapai skalabilitas yang mudah
ketika menambahkan sejumlah klien.
Sistem C/S modern cenderung
berbasis komponen
Sebuah Arsitektur
Object Request
Broker
(ORB) digunakan untuk
implementasi
Desain Arsitektur Sistem
Client/Server - part 2
Adapter objek atau wrapper memfasilitasi
komunikasi antara klien dan server
Implementasi komponen-komponendidaftarkan
Semua referensi komponen diinterpretasikan
dan direkonsiliasi
Referensi komponen dipetakan ke implementasi
komponen terkait
Objek diaktivasi dan deaktivasi
Operasi dipanggil ketika pesan ditransmisikan Fitur-fitur sekuriti diimplementasikan