Scalabilità. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw260 marzo Fonti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Scalabilità. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw260 marzo Fonti"

Transcript

1 Luca Cabibbo Architettura dei Sistemi Software dispensa asw260 marzo 2019 Rule 50 Be Competent. Martin L. Abbott and Michael T. Fisher 1 - Fonti Abbott, M.L. and Fisher, M.T. The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, second edition. Addison-Wesley, Abbott, M.L. and Fisher, M.T. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley, [SAP] Chapter 12, Other Important Quality Attributes [SSA] Chapter 26, The Performance and Scalability Perspective 2

2 Obiettivi - Obiettivi e argomenti presentare la qualità della scalabilità illustrare alcune attività, principi e regole di progettazione per la scalabilità Argomenti scalabilità progettare per la scalabilità discussione 3 * (scalability) la capacità del sistema di gestire volumi di elaborazione crescenti nel futuro, se richiesto molti sistemi sono infatti soggetti a un qualche tipo di incremento nel carico di lavoro un incremento di carico può riguardare, ad es., un incremento del numero di utenti del sistema, oppure del numero di richieste fatte dagli utenti al sistema, oppure della mole di dati che il sistema dove gestire la scalabilità riguarda la capacità del sistema di accettare questi incrementi di carico, senza un impatto negativo nei confronti di altre qualità (in particolare, di prestazioni e disponibilità) 4

3 Un aumento del carico di lavoro, se non viene opportunamente gestito, può infatti avere un impatto negativo dapprima sulle prestazioni all aumentare del carico di lavoro, aumenta il livello di carico delle diverse risorse del sistema quando il livello di utilizzazione della risorsa del sistema più critica (il cosiddetto collo di bottiglia) si avvicina alla sua capacità (ovvero, quando quella risorsa è satura), allora il comportamento della risorsa peggiora, più o meno improvvisamente, e fa degradare le prestazioni dell intero sistema poi sulla disponibilità la saturazione delle risorse può poi provocare anche un interruzione di servizio che, se il carico non diminuisce, può ripresentarsi anche se si tenta di riavviare il servizio 5 Rilevanza della scalabilità La scalabilità è importante soprattutto quando un organizzazione usa il proprio sistema software per offrire i propri servizi direttamente ai propri clienti finali è infatti profondamente diverso realizzare un sistema software rivolto ai soli impiegati di un organizzazione (che sono in genere centinaia o migliaia) oppure direttamente ai clienti dell organizzazione (che possono essere diversi ordini di grandezza di più) peraltro, il contesto competitivo attuale impone a molte organizzazioni di realizzare sistemi software per trattare direttamente con i propri clienti la sopravvivenza di queste organizzazioni può essere legata a quanto riescono a fare per sostenere la scalabilità dei loro sistemi software 6

4 Requisiti di scalabilità I requisiti di scalabilità vengono di solito espressi in termini di incremento del carico di lavoro che il sistema deve essere in grado di assorbire in particolari periodi di tempo mentre i suoi requisiti relativi a prestazioni e disponibilità vengono ancora soddisfatti un incremento di carico può riguardare, ad esempio il numero degli utenti (concorrenti) del sistema il numero delle richieste, delle transazioni o dei messaggi da gestire (nell unità di tempo) il volume dei dati da gestire la complessità dei compiti da eseguire 7 Requisiti di scalabilità I requisiti di scalabilità vengono di solito espressi in termini di incremento del carico di lavoro che il sistema deve essere in grado di assorbire in particolari periodi di tempo mentre i suoi requisiti relativi a prestazioni e disponibilità vengono ancora soddisfatti inoltre, un incremento di carico può essere di lungo termine (ed anticipato nel suo arrivo) ad es., un incremento del numero delle transazioni del 20% ogni anno transiente (ed anticipato nel suo arrivo) ad es., un incremento del 100% del numero giornaliero di transazioni nel periodo natalizio rispetto al carico medio transiente ma non anticipato nel suo arrivo ad es., un incremento rapido ma temporaneo del numero di accessi a un sito di notizie in relazione ad una notizia importante 8

5 * Progettare per la scalabilità In questa dispensa, la trattazione sulla progettazione per la scalabilità si basa soprattutto su The Art of Scalability [Abbott and Fisher] anche [SSA] propone delle tattiche per la scalabilità nel contesto più ampio della prospettiva per le prestazioni e la scalabilità in effetti queste due qualità sono correlate fortemente, e progettare per le prestazioni è in qualche modo un prerequisito per la progettazione per la scalabilità la scalabilità è correlata fortemente anche alla disponibilità e diverse tattiche per la disponibilità possono sostenere anche la progettazione per la scalabilità qui ci concentriamo soprattutto sui principi e le regole di progettazione più specifiche per la scalabilità 9 - orizzontale e verticale Due approcci principali alla scalabilità scalabilità verticale (scaling up) sostituire i componenti hardware esistenti con dei componenti hardware simili ma più potenti ad es., sostituire un server con un server con più processori, più memoria, ecc. scalabilità orizzontale (scaling out) aggiungere più componenti simili a un insieme di componenti già in uso nel sistema ad es., aggiungere altri server ad un cluster di server 10

6 orizzontale e verticale Va notato che questi due approcci (migliorare le risorse oppure aggiungere risorse), da soli, non sono sufficienti a garantire la scalabilità l efficacia di una soluzione dipende da come il sistema software è in grado di utilizzare i componenti più potenti oppure aggiuntivi per accomodare l incremento nel carico di lavoro se il sistema software non è stato progettato per questo, allora non trarrà vantaggio dalla presenza delle nuove risorse in generale, ciascuno scenario per la scalabilità dovrà descrivere come ciascun incremento nel carico possa essere effettivamente gestito utilizzando degli opportuni componenti sostitutivi o aggiuntivi 11 orizzontale e verticale In pratica, l approccio della scalabilità orizzontale è in genere più efficace di quello della scalabilità verticale la scalabilità verticale ovvero sostituire un componente monolitico con un componente simile ma più potente può essere inefficace a fronte di incrementi molti rapidi del carico inoltre, in pratica può essere efficace solo nei casi in cui l incremento atteso del carico sia inferiore all evoluzione tecnologica attesa nello stesso periodo di riferimento (ad es., in relazione alla legge di Moore) viceversa, la scalabilità orizzontale basata sull aggiunta di componenti simili aggiuntivi ai componenti esistenti consente di perseguire anche una scalabilità quasi infinita l approccio della scalabilità orizzontale è di solito più adeguato di quello verticale e per questo consideriamo qui soprattutto la scalabilità orizzontale 12

7 Elasticità Un altro vantaggio della scalabilità orizzontale è che è compatibile con l elasticità (elasticity) o scalabilità elastica una forma di scalabilità orizzontale legata all aggiunta di risorse (di solito virtuali) acquisite rapidamente da un pool di risorse condivise soprattutto nel cloud 13 - Verificare la scalabilità I test di carico sono utili per fornire una base quantitativa nella progettazione per le prestazioni e la scalabilità i test per le prestazioni sono basati sulla simulazione del carico di lavoro atteso durante l esecuzione del test vengono misurati sia parametri per le prestazioni (come i tempi di risposta e il throughput) che il livello di utilizzazione delle diverse risorse computazionali questi test richiedono un ambiente di esecuzione il più possibile simile all ambiente di produzione 14

8 Verificare la scalabilità I test di carico sono utili per fornire una base quantitativa nella progettazione per le prestazioni e la scalabilità i test per la scalabilità sono analoghi, ma misurano le prestazioni e il livello di utilizzazione delle risorse anche a fronte di carichi di lavoro crescenti (ad es., nel numero di utenti concorrenti o nel volume delle transazioni) questi test possono essere eseguiti in un ambiente di esecuzione simile a quello di produzione per determinare i limiti di quell ambiente inoltre, questi test andrebbero ripetuti a fronte di ambienti di esecuzione di capacità via via crescente per determinare l efficacia della soluzione di scalabilità scelta (verticale oppure orizzontale) inoltre, i test di carico andrebbero ripetuti (come test di regressione) anche a fronte di ogni nuova versione del software 15 - Capacità residua La capacità residua (headroom) di un ambiente di esecuzione (in una sua certa configurazione) è una misura della quantità di capacità del sistema che non viene attualmente utilizzata e che è pertanto libera per servire un certo incremento del carico di lavoro è utile determinare la capacità residua proprio per comprendere l incremento di carico che quella configurazione del sistema può ancora sopportare e per capire quando potrebbero iniziare dei problemi se la configurazione non viene modificata 16

9 Capacità residua Consideriamo un semplice esempio un sistema potrebbe avere una capacità massima di 100 t/s (transazioni al secondo) determinata con un test di carico se il carico attuale è di 30 t/s (nell utilizzazione di picco), allora la capacità residua è di 70 t/s se è previsto un incremento del carico di lavoro di 10 t/s al trimestre, allora la capacità residua è di 7 trimestri 17 Capacità residua Consideriamo un esempio un pochino più complesso un sistema potrebbe avere una capacità massima (teorica) di 100 t/s un carico attuale (di picco) di 30 t/s la percentuale di utilizzo ideale potrebbe essere del 50% infatti non è mai una buona idea che il livello di utilizzazione di una risorsa raggiunga il 100% sono previste ottimizzazioni per ulteriori 20 t/s (teoriche) la capacità residua è (100+20)*50% - 30 = 30 t/s se è previsto un incremento del carico di 10 t/s al trimestre, allora la capacità residua è di soli 3 trimestri 18

10 - Principi architetturali per la scalabilità The Art of Scalability [Abbott and Fisher] presenta diversi principi di progettazione per la scalabilità i principi più importanti sono la scalabilità orizzontale va in genere preferita alla scalabilità verticale questo richiede di progettare per una distribuzione del carico su più nodi computazionali inoltre, affinché il carico di lavoro possa essere distribuito su più nodi computazionali in modo efficace ai fini della scalabilità, il sistema deve essere preferibilmente basato su interazioni asincrone servizi stateless anche il caching è utile ai fini della scalabilità queste idee sono discusse in maggior dettaglio nel seguito di questa dispensa 19 - Distribuzione del carico di lavoro Un idea fondamentale nella progettazione per la scalabilità orizzontale di un sistema software è suddividere i suoi compiti di lavoro in più parti per poterli distribuire tra più lavoratori l intuizione è che un sistema scalabile orizzontalmente deve essere formato da diversi lavoratori su cui viene distribuito il lavoro complessivo che il sistema deve svolgere in modo tale che, se la quantità di lavoro da svolgere aumenta, allora il sistema possa scalare aumentando il numero di lavoratori il lavoro da decomporre è formato da servizi e dati i lavoratori su cui viene decomposto il lavoro sono genericamente chiamati nodi (di solito sono dei server) ogni nodo è responsabile di alcuni servizi e/o alcuni dati ci sono più modi per decomporre, ai fini della scalabilità, un insieme di servizi e di dati su più nodi 20

11 Distribuzione del carico di lavoro Ai fini della scalabilità, ci sono più modi per decomporre un insieme di servizi e di dati su più nodi clienti clonare cose (X) separare cose diverse (Y) un nodo servizi e dati separare cose simili (Z) 21 - Cubo della scalabilità Il cubo della scalabilità [Abbott and Fisher] è un metodo per aiutare a suddividere e distribuire i servizi e i dati di un sistema software in più parti, per sostenere la scalabilità orizzontale del sistema gli assi del cubo della scalabilità (chiamati X, Y e Z) rappresentano modi diversi di decomporre servizi e dati su più nodi e costituiscono altresì dei criteri per l identificazione dei nodi da usare nel sistema e delle loro responsabilità il cubo della scalabilità è anche chiamato AKF Scale Cube dove AKF è il nome della società fondata da Abbott, Keeven e Fisher 22

12 Cubo della scalabilità Il cubo della scalabilità è un modello che rappresenta tre diversi modi per decomporre un sistema per la scalabilità ciascuna modalità di decomposizione è rappresentata da un diverso asse di scalabilità (X,Y,Z) Y axis Work Distributed by Type of Action near infinite scale X axis All Work Evenly Distributed 23 starting point Cubo della scalabilità Il cubo della scalabilità è un modello che rappresenta tre diversi modi per decomporre un sistema per la scalabilità l origine del sistema il punto di coordinate (0,0,0) rappresenta un sistema monolitico (non decomposto) è di solito il punto di partenza nella progettazione è un progetto che non è scalabile orizzontalmente ogni asse rappresenta un possibile modo per effettuare una decomposizione elementare del sistema per sostenerne la scalabilità la decomposizione può anche avvenire lungo più assi (che sono indipendenti tra loro) con un effetto benefico moltiplicativo sulla scalabilità [Abbott and Fisher] affermano che queste tre modalità di decomposizione (se applicate correttamente) consentono di scalare quasi qualunque sistema 24

13 Asse X del cubo clonare cose L asse X del cubo (clonare cose ) rappresenta la clonazione di tutti i servizi e i dati su più nodi senza nessuna preferenza o parzialità è una forma di duplicazione orizzontale, in cui ogni nodo eroga gli stessi servizi degli altri nodi ogni richiesta per un servizio da parte di un client può essere girata a un nodo qualunque del sistema è dunque necessario anche un load balancer anche i dati (o la base di dati) sono replicati dunque ci sono più copie dei dati, e ogni nodo contiene una copia di tutti i dati un operazione di lettura può essere svolta da un nodo qualunque le operazioni di scrittura vanno invece propagate a tutti i nodi è dunque necessario anche un meccanismo di replicazione dei dati 25 Asse Y del cubo separare cose diverse L asse Y del cubo (separare cose diverse) rappresenta una decomposizione delle responsabilità ai diversi nodi per tipo di servizio oppure per tipo di dati oppure per una loro combinazione è una forma di divisione per funzione, servizio o risorsa (dato) in una decomposizione orientata ai servizi, i componenti e i dati necessari per erogare un servizio sono separati dai componenti e dai dati necessari per erogare altri servizi esempi di decomposizioni in un sito di commercio elettronico separare le funzioni di (a) login, (b) consultazione del catalogo prodotti e (c) acquisto oppure separare i dati relativi ai (i) clienti da quelli relativi ai (ii) prodotti e agli (iii) acquisti in generale, questa decomposizione porta a separare sia i servizi che i dati su cui essi operano anche se la separazione non è sempre completa 26

14 Asse Z del cubo separare cose simili L asse Z del cubo (separare cose simili) rappresenta una decomposizione delle responsabilità relativa (in genere) ai clienti del sistema viene effettuato un partizionamento dei clienti in base a una qualche loro proprietà ad es., in genere in base alla loro posizione geografica, oppure in base al loro nome o ad un loro identificatore ciascun gruppo di clienti (shard) viene assegnato ad un nodo diverso i dati del sistema sono suddivisi sulla base dei gruppi di clienti anche se talvolta è necessario che alcuni dati vadano replicati su tutti i nodi invece, ciascun nodo deve in genere ospitare tutti i servizi del sistema tutte le operazioni richieste da un certo cliente vengono gestite dal nodo assegnato al suo gruppo 27 Cubo della scalabilità Tre diverse modalità elementari per decomporre un sistema per la scalabilità clonare cose (X) separare cose diverse (Y) separare cose simili (Z) 28

15 - dei servizi e dei dati Il cubo della scalabilità definisce un modello generale per la decomposizione dei servizi e dei dati di un sistema software è utile però fare anche delle considerazioni separate da una parte relativamente alla decomposizione dei servizi e delle applicazioni, e dall altra alla decomposizione dei dati e delle basi di dati infatti, in entrambi i contesti valgono lo stesso modello e gli stessi principi ma l implementazione della decomposizione relativa ai servizi e/o ai dati può variare in modo anche abbastanza significativo per dati si intendono soprattutto i dati persistenti del sistema i dati possono essere memorizzati in una base di dati relazionale o anche non relazionale (ad es., NoSQL) inizialmente consideriamo la decomposizione lungo un singolo asse la decomposizione lungo più assi è discussa dopo 29 Asse X per la scalabilità dei servizi L asse X del cubo rappresenta la clonazione di tutti i servizi applicativi negli N nodi in cui viene decomposto il sistema ogni nodo contiene dunque tutti i servizi ogni richiesta per un servizio può essere assegnata a uno qualunque degli N nodi di solito mediante un load balancer la decomposizione dei servizi lungo l asse X è di solito semplice da implementare se i servizi sono stateless, allora è sufficiente fare un load balancing di tutte le richieste dei clienti altrimenti, se i servizi sono stateful, è necessario gestire lo stato delle sessioni in modo opportuno (questo aspetto è discusso più avanti) 30

16 Asse X per la scalabilità dei dati L asse X del cubo rappresenta anche la clonazione di tutti i dati in N basi di dati ogni base di dati contiene una copia di tutti i dati è richiesto un meccanismo di replicazione dei dati nelle diverse basi di dati viene di solito adottata una replicazione asincrona infatti una replicazione sincrona avviata per ciascuna operazione di scrittura può limitare fortemente la scalabilità (questo aspetto è discusso più avanti) tuttavia, la replicazione asincrona ha degli inconvenienti da comprendere e da saper gestire se necessario ad es., poiché la replicazione non è istantanea, sono possibili dei transitori in cui più copie degli stessi dati (in nodi diversi) non sono allineati 31 Asse X per la scalabilità Benefici la decomposizione lungo l asse X è quella più semplice da concettualizzare e da implementare per sostenere la scalabilità i servizi non devono essere modificati molti sistemi di gestione dei dati forniscono meccanismi di replicazione il sistema scala a fronte di un aumento del volume delle transazioni ogni nodo riceve 1/N del carico di lavoro tuttavia l accesso ai dati scala solo se il rapporto letturescritture è alto sostiene la disponibilità in particolare, la tolleranza ai guasti i nodi sono tutti uguali hanno tutti la stessa configurazione dunque è facile aggiungere nuovi nodi sostiene la scalabilità elastica 32

17 Inconvenienti Asse X per la scalabilità la scalabilità è limitata dalla dimensione dei servizi e soprattutto dalla dimensione dei dati poiché ogni nodo deve ospitare tutti i servizi e tutti i dati l accesso ai dati non scala se il rapporto letture-scritture è basso se ci sono molte scritture, la necessità di replicare i dati nelle diverse copie ha un impatto negativo sulla scalabilità replicare grandi quantità di dati è costoso ci possono essere problemi di consistenza dei dati e di attualità dei dati in ciascuna copia della base di dati replicata sostiene la disponibilità solo in modo parziale non sostiene l isolamento dei guasti 33 Asse Y per la scalabilità dei servizi L asse Y del cubo rappresenta un partizionamento dei servizi applicativi negli N nodi in cui viene decomposto il sistema ogni nodo è responsabile solo di un servizio o di un sottoinsieme di servizi ogni richiesta per un servizio viene assegnata al nodo responsabile per quel servizio la decomposizione dei servizi lungo l asse Y richiede di aver separato le funzionalità del sistema ovvero che il sistema non sia monolitico 34

18 Asse Y per la scalabilità dei dati L asse Y del cubo rappresenta una separazione dei dati per significato, funzione o utilizzo i dati possono essere suddivisi in modo corrispondente a come sono suddivisi i servizi o le funzioni lungo l asse Y in questo caso, possono essere presenti delle sovrapposizioni nelle basi di dati poiché gli stessi dati possono essere di interesse per più servizi è anche possibile (ma in genere è meno consigliato) effettuare una decomposizione lungo l asse Y con riferimento soprattutto ai dati (risorse) e poi suddividere i servizi di conseguenza una doppia decomposizione effettuata separatamente sui servizi e sui dati (risorse) è invece sconsigliata poiché può ridurre la disponibilità dei servizi (intuitivamente, perché se un servizio deve accedere a diverse risorse, allora quel servizio è disponibile solo se lo sono anche tutte le risorse a cui deve accedere) 35 Benefici Asse Y per la scalabilità anche la decomposizione lungo l asse Y è semplice da concettualizzare ma è un po complessa da implementare il partizionamento dei servizi può indurre un partizionamento dei dati sui cui operano i servizi le prestazioni possono beneficiare dal partizionamento dei servizi e dei dati può sostenere sia la scalabilità nel volume delle transazioni che la scalabilità nell aumento del volume dei dati sostiene la disponibilità in particolare, l isolamento dei guasti, per far sì che il guasto di un servizio (non critico) non si propaghi ad altri servizi (critici) può favorire la produttività dei team di sviluppo, se ciascun team è dedicato ad un sottoinsieme dei servizi i diversi servizi possono essere rilasciati separatamente tra loro 36

19 Inconvenienti Asse Y per la scalabilità l implementazione è più costosa (può richiedere la decomposizione del sistema inizialmente monolitico) è necessario gestire più tipi di nodi richiede in genere di gestire più basi di dati (anziché una sola) può richiedere l uso di più sistemi per la gestione dei dati sostiene la disponibilità solo in modo parziale il guasto di un servizio critico può rendere il sistema non funzionante in modo completo 37 Asse Z per la scalabilità dei servizi L asse Z del cubo rappresenta un partizionamento basato su un valore (o una funzione) che viene valutato all arrivo di ogni richiesta di solito, il valore è relativo ad una proprietà del cliente che ha effettuato la richiesta se viene eseguita solo una divisione lungo l asse Z, allora ogni nodo contiene tutti i servizi ma solo i dati relativi ad uno specifico segmento di clienti ogni richiesta viene servita dal nodo responsabile per il gruppo di clienti a cui appartiene il cliente 38

20 Asse Z per la scalabilità dei dati L asse Z del cubo rappresenta un partizionamento dei dati in relazione a un certo tipo di dati e a una loro proprietà di solito il partizionamento è relativo ai clienti del sistema spesso rispetto alla loro identità oppure alla posizione dalla quale fanno le richieste questo in genere favorisce le prestazioni e l isolamento dei guasti il partizionamento può anche essere relativo ad altri criteri come i prodotti di un catalogo 39 Asse Z per la scalabilità Benefici la decomposizione lungo l asse Z è ancora semplice da concettualizzare secondo [Abbott and Fisher] è la soluzione che può favorire di più la scalabilità sia rispetto ad un aumento del volume delle transazioni che dei dati sostiene la disponibilità in particolare, l isolamento dei guasti fa sì che il guasto di un nodo non si ripercuota sugli utenti degli altri nodi sostiene la scalabilità nel volume delle transazioni è simile a quella di una divisione lungo l asse X (se le transazioni sono distribuite equamente tra i diversi nodi) con in più il vantaggio che non è necessario replicare tutti i dati sostiene la scalabilità nel numero dei clienti 40

21 Inconvenienti Asse Z per la scalabilità è la soluzione più complessa e costosa da implementare i nodi sono simili tra di loro ma hanno in genere configurazioni differenti dopo che il sistema è stato rilasciato, può essere difficile riassegnare ai nodi le responsabilità per i gruppi di clienti (ovvero, cambiare il partizionamento dei clienti) sostiene la disponibilità solo in modo parziale il guasto di un nodo rende il sistema indisponibile per tutti gli utenti di quel nodo 41 - Dividere lungo più assi La decomposizione lungo un solo asso del cubo potrebbe essere sufficiente nel caso di una crescita limitata e lenta del carico di lavoro tuttavia, se si prevede che un sistema possa crescere velocemente (o anche con una crescita inaspettata) è meglio progettare il sistema per una decomposizione lungo due o più assi inoltre, la suddivisione lungo più assi è utile anche per sostenere meglio la disponibilità 42

22 Dividere lungo più assi Si consideri un sistema che è stato inizialmente decomposto lungo l asse Z ad es., la decomposizione è stata effettuata rispetto alla locazione geografica dei clienti, e ciascuna area geografica viene gestita da un nodo diverso il fallimento di un nodo provoca un interruzione di servizio per un intera area geografica e tutti i suoi clienti pertanto, può essere utile una successiva decomposizione per clonazione (lungo l asse X) di ciascuno di questi nodi replicando anche ciascuna base di dati con un effetto ulteriore effetto benefico sulla scalabilità ma anche con un effetto benefico sulla disponibilità 43 Dividere lungo più assi Anche una decomposizione lungo il solo asse Y in servizi sono stati partizionati in N gruppi, con un nodo distinto per ciascun gruppo di servizi presenta problemi analoghi di disponibilità (tolleranza ai guasti) anche in questo caso, una successiva decomposizione per clonazione (lungo l asse X) risolve il problema della disponibilità oltre a sostenere ulteriormente la scalabilità inoltre, applicando prima una decomposizione lungo Y e poi una lungo X, è possibile replicare separatamente i diversi servizi, sulla base del carico effettivo di ciascun singolo servizio 44

23 Dividere lungo più assi Una decomposizione lungo l asse Y, da sola, non è in grado di gestire una crescita nel numero di clienti per questo, può essere accompagnata da una divisione anche lungo l asse Z la divisione lungo l asse Y può aver suggerito, ad es., di usare un nodo per un servizio di login una successiva divisione può suggerire di replicare il servizio di login su più nodi, usando un nodo per ciascun gruppo di clienti (ad es., in relazione all area geografica del cliente) se un cliente si trasferisce, il sistema può accorgersene e muovere i suoi dati nei nodi dedicati alla sua nuova area geografica ad es., un servizio di accesso al catalogo prodotti (asse Y) può essere suddiviso sulla base dell hash dell identificatore del prodotto (asse Z) la divisione lungo l asse Z infatti non va limitata solo ai clienti 45 - Cubo della scalabilità: Sommario 46 Ecco una sintesi dei tre assi di scalabilità l asse X si basa sulla clonazione di un insieme di servizi o dati aiuta a scalare rispetto al volume delle transazioni ma non scala con la crescita dei dati sostiene la disponibilità e la scalabilità elastica l asse Y si basa su una separazione delle responsabilità per tipo di servizio o tipo di dato aiuta a scalare rispetto al volume delle transazioni ma non scala con l aumento dei clienti l asse Z si basa su una separazione per cliente o tipo di cliente aiuta a scalare rispetto al volume delle transazioni e all aumento dei clienti ma non scala a fronte di una crescita dei dati specifici per una certa funzione o servizio è la soluzione più costosa e difficile da implementare è possibile suddividere un sistema lungo più assi di scalabilità

24 - Comunicazione asincrona e scalabilità La sincronizzazione si riferisce all uso e al coordinamento di più unità di esecuzione (thread o processi) simultanei che fanno parte di uno stesso compito complessivo in cui queste unità di esecuzione devono essere eseguite in ordine corretto al fine di evitare risultati erronei (o altre anomalie) il login è un esempio di compito in cui ci sono diverse attività da svolgere in modo sequenziale e sincronizzato la cifratura della password inserita dall utente il confronto tra questa password e la vera password cifrata dell utente nella base di dati l utente viene marcato come autenticato nella sua sessione viene generata e presentata la pagina dell utente ma, in un sistema, non tutti i compiti devono essere svolti in modo sincronizzato strettamente 47 Comunicazione sincrona e asincrona La comunicazione in un sistema software distribuito può essere basata su chiamate sincrone (request-reply) un processo chiama un altro processo, e rimane in attesa di una risposta comunicazione asincrona (send-and-forget) un processo lancia un nuovo processo, e poi termina immediatamente senza aspettare il completamento dell operazione richiesta nota: qui ci riferiamo ad una nozione piuttosto generale di comunicazione asincrona che include meccanismi come, ad es., la comunicazione asincrona basata sullo scambio di messaggi, ma anche le invocazioni remote asincrone chiaramente, l implementazione di un sistema (o di una sua funzionalità) basata su comunicazione asincrona sarà diversa da un implementazione basata su chiamate sincrone 48

25 Comunicazione sincrona e asincrona 49 Le chiamate sincrone se usate in modo eccessivo o non corretto possono avere un impatto negativo sulla scalabilità del sistema le chiamate sincrone possono diffondere rallentamenti e guasti a cascata di solito con un effetto moltiplicativo ad es., un problema nel chiamato può anche bloccare il chiamante il tempo di risposta aumenta, ma aumenta anche il tempo in cui sono state allocate le risorse al chiamante (anche quando è in attesa) dunque il sistema consuma più memoria, più connessioni e altre risorse questo aumento nell uso delle risorse può a sua volta bloccare altre chiamate fatte nel sistema con un impatto negativo dapprima sulle prestazioni e poi, eventualmente, sulla disponibilità e la scalabilità del sistema nel caso di chiamate asincrone, invece, un blocco nel chiamato non provoca anche un blocco nel chiamante il consumo complessivo di risorse è minore Comunicazione asincrona e scalabilità Pertanto, se la scalabilità è importante, la comunicazione asincrona dovrebbe essere preferita a quella sincrona l uso della comunicazione asincrona è un principio di progettazione fondamentale per la scalabilità la comunicazione asincrona va usata soprattutto per chiamate tra servizi e nodi diversi, oppure verso sistemi esterni, oppure se relativa all attivazione di elaborazioni lunghe detto in altro modo, questi sono i casi in cui va soprattutto evitata la comunicazione sincrona è spesso comune che un operazione debba restituire dei risultati ecco alcune opzioni accedi ai risultati in modo asincrono utilizza delle callback usa chiamate sincrone con timeout stringenti e una gestione opportuna delle eccezioni 50

26 Comunicazione asincrona e consistenza La comunicazione asincrona può avere però un effetto negativo sulla consistenza poiché non può garantire una consistenza forte informalmente, la consistenza si riferisce all esecuzione atomica di un certo insieme di azioni su un certo insieme di dati più precisamente, al fatto che questa esecuzione venga percepita (ad es., da un client) come se fosse stata atomica se un operazione deve essere eseguita in modo consistente (strong consistency) e i dati su cui opera sono distribuiti su più nodi, allora probabilmente quest operazione va implementata mediante chiamate sincrone (ed in modo transazionale) 51 Comunicazione asincrona e consistenza La comunicazione asincrona può avere però un effetto negativo sulla consistenza poiché non può garantire una consistenza forte in ogni caso, la comunicazione asincrona supporta alcune forme deboli di consistenza (che sono spesso accettabili in pratica) ad es., l eventual consistency garantisce che, se non vengono richiesti nuovi aggiornamenti su un certo dato, allora, prima o poi, gli accessi a quel dato restituiranno l ultimo valore che gli è stato assegnato questa forma di consistenza risulta adeguata, in pratica, per molte applicazioni reali (ma non tutte!) 52

27 - Stato dei servizi e scalabilità Un servizio è stateful se l esecuzione di un operazione dipende dallo stato della conversazione (o sessione) con il client che ha richiesto l operazione altrimenti il servizio è stateless se un servizio è stateful, allora il sistema deve gestire (da qualche sua parte) lo stato delle sessioni con i propri client i servizi stateful hanno un impatto negativo sulla scalabilità poiché il sistema deve dedicare risorse alla gestione dello stato delle sessioni, per tutta la loro durata e questo può limitare la scalabilità del sistema infatti, il sistema deve allocare risorse non solo per le richieste e gli utenti concorrenti, ma anche per le sessioni concorrenti (che di solito sono molte di più) pertanto, se la scalabilità è importante, allora i servizi dovrebbero essere preferibilmente stateless 53 Stato dei servizi e scalabilità In presenza di servizi stateful, il sistema deve allocare risorse non solo per le richieste e gli utenti concorrenti, ma anche per le sessioni concorrenti (che di solito sono molte di più) comportamento di un utente nell ambito di una sessione first request last request session timeout utenti e sessioni concorrenti 2 active users 5 sessions 54

28 e servizi stateless Se la scalabilità è importante, i servizi dovrebbero essere preferibilmente stateless l uso di servizi stateless è un altro principio di progettazione fondamentale per la scalabilità molti servizi scalabili di successo sono stateless ad es., si pensi a Google Search 55 e servizi stateful Tuttavia, non sempre è possibile utilizzare solo servizi stateless infatti, molti servizi richiedono la gestione di uno stato ad es., circa l identità dell utente, le sue preferenze, lo stato di avanzamento del caso d uso, ecc. mantenere queste informazioni in memoria può essere più economico che non ripetere, ad ogni richiesta dell utente, l autenticazione e l accesso a questi dati nella base di dati nel caso di servizi stateful per prima cosa, bisogna cercare di evitare lo stato delle sessioni e provare a rendere il servizio stateless se non è possibile, bisogna cercare di minimizzare la dimensione dello stato da mantenere per ciascuna sessione inoltre, bisogna conoscere quali sono le alternative per la gestione dello stato e il loro impatto sulla scalabilità per poter scegliere l alternativa meno peggiore 56

29 Gestione dello stato dei servizi Alcune opzioni per la gestione dello stato nei servizi gestire lo stato delle sessioni nell application server ad es., usando delle tecnologie stateful (come i session bean di tipo stateful o componenti con scope session) in caso di clonazione del servizio, è possibile evitare di replicare lo stato delle sessioni su tutti i nodi replicati, se tutte le richieste di un client vengono servite da uno stesso nodo (sticky session o session affinity) questo è possibile, ad es., con il supporto del load balancer tuttavia, questo limita la disponibilità del servizio se le sessioni sono gestite dai nodi solo in memoria e un nodo fallisce, allora falliscono tutte le sue sessioni se invece le sessioni sono gestite in modo persistente e un nodo fallisce, allora il ripristino delle sessioni è possibile, ma ci sarà una qualche interruzione di servizio 57 Gestione dello stato dei servizi Alcune opzioni per la gestione dello stato nei servizi gestire lo stato delle sessioni come cookie nel browser dell utente una soluzione semplice le diverse richieste di uno stesso client possono essere servite da nodi differenti ma introduce un overhead di comunicazione, poiché richiede di muovere ripetutamente lo stato della sessione da e verso il browser dell utente (che in rete può essere lontano ) per questo è importante minimizzare le dimensioni dello stato della sessione inoltre può sollevare problemi di sicurezza 58

30 Gestione dello stato dei servizi Alcune opzioni per la gestione dello stato nei servizi gestire lo stato delle sessioni in un repository (distribuito e condiviso dai nodi dell app. server) una base di dati oppure una cache condivisa (una object cache, discussa più avanti) anche in questo caso, le diverse richieste di uno stesso client possono essere servite da nodi differenti anche in questo caso, lo stato della sessione viene mosso ripetutamente da e verso il repository ma questo è in genere meno costoso che non muovere i dati da e verso il browser dell utente in genere è preferibile gestire lo stato delle sessioni in una cache condivisa anziché in una base di dati condivisa infatti il costo degli accessi ad una base di dati (relazionale) è di solito maggiore che non ad una cache una cache deve essere dimensionata opportunamente 59 - Caching per la scalabilità Un altro approccio per gestire un volume grande di richieste consiste nel cercare di evitare di gestire le richieste (almeno in parte) minimizzando il lavoro che essere svolto dai componenti funzionali del sistema questo obiettivo può essere perseguito mediante l uso di cache cercando di far servire alle cache delle richieste che altrimenti dovrebbero essere gestite dai componenti funzionali del sistema i tipi di cache più rilevanti per l architettura del software sono le object cache, le application cache e le content delivery network 60

31 Cache In generale, una cache è una memoria usata da un dispositivo o da un applicazione per la memorizzazione temporanea di dati che probabilmente devono essere usati di nuovo una cache è di solito un insieme di coppie chiave-valore l accesso al valore associato a una chiave può produrre un cache hit (il dato è stato trovato nella cache) oppure un cache miss (il dato non è stato trovato, va computato altrove e poi memorizzato nella cache) l efficacia di una cache è data dall hit ratio (che dovrebbe essere alto) se invece è basso, la cache potrebbe addirittura avere un impatto negativo sulle prestazioni i dati in una cache possono diventare obsoleti ovvero, una cache può restituire stale data possono essere necessari meccanismi di invalidazione e/o di aggiornamento della cache una cache è di solito di dimensione limitata sono anche necessari meccanismi per deallocare dati dalla cache 61 Object cache Una object cache ha lo scopo di memorizzare oggetti dell applicazione che devono essere riusati un sistema di uso comune è Memcached con operazioni per aggiungere, cercare, aggiornare e cancellare oggetti individuali dalla cache gli oggetti sono di solito memorizzati in una forma serializzata una object cache può essere posta tra l application server e la base di dati tra il web server e l application server un altro uso comune è la gestione dello stato delle sessioni che possono essere memorizzate in una object cache distribuita e replicata questo consente di evitare che l application server debba gestire lo stato dei servizi stateful questa soluzione è in genere più efficace che non gestire lo stato delle sessioni in una base di dati relazionale 62

32 Object cache 63 Application cache Una application cache è invece una cache posta davanti all intera applicazione tra l utente e l applicazione di solito si occupa di memorizzare richieste-risposte HTTP ma attenzione a specificare le pagine di cui non va fatto caching! ci sono due tipi principali di application cache una proxy cache (o forward proxy cache o proxy server) viene di solito fornita separatamente da ciascun ISP (Internet Service Provider) per ottimizzare l accesso a tutte le applicazioni web ma solo per gli utenti di quell ISP una reverse proxy cache (o gateway cache) viene invece gestita direttamente davanti ad una specifica applicazione web con lo scopo di ottimizzare solo l accesso a quell applicazione, ma per tutti gli utenti dell applicazione in pratica, esistono moltissimi tipi di application cache che variano nelle finalità e nei dettagli 64

33 Application cache Proxy cache Reverse proxy cache 65 Content Delivery Network Una Content Delivery Network (CDN) ha lo scopo di muovere vicino all utente finale i contenuti statici di un applicazione web in modo da ridurre il tempo di risposta per quei contenuti e di ridurre il numero di richieste nella parte server di un sistema software di solito una CDN viene realizzata come una rete di gateway cache collocate in diverse aree geografiche e dunque posizionate ai margini di Internet il dominio di una CDN viene poi indicato nei DNS come alias per il dominio dell applicazione in modo tale che gli utenti dell applicazione provino prima ad accedere alla CDN anziché ai server originali dell applicazione una CDN può anche interagire periodicamente con i server originali dell applicazione per rinfrescare i propri contenuti 66

34 * Discussione La scalabilità è la capacità di un sistema di gestire volumi di elaborazione crescenti questa dispensa ha presentato alcune opzioni di progettazione principali per la scalabilità i principi fondamentali sono quelli relativi alla scalabilità orizzontale (la distribuzione del carico e il cubo della scalabilità), alla comunicazione asincrona e ai servizi stateless ma anche il caching alcuni aspetti importanti per la scalabilità sono stati solo accennati oppure sono trattati in altre dispense come la valutazione della scalabilità e della capacità residua, la scalabilità elastica, il monitoraggio e l automatizzazione dei rilasci (preferibilmente piccoli) questi diversi aspetti non vanno considerati in isolamento piuttosto bisogna considerarli insieme anche ad altre qualità come le prestazioni, la disponibilità, la consistenza dei dati e la sicurezza ed identificare e valutare eventuali compromessi 67

Progettare per gli attributi di qualità

Progettare per gli attributi di qualità Luca Cabibbo Architettura dei Sistemi Software Progettare per gli attributi di qualità dispensa asw210 marzo 2017 For every complex question there is a simple answer, and it is wrong. Henri Louis Mencken

Dettagli

Piattaforme software distribuite I

Piattaforme software distribuite I Piattaforme software distribuite I Introduzione a Java 2 Platform Enterprise Edition (J2EE) Davide Lamanna lamanna@dis.uniroma1.it Programma Architetture per le applicazioni web Carrellata di ripasso Valutazione

Dettagli

Piattaforme software distribuite I

Piattaforme software distribuite I Piattaforme software distribuite I Architetture Web: verifica delle prestazioni e Web caching Davide Lamanna lamanna@dis.uniroma1.it REPLICAZIONE DEL WEB SERVER: valutazione Prestazioni: più elevate grazie

Dettagli

BASI DI DATI DISTRIBUITE

BASI DI DATI DISTRIBUITE BASI DI DATI DISTRIBUITE Definizione 2 Un sistema distribuito è costituito da un insieme di nodi (o di siti) di elaborazione una rete dati che connette fra loro i nodi Obiettivo: far cooperare i nodi per

Dettagli

Prestazioni. [SSA] Chapter 26, The Performance and Scalability Perspective

Prestazioni. [SSA] Chapter 26, The Performance and Scalability Perspective Luca Cabibbo Architettura dei Sistemi Software dispensa asw220 marzo 2019 An ounce of performance is worth pounds of promises. Mae West 1 - Fonti [SAP] Chapter 8, Performance [SSA] Chapter 26, The Performance

Dettagli

Scopri di più su LoadMaster per Azure

Scopri di più su LoadMaster per Azure KEMP Technologies si impegna a sostenere le organizzazioni nell adozione di soluzioni cloud ibride. KEMP, primo vendor di application delivery controller (ADC) ad aver esteso il bilanciamento del carico

Dettagli

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema

Dettagli

GeoServer nel Cloud. Un caso di studio sulle modifiche architetturali nel passaggio a piattaforme Cloud. Federico Cacco

GeoServer nel Cloud. Un caso di studio sulle modifiche architetturali nel passaggio a piattaforme Cloud. Federico Cacco GeoServer nel Cloud Un caso di studio sulle modifiche architetturali nel passaggio a piattaforme Cloud Federico Cacco Laurea Magistrale in Informatica Università degli Studi di Padova Dipartimento di Matematica

Dettagli

Una metodologia per la specifica di software a componenti

Una metodologia per la specifica di software a componenti Luca Cabibbo Architettura dei Sistemi Software Una metodologia per la specifica di software a componenti dispensa asw475 marzo 2019 How best to read this book. Start at page 1 and keep going. When you

Dettagli

Tecnologie e applicazioni web JSON Web Token (JWT)

Tecnologie e applicazioni web JSON Web Token (JWT) Tecnologie e applicazioni web JSON Web Token (JWT) Filippo Bergamasco ( filippo.bergamasco@unive.it) http://www.dais.unive.it/~bergamasco/ DAIS - Università Ca Foscari di Venezia Anno accademico: 2017/2018

Dettagli

Modelli Architetturali. Astrazione del sistema - componenti e struttura - distribuzione delle funzionalità

Modelli Architetturali. Astrazione del sistema - componenti e struttura - distribuzione delle funzionalità Modelli di Sistemi Modelli concettuali di supporto allo studio dei sistemi distribuiti Modelli architetturali Descrizione ad alto livello della distribuzione delle funzionalità delle componenti e loro

Dettagli

A cura di Valeria Valecchi

A cura di Valeria Valecchi A cura di Valeria Valecchi Libro di testo di riferimento: Cloud di Gallo e Sirsi Blocco tematico C: L azienda e le reti Unità di apprendimento 1 CHE COS E UNA RETE DI COMPUTER TELEMATICA= TELEcomunicazione+inforMATICA

Dettagli

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Un sistema software distribuito è composto da un insieme di processi in esecuzione su più nodi del sistema Un algoritmo distribuito può

Dettagli

L Affidabilità dei Sistemi di Input-Output ad Elevate Prestazioni

L Affidabilità dei Sistemi di Input-Output ad Elevate Prestazioni 1 tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Generoso Paolillo candidato Emanuele Di Pascale Matr. 534/789 2 Il Contesto Le moderne applicazioni scientifiche

Dettagli

Introduzione al corso

Introduzione al corso Luca Cabibbo Ingegneria del Software Ingegneria del software: Introduzione al corso Dispensa IDS 0 ottobre 2008 1 Ingegneria e Ingegneria del software Ingegneria gli ingegneri fanno funzionare le cose,

Dettagli

Scenari e applicazione di scenari

Scenari e applicazione di scenari Luca Cabibbo Architettura dei Sistemi Software Scenari e applicazione di scenari dispensa asw160 marzo 2017 By failing to prepare, you are preparing to fail. Benjamin Franklin 1 - Fonti Cervantes, H. and

Dettagli

Container. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw480 marzo Fonti

Container. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw480 marzo Fonti Luca Cabibbo Architettura dei Sistemi Software dispensa asw480 marzo 2018 I'm sorry, but there is no such thing as a hole by itself. Kurt Tucholsky 1 - Fonti Buschmann, F., Henney, K., and Schmidt, D.C.

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

SISTEMI DI ELABORAZIONE

SISTEMI DI ELABORAZIONE SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2017/2018 Il progetto deve essere realizzato singolarmente (non è possibile realizzarlo in gruppo).

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utente come un sistema singolo coerente. 1

Dettagli

Introduzione. A Tecnologie 1

Introduzione. A Tecnologie 1 Indice Prefazione Introduzione XIII XIX A Tecnologie 1 1 Tecnologie per applicazioni Web 3 1.1 Introduzione 3 1.2 HTTP e HTML: i fondamenti delle tecnologie Web 4 1.2.1 Accesso a risorse remote: il protocollo

Dettagli

Alcune idee sui sistemi software e la loro architettura

Alcune idee sui sistemi software e la loro architettura Luca Cabibbo Analisi e Progettazione del Software Alcune idee sui sistemi software e la loro architettura Capitolo 92 marzo 2016 Gli orchi sono come le cipolle. Le cipolle hanno gli strati. Gli orchi hanno

Dettagli

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo CdL MAGISTRALE in INFORMATICA A.A. 2015-16 corso di Sistemi Distribuiti 8. Le architetture (prima parte) Prof. S.Pizzutilo I Sistemi Distribuiti Un Sistema Distribuito è un insieme di processori indipendenti

Dettagli

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali Porte logiche di base Cenni circuiti, reti combinatorie, reti sequenziali NOT AND A R A B R OR A R B Quindi NAND o NOR sono complete circuiti con solo porte NAND o solo porte NOR. Reti combinatorie Rete

Dettagli

Stili fondamentali per sistemi distribuiti

Stili fondamentali per sistemi distribuiti Luca Cabibbo Architettura dei Sistemi Software Stili fondamentali per sistemi distribuiti dispensa asw420 marzo 2018 The best thing about the future is that is comes one day at a time. Abraham Lincoln

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Ingegneria del Software 15. Stili e QoS. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 15. Stili e QoS. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 15. Stili e QoS Dipartimento di Informatica Università di Pisa A.A. 2014/15 scale up, scale out Application scalability can be defined as the ability to increase the application

Dettagli

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Architettura dei sistemi di elaborazione: La memoria (parte 2) Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

Reti, Web e comunicazione Parte seconda

Reti, Web e comunicazione Parte seconda Reti, Web e comunicazione Parte seconda 1 Classificazione delle reti Le reti di comunicazione (network) possono essere catalogate in base alle seguenti caratteristiche : Estensione geografica Topologia

Dettagli

Architetture dei sistemi distribuiti. Mariagrazia Fugini Impianti Como 08-09

Architetture dei sistemi distribuiti. Mariagrazia Fugini Impianti Como 08-09 Architetture dei sistemi distribuiti Mariagrazia Fugini Impianti Como 08-09 Sommario Sistemi centralizzati e distribuiti Meccanismi per sistemi distribuiti RPC Client-server Middleware Distributed object

Dettagli

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei

Dettagli

Isaac DE è una piattaforma Big Data completa di strumenti e servizi per l installazione, la configurazione, l uso, la gestione e il monitoraggio di

Isaac DE è una piattaforma Big Data completa di strumenti e servizi per l installazione, la configurazione, l uso, la gestione e il monitoraggio di Isaac DE è una piattaforma Big Data completa di strumenti e servizi per l installazione, la configurazione, l uso, la gestione e il monitoraggio di un intero ambiente NoSQL. 1 Sfrutta al massimo la potenza

Dettagli

A.P.System s.r.l. Terminal Services. sempre. ovunque. comunque

A.P.System s.r.l. Terminal Services. sempre. ovunque. comunque A.P.System s.r.l. Terminal Services sempre ovunque comunque Caratteristiche del Mercato L evoluzione tecnologica e del mercato pongono sempre più frequentemente le Aziende nella situazione di dover affrontare

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utenti come un sistema singolo coerente. Definizione

Dettagli

Basi di dati II, primo modulo 24 giugno 2011 Compito breve Cenni sulle soluzioni

Basi di dati II, primo modulo 24 giugno 2011 Compito breve Cenni sulle soluzioni Basi di dati II, primo modulo 24 giugno 2011 Compito breve Cenni sulle soluzioni Cognome Nome Matricola Domanda 1 Come noto, si stanno diffondendo applicazioni nelle quali è necessaria una grande scalabilità

Dettagli

BASI DI DATI E UTENTI DI BASI DI DATI

BASI DI DATI E UTENTI DI BASI DI DATI BASI DI DATI E UTENTI DI BASI DI DATI Introduzione alle basi di dati (1) 2 La gestione dell informazione L informazione rappresenta oggi uno dei beni più preziosi all interno di una qualsiasi organizzazione

Dettagli

Global Virtual Time (GVT) e Approfondimenti sul Time Warp

Global Virtual Time (GVT) e Approfondimenti sul Time Warp Global Virtual Time (GVT) e Approfondimenti sul Time Warp Gabriele D Angelo gda@cs.unibo.it http://www.cs.unibo.it/~gdangelo Dipartimento di Scienze dell Informazione Università degli Studi di Bologna

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

OPTIMISING ECOMMERCE IN CLOUD. Fornisci un eccezionale esperienza d acquisto ai tuoi consumatori.

OPTIMISING ECOMMERCE IN CLOUD. Fornisci un eccezionale esperienza d acquisto ai tuoi consumatori. OPTIMISING ECOMMERCE IN CLOUD Fornisci un eccezionale esperienza d acquisto ai tuoi consumatori. REPLY 2 OPTIMISING ECOMMERCE IN CLOUD Negli ultimi decenni, l arrivo dell ecommerce ha rivoluzionato il

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

Ottimizziamo il flusso di lavoro aziendale ed abbattiamo i costi di gestione mediante l uso di tecnologie adeguate.

Ottimizziamo il flusso di lavoro aziendale ed abbattiamo i costi di gestione mediante l uso di tecnologie adeguate. L infrastruttura software si compone di tutti quei sistemi e servizi informatici (spesso invisibili all utente finale) che permettono un corretto funzionamento della rete informatica aziendale. S u di

Dettagli

Cap. 1-I 1 I sistemi informatici

Cap. 1-I 1 I sistemi informatici Libro di testo A. Chianese,V. Moscato, A. Picariello, L. Sansone Basi di dati per la gestione dell informazione McGraw-Hill, 2007 Informazioni sul corso http://www.docenti.unina.it/lucio.sansone Ricevimento

Dettagli

ottobre Fonti [SSA] Chapter 19, The Development Viewpoint Luca Cabibbo Punto di vista dello Sviluppo Luca Cabibbo SwA

ottobre Fonti [SSA] Chapter 19, The Development Viewpoint Luca Cabibbo Punto di vista dello Sviluppo Luca Cabibbo SwA Luca Cabibbo Architetture Software Dispensa AS 19 ottobre 2008 1 -Fonti [SSA] Chapter 19, The Development Viewpoint 2 Obiettivi - Obiettivi e argomenti descrivere il punto di vista dello Sviluppo Argomenti

Dettagli

Gestione della Memoria Principale

Gestione della Memoria Principale Gestione della Memoria Principale Requisiti della Gestione della Memoria. Gestione a Partizioni Fisse. Partizionamento dinamico. Paginazione. Segmentazione. 1 Gestione della Memoria In un sistema multiprogrammato

Dettagli

IL PROCESSO di PROGETTAZIONE

IL PROCESSO di PROGETTAZIONE IL PROCESSO di PROGETTAZIONE In questa lezione vedremo: Ruolo della modellazione nella comunicazione tipi di modello nel progetto I modelli del prodotto Interpretazione delle informazioni del progetto

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Integrazione di applicazioni

Integrazione di applicazioni Luca Cabibbo Architettura dei Sistemi Software dispensa asw465 marzo 2018 We believe that asynchronous messaging will play an increasingly important role in enterprise software development, particularly

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Architettura esagonale

Architettura esagonale Luca Cabibbo Architettura dei Sistemi Software dispensa asw360 marzo 2019 There must be a cause why snowflakes have the shape of six-cornered starlets. It cannot be chance. Why always six?. Johannes Kepler

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved Capitolo 9 Sistemi di basi di dati 2007 Pearson Addison-Wesley. All rights reserved Capitolo 9: Sistemi di basi di dati 9.1 Definizione di Sistemi di Basi di Dati 9.2 Modello relazionale 9.3 Basi di dati

Dettagli

#IlTombolone: tutti i numeri di un Cloud di successo. Una success story in collaborazione con l agenzia We are social

#IlTombolone: tutti i numeri di un Cloud di successo. Una success story in collaborazione con l agenzia We are social #IlTombolone: tutti i numeri di un Cloud di successo 2 Indice 01 Premessa 02 La creative agency 03 Il caso #IlTombolone: esigenze e requisiti 04 La scelta tecnologica 05 Infrastruttura per la gestione

Dettagli

2 Introduzione È più semplice comprendere i sistemi hardware digitali considerando le modalità con cui vengono descritti, che possono essere distinte

2 Introduzione È più semplice comprendere i sistemi hardware digitali considerando le modalità con cui vengono descritti, che possono essere distinte 1 Introduzione L evoluzione dei sistemi hardware digitali negli ultimi cinquant anni è stata caratterizzata da miglioramenti in termini di funzionalità, costi e prestazioni mai visti in altri settori tecnologici.

Dettagli

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) È una famiglia di notazioni grafiche che si basano su un singolo meta-modello Serve per definire, progettare, realizzare e documentare sistemi sw (in particolare quelli

Dettagli

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete Reti e comunicazione Le reti Con il termine rete si fa riferimento, in generale ai servizi che si ottengono dall integrazione tra tecnologie delle telecomunicazioni e le tecnologie dell informatica. La

Dettagli

Integrazione di applicazioni

Integrazione di applicazioni Luca Cabibbo Architettura dei Sistemi Software dispensa asw447 marzo 2017 We believe that asynchronous messaging will play an increasingly important role in enterprise software development, particularly

Dettagli

Securing Site-to-Site Connectivity

Securing Site-to-Site Connectivity Securing Site-to-Site Connectivity Capitolo 7 Traduzione in Italiano Types of Remote-access VPNs Usando le tecnologie VPN, gli impiegati possono essenzialmente portare l ufficio con loro, includendo accesso

Dettagli

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java Enterprise JavaBeans Approfondimento per il corso di Sistemi Distribuiti A.A. 2002/2003 Una breve presentazione Basati sulla specifica EJB Sun Microsystems Consentono di costruire applicazioni ad oggetti

Dettagli

Università di Bologna

Università di Bologna Università di Bologna Laurea Magistrale in Ingegneria Informatica Corso di Reti di Calcolatori M - A.A. 2009-10 Prof. Antonio Corradi Progetto RE.VE.N.GE. CORBA REliable and VErsatile News delivery support

Dettagli

Introduzione D B M G

Introduzione D B M G Introduzione D B M G Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS D B M G 2 Gestione delle

Dettagli

Prof. G. Ascia. Sistema Operativo

Prof. G. Ascia. Sistema Operativo Sistema Operativo In parte tratto dal capitoli 13 del libro Mandrioli, Ceri, Sbattella, Cremonesi, Cugola, "Informatica: arte e mestiere",3a ed., McGraw-Hill Fondamenti di Informatica 1 Il Sistema Operativo

Dettagli

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi

Dettagli

Processi, Threads e Agenti

Processi, Threads e Agenti Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito ècompostodaun insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere definito

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Modulo 2 Architetture dei SD Lezione 1

Modulo 2 Architetture dei SD Lezione 1 Modulo 2 Architetture dei SD Lezione 1 Corso Sistemi Distribuiti (6 CFU) Docente: Prof. Marcello Castellano Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano Table of Contents

Dettagli

L organizzazione. disposizione ed alla combinazione delle risorse da. necessarie per l ordinato svolgimento della gestione.

L organizzazione. disposizione ed alla combinazione delle risorse da. necessarie per l ordinato svolgimento della gestione. L organizzazione Prospettiva allargata aspetti connessi alla disposizione ed alla combinazione delle risorse da impiegare nella gestione d impresa Prospettiva ristretta definire compiti, individuare responsabilità

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato

Dettagli

8. Modalità di passaggio dei parametri

8. Modalità di passaggio dei parametri 8. Modalità di passaggio dei parametri Quando parliamo di procedure nel linguaggio di progetto, facciamo riferimento ai parametri di input, di output e di input/output; come sappiamo, un parametro è di

Dettagli

Configurazione di riferimento di IP Office Server Edition IP Office 8.1

Configurazione di riferimento di IP Office Server Edition IP Office 8.1 Configurazione di riferimento di IP Office Server Edition IP Office 8.1 15-604135 Dicembre 2012 Sommario Capitolo 1: Introduzione... 5 Scopo del documento... 5 Destinatari... 5 Documenti correlati...

Dettagli

SISTEMI DI ELABORAZIONE

SISTEMI DI ELABORAZIONE SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2016/2017 Il progetto deve essere realizzato singolarmente (non è possibile realizzarlo in gruppo).

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno

Dettagli

Pag Politecnico di Torino 1

Pag Politecnico di Torino 1 Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,

Dettagli

Indice generale. Introduzione...xiii. Uno sguardo più da vicino a JavaScript...17

Indice generale. Introduzione...xiii. Uno sguardo più da vicino a JavaScript...17 Indice generale Introduzione...xiii Perché Node.js?... xiii Il Web... xiii Nuove tecnologie...xiv Cos è esattamente Node.js?...xiv A chi si rivolge questo libro?...xvi Come usare questo libro...xvi Scaricate

Dettagli

Lezione 4 1. Introduzione

Lezione 4 1. Introduzione Lezione 4 1 Introduzione Le curve di domanda ed offerta servono per determinare possibili scenari futuri in seguito a cambiamenti delle condizioni. Ad esempio, la diminuzione della offerta di petrolio

Dettagli

MATERIALI PER LA DISCUSSIONE

MATERIALI PER LA DISCUSSIONE SETTORE TECNOLOGICO MATERIALI PER LA DISCUSSIONE ISTITUTO TECNICO INDIRIZZO ARTICOLAZIONE TELECOMUNICAZIONI INFORMATICA E TELECOMUNICAZIONI ESITI DI APPRENDIMENTO Regolamento, Art. 5 comma 1 Nota: Le Competenze,

Dettagli

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione

Dettagli

Strutture dei sistemi di calcolo

Strutture dei sistemi di calcolo Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Architettura di un sistema di calcolo

Dettagli

3.Quesito. Si chiede se sia possibile porre modifiche allo schema di contratto.

3.Quesito. Si chiede se sia possibile porre modifiche allo schema di contratto. UNIVERSITA DI PISA Procedura aperta per fornitura di infrastruttura di Storage Chiarimenti di natura amministrativa 1.Quesito. Un operatore economico chiede se è ammessa la cessione del credito. La cessione

Dettagli

Programmazione II. Lezione 9. Daniele Sgandurra 16/11/2010.

Programmazione II. Lezione 9. Daniele Sgandurra 16/11/2010. Programmazione II Lezione 9 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 16/11/2010 1/31 Programmazione II Lezione 9 16/11/2010 Sommario 1 Gestione della Memoria 2/31 Programmazione II Lezione 9 16/11/2010

Dettagli

Programmazione = decomposizione basata su astrazioni

Programmazione = decomposizione basata su astrazioni Programmazione = decomposizione basata su astrazioni 1 Decomposizione in moduli necessaria quando si devono sviluppare programmi abbastanza grandi decomporre il problema in sotto-problemi i moduli che

Dettagli

Lezione 6. Siti, Utenti e Sessioni

Lezione 6. Siti, Utenti e Sessioni Lezione 6 Siti, Utenti e Sessioni Classificazione dei siti Siti statici Sono siti con contenuti che variano poco frequentemente Dal punto di vista tecnologico sono costituiti da pagine html Siti dinamici

Dettagli

Symantec IT Management Suite 8.0 powered by Altiris technology

Symantec IT Management Suite 8.0 powered by Altiris technology Symantec IT Management Suite 8.0 powered by Altiris technology Requisiti indispensabili per l'installazione di IT Management Suite Prima di avviare l'installazione, assicurarsi che il computer sul quale

Dettagli

Lab ISW 2012/2013: Progetto

Lab ISW 2012/2013: Progetto 1 Lab ISW 2012/2013: Progetto Progetto GUASTO Il progetto GUASTO (Gran Ufficio Amministrazione Solidale Trasparente e Organizzata) consiste nella realizzazione di un applicazione Web per permettere ai

Dettagli

FILE E INDICI Architettura DBMS

FILE E INDICI Architettura DBMS FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le

Dettagli

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 2007 Politecnico di Torino 1 Basi di dati DB M B G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M B G 2 2007 Politecnico

Dettagli

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1 Sistemi informativi D B M G Introduzione D B M G 2 2007 Politecnico di Torino 1 Introduzione D B M G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Basi di dati DB M BG2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG4 D B M G6 2007 Politecnico di Torino 1 D B M G7 D B M G8 D B M G9 D B

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 2007 Politecnico di Torino 1 Basi di dati Gestione delle informazioni Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG2 Gestione delle informazioni Le informazioni sono

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

CLOUD COMPUTING E CLOUD STORAGE PROF. MAURIZIO NALDI ABILITÀ INFORMATICHE

CLOUD COMPUTING E CLOUD STORAGE PROF. MAURIZIO NALDI ABILITÀ INFORMATICHE CLOUD COMPUTING E CLOUD STORAGE PROF. MAURIZIO NALDI ABILITÀ INFORMATICHE COS È IL CLOUD COMPUTING? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un

Dettagli

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino

BASE DI DATI. (accezione specifica) collezione di dati gestita da un DBMS. Università degli Studi di Cassino BASE DI DATI (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione. (accezione specifica) collezione di dati

Dettagli