PARADIGMI APPLICATIVI Docente Marco Sechi 1 Docente Marco

  • Slides: 33
Download presentation
PARADIGMI APPLICATIVI Docente: Marco Sechi 1

PARADIGMI APPLICATIVI Docente: Marco Sechi 1

Docente: Marco Sechi 1° PARADIGMA APPLICATIVO: IL MAINFRAME Il mainframe è un potente calcolatore

Docente: Marco Sechi 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 All'inizio degli anni 80 iniziò il declino. Durante questo periodo le

Docente: Marco Sechi 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 All’inizio degli anni 90 il mondo del mainframe era un mercato

Docente: Marco Sechi 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 I moderni mainframe si distinguono dagli altri computer non tanto per

Docente: Marco Sechi 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 I mainframe moderni più grandi hanno dimensioni decisamente più contenute rispetto

Docente: Marco Sechi 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 Sessione 1 La sessione è un task che gira sul mainframe

Docente: Marco Sechi 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 A 77 … Input TERMINALE 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 VANTAGGI APPLICAZIONI MAINFRAME 1) Centralizzazione delle risorse: ad esempio non sono

Docente: Marco Sechi 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 (24 x 80). Nel caso di un terminale grafico RGB 1280 x 800 la richiesta aumenta: infatti occorrono 3. 072. 000 byte (1280 x 800 x 3) ≈ 2, 92 Mbyte. 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 2° PARADIGMA APPLICATIVO: I PROGRAMMI STANDALONE Le applicazioni standalone sono programmi

Docente: Marco Sechi 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 SVANTAGGI Ø Nel caso vi siano più pc non collegati è

Docente: Marco Sechi 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 10 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).

Docente: Marco Sechi 3° PARADIGMA APPLICATIVO: I PROGRAMMI FILE SERVER Le applicazione File Server

Docente: Marco Sechi 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 VANTAGGI APPLICAZIONI FILE SERVER 1) L’interfaccia grafica delle applicazioni può essere

Docente: Marco Sechi 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 4° PARADIGMA APPLICATIVO: L’APPLICATION SERVER Un server applicativo (o application server)

Docente: Marco Sechi 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 VANTAGGI APPLICATION SERVER 1) Richiede poca banda: infatti tra l’applicazione client

Docente: Marco Sechi 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 SVANTAGGI APPLICATION SERVER 1) Lo sviluppo di tali applicazioni richiede un

Docente: Marco Sechi 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 postazione (upgrade onsite) o l’utilizzo di tecniche di software distribution che 15 determinano ulteriori costi. 4) Ogni applicazione server ha un suo specifico client sviluppato ad hoc.

Docente: Marco Sechi 5° PARADIGMA APPLICATIVO: APPLICAZIONI TERMINAL SERVER Un applicazione Terminal-server indica un

Docente: Marco Sechi 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 TERMINAL SERVER Videata VM 1 CLIENT TS 1 Input 1 A

Docente: Marco Sechi TERMINAL SERVER Videata VM 1 CLIENT TS 1 Input 1 A 77 … CLIENT TS 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 PROCESSO DI AUTENTICAZIONE NEL TERMINAL SERVER Dopo essersi autenticato la sessione

Docente: Marco Sechi 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. VM 1 VM 2 E IC T TEN ON I Z A AU VMn TA A E ID V Se il client è aperto a pieno schermo l’utente ha l’impressione di utilizzare il sistema operativo del suo PC locale 18

Docente: Marco Sechi VANTAGGI APPLICAZIONI TERMINAL SERVER Ø La centralità delle risorse (sia hardware

Docente: Marco Sechi 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 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 user. Id (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 SVANTAGGI APPLICAZIONI TERMINAL SERVER Ø Costoso: richiede macchine serventi estremamente potenti

Docente: Marco Sechi 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 4 Gb di RAM. Ø Se si ferma il Terminal Server tutti gli utenti sono bloccati per cui devo utilizzare le migliori politiche di Fault Tolerance 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 1280 x 960 pixel richiede di trasferire 1280 x 960 x 3 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 6° PARADIGMA APPLICATIVO: APPLICAZIONI WEB-BASED Un applicazione Web-Based è un'applicazione che

Docente: Marco Sechi 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 Le WEB-APP sono suddivise sempre in 2 componenti: parte client e

Docente: Marco Sechi 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 Java. Script 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 Le WEB-APP utilizzano HTML e i CSS per costruire le videate

Docente: Marco Sechi 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 • Le WEB-APP non richiedono l’installazione del client (il browser è

Docente: Marco Sechi • 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 7° PARADIGMA APPLICATIVO: LE APPLICAZIONI CLOUD Un applicazione CLOUD espande i

Docente: Marco Sechi 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 VANTAGGI APPLICAZIONI CLOUD • L’esternalizzazione dei sistemi informativi consente di evitare

Docente: Marco Sechi 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 APPROFONDIMENTI 27

Docente: Marco Sechi APPROFONDIMENTI 27

Docente: Marco Sechi APPROFONDIMENTO 1: Differenze tra Mainframe e Super. Computer Molto spesso si

Docente: Marco Sechi APPROFONDIMENTO 1: Differenze tra Mainframe e Super. Computer 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 APPROFONDIMENTO 2: Il controllo remoto INTERNET Con i programmi di controllo

Docente: Marco Sechi 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 APPROFONDIMENTO 3: Fault Tolerance La tolleranza ai guasti (o fault-tolerance, dall'inglese)

Docente: Marco Sechi 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 APPROFONDIMENTO 4: Dischi in RAID 1: Il sistema RAID 1 crea

Docente: Marco Sechi APPROFONDIMENTO 4: Dischi in 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 RAID 4: Il sistema RAID 4 usa una divisione a livello

Docente: Marco Sechi 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 APPROFONDIMENTO 5: Esempi di sistemi Client/Server • Web server: per la

Docente: Marco Sechi 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, Fire. Fox, Safari, Opera • Mail server: per la gestione della posta; o Server: QMail, Microsoft Exchange, MDaemon, Sendmail, Argo. Soft Mail. Server o Client: Microsoft Outlook, Thunderbird, Eudora, Window mail • FTP server: per la gestione dell'upload/download dei file; o Server: IIS, File. Zilla Server, Cesar. FTP o Client: Internet Explorer, WSFTP, File. Zilla Client, Win. SCP • Database server: per la gestione di grandi moli di dati; o Server: Oracle, Microsoft SQL Server, My. SQL, IBM DB 2, Postgre. SQL 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