Progettazione Architetturale
1
Progettazione Architetturale
 Obiettivo: stabilire la struttura globale di un
sistema software
 Descriveremo diversi tipi di modello di
architettura, e come l’architettura di un singolo
sistema può essere modellata in diversi modi
2
Processo di progettazione
architetturale

Strutturazione del sistema


Modellazione del controllo


Il sistema viene diviso in sottosistemi, e
vengono identificato come i sottosistemi
comunicano
Viene stabilito un modello delle relazioni di
controllo tra le differenti parti del sistema
Scomposizione modulare

I sottosistemi vengono a loro volta divisi in
moduli
3
Sottosistemi e moduli
 Un sottosistema è un sistema di per sè: le sue operazioni
sono indipendenti dai servizi offerti dagli altri sotto-sistemi
 Un modulo è una componente del sistema che offre
servizi ad altre componenti, ma che non può essere
considerato un sistema a se stante
4
Strutturare un sistema

Significa scomporre il sistema in sottosistemi
 L’architettura viene espressa di solito con un diagramma
a blocchi, che presenta una visione d’insieme della
struttura del sistema
 Si possono sviluppare modelli più specifici, che mostrano
come i sottosistemi siano distribuiti e condividono dati, e
che mostrano le interfacce tra i vari sottosistemi
5
Sistema di controllo di un robot di
impacchettamento
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
Conveyor
controller
6
Il modello “repository”

I sottosistemi possono scambiarsi dei dati. Questo può
essere fatto in due modi:
 I dati condivisi sono mantenuti in un database
centrale (o deposito) al quale possono accedere tutti
i sottosistemi
 Ogni sottosistema mantiene un proprio database e
passa i dati esplicitamente agli altri sottosistemi
 Quando devono essere condivise grosse quantità di dati,
viene usualmente scelto il modello di deposito (repository
model)
7
Architettura di un toolset CASE
Design
editor
Design
translator
Code
generator
Project
repository
Design
analyser
Program
editor
Report
generator
8
Caratteristiche del modello a
deposito
 Vantaggi
 Modo efficiente di condividere grandi quantità di dati
 I sottosistemi possono disinteressarsi a come i dati vengono
prodotti, alle operazioni di backup, sicurezza ecc.
 Svantaggi
 I sottosistemi devono concordare su un modello dei dati, che
inevitabilmente è un compremesso tra esigenze diverse
 L’evoluzione dei dati è difficoltosa e dispendiosa
 Non c’è spazio per politiche specifiche di gestione dei dati
 La distribuzione dei dati non è efficiente
9
Modello “client-server”

Modello per sistemi distribuiti, che mostra come dati e
processi sono distribuiti su un insieme di componenti
 Insieme di servers autonomi che offrono servizi specifici,
ad es. di stampa, di gestione dei dati...
 Insieme di clienti che richiedono questi servizi
 Rete che permette ai clienti di accedere ai server
10
Emeroteca
Client 1
Client 2
Client 3
Client 4
Wide-bandwidth network
Catalogue
server
Video
server
Picture
server
Hypertext
server
Catalogue
Film clip
files
Digitiz ed
photographs
Hypertext
web
11
Computers in una rete client-sever
c1
CC1
c2
CC2
CC3
Network
s1, s2
c3, c4
s3, s4
Server
computer
SC1
SC2
c5, c6, c7
CC4
c8, c9
CC5
c10, c11, c12
Client
computer
CC6
12
Strati funzionali nell’architettura client-server
(three tier architecture)

Presentation layer



Si preoccupa di presentare I
risultati della computazione agli
utenti del sistema e di gestire gli
input da parte degli utenti.
Application processing layer

Presentation layer
Si preoccupa di offrire le
funzionalita’ specifiche
dell’applicazione
Application processing
layer
Data management layer

Si preoccupa di gestire la
comunicazione con il DBMS
Data management
layer
13
Three-tier architecture – struttura ed esempio
Presentation
Client
Client
Server
Server
Application
processing
Data
management
HTTP interaction
Datab ase server
Web server
Client
Account service
provision
SQL query
SQL
Customer
account
database
Client
Client
14
Caratteristiche del modello clientserver
 Vantaggi



La distribuzione dei dati è semplice
Fa uso effettivo del sistema di rete, e può richiedere hardware
economico
E’ facile aggiungere nuovi server o fare l’upgrade dei server
esistenti
 Svantaggi



Non c’è un modello dei dati condiviso da tutti i sottosistemi,
quindi i sottosistemi possono usare organizzazioni diverse dei
dati e lo scambio dei dati può risultare inefficiente
Gestione di dati ridondante in ogni server
Non c’è un registro centrale dei nomi e dei servizi: può risultare
difficile sapere quali dati/servizi sono disponibili
15
Modello “macchina astratta”
Usato per modellare l’interfaccia tra sottosistemi
 Organizza il sistema in un insieme di livelli (o macchine
astratte) ognuno dei quali offre un insieme di servizi
 Supporta lo sviluppo incrementale di sottosistemi a livelli
diversi: quando l’interfaccia di un livello cambia, ne è
affetto solo il livello adiacente

16
Sistema di gestione delle versioni
Version management
Object management
Database system
Operating
system
17
Riassumendo (1)
 Modelli di struttura di un sistema:
 Repository
 Client-server
 Macchina
astratta
18
Modelli di controllo (tra sottosistemi)
 Controllo centralizzato
 Un sottosistema ha il controllo globale e dà inizio e fine agli altri
sottosistemi
 Modello “call-return”: gerarchia di procedure, in cui il controllo
viene gestito top-down. Applicabile a sistemi sequenziali.
 Modello “manager”: una componente del sistema controlla
l’interruzione, l’inizio e il coordinamento degli altri processi.
Applicabile a sistemi concorrenti. Può essere implementato in
sistemi sequenziali con un comando “case”.
 Controllo basato sugli eventi
 Ogni sottosistema può rispondere ad eventi generati dall’esterno
da altri sottosistemi o dall’ambiente esterno al sistema
19
Modello Call-return
Main
program
Routine 1
Routine 1.1
Routine 2
Routine 1.2
Routine 3
Routine 3.1
Routine 3.2
20
Modello Manager
Sensor
processes
Actuator
processes
System
contr oller
Computation
processes
User
interface
Fault
handler
21
Modello basato sugli eventi
 Guidato da eventi generati dall’esterno, dove la
temporizzazione degli eventi è fuori dal controllo dei
sottosistemi che gestiscono l’evento
 Due modelli “event-driven” principali
 Modello “broadcast”: un evento è trasmesso a tutti i
sottosistemi. Ogni evento è trasmesso a tutti i
sottosistemi. Ogni sottosistema in grado di gestire
l’evento può farlo.
 Modello “interrupt-driven”. Usato nei sistemi real-time
dove le interruzioni sono individuate da ogni gestore di
interruzioni e passate a qualche altra componente per
processarle
22
Modello broadcast

Efficace per integrare sottosistemi su diversi computer in
rete
 Ogni sottosistema si dichiara “interessato” a degli eventi
specifici. Quando questi occorrono, il controllo viene
trasferito ai sottosistemi che possono gestirlo
 Le politiche di controllo non sono interne all’evento o al
gestore del messaggio. E’ tutto lasciato ai sottosistemi.
Tuttavia i sottosistemi non sanno se e quando l’evento
sarà gestito.
23
Broadcasting selettivo
Sub-system
1
Sub-system
2
Sub-system
3
Sub-system
4
Event and messa ge handler
24
Sistemi “interrupt-driven”

Usati in sistemi real-time, dove la velocità di risposta ad
un evento è essenziale
 Ci sono tipi di interruzione noti, con un gestore definito in
corrispondenza ad ogni tipo
 Ogni tipo è associato a una locazione di memoria e uno
switch hardware lo trasferisce al suo gestore
 Consentono rapidità di risposta, ma sono complicati da
programmare e difficili da validare
25
Controllo interrupt-driven
Interrupts
Interrupt
vector
Handler
1
Handler
2
Handler
3
Handler
4
Process
1
Process
2
Process
3
Process
4
26
Riassumendo (2)
 Modelli di controllo centralizzato
 Call-return
 Manager
 Modelli di controllo basato su eventi
 Broadcast
 Interrupt-driven
27
Scomposizione modulare
E’ un ulteriore livello strutturale: i sottosistemi sono
scomposti in moduli
 Due modelli di scomposizione:
 Un modello a oggetti, dove il sistema è scomposto
in oggetti che interagiscono
 Un modello data-flow, dove il sistema è scomposto
in moduli funzionali che trasformano inputs in outputs
(modello pipeline)
 Se possibile, ogni decisione rispetto alla concorrenza
dovrebbe essere posticipata fino all’implementazione dei
moduli

28
Modelli a oggetti

Consiste nello strutturare il sotto-sistema in un insieme di
oggetti con accoppiamento lasco e interfacce ben definite
 La scomposizione orientata ad oggetti significa
identificare le classi degli oggetti, gli attributi (campi) e le
operazioni (metodi)
 Quando vengono implementati, gli oggetti sono istanze di
queste classi e qualche modello di controllo è usato per
coordinarne i metodi
29
Sistema di smaltimento fatture
Customer
customer #
name
address
credit period
Payment
invoice #
date
amount
customer #
Receipt
Invoice
invoice #
date
amount
customer
invoice #
date
amount
customer #
Issue
Send reminder
Accept payment
Send receipt
30
Modelli “data-flow”
 Trasformazioni funzionali che producono un output a
partire da un input
 Possono riferirsi ad un modello a “pipe” e a filtri (come la
shell Unix)
 Quando le trasformazioni sono sequenziali, è un modello
batch sequenziale molto usato nei sistemi di gestione dati
 Il modello “data-flow” non si adatta bene a sistemi
interattivi
31
Sistema smaltimento fatture
Read issued
invoices
Invoices
Issue
receipts
Receipts
Find
payments
due
Issue
payment
reminder
Identify
payments
Reminders
Payments
32
Architetture “domain-specific”
 Modelli di architettura di sistema che sono specifici
rispetto a qualche dominio di applicazione
 Due tipi di modelli “domain-specific”:
 Modelli generici: sono astrazioni da un certo insieme di
sistemi reali e contengono le caratteristiche principali di
questi sistemi
Di solito sono modelli bottom-up
 Modelli di riferimento: sono modelli idealizzati, più
astratti. Offrono informazione su quella classe di
sistemi e permettono di confrontare diverse architetture
Di solito sono modelli top-down
33
Modelli generici: un compilatore
Symbol
table
Lexical
analysis
Syntactic
analysis
Semantic
analysis
Code
generation
34
Modelli generici:
un sistema di analisi di linguaggio
Lexical
analyser
Syntax
analyser
Semantic
analyser
Prettyprinter
Abstract
syntax tree
Grammar
definition
Optimizer
Editor
Symbol
table
Output
definition
Code
generator
Repository
35
Architetture di riferimento

Modelli di riferimento: sono ottenuti studiando il dominio
di applicazione piuttosto che i sistemi esistenti
 Possono essere usati come base per implementare
sistemi o per confrontare diversi sistemi.
 Hanno il ruolo di “standard” rispetto ai quali valutare un
sistema
 Esempio: il modello OSI è un modello di riferimento per i
sistemi di comunicazione
36
Modello di riferimento OSI
7
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
37
Scarica

IS_11_2011_2012