Sistemi Informativi Distribuiti
Transcript
Sistemi Informativi Distribuiti
Corso di Sistemi Informativi Modulo II Corso di Laurea Magistrale in Ingegneria Gestionale A. A. 2013- 2014 SISTEMI INFORMATIVI – MODULO II Sistemi Informativi Distribuiti 1 Sistemi Informativi A.A. 2013/14 Sistemi informativi distribuiti DEI - Politecnico di Bari • Un sistema informativo è un sistema hardware/software che consente l'esecuzione di operazioni per l'accesso e la modifica di informazioni. • Un sistema si dice distribuito se i diversi componenti, che concorrono allo svolgimento delle funzionalità del sistema, sono eseguiti su calcolatori indipendenti (interconnessi in rete). • Lo scopo di un sistema informativo è, in generale, automatizzare in tutto o in parte i processi svolti da un'organizzazione (azienda, ente, comunità di persone, ecc.) dislocata su un territorio – Spesso il sistema informativo è solo una parte di un sistema più complesso nel mondo reale, che comprende persone ed oggetti • Per progettare un sistema informativo distribuito è necessario definire – protocolli di comunicazione tra i vari componenti – formati per l'interscambio dei dati necessari a richiedere operazioni e a restituire le risposte Sistemi Informativi Distribuiti – Giuseppe Loseto 2 Architettura di un sistema informativo distribuito - 1 Sistemi Informativi A.A. 2013/14 DEI - Politecnico di Bari • Presentation layer: interfaccia verso utenti e sistemi esterni (client) per consentire l'accesso ai servizi forniti dal sistema client client presentation presentation layer layer application application logic logic layer layer resource resource management management layer layer sistema informativo – Esempio: GUI (graphical user interface) • Application logic (a.k.a. business logic, business processes, business rules): implementazione delle operazioni svolte dal sistema • Resource management layer: interfaccia del sistema verso le sorgenti di dati su cui deve operare. data data sources sources Sistemi Informativi Distribuiti – Giuseppe Loseto 3 Sistemi Informativi A.A. 2013/14 DEI - Politecnico di Bari Architettura di un sistema informativo distribuito - 2 • Il client e il presentation layer possono essere – separati: è ad esempio il caso delle Web application, in cui il livello di presentazione è implementato in HTML + CSS + linguaggi di scripting, mentre il client è il Web browser – integrati: un unico oggetto permette all'utente di accedere direttamente ai servizi del livello di logica applicativa • Esempio: una banca può fornire l'operatività ai clienti tramite Web application e/o tramite app per smartphone • Non è detto che il client agisca per un utente umano; può trattarsi di un altro sistema • Similmente, tra le sorgenti dati possono esserci (R)DBMS, ma anche filesystem, altri tipi di basi di dati o sistemi esterni a cui il nostro sistema deve richiedere dati per poter svolgere i suoi compiti – L'architettura vista può dunque essere ripetuta ricorsivamente, con sistemi che fungono da componenti per sistemi più grandi Sistemi Informativi Distribuiti – Giuseppe Loseto 4 Sistemi Informativi A.A. 2013/14 Metodologie di progetto DEI - Politecnico di Bari • Due principali metodologie di progetto per sistemi informativi distribuiti – Top-down – Bottom-up Sistemi Informativi Distribuiti – Giuseppe Loseto 5 Sistemi Informativi A.A. 2013/14 Progettazione top-down DEI - Politecnico di Bari • La funzionalità del sistema è divisa in componenti (moduli), che non possono operare separatamente ma sono interdipendenti (tightly coupled, fortemente accoppiati) • Tipicamente l'hardware è omogeneo e il sistema è progettato come distribuito sin dal principio • La progettazione è direttamente guidata dai requisiti (funzionali e non funzionali) del sistema Sistemi Informativi Distribuiti – Giuseppe Loseto 6 Sistemi Informativi A.A. 2013/14 Metodologia top-down DEI - Politecnico di Bari 2. Definire i formati di presentazione e i protocolli per i client. 3. Definire le funzionalità necessarie a fornire i contenuti ed i formati richiesti dal livello di presentazione. 4. Definire le sorgenti di dati e l'organizzazione dei dati necessarie per implementare la logica applicativa. client presentation layer application logic layer resource management layer Sistemi Informativi Distribuiti – Giuseppe Loseto information system 1. Definire canali di accesso e piattaforme client 7 Sistemi Informativi A.A. 2013/14 Progettazione bottom-up - 1 DEI - Politecnico di Bari Applicazione legacy Nuova applicazione • In un progetto bottom-up, si parte da componenti di base che esistono già ( legacy). Essi sono sistemi stand-alone che devono essere integrati in nuovi sistemi. • I componenti non cessano necessariamente di operare anche come componenti stand-alone (perché le vecchie applicazioni devono continuare a funzionare contemporaneamente a quelle nuove). • Questo approccio è molto applicato, perché spesso esistono già dei componenti che non possono essere facilmente sostituiti. • I componenti del sistema risultano, in genere, debolmente accoppiati (loosely coupled) Sistemi legacy Sistemi Informativi Distribuiti – Giuseppe Loseto 8 Sistemi Informativi A.A. 2013/14 Metodologia bottom-up DEI - Politecnico di Bari 1. Definire i canali di accesso e le piattaforme client 3. Definire dei wrapper per le risorse esistenti e integrare le loro funzionalità in una interfaccia coerente 4. Adattare l'output del livello di logica applicativa in modo che possa essere usato con i canali d'accesso e i protocolli definiti per i client. presentation layer application logic layer resource management layer Sistemi Informativi Distribuiti – Giuseppe Loseto information system 2. Esaminare le risorse esistenti e le funzionalità che offrono client 9 Sistemi Informativi A.A. 2013/14 DEI - Politecnico di Bari Confronto tra le metodologie di progetto • La progettazione top-down è più semplice perché condizionata da meno vincoli. • Il progetto risulta così più facilmente conforme ai requisiti di sistema: – funzionali (operazioni da svolgere) – non funzionali (prestazioni, disponibilità, sicurezza, etc.) • L'approccio top-down è però applicabile solo se il sistema deve essere realizzato da zero. • Attualmente nella maggioranza dei casi si parte da sistemi legacy: la progettazione dev'essere, gioco forza, di tipo bottom-up. • Molto del lavoro in tali casi riguarda il middleware, livello intermedio necessario per integrare i componenti legacy – fornendo interfacce comuni – affrontando l'eterogeneità hardware e software dei componenti – affrontando le problematiche (non previste nei sistemi legacy) legate alla natura distribuita del nuovo sistema Sistemi Informativi Distribuiti – Giuseppe Loseto 10 Sistemi Informativi A.A. 2013/14 DEI - Politecnico di Bari • • • • • • Componenti del sistema, layer e connessioni Ogni box rappresenta un componente del sistema. Ogni freccia rappresenta una connessione tra due componenti. Una maggiore modularità permette maggior distribuzione e parallelismo, agevola l'incapsulamento, la progettazione basata su componenti e il riuso. Però più componenti implicano più connessioni: occorre mantenere più sessioni, è richiesta una maggior coordinazione. Il sistema diventa più complesso da monitorare e gestire. Più sono i livelli, maggiore è il numero di passi intermedi da compiere per completare un'operazione. Impatto sulle prestazioni del sistema. I progettisti devono bilanciare la flessibilità della progettazione modulare con le richieste prestazionali delle applicazioni. •Non c'è problema di progettazione che non si possa risolvere aggiungendo un livello di indirezione. •Non c'è problema di prestazioni che non si possa risolvere eliminando un livello di indirezione. Sistemi Informativi Distribuiti – Giuseppe Loseto 11 Sistemi Informativi A.A. 2013/14 Middleware: obiettivi DEI - Politecnico di Bari • Il middleware costituisce un livello di indirezione tra i client e il resto del sistema • Così facendo: – Semplifica il progetto dei client riducendo il numero di interfacce – Fornisce accesso ai componenti sottostanti in modo trasparente – Si occupa di individuare le risorse, accedervi e raccogliere i risultati – Funge da piattaforma per l'integrazione tra più sistemi Sistemi Informativi Distribuiti – Giuseppe Loseto 12 Sistemi Informativi A.A. 2013/14 Middleware: vantaggi e limiti DEI - Politecnico di Bari • L'adozione di uno strato di middleware permette di – Centralizzare il controllo (semplifica la progettazione del sistema) – Modularizzare e distribuire su un cluster di nodi sia i componenti di logica applicativa sia quelli di gestione delle risorse → Maggiore scalabilità – Conferire proprietà al sistema, tecnicamente difficili (costose) da implementare ma di utilità generale (riusabili in sistemi diversi), es.: • • • • • • Tolleranza ai guasti (fault tolerance) Bilanciamento del carico (load balancing) Logging Sicurezza e policy configurabili per l'accesso alle risorse Replica (replication) dei dati Persistenza • Di contro, l'uso di middleware comporta – Maggior overhead di comunicazione tra i componenti del sistema – Necessità di un'interfaccia stabile non solo tra presentazione e logica applicativa, ma anche tra logica applicativa e gestione delle risorse Sistemi Informativi Distribuiti – Giuseppe Loseto 13 Sistemi Informativi A.A. 2013/14 Comunicazione tra moduli DEI - Politecnico di Bari • La comunicazione tra moduli può avvenire mediante interazioni client server Call Receive – Bloccanti • Più semplici da progettare e implementare • Minori performance idle time Response Answer – Non bloccanti • Maggiori performance • Maggiore disaccoppiamento • Ma richiede più risorse ed è più difficile da implementare • Le tecnologie nuove prevedono spesso interazioni bloccanti, poi evolvono verso il modello non bloccante request() queue do with answer Sistemi Informativi Distribuiti – Giuseppe Loseto receive process return queue 14 Sistemi Informativi A.A. 2013/14 DEI - Politecnico di Bari Riferimenti • Alonso, Casati, Kuno, Machiraju, Web Services – Concepts, Applications, Challenges, Springer, 2004, cap. 1 Sistemi Informativi Distribuiti – Giuseppe Loseto 15