Unità 7: Capire L'infrastruttura Digitale Livello 3 - Approfondimento
Unità 7: Capire L'infrastruttura Digitale Livello 3 - Approfondimento
Unità 7: Capire L'infrastruttura Digitale Livello 3 - Approfondimento
7
Capire l’infrastruttura digitale
Livello 3 - approfondimento
• Architetture Digitali.
• Architetture Web
• Service Oriented Architecture (SOA).
• Cloud Computing
Som m ario
ARCHITETTURE: C’ERA UNA VOLTA… ................................................................................................................................ 1
ARCHITETTURE PER I SERVIZI ............................................................................................................................................. 3
SOA E INNOVAZIONE ......................................................................................................................................................... 3
DALLA SOA AL CLOUD ........................................................................................................................................................ 3
CLOUD: I SERVIZI ................................................................................................................................................................ 4
CLOUD COMPUTING: VANTAGGI E SVANTAGGI ............................................................................................................... 6
BIBLIOGRAFIA .................................................................................................................................................................... 7
ARCHITETTURE: C’ERA UNA VOLTA…
In origine il software applicativo, cioè lo strato superiore dell'architettura software era costituito quasi
esclusivamente da software sviluppato su specifiche o almeno sulla base dei requisiti comunicati dall'azienda
stessa.
A partire dagli anni '90 si è andato sempre più affermando l'acquisto di prodotti applicativi che supportano in
modo integrato i processi gestionali delle aziende, riferendosi spesso a riconosciute “best practices”.
Tali prodotti hanno preso il nome di prodotti ERP (Entrerprise Resource Planning) e hanno costituito e ancora
costituiscono la componente dominante dell'architettura software delle aziende medio-grandi, ma sono molto
diffusi, nelle versioni più semplici, anche nelle aziende più piccole.
Tali prodotti presentano una ampia gamma di parametri in modo da potersi adattare alle diverse situazioni
aziendali. L'assegnazione di tali parametri, che richiede le competenze di un analista di processi più che di un
programmatore, prende il nome di “customizzazione” del prodotto.
Per far fronte a situazioni dove l'assegnazione dei parametri non è sufficiente a soddisfare le esigenze di
supporto ai processi di una certa azienda, i prodotti ERP offrono un linguaggio di programmazione con il quale si
possono arricchire le funzioni generali del prodotto con funzionalità “ad hoc”.
Questa attività che richiede competenze combinate di analisi di processo e di programmazione, prende il nome
di “personalizzazione del prodotto”.
E' ovvio che i prodotti ERP diventano parte rilevante dell'architettura delle aziende che li adottano e un
investimento, fra licenze, customizzazione ed eventuali personalizzazioni, assai cospicuo, oltre a costituire una
forte dipendenza dal fornitore che adegua progressivamente il prodotto alle nuove normative o aggiungendo
ulteriori funzionalità.
Pertanto, come per ogni prodotto strategico acquisibile sul mercato è necessario salvaguardare l'investimento
considerando l'affidabilità del fornitore e la rilevanza del prodotto sul mercato, oltre naturalmente alla
valutazione dell'aderenza dei processi supportati rispetto agli obiettivi dell'azienda.
Per architettura digitale si intende l'insieme dei criteri in base ai quali è progettato e realizzato un sistema
informatico o un dispositivo che ne fa parte.
L'architettura software è l'organizzazione fondamentale di un sistema, definita dai suoi componenti, dalle
relazioni reciproche fra i componenti e tra questi ultimi e l'ambiente.
Descrivere l'architettura software significa elencarne le parti costituenti ed illustrarne i rapporti interfunzionali.
Possiamo semplificare gli elementi di base che compongono un’applicazione informatica in questo modo:
• Dati
Sono i dati da trattare (dati sugli utenti, sul servizio offerto…).
• Logica
È la logica applicativa (business logic), ovvero le funzionalità che l’applicazione deve offrire, il tipo di
trattamento dei dati previsto, quali operazioni si possono fare…
• Interfaccia
Può essere una interfaccia web (ad esempio un browser), o una interfaccia stand-alone (installata sulla
macchina su cui è presente l’applicativo software al completo).
Questi elementi vengono gestiti nelle differenti architetture. Le Architetture monoliti erano popolari ai tempi dei
mainframe (il mainframe o sistema centrale è una tipologia di computer caratterizzata da prestazioni di
elaborazione di alto livello di tipo centralizzato), erano praticamente composti dal codice indivisibile che
controllava l’intera logica dell’applicazione, dalla gestione (e memorizzazione) dei dati all’interfaccia utente.
I mainframe erano adatti a eseguire pochi processi stand-alone, anziché diversi processi comunicanti. All’epoca
non esistevano ancora le basi dati.
Le Architetture client/server Sono nate alla fine degli anni ‘70 e sono state gestite fino alla metà degli anni ’80.
Consistevano in server più piccoli ed economici dei mainframe e in workstations (stazioni di lavoro) e PC. Erano
presenti le basi dati e le applicazioni erano suddivise in due parti:
▪ Back-end (server): gestione di database e dei compiti di manipolazione dei dati.
▪ Front-end (client ) : gestione interfaccia utente.
All’inizio degli anni ’90 vengono introdotte le Architetture a tre livelli (three-tier) che gestivano in modo esplicito
l’aspetto della logica riportandola a livello architetturale.
In questo caso i tre livelli sono:
▪ livello 1 : gestione dei dati (DBMS, file XML, …..),
▪ livello 2 : business logic, logica (processamento dei dati, …),
▪ livello 3 : interfaccia utente (presentazione dei dati, servizi).
Ogni livello ha i suoi obiettivi e vincoli e nessun livello interviene sugli altri. Inoltre non c’è comunicazione diretta
tra livello 1 e livello 3:
L’evoluzione dell’architettura a tre livelli in architettura web-based avviene soprattutto con la presenza di
Internet, queste applicazioni hanno:
▪ Interfaccia utente: gestita sul browser utente.
▪ Logica applicativa: gestita sul server, che si interfaccia al web attraverso il web server.
▪ Livello dei dati: su database, eventualmente localizzato su una macchina diversa da quella del web
server per questioni di sicurezza.
ARCHITETTURE PER I SERVIZI
L’ulteriore evoluzione delle architetture web-based ha permesso di gestire le esigenze funzionali e applicative
non più con dei sistemi dedicati ma con servizi forniti in base alle necessità.
Un servizio è una funzionalità (di business) realizzata tramite un componente che rispetta un'interfaccia.
La Service-Oriented Architecture (SOA) è un’architettura che utilizza una logica orientata ai servizi per
supportare le esigenze degli utenti decomponendo le singole applicazioni in funzioni elementari riutilizzabili.
Nell'architettura SOA è possibile modificare, in maniera relativamente semplice, le modalità di interazione tra i
servizi e la combinazione con cui i servizi vengono utilizzati nel processo, così come diventa più agevole
aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business.
Il processo di business non è più vincolato a una specifica piattaforma o a un'applicazione, ma può essere
considerato come un componente di un processo più ampio e quindi riutilizzabile o modificabile.
La SOA agevola l'interazione tra le diverse realtà permettendo alle attività di business di sviluppare processi
efficienti, sia internamente sia esternamente, e aumentare di conseguenza la flessibilità e l'adattabilità.
SOA E INNOVAZIONE
La SOA è come il guardaroba: ciascun servizio è come un capo d’abbigliamento e questi servizi possono essere
integrati in modo flessibile.
DALLA SOA AL CLOUD
Da un punto di vista architetturale, il cloud condivide col SOA l’orientamento ai servizi. Esistono però differenze
tra i due concetti: nella SOA, il servizio è un principio di progettazione e architettura del sistema.
Il Cloud Computing invece colloca il concetto di servizio ad un livello di generalità e astrazione maggiore.
Per il Cloud il servizio è il rapporto tra l’utilizzatore e la generica risorsa computazionale di interesse, in questo
contesto il software costituisce solo un sottoinsieme del dominio complessivo del servizio fornito.
Con il Cloud il principio di service-oriented-computing evolve verso l’idea di computing-as-a-service: applicazioni,
piattaforme, funzionalità di rete, dispositivi di calcolo e di memorizzazione vengono offerti come servizi.
La metafora della nuvola (Cloud) è usata spesso nei diagrammi di rete (rappresenta una rete a scatola nera).
Una nuvola è infatti, per sua natura, opaca e, di solito, è considerata molto grande e distante così come nel cloud
computing la realizzazione interna è opaca, i confini sono spesso sfumati.
Poi, le nuvole si possono sovrapporre e le nuvole possono cambiare dinamicamente forma, così come le
dinamiche del cloud computing.
Il Cloud Computing è il risultato della stretta interconnessione tra ricerca scientifica e tecnologia informatica
sviluppatasi negli ultimi trent’anni.
La ricerca scientifica su scala mondiale richiedeva e richiede grandi quantità di risorse di calcolo e grandi quantità
di dati geograficamente distribuiti.
In questo modo nasce il Grid Computing, ovvero l’infrastruttura basata su Internet per la realizzazione di e-
Science a livello globale. Le risorse vengono condivise e non ci si limita solo allo scambio di file ma si ha anche
accesso diretto a computer, software e hardware. In questo modo aumentano le risorse computazionali a tutto
tondo.
Il Sistema GRID
La più grande Grid europea è quella del CERN di Ginevra in Svizzera, che viene utilizzata per la condivisione delle
risorse di calcolo per il processo di trasformazione dell’acceleratore di particelle europeo.
Il Grid collega il CERN a undici centri situati in Europa, Canada, Asia con l’obiettivo di registrare i dati
dell’acceleratore di particelle.
La necessità non solo dei ricercatori scientifici, ma anche del mondo del business di condividere delle risorse
distribuite, ha guardato alla creazione e alla condivisione di potenze di calcolo e di risorse passando dal concetto
di Grid alla Utility Computing, e la Utility Computing ha generato la possibilità di fornire servizi a consumo
(Information Utilities).
CLOUD: I SERVIZI
persone, ad esempio l’email,
2. Private Cloud
L’infrastruttura di cloud è solo per una singola organizzazione e può essere gestita
dall’organizzazione stessa o da terze parti (nota: secondo alcune definizioni questa però non è
considerata propriamente una forma di cloud computing).
Caratteristiche:
▪ servizi e infrastrutture mantenute in una rete privata,
▪ livello di sicurezza e controllo alto,
▪ costi di acquisto e mantenimento del software e infrastrutture,
▪ meno vantaggi sui costi.
Un cloud privato risulta la scelta migliore se:
- il business consiste nella gestione dei propri dati e dei propri applicativi, e
pertanto il controllo e la sicurezza sono fondamentali;
3. Hybrid Cloud
L’infrastruttura di cloud è la composizione di due o più cloud che rimangono però come entità
separate, ma che sono legate insieme per sostenere la portabilità di dati e/o delle applicazioni.
Caratteristiche:
▪ utilizzo di public cloud e private cloud per la gestione delle risorse,
▪ gestione di multiple cloud come un’unica entità.
possibili problematiche:
- rendere possibile comunicazione tra più cloud,
- garantire sicurezza di comunicazione.
4. Community Cloud
L’infrastruttura di cloud è condivisa da più organizzazioni e sostiene gli interessi di questa
comunità di organizzazioni, può essere gestita dalla comunità stessa o da terzi.
CLOUD COMPUTING: VANTAGGI E SVANTAGGI
Per utilizzare le architetture e i servizi cloud è utile capire quali sono i vantaggi e gli svantaggi che possiamo
avere come utenti per poter poi scegliere, secondo i bisogni, se usare o meno le potenzialità di questi servizi.
Vantaggi per l’utente
ü Nessun software da scaricare e installare sul proprio computer.
ü Non si deve acquistare una licenza software. Ci si abbona al servizio, che spesso è gratuito.
ü Nessuna necessità di upgrade del software quando vengono aggiunte nuove funzioni o eliminati
problemi esistenti.
ü Si può accedere ai propri documenti da ogni computer connesso in rete.
ü È possibile condividere i documenti con altri utenti, senza bisogno di un proprio server.
ü Nessun problema in caso di crash del proprio computer: i documenti sono al sicuro sul server.
Allo stesso modo, dal punto di vista di organizzazioni e aziende che intendano utilizzare servizi cloud per il
proprio business, è utile considerare i vantaggi e gli svantaggi forniti da queste architetture.
Vantaggi per le aziende
ü Eliminazione/riduzione delle infrastrutture software/hardware e dei costi del personale per la gestione dei
sistemi.
ü Riduzione/eliminazione dei costi fissi.
ü Scalabilità dei servizi: tutto quello che serve, quando serve, solo se serve.
ü Costi pay-per-use.
Ø La conservazione dei dati in luoghi geografici differenti ha riflessi immediati su:
- la normativa applicabile in caso di contenzioso tra l’utente e il fornitore,
- le disposizioni nazionali che disciplinano il trattamento, l’archiviazione e la sicurezza dei dati.
Ø L’adozione da parte del fornitore di tecnologie proprie può rendere complessa per l’utente:
- la transizione di dati e documenti da un sistema cloud ad un altro,
- lo scambio di informazioni con soggetti che utilizzano servizi cloud di fornitori differenti,
- portabilità e l’interoperabilità dei dati a rischio.
Il fornitore dei servizi cloud, in base al tipo di servizio offerto, si assume la responsabilità di preservare la
riservatezza dei dati, preservare l’integrità dei dati, preservare la disponibilità dei dati.
BIBLIOGRAFIA
TITOLO AUTORE EDIZIONI ANNO
Introduzione alle service oriented architecture Nestore Fantuzzi Hoepli 2008
(SOA)