Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano la Specifica dei Requisiti. Il Progettista risponde con un altro documento che è il Progetto, detto Modello Concettuale; tale modello è la descrizione in termini simbolici dell oggetto e permette il dialogo tra committente e progettista; una serie di cicli di comunicazione porta poi al Contratto finale in cui il committente si impegna a mettere a disposizione le risorse e il Progettista a realizzare il progetto. Il Contratto avrà in allegato la Specifica dei Requisiti e il Modello Concettuale. Agli Implementatori è destinato un documento più specifico, che prende il nome di Modello Logico, e sul quale il progettista indica i dettagli di realizzazione. In particolare, in informatica un progettista realizza il Modello Concettuale utilizzando un linguaggio di modellazione; per rappresentare il software, tali
linguaggi utilizzano dei diagrammi che possono essere sia statici, e in questo caso definiscono la struttura informativa del software, che dinamici, descrivendo l interazione dei componenti all interno del software. Dopo il Modello Logico che ha un contenuto tecnico più dettagliato, si passa all ultimo step che è la realizzazione del Modello Fisico; tale documento è il dettaglio ultimo che serve per l utilizzo finale e la manutenzione dell oggetto realizzato. Riassumendo, la Modellazione a tre Livelli prevede: un MODELLO CONCETTUALE realizzato tramite un Diagramma EER (Enhanced Entity Relationship); un MODELLO LOGICO ottenuto direttamente dal Diagramma EER e realizzato mediante un Modello Relazionale; un MODELLO FISICO realizzato in un linguaggio specifico di modellazione fisica (ad esempio SQL). Infine si effettuano le fasi di test per verificare il raggiungimento degli obiettivi preposti e le corrette funzionalità del sistema. Al Committente si affianca la figura del Consulente che di solito rappresenta un azienda diversa da quella del progettista. Il consulente consiglia il committente durante tutte le varie fasi del progetto, dalla specifica dei requisiti al rilascio del prodotto finito e si occupa di garantire l efficienza e un buon rapporto qualità prezzo del prodotto realizzato. All inizio della progettazione si individuano innanzitutto gli Stakeholder e i Goal. Infatti, Stakeholder e Goal, EER, User Interface e Navigation permettono già la realizzazione del Modello Concettuale di realizzazione del software. Ogni linguaggio di modellazione ha delle Primitive. Di seguito sono riportate le principali:
Differenza tra Ingegneria del Software e Basi di Dati L Ingegneria del Software è più focalizzata sui processi di trasformazione dei dati, mentre nelle Basi di Dati si punta maggiormente sul Reperimento e sul
Riordinamento dei dati. Una qualunque applicazione, però, è quasi sempre una via di mezzo tra i due estremi: si scrive del software a oggetti che accedono a database.
Prof.ssa Antonella Longo ARCHITETTURA A LIVELLI Architetture su 3 Livelli Logici (Layers): Presentazione Logica Applicativa Gestione Dati I layers vengono mappati su livelli fisici, chiamati Tiers: 1 Livello Fisico: un unico Mainframe con terminali di sola immissione dati (Terminale-Host); 2 Livelli Fisici: Architettura Client-Server; 3 Livelli Fisici: Logica distribuita; 4 o più Livelli Fisici: si suddivide la logica di presentazione su più macchine fisiche (Architetture n-tier). Le caratteristiche tipiche di valutazione di un architettura a livelli sono le seguenti: Scalabilità Sicurezza (di infrastruttura o di applicazione) Prestazioni Costo Costo di gestione e complessità architetturale. I vantaggi delle architetture ad un unico livello fisico sono essenzialmente la sicurezza, le prestazioni e l affidabilità, mentre i principali svantaggi sono rappresentati dalla non scalabilità e dagli elevati costi di hardware, software e manutenzione. Attraverso il processo di downsizing si è passati dai grossi mainframe a batterie di servers il cui vantaggio è innanzitutto la riduzione dei costi, pur continuando a garantire prestazioni e affidabilità grazie alla possibilità di ridondare i servers più
critici. Di contro, le informazioni distribuite richiedono una gestione della sicurezza più accurata. SERVER FARM I livelli logici 2 e 3 non sono necessariamente rappresentati da una singola macchina fisica, ma possono essere costituiti da una server farm, ossia un insieme di servers che svolgono le funzioni di un unico grande server e forniscono un servizio riducendo i costi e aumentando la complessità. Si hanno diverse tipologie di server farms tra cui le principali sono: CLONING (n macchine identiche); tali server farms sono indicate con l acronimo RACS (Reliable Array of Cloned Servers) e solitamente si suddividono in: a) Shared Nothing in cui i servers sono esatti cloni, non condividono alcuna informazione e sono utilizzati in applicazioni che svolgono essenzialmente operazioni di lettura; b) Shared Disk o Cluster in cui i servers condividono il disco ma non la logica applicativa. Sono solitamente utilizzati in applicazioni write intensive che modificano continuamente i dati condivisi. PARTITIONING in cui le server farms sono anche dette RAPS (Reliable Array of Partitioned Servers). Questa tipologia, che permette di distribuire sia la logica applicativa che i dati creando una serie di servers dedicati, risulta utile se si hanno particolari gruppi di utenti. Il vantaggio principale del partitioning sta nel fatto che il mal funzionamento di alcuni servers interrompe il servizio solo per determinati utenti, continuando a garantirlo per altri. Si possono anche avere delle tipologie ibride di server farms, ad esempio server farms di tipo partitioning clonate.
ARCHITETTURE DEL WEB Le architetture generalmente utilizzate nel web sono costituite da 5 livelli e il livello logico di presentazione è distribuito su tre livelli fisici. Architettura a 5 livelli Il web server si occupa di gestire le richieste del client e, in particolare, se le pagine non sono statiche, interpella lo script engine che può anche richiedere servizi al livello applicativo. ARCHITETTURE DI SISTEMI INFORMATIVI BASATI SUL WEB Nel Libro Verde della CE viene effettuata le seguente classificazione: Servizi Informativi (semplice pubblicazione di informazioni); Servizi di Comunicazione (Chat, Mailing list, ecc.); Servizi Transazionali (vere e proprie transazioni su database). Altre classificazione vengono fatte in base alle Modalità di Accesso: Sistemi Intranet (accesso ai servizi dall interno di un organizzazione); Sistemi Extranet (si accede ai servizi anche dall esterno dell organizzazione attraverso un permesso di accesso); Sistemi Internet (accesso pubblico). Paola Nassisi Alessandra Nuzzo