Paradigmi - Appunti di INFORMATICA

Download Report

Transcript Paradigmi - Appunti di INFORMATICA

1
PARADIGMI APPLICATIVI
Docente: Marco Sechi
Modulo 1
Docente: Marco Sechi
Modulo 1
1° PARADIGMA APPLICATIVO: IL MAINFRAME
Il mainframe è un potente calcolatore utilizzato soprattutto da grandi aziende ed istituzioni
per elaborare (con alte prestazioni ed alta affidabilità!) grandi moli di dati come quelle messe
in gioco nelle transazioni finanziarie, nei censimenti e nelle statistiche.
Storicamente i mainframe erano famosi per la loro dimensione e per i requisiti ambientali
(condizionamento e alimentazione elettrica). Si svilupparono alla fine degli anni 50 fino agli
anni 70. "IBM" era la principale produttrice.
2
Docente: Marco Sechi
Modulo 1
All'inizio degli anni 80 iniziò il declino. Durante questo periodo le aziende trovarono che le
reti dei PC potevano essere impiegate come alternativa al mainframe ma ad un costo
decisamente inferiore. La rete dei pc consentiva agli utenti un maggior controllo sui loro
apparati informatici: in altre parole le aziende potevano gestire il loro sistema utilizzando
risorse umane interne senza ricorrere necessariamente a personale esterno altamente
qualificato. Infatti le ditte che producevano i mainframe, per via delle loro politiche
accentratrici, tendevano a non fornire approfonditi dettagli tecnici sulla gestione dei loro
prodotti per cui era necessario richiedere il loro intervento anche per semplici operazioni
con un conseguente aumento dei costi. Con l’avvento delle LAN i terminali fisici, usati per
interagire con i mainframe, furono gradualmente rimpiazzati dai PC. Conseguentemente la
domanda crollò e le nuove installazione di mainframe furono limitate soprattutto a macchine
per servizi finanziari e governativi.
E’ inutile avere 2
monitor sulla
stessa scrivania. Il
terminale
hardware venne
trasformato in
un’applicazione
all’interno del pc: il
terminale
software.
3
Docente: Marco Sechi
Modulo 1
All’inizio degli anni 90 il mondo del mainframe era un
mercato morente in quanto tali piattaforme erano state
rimpiazzate da reti di computer.
Tale tendenza iniziò ad invertirsi alla fine degli anni 90
poiché la crescita dell'e-business aumentò fortemente la
richiesta di potenza di calcolo per far fronte alla gestione
di enormi database unificati e all’alto volume di
transazioni in parallelo.
Altro fattore trainante della rinascita dei mainframe è
l’adozione di UNIX come sistema operativo. Unix/Linux
consente l’utilizzo di molti applicativi di tipo open source
ed al tempo stesso rende più accessibili le risorse del
mainframe poiché la conoscenza di linux è diffusa e
caratterizzata da una filosofia di tipo open.
4
Docente: Marco Sechi
Modulo 1
I moderni mainframe si distinguono dagli altri computer non tanto per la velocità di
esecuzione di un singolo task ma piuttosto per la loro alta affidabilità, sicurezza, gestione
efficiente del carico di lavoro e per la compatibilità binaria verso programmi applicativi
scritti anche tanti anni fa, caratteristica che garantisce la protezione degli investimenti
applicativi nel tempo.
I moderni mainframe hanno la capacità di
eseguire od "ospitare" sistemi operativi
diversi, utilizzando la tecnica della
virtualizzazione. Un singolo mainframe può
rimpiazzare dozzine o centinaia di server fisici
più piccoli, riducendo così i costi di gestione e
amministrazione e fornendo nel contempo al
sistema maggior scalabilità ed affidabilità,
difficilmente ottenibili con server fisici
distribuiti.
Sebbene non ai livelli di efficienza offerti nel
mainframe, ora la virtualizzazione è presente
anche in molti server UNIX di fascia alta;
molti produttori promuovono le tecnologie
di virtualizzazione, in qualche maniera
cercando di fare propri i capisaldi di
progettazione tipici del mainframe.
5
Docente: Marco Sechi
Modulo 1
I mainframe moderni più grandi hanno dimensioni decisamente più contenute rispetto ai
loro antenati e sono caratterizzati da consumi energetici ridotti rispetto ad un rack di
server equivalenti in termini di potenza elaborativa.
6
Docente: Marco Sechi
Modulo 1
Sessione 1
La sessione è un task che
gira sul mainframe e
gestisce l’applicativo
virtuale, il cui output viene
visualizzato sul terminale
associato
Videata
TERMINALE 1
1 A77 …
Input
TERMINALE 2
Sessione 2
Sessione N
FRONT END
PROCESSOR
TERMINALE N
MAINFRAME
I terminali inviano, tramite la tastiera, i caratteri digitati alla sessione associata. La
7
sessione elabora l'input aggiornando la videata virtuale interna che viene spedita al suo
terminale che la visualizza. La potenza elaborativa è centralizzata e risiede tutta nel
mainframe. Il terminale non ha ne cpu ne ram e svolge solo la funzione di semplice visore.
Docente: Marco Sechi
Modulo 1
VANTAGGI APPLICAZIONI MAINFRAME
1) Centralizzazione delle risorse: ad esempio non sono necessarie installazioni software
presso i client quando aggiorno un programma;
2) Aggiunta di nuove postazioni molto semplice: i client del mainframe sono i terminali
ovvero macchine stupide che devono visualizzare dei dati o inviarli (input da tastiera) per
cui la loro connessione al sistema si risolve in una semplice stesura di cavi;
3) Performance elevatissime ed alta affidabilità del sistema;
4) Non richiede linee di connessione veloci. Le applicazioni nei mainframe sono
generalmente testuali per cui sul canale che collega il terminale alla sessione associata
transitano solo caratteri ascii. Per aggiornare una videata ascii di 24 righe e 80 colonne
bastano solo 1.920 byte (24x80). Nel caso di un terminale grafico RGB 1280x800 la
richiesta aumenta: infatti occorrono 3.072.000 byte (1280x800x3) ≈ 2,92Mbyte.
SVANTAGGI APPLICAZIONI MAINFRAME
1) Costi molto elevati di setup sia per l’acquisto dell’hardware che per la sistemazione degli
ambienti che devono ospitare il mainframe;
2) Elevati costi di gestione sia per l’elevato know how che solitamente è richiesto, sia per
l’elevato costo dello sviluppo delle applicazioni;
3) L’interfaccia testuale delle applicazioni determina tempi di apprendimento più lunghi: le
applicazioni essendo testuali risultano più ostiche (non di facile utilizzo) rispetto a quelle
8
che si avvalgono di una interfaccia grafica. Nelle applicazioni testuali (CLI) o conosco i
comandi oppure resto bloccato poiché non ho alcun supporto dell’interfaccia.
4) Non è adatto a svolgere compiti di Office Automation (es. videoscrittura, grafici …)
Docente: Marco Sechi
Modulo 1
2° PARADIGMA APPLICATIVO: I PROGRAMMI STANDALONE
Le applicazioni standalone sono programmi che fanno uso solo delle risorse locali disponibili
sul PC dove quell’applicazione è in esecuzione. Un’applicazione standalone non utilizza in
modo condiviso le risorse disponibili in una rete. Eventuali dischi di rete (shared disk)
vengono visti dall’applicazione come se fossero dischi locali ed usati dalla stessa in modo
9
esclusivo. Questa tipologia di applicazioni è utilizzata:
 In piccole realtà caratterizzate dalla presenza di un solo pc o dall’assenza di reti
 Nelle applicazioni di produttività individuale (esempio quelle di Office Automation).
 Quando l’applicazione, per ragioni di sicurezza, deve essere fisicamente isolata
Docente: Marco Sechi
Modulo 1
SVANTAGGI
 Nel caso vi siano più pc non collegati è impossibile impostare corrette politiche di
backup poiché non è possibile definire un backup centralizzato;
 Se il numero di utilizzatori è superiore al numero dei pc disponibili occorre definire
una corretta politica di utilizzo dell’applicazione standalone affinché che sia sempre
possibile identificare l’ultima versione dei documenti prodotti. Ad esempio se oggi
uso una postazione per aggiornare un documento che modifico periodicamente
ogni primo giorno del mese devo essere sicuro di aprire la versione del mese
precedente e non una antecedente! Per ovviare all’inconveniente probabilmente
userò sempre lo stesso pc per assolvere tale compito.
 Sicurezza bassa: senza opportune precauzioni chi accede fisicamente al pc può
copiare e portare via i documenti riservati contenuti nel suo hard disk.
VANTAGGI
 Semplice configurazione;
 Costi estremamente bassi;
 Se il pc è fisicamente isolato fisicamente i livelli di sicurezza sono elevatissimi. Infatti
non è possibile leggere i dati dall’esterno visto che non risulta connesso a nulla;
 L’interfaccia grafica delle applicazioni può essere molto user friendly;
 Lo sviluppo delle applicazioni non richiede un know how elevato poichè nelle
applicazioni standalone non è solitamente necessario gestire l’accesso concorrente
alle risorse. Questa considerazione cade quando l’applicazione sfrutta il multitasking
per svolgere diverse operazioni in parallelo (ad esempio mentre consulto un archivio
l’applicazione in background riordina i dati per velocizzare future ricerche).
10
Docente: Marco Sechi
Modulo 1
3° PARADIGMA APPLICATIVO: I PROGRAMMI FILE SERVER
Le applicazione File Server sono molto simili alle applicazioni standalone. Come nelle
applicazioni standalone l’intera applicazione gira all’interno del PC che stiamo utilizzando.
Contrariamente alle applicazioni standalone lo shared disk, contenente i dati, risulta
condiviso tra più macchine. L’accesso ai dati è governato unicamente dalle applicazioni file
server che girano sui singoli PC. Gli accessi contemporanei ai dati vengono gestiti lasciando
delle opportune indicazioni, scritte all’interno del file dati (DB), che ogni applicazione file
server interpreta per evitare collisioni.
Microsoft Access (quando non viene utilizzato come front end verso un server SQL)
funziona secondo questo paradigma: i files dati vengono alimentati da programmi che
girano sulla stessa macchina contenente il DB (dati) o su altri PC connessi in rete.
Talvolta, per assicurarsi che sui client venga eseguita sempre la stessa versione
dell’applicativo, il programma viene posto su un disco di rete condiviso. Questa
soluzione determina un rallentamento durante l’avvio dell’applicazione poiché l’intero
programma, prima di essere caricato in ram, deve transitare sulla rete.
11
Docente: Marco Sechi
Modulo 1
VANTAGGI APPLICAZIONI FILE SERVER
1) L’interfaccia grafica delle applicazioni può essere molto user friendly
2) La configurazione per questa tipologia di applicazione è molto semplice
3) Lo sviluppo di queste applicazioni richiede un know how molto simile a quello
richiesto per le applicazioni standalone in multitasking.
4) E’ il paradigma applicativo che fa uso della rete meno costoso;
SVANTAGGI APPLICAZIONI FILE SERVER
1) Lentezza: l’accesso in multiutenza al file dati non risulta ottimizzato per cui i
tempi di salvataggio risultano molto alti;
2) Il controllo della concomitanza degli accessi ai dati deve essere sviluppato ad
hoc e viene gestito direttamente all’interno delle applicazioni file server;
3) Il numero degli utenti contemporanei è limitato poiché la rete viene subito
intasata dall'elevato traffico generato dalle singole applicazioni che devono
inviare in rete tutti i comandi necessari per l’accesso al disco di rete. Quindi
questo paradigma è applicabile solo in presenza di piccole reti;
4) Se devo aggiornare l’applicazione devo andare fisicamente su ogni postazione
Questo non è vero quando l’applicazione viene installata su un disco di rete
condiviso. Tale scelta non è sempre possibile (dipende da come è costruita
l’applicazione!) ed inoltre non è applicabile quando la mia LAN non è
estremamente veloce.
12
Docente: Marco Sechi
Modulo 1
4° PARADIGMA APPLICATIVO: L’APPLICATION SERVER
Un server applicativo (o application server) indica un paradigma applicativo nel quale dei
software (che girano su computer detti client) si connettono ad una applicazione centrale
(che gira su una macchina detta server) per usufruire del servizio da essa erogato. Le
applicazioni peer-to-peer sono un caso particolare di application server solo che il ruolo di
server e client risulta interscambiabile.
Contrariamente al paradigma mainframe nell’application server l’applicativo viene
spezzato in due parti distinte: il software client fornisce l’interfaccia grafica verso il server
(Input/Output) mentre la componente server, oltre a gestire l’aggiornamento dei dati,
implementa la gestione degli accessi, l’allocazione e il rilascio delle risorse, la condivisione
e la sicurezza dei dati. Questa paradigma è successivo a quello del mainframe (richiede la
LAN). Rappresenta il punto di partenza per il successivo paradigma: le applicazioni webbased. L’application server rientra nella categoria più ampia dei sistemi client/server.
13
Docente: Marco Sechi
Modulo 1
VANTAGGI APPLICATION SERVER
1) Richiede poca banda: infatti tra l’applicazione client e quella server il traffico di
informazioni è molto ridotto. Il colloquio tra le 2 componenti si riduce ad un
semplice scambio di comandi testuali ai quali segue la sequenza di caratteri
contenente il risultato della richiesta;
2) Alta velocità di esecuzione: le macchine serventi sono specializzate e devono
reggere carichi anche mille volte superiori a quelli di un singolo PC pertanto
l’hardware utilizzato è sofisticato e performante;
3) Bassi costi dei client: i client si preoccupano solo di fornire l’interfaccia utente e
pertanto non devono essere potenti. Diverso è il discorso relativo al server che
deve reggere un carico proporzionale al numero di client connessi
contemporaneamente. Il suo costo cresce al crescere del numero di client attivi.
4) Centralizzazione dei dati.
5) Alti livelli di sicurezza grazie al ruolo di “filtro” sui dati dell’applicazione servente
6) Può sopportare un numero elevato di client contemporanei purché l’hardware e il
software servente siano adeguati.
7) Interfaccia grafica evoluta
8) Gestione ottimizzata della concorrenza nell’uso delle risorse effettuato
direttamente dall'applicazione servente o demandato al NOS ospitante.
14
Docente: Marco Sechi
Modulo 1
SVANTAGGI APPLICATION SERVER
1) Lo sviluppo di tali applicazioni richiede un know how maggiore di quello richiesto per
le applicazioni standalone e File Server
2) I costi del server sono molto elevati. Il server è il cuore del sistema e pertanto :
• deve essere estremamente veloce (tempi di attesa lunghi si traducono in attese e
costi per l’azienda) per cui l’hardware deve essere sofisticato (ad esempio i tempi
di accesso ai dischi devono essere molto bassi poiché nella stessa unità di tempo
posso esserci molti utenti che leggono o modificano i files sul server).
• occorre applicare politiche di fault tolerance adeguate (se il server si blocca tutti i
dipendenti aziendali sono fermi e questo implica costi!).
• richiede la presenza di un NOS. Ad esempio sfruttando alcune funzionalità del
NOS è possibile utilizzare le informazioni del sistema paghe aziendale
(programma stipendi!) per generare delle regole di accesso al NOS che
rispecchino la posizione attuale di ogni dipendente all’interno dell’organigramma.
Eventuali trasferimenti ad altri uffici, licenziamenti, assunzioni, etc
determineranno variazioni automatiche sui diritti di accesso al sistema.
Chiaramente l’estrema versatilità che caratterizza i NOS aumenta il livello di know
how richiesto;
• Deve essere always on (sempre acceso).
3) L’upgrade dell’applicazione sui client richiede che un tecnico vada fisicamente su ogni
15
postazione (upgrade onsite) o l’utilizzo di tecniche di software distribution che
determinano ulteriori costi.
4) Ogni applicazione server ha un suo specifico client sviluppato ad hoc.
Docente: Marco Sechi
Modulo 1
5° PARADIGMA APPLICATIVO: APPLICAZIONI TERMINAL SERVER
Un applicazione Terminal-server indica un paradigma applicativo nel quale una potente
macchina centrale eroga ai suoi client delle sessioni contenenti non videate applicative
(come avveniva nel mainframe) ma intere macchine virtuali. L’utilizzatore ha l’impressione
che sul suo client “giri” un intero sistema operativo compresi gli applicativi che ritroviamo
solitamente installati su una macchina reale.
L’aggiunta o l’aggiornamento di un software applicativo si traduce in una installazione
centralizzata sulla macchina virtuale dell’utente che ne ha fatto richiesta. Quindi per
l’upgrade non è necessario mandare un tecnico presso l’utente.
Il know-how necessario per
sviluppare un’applicazione con
questa tipologia non è superiore a
quello richiesto per lo sviluppo di un
application server. Anzi i paradigmi
visti in precedenza possono essere
trasferiti all’interno di questo nuovo
schema applicativo senza apportare
modifiche al software con notevole
risparmio di costi (posso effettuare
un upgrade verso questo paradigma
16
mantenendo tutti gli investimenti
software fatti in precedenza!).
Docente: Marco Sechi
Modulo 1
TERMINAL SERVER
Videata
CLIENT TS 1
Input
VM 1
1 A77 …
CLIENT TS 2
VM 2
VM N
Videata virtuale
SWITCH
CLIENT TS N
VIRTUALIZATION
LAYER
I Client inviano alla corrispondente macchina virtuale (VM) i dati di input acquisiti tramite 17
mouse e tastiera. La VM associata elabora tale input ed invia la videata prodotta al client che
la visualizza sullo schermo. La potenza elaborativa è centralizzata e risiede tutta nel Terminal
Server. Ai client è sufficiente una potenza di calcolo pari a quella richiesta dal software client.
Docente: Marco Sechi
Modulo 1
PROCESSO DI AUTENTICAZIONE NEL TERMINAL SERVER
Dopo essersi autenticato la sessione Terminal Server
appare come se fosse un sistema operativo locale a
tutti gli effetti.
VM1
VM2
VMn
18
Se il client è aperto a pieno schermo
l’utente ha l’impressione di utilizzare il
sistema operativo del suo PC locale
Docente: Marco Sechi
Modulo 1
VANTAGGI APPLICAZIONI TERMINAL SERVER
 La centralità delle risorse (sia hardware che software)
 L’upgrade delle applicazioni non richiede installazioni presso il client (onsite)
 Gestione delle licenze software ottimale: si paga in base al numero di utilizzi
contemporanei e non al numero di installazioni (all’interno di ogni singola VM)
 Gestione del backup ottimale: per ripristinare un’intera postazione utente basta
ripristinare i files contenenti l’immagine disco della della macchina virtuale;
 Sicurezza: è difficile portare via i dati riservati poiché risiedono su una macchina
remota (il terminal server appunto!). Il client è solo un visore per cui per salvare
qualcosa sulla chiave USB locale è necessario che l’amministratore del sistema abiliti la
postazione a tale funzione. Inoltre l’accesso richiede uno userId (login) e una
password;
 Ha un'interfaccia grafica evoluta: la stessa di un sistema operativo che gira su un
normale PC;
 I client possono essere qualsiasi dispositivo: da un tablet/smartphone ad un vecchio
PC basta che esista il Cliente TS (In Windows è il Desktop Remoto);
 Il client è indipendentemente dagli applicativi che vengono utilizzati nella Virtual
Machine sul Terminal Server. In altre parole non è necessario avere un client specifico
per ogni tipo di applicazione utilizzata (cosa che invece avviene con il paradigma
Application Server dove il client viene progettato ad hoc per quella applicazione
19
servente specifica).
I vantaggi ottenuti sono molto simili a quelli del mainframe con l’aggiunta dell’aspetto
grafico che nei mainframe di solito non è presente.
Docente: Marco Sechi
Modulo 1
SVANTAGGI APPLICAZIONI TERMINAL SERVER
 Costoso: richiede macchine serventi estremamente potenti (in alcuni casi sono
utilizzati dei mainframe di nuova generazione). I costi sono strettamente legati al
numero di client contemporanei che il sistema supporta. Ad esempio ogni sessione in
richiede in genere 4Gb di RAM.
 Se si ferma il Terminal Server tutti gli utenti sono bloccati per cui devo utilizzare le
migliori politiche di Fault Tolerance con conseguente aumento dei costi.
 Il numero di client (a parità di costi) è minore rispetto al mainframe
 Richiede linee di connessione veloci (ADSL è comunque sufficiente). Le sessioni
terminal server trasmettono ai client intere videate grafiche (una schermata RGB con
1280x960 pixel richiede di trasferire 1280x960x3 byte = 3,51 Mb) e quindi una
larghezza di banda adeguata.
Questo paradigma molto costoso ha avuto una diffusione iniziale molto lenta ma ora con
l’affacciarsi del cloud ha preso finalmente piede.
20
Docente: Marco Sechi
Modulo 1
6° PARADIGMA APPLICATIVO: APPLICAZIONI WEB-BASED
Un applicazione Web-Based è un'applicazione che risulta accessibile/fruibile via web tramite
una intranet aziendale/scolastica oppure attraverso Internet stessa. Questo paradigma
appartiene all’architettura di tipo client-server.
In questo modello i “terminali” (client) sono dei normali browser mentre il server eroga i suoi
servizi applicativi utilizzando il protocollo più diffuso in assoluto: HTTP. Colossi
come Google e Microsoft hanno implementato interi pacchetti di office automation,
tradizionalmente distribuiti su supporti DVD, sotto forma di webapps (es. Google Docs). Il
filone delle Web Application comprende anche molte applicazioni di tipo aziendale o
enterprise (ad esempio programmi di contabilità, gestione magazzino, commesse etc.).
L’esempio di applicazione WEB più diffuso è rappresentato dalla lettura della posta on-line
mediante un browser.
21
Docente: Marco Sechi
Modulo 1
Le WEB-APP sono suddivise sempre in 2 componenti: parte client e parte server.
La parte client contiene del codice di programmazione che si preoccupa di controllare il
dialogo con l’utente. Questa componente è scritta utilizzando linguaggi di scripting lato
client come JavaScript e VBScript. Tale parte viene inviata dal server ai client/browser che la
eseguono.
La parte server (eseguita sul server HTTP) si preoccupa di reperire o aggiornare i dati
presenti su un DB Server. Utilizzando linguaggi di scripting lato server come PHP o ASP il
server WEB predispone le pagine HTML, contententi i dati richiesti, che invia ai client.
Nelle WEB-APP la parte client è quella che richiede maggior tempo per lo sviluppo (quasi il
70% del tempo complessivo necessario per implementare l’intera WEB-APP).
Talvolta per aggiungere nuove funzioni ai client si ricorre ai plug-in: componenti software
che ampliano ulteriormente le funzionalità presenti nei browser. Sono plug-in ad esempio:
Acrobat Reader, Silverlight, Flash e Java. Ad esempio con il plug-in Acrobat Reader è possibile
visualizzare i file PDF all’interno del browser (cosa altrimenti impossibile!).
Lo schema applicativo delle WEB-APP è simile a quello dei Mainframe con 2 differenze:
1. L’interfaccia utente è grafica;
2. la connessione tra server e client non deve necessariamente essere sempre attiva.
Infatti il webserver, dopo aver inviato la pagina richiesta al client, chiude la
connessione per riaprirla alla successiva richiesta.
22
Contrariamente al paradigma Terminal Server, dove le videate vengono inviate ai client
sotto forma di immagini bitmap (+ o meno ottimizzate), nelle WEB-APP le maschere sono
spedite come sequenze di comandi HTML (testuali!) con notevole risparmio di banda.
Docente: Marco Sechi
Modulo 1
Le WEB-APP utilizzano HTML e i CSS per costruire le videate pertanto il browser in questo
paradigma diventa un vero e proprio “terminale grafico”. Inoltre, sfruttando JAVASCRIPT, il
browser diventa anche un “terminale intelligente” capace di controllare l’attività di input
dell’utente.
La WEB-APP è installata interamente sul server HTTP per cui eventuali aggiornamenti non
comportano alcun intervento presso i singoli client. Questa prerogativa fa si che questo
modello sia adatto anche ad applicazioni la cui diffusione deve essere planetaria (come
avviene ad esempio per quelle presenti su Internet).
SVANTAGGI APPLICAZIONI WEB-BASED
• Mancanza di privacy (l’attività dell’utente che naviga viene costantemente monitorata:
ad esempio per tracciare dei profili che vengono poi utilizzati per impostare campagne
pubblicitarie mirate). Inoltre nessuno ci garantisce che i documenti prodotti da una
WEB-APP non possano essere “consultati” da terzi o dalla stessa società che ha
sviluppato la WEB-APP.
• L'utente può utilizzare la WEB-APP solo se la rete Intranet/Internet è disponibile. Se la
rete non risulta disponibile crolla tutto il castello.
• L’utente finale non può replicare (copiare) l’applicazione se il provider della WEB-APP
non lo consente (finiti i tempi delle installazioni selvagge!!)
VANTAGGI APPLICAZIONI WEB-BASED
• La gestione delle WEB-APP risulta centralizzata. Tutta l’applicazione è posta in un web 23
server che distribuisce le pagine richieste ai client. Per aggiornare una WEB-APP non è
necessario effettuare un upgrade onsite e neppure implementare meccanismi di software
distribution;
Docente: Marco Sechi
Modulo 1
• Le WEB-APP non richiedono l’installazione del client (il browser è presente di default
in tutti i sistemi operativi!);
• Il client delle WEB-APP è standard e non deve essere costruito ad hoc come avviene
nel paradigma Application Server
• Le WEB-APP sono portabili ovvero possono girare su qualsiasi piattaforma hardware
che abbia un browser.
• La diffusione dell’applicazione può essere planetaria senza che sia necessario
modificare in modo consistente il programma (codice sorgente);
• La configurazione del server è standard: il protocollo HTTP è quello più diffuso in
assoluto e i programmi serventi HTTP si riducono essenzialmente a due: IIS e Apache
• La grafica sui client è gestita in modo standard e centralizzato utilizzando linguaggi
molto diffusi e conosciuti: HTML, CSS e JAVASCRIPT. HTML e CSS sono usati per
impostare graficamente la pagina web mentre JAVASCRIPT per programmare il
browser in modo che sia possibile ottenere diversi comportamenti a seconda
dell'input;
• Non richiede linee veloci: il protocollo HTTP utilizza codifiche testuali che richiedono
una banda ridotta rispetto a quelle di tipo bitmap, utilizzate dai terminal server;
• La WEB-APP può essere venduta come servizio a consumo (pago ad utilizzo orario!)
• Sicurezza (per il gestore!): i server vengono raggiunti solo tramite protocollo http per
cui non è possibile accedere al file system del server.
• Le software house controllano in modo completo l’utilizzo dei loro prodotti.
• Potenza di calcolo (basti pensare ad un motore di ricerca come Google) se l’hardware
del server è adeguato
24
Docente: Marco Sechi
Modulo 1
7° PARADIGMA APPLICATIVO:LE APPLICAZIONI CLOUD
Un applicazione CLOUD espande i paradigmi applicativi disponibili in
LAN all’intera WAN rappresentata da internet. L’obiettivo principale è
l’esternalizzazione dei sistemi informatici trasformando il tutto nel
pagamento di un semplice canone per i servizi ottenuti dal CLOUD.
Ricorrendo al CLOUD tutta l’infrastuttura interna all’azienda,
necessaria per la gestione dei sistemi informatici, diventa inutile.
25
Docente: Marco Sechi
Modulo 1
VANTAGGI APPLICAZIONI CLOUD
• L’esternalizzazione dei sistemi informativi consente di evitare l’assunzione di personale
informatico specializzato e che per un’ azienda rappresenta un costo fisso.
• La soluzione è scalabile a secondo dell’esigenze.
• Le tariffe sono a consumo (se uso poco pago poco);
• I client del CLOUD non richiedono potenza di calcolo per cui hanno costi bassi.
SVANTAGGI APPLICAZIONI CLOUD
• Mancanza di privacy: nulla impedisce che i dati salvati su dischi remoti del CLOUD siano
“consultati” dalla società che gestisce il CLOUD.
• L'utente dipende in modo esclusivo dal gestore del sistema. I dati aziendali potrebbero
non essere più accessibili se si decide di cambiare il provider del CLOUD. Solitamente è
opportuno porre una certa attenzione a questo problema durante la stipula del contratto
di servizio.
• Le connessioni al CLOUD devono essere sempre funzionanti altrimenti l’azienda non può
accedere ai servizi informatici offerti. Inoltre richiede connessioni veloci;
• Il gestore del CLOUD gestisce in modo completo il ciclo di sviluppo e vendita delle App
disponibili nel suo CLOUD (vedi Google Market, Apple Store, Windows Store, etc). Gli
sviluppatori dipendono dalla casa madre che offre loro: 1) visibilità tramite degli Store
Online; 2) test e certificazione di compatibilità per le App sviluppate. In cambio gli
sviluppatori corrispondono alla casa madre un canone e una provvigione per ogni loro App
26
venduta. I programmatori che non accettano queste condizioni non ottengono alcuna
certificazione e perdono la possibilità di essere visibili nello store e pertanto per loro
diffondere le proprie applicazioni diventa decisamente più difficile.
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTI
27
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTO 1: Differenze tra Mainframe e SuperComputer
Molto spesso si confondono i supercomputer
con i mainframe. Vediamo le differenze
principali:
 Entrambi i tipi di sistemi consentono il
calcolo parallelo. Nei supercomputer
questa prerogativa è utilizzata per
aumentare notevolmente la velocità di
calcolo mentre nei mainframe per eseguire
molteplici task.
 I supercomputer sono molti ottimizzati per elaborazioni complesse che richiedono
soprattutto grandi quantità di memoria. I mainframe sono ottimizzati per
elaborazioni relativamente più semplici ma che implicano un’accesso rapido a grandi
volumi di dati
 I supercomputer sono spesso costruiti ad hoc per elaborazioni particolari. I
mainframe invece sono general purpose. I mainframe tipicamente formano una
linea di modelli venduti a catalogo dal produttore.
 I mainframe tendono ad avere un numero di processori di servizio che assistono i
processori principali (per il supporto crittografico, la gestione dell'I/O, il
monitoraggio, la gestione della memoria, ecc.) cosicché il numero effettivo dei
processori presenti è molto maggiore di quanto uno possa immaginare. Il design dei
supercomputer tende a non includere così tanti processori di servizio poiché essi
non aggiungono in modo apprezzabile potenza di calcolo.
28
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTO 2: Il controllo remoto
INTERNET
Con i programmi di controllo remoto un utente, tramite un
programma client specifico, si connette ad un PC remoto e
acquisisce il completo controllo dei dispositivi di input (mouse
e tastiera) e di output (video). L’accesso è esclusivo per cui la
postazione “catturata” non può essere utilizzati da altri utenti.
Il grosso vantaggio di questa modalità è che l’utente può
utilizzare in remoto gli applicativi della propria postazione di
lavoro. Questa applicazione è utilizzata molto dagli help desk
informatici per il supporto remoto dei clienti.
Esempi di programmi di controllo remoto sono Radmin, VNC,
Teamviewer e Desktop remoto di Windows (quando la
macchina “catturata” non è un windows server).
29
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTO 3: Fault Tolerance
La tolleranza ai guasti (o fault-tolerance, dall'inglese) è la capacità di un sistema di non
subire interruzioni di servizio anche in presenza di guasti. La tolleranza ai guasti aumenta il
grado di affidabilità di un sistema. È importante notare che il fault tolerance non garantisce
l'immunità dai i guasti, ma solo che i guasti (per cui è stata progettata una protezione!) non
causino interruzioni. Esempi di politiche di Fault Tolerance:
• Backup: è il meccanismo di fault tolerance minimo. Garantisce solo la salvaguardia dei dati.
In caso di rottura del server i servizi erogati da esso diventano indisponibili fino al suo
ripristino (restore). E’ una soluzione adeguata solo quando posso accettare tempi di
inattività del server lunghi anche più di una settimana. La continuità è intesa solo come
mantenimento dei dati prodotti in precedenza al fault.
• Ridondanza parziale: vengono duplicate solo alcune parti del server come ad esempio l’hard
disk (mirroring) e il controller dell’hard disk (duplexing). Rientra in questo schema la
gestione dei dischi in RAID: Questa tecnologia consiste nel distribuire i dati su un gruppo di
dischi, in modo che sia possibile ricostruire per via matematica tutti i dati eventualmente
persi da uno dei dischi.
Esempio: ogni byte viene suddiviso su 8 dischi {dove registro un singolo bit} mentre il bit di parità
corrispondente (1 se i precedenti 8 bit hanno una quantità dispari di 1 altrimenti 0) è scritto in un nono
disco. Questo tecnica permette, nel caso uno dei dischi si rompa, di ricostruire il dato originale. Rende
possibile anche la sostituzione a caldo (hot swap) di uno degli Harddisk;
• Ridondanza completa: è il massimo grado di fault tolerance e consiste nella replica
30
completa della macchina. E’ chiaramente la soluzione più costosa. Nel caso il server
principale si rompa quello ridondato subentra al suo posto in modo trasparente garantendo
la continuità del servizio
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTO 4: Dischi in RAID
RAID 1:
Il sistema RAID
1 crea una copia
esatta (mirror)
di tutti i dati su
due o più dischi.
RAID 2:
Un sistema RAID 2 divide i dati a livello di bit
(invece che di blocco) e usa un codice di
Hamming per la correzione d'errore. Tale codice
consente di correggere errori su singoli bit e di
rilevare errori doppi. Il RAID 2 è sostanzialmente
un RAID 1 più affidabile.
RAID 3:
Un sistema RAID 3 usa una divisione a
livello di byte con un disco dedicato alla
parità. Il RAID-3 è estremamente raro nella
pratica. Uno degli effetti collaterali del
RAID-3 è che non può eseguire richieste
multiple simultaneamente. Ogni
operazione di I/O richiede di usare tutti i
dischi.
31
Docente: Marco Sechi
Modulo 1
RAID 4:
Il sistema RAID 4 usa una divisione a livello
di blocchi con un disco dedicato alla parità.
Il RAID-4 assomiglia molto al RAID-3 con
l'eccezione che divide i dati al livello di
blocchi invece che al livello di byte.
RAID 5:
Un sistema RAID 5 usa una divisione dei
dati a livello di blocco con i dati di parità
distribuiti tra tutti i dischi appartenenti
al RAID. Questa è una delle
implementazioni più popolari, sia in
hardware che in software.
RAID 6:
Un sistema RAID 6 usa una divisione a
livello di blocchi con i dati di parità
distribuiti due volte tra tutti i dischi. Il
RAID 6 riesce a gestire il guasto
contemporaneo di due dischi.
32
Docente: Marco Sechi
Modulo 1
APPROFONDIMENTO 5: Esempi di sistemi Client/Server
• Web server: per la gestione dell'interazione via web tra server e client.
o Server: IIS, Apache
o Client: Internet Explorer, Chrome, FireFox, Safari, Opera
• Mail server: per la gestione della posta;
o Server: QMail, Microsoft Exchange, MDaemon, Sendmail, ArgoSoft MailServer
o Client: Microsoft Outlook, Thunderbird, Eudora, Window mail
• FTP server: per la gestione dell'upload/download dei file;
o Server: IIS, FileZilla Server, CesarFTP
o Client: Internet Explorer, WSFTP, FileZilla Client, WinSCP
• Database server: per la gestione di grandi moli di dati;
o Server: Oracle, Microsoft SQL Server, MySQL, IBM DB2, PostgreSQL
o Client: qualsiasi programma capace di inviare comandi SQL
•
•
•
•
Print server: per la condivisione delle stampanti;
File server: per la condivisione dei file (è uno dei primi servizi offerti dal NOS);
Application Server: applicazione distribuita;
Groupware: è un insieme di applicativi studiati per venire incontro alle
esigenze aziendali di coordinare le attività lavorative di gruppi di persone
33