Software Architecture Muhammad Bagir, S.E., M.T.I
1
Software Architecture Architectural
Design
Proses
untuk mengidentifikasi subsistem yang menyusun sebuah sistem Mendefinisikan framework komunikasi dan kontrol sub-sistem Software Deskripsi
Architecture
sistem yang menghasilkan architectural design
Proses Architectural Design System
Sistem yang dibagi menjadi beberapa subsistem Komunikasi subsistem dibangun
Control
structuring
modeling
Model keterhubungan kontrol antar komponen sistem yang dibangun
Modular
decomposition
Mengenali subsistem yang dibagi menjadi modul-modul
Architectural Models Static
structural model
Menunjukkan komponen-komponen sistem utama
Dynamic
Menunjukkan struktur proses sistem
Interface
process model
model
Mendefinisikan interface subsistem
Relationships
model
Diagram data flow atau control flow
CASE Repository Model Design editor
Design translator
Code generator
Project repository
Design analyser
Program editor
Report generator
Call-Return Model Main program
Routine 1
Routine 1.1
Routine 2
Routine 1.2
Routine 3
Routine 3.1
Routine 3.2
Real-Time System Control Model Sensor processes
Actuator processes
System contr oller
Computation processes
User interface
Fault handler
Selective Broadcasting Model Sub-system 1
Sub-system 2
Sub-system 3
Event and messa ge handler
Sub-system 4
Interrupt-Driven Control Model Interrupts
Interrupt vector
Handler 1
Handler 2
Handler 3
Handler 4
Process 1
Process 2
Process 3
Process 4
Compiler Model Symbol table
Lexical analysis
Syntactic analysis
Semantic analysis
Code generation
OSI Reference Model 7
Application Application
Application
6
Presentation
Presentation
5
Session
Session
4
Transport
Transport
3
Network
Network
Network
2
Data link
Data link
Data link
1
Physical
Physical
Physical
Communica tions medium
Distributed Systems Kebanyakan
sistem komputer besar diimplementasikan sebagai sistem terdistribusi Informasi juga didistribusikan melalui beberapa komputer ketimbang dipandang sebuah mesin tunggal Distributed software engineering telah menjadi sangat penting
System Types Personal
systems
Didesain untuk berjalan pada sebuah sistem user tunggal
Embedded
Dapat berjalan pada sebuah prosesor tunggal Dapat berjalan pada sekelompok processor terintegrasi
Distributed
systems
systems
System software berjalan pada sekelompok processor yang bekerja sama terintegrasi yang dihubungkan oleh sebuah jaringan
Distributed Systems Karakteristik
Yang perlu diperhatikan
Resource
Complexity
sharing Openness Concurrency Scalable Fault tolerant Transparent
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 menggunakan layanan dari objek sistem lainnya
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 riltime besar. Distribusi proses ke processor dapat di mulai atau diawasi oleh sebuah dispatcher
Arsitektur Client/Server Aplikasi
dimodel sebagai seperangkat layanan yang diprovide oleh server dan seperangkat klien yang menggunakan servis-servis ini. Klien mengenal server namun serverserver tidak butuh mengetahui seluruh klien Klien dan server berproses secara logis (tidak selalu mesin fisik) Pemetaan proses ke processor tidak selalu 1:1
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 jaringan
Representative Sistem Client/Server part 2 Transaction
Klien mengirimkan permintaan yang memanggil prosedur remote di server Server mengeksekusi prosedur yang dipanggil dan mengembalikan hasil ke klien
Groupware
servers
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
Logika Database dan aplikasi berada di server Software klien memformar kembalo data server menjadi formasi GUI
Remote
presentation
presentation
Mirip ke distributed presentation Logika Database utama dan aplikasi berada di server Data yang dikirimkan server digunakan oleh klien untuk mempersiapkan presentasi user.
Representative Konfigurasi Client/Server - part 2 Distributed
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
logic
data management
Aplikasi pada sisi server menciptakan sumber data baru Aplikasi pada sisi klien memproses data baru yang dikembalikan server
Representative Konfigurasi Client/Server - part 3 Distributed
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
databases
clients
Pendekatan komputer jaringan yang menugaskan kembali proses aplikasi ke sebuah fat server
Thin Client Model Digunakan
ketika sistem yang ada dimigrasikan ke arsitektur client server
Sistem yang ada dapat bertindak sebagai sebuah 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 diintalasi pada setiap klien
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 harus dialokasikan ke klien.
Menghubungkan subsistem software Client/Server Pipes
Mengizinkan pengiriman pesan antara mesin yang berbeda yang menjalankan sistem operasi yang berbeda.
Remote
Mengizinkan proses berjalan pada sebuah mesin untuk memanggil eksekusi proses pada mesin yang lain
Interaksi
procedure calls
SQL Client/server
Request SQL dikirinkan dari client leserver DBMS, mekansisme ini terbatas pada RDBMS
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 software berbasis klien
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-komponen didaftarkan 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
www.PDFCool.com