Cloud Computingtesinacloudimoletti.altervista.org/alterpages/files/... · 2016-06-28 · Il futuro...

22
Cloud Computing Il futuro dell'informatica Scritta da Marco Junior Imoletti Classe VE

Transcript of Cloud Computingtesinacloudimoletti.altervista.org/alterpages/files/... · 2016-06-28 · Il futuro...

Cloud Computing Il futuro dell'informatica

Scritta da Marco Junior Imoletti Classe VE

Introduzione

Il cloud computing può essere definito come un nuovo approccio all'utilizzo di tecnologie

già esistenti come Internet, la virtualizzazione, o ancora il Web, ma rimodellate allo scopo di

creare una piattaforma di elaborazione che non dipende da una localizzazione fisica e che

prescinde dalle risorse hardware e software impiegate.

Al giorno d'oggi infatti i dati e i programmi non devono risiedere necessariamente sul PC

utilizzato dall'utente, ma possono essere memorizzati su internet, “in the cloud”.

I vantaggi del cloud computing non sono pochi: analizzando le infrastrutture informatiche e

le applicazioni utilizzate dalle aziende, per esempio, si può riscontrare come tali

applicazioni abbiano un costo elevato in quanto comportano la formazione di un team

capace di configurarle e di garantirne il corretto funzionamento.

Il cloud computing elimina tali problemi perché non richiede al cliente di gestire l'hardware

e il software, compito affidato invece ad un fornitore esperto, e inoltre l'utente paga solo le

funzionalità a lui necessarie.

Inoltre per consentirne il funzionamento non è necessario installare software aggiuntivi,

basta infatti utilizzare un browser per visualizzare ed utilizzare i dati e le applicazioni

salvati su server remoti centrali, da qualsiasi computer o dispositivo mobile.

Tipologia di cloud

Esistono attualmente tre diverse tipologie di cloud che possono essere identificate nei

seguenti modelli:

cloud pubblico

cloud privato

cloud ibrido

Cloud pubblico

Il cloud pubblico verte sul modello base del cloud computing, nel quale un service provider

rende disponibile all'utente, attraverso Internet, una serie di servizi, come applicazioni e

storage. Tale modello di cloud garantisce la scalabilità e la flessibilità, anche se impedisce

un controllo sull'infrastruttura e sopratutto sulle scelte riguardanti la sicurezza. L'utente

quindi non conosce dove i propri dati vengano salvati e il loro livello di sicurezza.

Cloud privato

Il cloud privato è un ambiente informatico interno all'azienda stessa, realizzato con la

virtualizzazione delle risorse e dei servizi.

Attraverso tale tipologia le aziende realizzano un ambiente cloud che rimane interno al

proprio data center, e che quindi consente di mantenere i dati più sicuri in quanto risiedono

all'interno della propria struttura operativa, risolvendo il problema della sicurezza

caratteristica dei cloud pubblici.

Cloud Ibrido

Il cloud ibrido si presenta come l'unione delle due tipologie di cloud, quello pubblico e

quello privato, cercando di sfruttare i vantaggi di uno dei due li dove l'altro è più debole.

L'infrastruttura in questa tipologia di cloud viene mantenuta contemporaneamente sia dal

provider interno che da quello esterno, attuando dei sistemi di condivisione delle risorse e

dei dati.

In base ai tipi di servizi erogati, è possibile dividere i cloud in altre tre tipologie:

IaaS (Infrastructure as a Service)nel quale l'utente può acquistare l'intera

infrastruttura IT, quindi potenza di calcolo, storage, servizi di rete utili a condividere

i propri servizi o le proprie applicazioni

PaaS (Platform as a Service) nel quale è possibile utilizzare le infrastrutture che

permettono di sviluppare , testare, e distribuire un'applicazione.

SaaS (Software as a Service) nel quale è possibile utilizzare programmi in remoto;

STORIA

L'origine storica del cloud – Da Arpanet all'attuale Internet

La storia del Cloud Computing, nonostante sembri una tecnologia recente, ha già raggiunto

l'età della maturità adulta, in quanto ha origine negli anni 60 e 70, quando John McCarty,

uno dei pionieri dell'intelligenza artificiale, immaginava un futuro in cui l' elaborazione dei

calcoli sarebbe potuta essere distribuita ed organizzata su diversi sistemi.

Ciò che ha consentito lo svilupparsi e l'evolversi del Cloud Computing è stato sicuramente

la creazione di Internet durante la guerra fredda.

Il progetto nacque ufficialmente nel 1969 sotto il nome di Arpanet, con l'obiettivo principale

di collegare tra loro computer geograficamente distanti utilizzati per scopi militari.

L'ARPA, una struttura interna al Dipartimento della Difesa Statunitense, dopo la messa in

orbita del primo satellite artificiale, lo Sputnik, da parte dell'Unione Sovietica, cercò di

riprendersi il primato americano nelle scienze applicate al settore militare sponsorizzando

vari studi in materia.

L'eco di tale impresa iniziò a diffondersi velocemente, tanto da spingere gli inglesi a

sviluppare una NPL Data Network, la prima rete a commutazione di pacchetto, creata nel

1968.

Nello stesso anno il pentagono decise di stanziare consistenti somme per sperimentare su

larga scala il progetto Arpanet.

Il primo nodo fu istallato presso la UCLA nell'anno successivo, e poco dopo i nodi

divennero quattro, per poi continuare a crescere sino al numero attuale.

Il primo messaggio venne inviato da uno dei computer del’università dallo studente Charley

Kline alle 22:30 del 29 ottobre 1969. A dover ricevere il messaggio, che consisteva nella

parola 'login', doveva essere uno dei computer connessi al nodo dei laboratori della Stanford

University, ma dopo l'invio delle prime due lettere il sistema subì un arresto improvviso e

non fu possibile completare la comunicazione. Il primo collegamento stabile tra due

computer venne realizzato il 21 novembre 1969, mentre la rete tra tutti e quattro i nodi

esistenti venne terminata il 5 dicembre di quell'anno.

Durante lo sviluppo di Arpanet, nacquero le prime reti di computer su aree locali, le reti

LAN.

L'esigenza ora , oltre che connettere tra di loro singoli computer, era quella di connettere

anche reti LAN.

Con l'aumento degli utenti aumentò anche lo sviluppo di nuove tecnologie che garantivano

il perfetto funzionamento e la perfetta efficacia della rete: verso la fine degli anni '80 ,infatti,

venne scelto come protocollo preferenziale il TCP/IP .

Nello stesso periodo in cui a Berlino viene abbattuto il famoso muro (1989), simbolo della

guerra fredda, il progetto Arpanet è ormai diventato solo un ricordo, in quanto si avvia a

essere conosciuto come Internet.

Il servizio si è esteso ora anche ad università europee ed extra-europee, creando, verso la

fine degli anni '80 una grossa rete mondiale che connetteva tutte le università.

L'accesso a Internet viene facilitato con la creazione nel 1990, da parte del CERN (Centro

Europeo Ricerche Ginevra) del World Wide Web, nato per standardizzare tutti i

collegamenti per lo scambio di informazioni. L'anno seguente, nel 1991 venne creato il

linguaggio di formattazione HTML producendo cosi le prime pagine web.

Questo incrementò ulteriormente la velocità di progresso e di diffusione di Internet, fino ad

arrivare al commercio online, ai quotidiani elettronici, a creare quello che oggi possiamo

definire come un “villaggio globale”.

Nonostante Internet si sia diffuso su larga scala, estendendosi oltre che ai grandi enti quali

governi o banche per esempio, anche a singole persone e società private, si pensava già a un

progetto chiamato Internet 2.

Tale progetto aveva come obiettivo quello di estendere e sviluppare maggiormente la rete e i

servizi da essa offerta, in modo da potenziare l'interattività e la multimedialità attraverso il

traffico vocale, le videoconferenze o ancora la TV interattiva.

Negli ultimi anni abbiamo assistito allo sviluppo di alcuni di tali progetti, tra cui un esempio

è L'Home Banking, che permette di collegarsi alla base dati della propria banca tramite l'uso

del proprio computer o dispositivo mobile.

In campo aziendale abbiamo assistito invece allo sviluppo dell'EDI, l'Electronic Data

Interchange, che consente a due o più aziende di scambiarsi dati e informazioni relativi a

ordini senza l'aiuto del supporto cartaceo, cosi come il Commercio Elettronico, o anche e-

commerce, sempre più utilizzato negli ultimi anni.

GOI

Classificazione dei costi dei sistemi informativi automatizzati

In campo economico il cloud computing viene adottato come soluzione al problema dei

costi

dell' IT delle aziende.

Fino a poco tempo fa l'IT rappresentava un valore aggiunto per le aziende, ed i suoi costi

venivano ammortizzati in termini di efficienza e produttività.

Oggi qualsiasi azienda ha a che fare con un'infrastruttura informatica, la quale rappresenta

un elevato costo di gestione, che non è altro che la somma di diverse tipologie di costi,

ovvero: costi per tipo di risorsa, costi per missione, costi interni e esterni.

1) La prima categoria di costi (costi per tipo di risorsa) comprende le tipologie

principali dei costi dell’infrastruttura che sono:

costi delle tecnologie dati dai costi hardware, che riguardano le stazioni di

lavoro, gli elaboratori periferici, gli elaboratori centrali, le periferiche e gli

apparati di telecomunicazione, e dai costi del software che riguardano i costi

del software di base, del middleware e dei pacchetti applicativi

costi del personale che consistono nei costi del personale informatico dedicato

ad attività di gestione operativa, di sviluppo e manutenzione delle

applicazioni, di assistenza utenti, di pianificazione, amministrazione e di

supporto

costi dei servizi interni e esterni per manutenzione hardware, software e delle

reti, sviluppo e manutenzione software applicativo, consulenze applicative e

sistemistiche, servizi di elaborazione dati ecc.

2)La seconda categoria invece, i costi per missione, sono dati dai costi di sviluppo e

dai costi di esercizio. Per attività di sviluppo si intendono le attività relative a progetti

che vanno ad ampliar e rinnovare il portafoglio applicativo dell’ amministrazione o ne

modifichino in modo significativo alcune parti.

I costi di sviluppo a loro volta si distinguono tra costi di costruzione (o realizzazione) e

costi di avviamento.

Il costo di costruzione rappresenta il costo necessario per ottenere un sistema da avviare.

I costi di avviamento rappresentano il valore delle attività e delle risorse necessarie per

mettere in esercizio i sistemi precedentemente costruiti.

I costi di sviluppo comprendono anche costi per l’acquisizione di apparecchiature

hardware e prodotti software aggiuntivi acquisiti per installare e/o mettere in esercizio i

nuovi sistemi o per far fronte alle cresciute esigenze dei sistemi in esercizio.

I costi di esercizio comprendono tutti i costi necessari per il corretto funzionamento dei

sistemi e l’utilizzo delle applicazioni da parte degli utenti. Ai costi di esercizio si

aggregano quelli di manutenzione che rappresentano una quota rilevante del costo

dell’IT di un’organizzazione, mediamente il 70/80% .

3)La terza categoria comprende i costi interni e costi esterni : I costi interni sono

principalmente i costi del personale informatico dell’ amministrazione impegnato nelle

attività di sviluppo e di esercizio del sistema. Accanto a questi costi interni diretti ci

sono anche i costi interni indotti legati alle attività svolte dagli utenti finali per attività

connesse alla costruzione, avviamento e utilizzo del sistema (ad es.: il tempo speso dagli

utenti per caricare i dati negli archivi).

I costi indotti valorizzano l’impatto organizzativo dei progetti informatici nelle loro

diverse fasi. Inoltre, con lo sviluppo dei modelli client/server e dell’informatica

distribuita il costo indotto relativo al tempo speso dagli utenti finali per imparare a

utilizzare e operare con le infrastrutture informatiche delle aziende è diventato molto

rilevante.

I costi esterni invece, sono quelli relativi all’acquisizione di prodotti hardware e software e

di servizi affidati a società esterne anziché svolti internamente.

Un altro problema è dovuto dalla previsione della necessità dell'infrastruttura It che non può

essere ipotizzata con precisione, principalmente per due motivi:

La reale capacità necessaria è fluttuante in quanto può variare le necessità dovuta

all'ingresso o all'uscita di clienti o alla terminazione o inizio di progetti o altre

condizioni non prevedibili.

La necessita di calcolo di alcune attività è intrinsecamente variabile per le

condizioni dell'attività stessa.

Tutti questi problemi vanno a gravare sull'infrastruttura informatica rendendola costosa e

difficile da gestire.

Per questo si è cercato di creare un servizio in grado di bypassare tutte queste

problematiche, e che possa ridurre i costi a cui devono far fronte le imprese.

La soluzione a questi problemi si traduce nella possibilità di avere un'infrastruttura IT

scalabile in base alle esigenze, vale a dire un'infrastruttura IT flessibile, che segue le

necessità di calcolo della nostra attività in real time; è un' infrastuttura “on demand”, a

consumo, e questo significa che utilizzo solo quello che mi serve, perché ho materialmente

solo quello che mi serve.

Questa infrastruttura, capace di aumentare le risorse, ma anche di rilasciarle quando non ne

ho più bisogno, consente un’ottimizzazione della spesa perché ,di volta in volta, il costo è

legato a quello che effettivamente si utilizza riducendo notevolmente gli sprechi, inoltre

l’utente finale abbatte i costi di manutenzione e gestione del personale addetto, gestione di

reti fisiche, costi legati all'acquisto di licenze di software.

TPS

I Sistemi Distribuiti

Le architetture dei sistemi informativi si sono evolute nel corso degli anni passando da

schemi centralizzati a modelli distribuiti, quali per esempio i cloud.

Nel sistema centralizzato infatti i dati e le applicazioni risiedono in un unico nodo

elaborativo, il quale viene condiviso da vari utenti e le sue risorse sono sempre accessibili,

mentre nel sistema distribuito l'elaborazione è distribuita, ovvero le applicazioni risiedono

su più host autonomi che collaborano tra di loro scambiandosi messaggi, e la base di dati è

distribuita.

I diversi vantaggi che presentano i sistemi distribuiti sono:

La scalabilità: ovvero la capacità del sistema distribuito di mantenere o migliorare le

proprie prestazioni al variare delle risorse disponibili e del numero di utenti. Le

componenti impiegate dal sistema possono quindi aumentare o diminuire senza che

la struttura del sistema debba cambiare.

L' eterogeneità: ovvero la capacità di un sistema distribuito di integrare componenti

diversi tra di loro sia per tipologia hardware che per sistema operativo.

La tolleranza ai guasti: il sistema distribuito è quindi in grado di gestire i guasti in

modo da non pregiudicare il funzionamento dell'intero sistema.

L' apertura : che sta a indicare che un sistema distribuito è costituito da hardware e

software di fornitori diversi consentendo quindi la portabilità, l'interoperabilità e

l'ampliabilità.

Di rimando, sono presenti diversi svantaggi, quali:

La complessità: in quanto i software sono più complicati da realizzare.

Problemi tipici della concorrenza: occorrono quindi dei meccanismi di supporto alla

loro gestione.

Numerosi e diversi punti di fallimento.

Problemi di sicurezza e integrità.

Un'applicazione distribuita è realizzata mediante la collaborazione di diverse entità in

esecuzione su risorse computazionali fisicamente distinte. Un sistema distribuito è quindi

un ambiente entro il quale possono operare una o più applicazioni distribuite.

Il metodo più diffuso per realizzare un'applicazione distribuita è quello client/server,

utilizzato peraltro nel cloud computing.

Il server, infatti, fornisce un servizio o un applicativo all'host che ne fa richiesta.

Per fare ciò quindi il server deve essere sempre in ascolto, e deve accettare le richieste dei

diversi utenti, attraverso più porte TCP, o UDP,ed altre porte fisse di default.

A richiesta avvenuta, il server risponde fornendo la pagina HTML, nel caso di un sito Web,

o il servizio che gli è stato richiesto.

Il client invece viene attivato su richiesta dell'utente per inviare le richieste al server,

dopodiché attende la risposta da quest'ultimo, la quale avviene su una porta allocata in modo

dinamico, dato che l'utente è singolo.

Le architetture create attraverso i concetti di client e server più utilizzate sono:

architettura client/server (C/S): la quale prevede il posizionamento del server

determinato a priori. Il vantaggio di questa architettura sta nella sua semplicità di

realizzazione, mentre i suoi svantaggi sono il sovraccarico del server e del canale di

comunicazione. Inoltre tale architettura è organizzate in livelli per cui ogni livello

svolge la funzione di server per il livello sottostante e la funzione di client per il

livello successivo.

architettura peer-to-peer(P2P):la quale prevede che ogni host può ricoprire sia il

ruolo di client e di server, in contemporanea o in tempi distinti.

Un sistema distribuito è formato da tre livelli logici, detti layer,che sono:

Layer di presentazione(P): comprende le componenti che si occupano di presentare

l'informazione verso i client, e che danno al client la possibilità di interagire con il

sistema per ottenere risultati richiesti.

Layer applicativo(A):si occupa dell'elaborazione dei dati necessari per produrre i

risultati da inoltrare al livello di presentazione.

Layer di accesso ai dati(D):si occupa di gestire i dati che sono necessari al

funzionamento dell'intero sistema.

I tre livelli logici del sistema distribuito poggiano su tre livelli detti livelli hardware, o tier, e

sono:

Single tiered system: in cui i tre livelli logici poggiano su un unico livello hardware.

Two tiered system: i livelli logici vegono divisi tra una macchina di front-end(client)

ed una di back-end(server). Sulla prima macchina è realizzato il livello di

presentazione e sul server il livello applicativo e di accesso ai dati.

Three tiered system: in cui i tre livelli sono divisi in tre livelli fisici (macchine)

diversi. Una macchina client, una macchina mid-range server (con middleware)ed

una macchina di back-end server.

SISTEMI

I Protocolli utilizzati nel cloud computing, e il protocollo FTP

I principali protocolli utilizzati nel cloud computing sono :

SMTP utilizzato per la trasmissione via internet di e-mail;

SSH il quale ha sostituito l'insicuro protocollo Telnet, e viene usato per stabilire una

sessione remota cifrata tramite interfaccia a riga di comando;

POP il quale permette, tramite autenticazione, l'accesso da parte del client ad un

account di posta elettronica presente su di un host server e la possibilità scaricare le

e-mail dall'account stesso;

HTTP usato per la trasmissione d'informazione sul web in un'architettura tipica

client-server

FTP :

Il protocollo FTP (File Transfer Protocol), è, come indicato dal suo nome, il protocollo

utilizzato per trasferire i file, basato su TCP e con architettura client-server.

E' uno dei primi protocolli definiti della rete Internet ed ha subito una lunga evoluzione

negli anni. La prima specifica, sviluppata presso il MIT (Massachusetts Institute of

Technology) , risale al 1971 (RFC-114). L'attuale specifica fa riferimento all'RFC-959,

definita nel 1984.

Gli obiettivi principali di FTP descritti nella sua RFC ufficiale furono:

Promuovere la condivisione di file (programmi o dati)

Incoraggiare l'uso indiretto o implicito di computer remoti.

Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra

host.

Trasferire dati in maniera affidabile ed efficiente.

Il protocollo FTP, per trasportare un file utilizza due canali TCP separati, che agiscono in

parallelo, cioè una connessione di controllo, e una connessione dati.

La prima connessione, detta di controllo è usata per spedire le informazioni di controllo tra

client e server, come il nome e la password dell'utente, o i comandi per la modifica della

directory remota.

La seconda connessione invece, la connessione dati, è quella utilizzata per trasferire i dati.

Il trasferimento dei dati dal server al client può avvenire secondo due tipi di collegamento:

normale o passivo.

Il client FTP nel collegamento normale (o standard) stabilisce prima di tutto una

connessione alla porta TCP 21 sul server FTP. Questa connessione instaura il canale dei

comandi FTP e successivamente il client invia un comando PORT sul canale dei comandi

FTP quando ha necessità di inviare o ricevere dati, come per esempio un elenco di cartelle o

un file. Il comando PORT contiene il numero della porta che il client FTP userà per ricevere

i dati. In questa modalità, il server FTP avvia sempre la connessione dati dalla porta TCP 20

ed apre una nuova connessione al client quando invia o riceve i dati, mentre il client FTP

effettua a sua volta la richiesta mediante il comando PORT.

Nel collegamento passivo invece il client apre due connessioni da due porte locali non

privilegiate, la prima connessione è diretta alla porta 21 del server FTP su cui il client invia

un comando PASV (è questo il canale dei comandi); il server FTP apre una porta random

(tra la 1024 e la 5000) e la comunica al client FTP , il quale apre una seconda connessione,

quella dati dalla sua seconda porta aperta all’inizio della negoziazione verso questa porta del

server.

Un server FTP offre svariate funzioni che permettono al client di interagire con il suo

filesystem e i file che lo popolano, tra cui:

Download/upload di file.

Resume di trasferimenti interrotti.

Rimozione e rinomina di file.

Creazione di directory.

Navigazione tra directory.

FTP fornisce inoltre un sistema di autenticazione in chiaro (non criptato) degli accessi.

Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali

possono essere “sniffati” o visionati da malintenzionati in determinate situazioni. Si è risolto

tale problema eseguendo la cifratura dei dati da parte di un sottolivello denominato

SSL/TLS. Tale aggiunta ha dato origine al protocollo FTPS.

Uno dei software che permette il trasferimento dei dati tra client e server utilizzando il

protocollo FTP è Filezilla disponibile sia per client che per server.

INGLESE

Computer Security

Computer security, also know as cybersecurity or IT security, is concerned with taking care

of hardware, software and data.

Loss of data can have several consequences, for example for a business decision or cash

flow probem.

Security of data is critical in almost any industry which uses computers. Currently , most

electronic devices such as computers laptops and cellphones come with built in firewall

security software, but despite this, computers are not 100 percent accurate and safe to

protect our data.

There are many different ways of hacking into computer. It can be done through network

system, clicking onto unknown links, connecting unfamiliar Wi-Fi, downloading software

and files from unsafe sites, electromagnetic radiation waves and many more.

Computer security includes controlling physical access to the hardware, as well as

protecting against harm that may come via network access, data and code injection, and due

to malpractice by operators, whether intentional, accidental, or due deviating from secure

procedures.

The security issue is becoming more and more important in our modern society that totally

relies on computer systems and technology.

A way to keep the data protected is cryptography: it consist of the conversion of

information from a readable state to apparent nonsense.

In this way the originator of an encrypted message, that has shared the decoding technique,

recovers the original information preventing unwanted persons from doing the same.

INFORMATICA

Utilizzo e importanza dei database nel Cloud Computing

Una delle principali risorse, oltre che alle unità di elaborazione, o alle memorie fisiche è

data dai database, che permettono il corretto funzionamento dei cloud.

Essi infatti devo contenere tutti i dati, o file che gli utenti hanno necessità di conservare

online, come per esempio foto, video, ma anche i codici di programmi sviluppati

direttamente sul cloud, come avviene nella tipologia di cloud Paas (Plattform As A Service).

Per questo motivo, tali database devono essere:

sicuri, in quanto devono impedire di essere danneggiati da eventi accidentali o

interventi non autorizzati

integri, deve essere garantito che le operazioni effettuate da utenti autorizzati non

provochino una perdita di consistenza dei dati

consistenti, ovvero i dati devono essere significativi ed effettivamente utilizzabili

nelle applicazioni che ne fanno richiesta

condivisibili, cioè applicazioni e utenti devono poter accedere ai dati comuni

persistenti, in quanto deve avere un tempo di vita non limitato a quello delle singole

esecuzioni dei programmi che lo utilizzano

scalabili, cioè deve mantenere intatte le proprie performance all'aumentare della

quantità di dati. Deve essere inoltre in grado di espandersi con l'aggiunta di nuove

funzionalità

Tali database vengono gestiti dai DBMS (Data Base Managment System) il quale è un

insieme di strumenti software che è in grado di gestire dati strutturati che sono tanti,

importanti, condivisi, sia interrogati che aggiornati. Inoltre è responsabile della generazione

dello schema, della ricerca e dell'aggiornamento dei dati.

Oltre ai DBMS si parla anche di RDBMS (Relation Data Managment System) ovvero un

DBMS basato sullo schema relazionale.

Un esempio di RDBMS è MySql che risulta facilmente utilizzabile in ambienti virtualizzati,

e fornisce supporto in particolare per soluzioni Cloud IaaS.

Ma dato il grosso numero di nodi che i cloud devono gestire, utilizzare un classico RDBMS

risulterebbe essere complicato, per tale motivo, nel corso degli anni, si sono sviluppati i

NRDBMS (No Relation Data Managment System), database non relazionali i quali metodi

di implementazione sono :

Coloumnfamily: i dati sono organizzati in righe e colonne, ma le righe possono

avere quante colonne si vogliono e non c’è bisogno di definire le colonne a priori.

Document store: rispetto ai normali database relazionali invece che immagazzinare

i dati in tabelle con dei campi fissi, questi vengono messi in un documento che può

contenere illimitati campi di illimitata lunghezza, così se ad esempio di una persona

conosciamo solo nome e cognome, ma magari di un’altra persona anche indirizzo,

data di nascita e codice fiscale, si evita che per il primo nominativo ci siano campi

inutilizzati che occupano inutilmente spazio.

Graph: i dati vengono immagazzinati sotto forma di strutture a grafi, rendendo più

performante l’accesso a questi da applicativi orientati agli oggetti.

Key/Value: in questo caso i dati vengono immagazzinati in un elemento che contiene

una chiave assieme ai dati veri e propri, questo metodo è il più semplice da

implementare, ma anche il più inefficiente se la maggior parte delle operazioni

riguardano soltanto una parte di un elemento.

La semplicità di questi database è uno degli elementi fondamentali, e ne permette la

scalabilità in modo efficiente, infatti, molti RDBMS consentono di aggiungere nodi a caldo

in maniera impercettibile dall’utente finale.

ITALIANO

La memoria dal punto di vista letterario: Marcel Proust

Il termine memoria oltre che essere utilizzato nel campo informatico, come visto in

precedenza, per indicare il salvataggio di informazioni sulla memoria del nostro computer o

su una in remoto, indica anche la capacità del cervello di conservare informazioni, ovvero

quella funzione mentale volta all'assimilazione, alla ritenzione e al richiamo, sotto forma di

ricordo, di informazioni apprese durante esperienze di vita o per via sensoriale.

Il concetto di memoria legato a quello del ricordo, e ai sentimenti che ne provoca, viene

affrontato nel campo letterario, in particolare da Marcel Proust, sul quale incentra la sua

poetica.

Proust, nato a Parigi nel 1871 da una famiglia benestante, conduce un'adolescenza

tranquilla, nonostante l'asma cronica che lo tormenterà per tutta la vita, e deciderà di

iscriversi ad uno dei migliori licei della capitale.

Durante gli studi liceali, oltre che coltivare la sua vocazione letteraria, stringerà diverse

amicizie che lo avvicinano ai soliti parigini, dove si confronterà con importanti poeti, e

prenderà spunto per alcune sue opere.

Terminati i brillanti studi liceali intraprende gli studi universitari, conseguendo la laurea in

legge nel 1893, alla quale seguirono gli studi artistici alla Sorbona impartiti da Henri

Bergson, il quale pensiero filosofico condizionerà le sue opere.

Nel 1905 muore, due anni dopo il padre, la madre dello scrittore, un momento che risulta fra

i più dolorosi della sua vita.

Proust lascerà la casa dei genitori per trasferirsi a Boulevard Haussmann dove farà istallare

la una camera interamente rivestita di sughero e isolata da ogni rumore esterno. È all'inizio

del 1907 circa, che avvia la stesura della sua opera più ambiziosa, “Alla ricerca del tempo

perduto”(À la recherche du temps perdu).

Nonostante lo scoppio della prima Guerra Mondiale nel 1914, e la morte di alcune persone

care di Proust, lui continua a lavorare al suo romanzo pubblicando con regolarità i vari

volumi.

Sempre più isolato, Proust sta terminando la revisione definitiva della "Prigioniera", il

quinto volume della sua opera, quando, nell'ottobre del 1922, si ammala di bronchite.

Rifiutando qualsiasi assistenza medica, cerca di resistere agli attacchi della malattia, resi più

violenti e dolorosi dall'asma, e continua la stesura della "Fuggitiva", che riuscirà a portare a

termine, per poi spegnersi 18 novembre 1922.

L'opera è divisa in sette romanzi, intitolati:

I. Dalla parte di Swann (1913)

II. All'ombra delle fanciulle in fiore (1919)

III. I Guermantes (1920)

IV. Sodoma e Gomorra (1921-1922)

V. La prigioniera (1923)

VI. La fuggitiva (1927)

VII. Il tempo ritrovato (1927)

Nella sua opera, la Recherche, Proust spiega quelli che sono i meccanismi secondo i quali si

avvia il recupero della memoria che è alla base della sua narrazione: in primo luogo il

recupero del passato non avviene attraverso la “memoria volontaria”, la quale comporta uno

sforzo di volontà da parte dell'autore e ci dipinge un quadro freddo e asettico, ma attraverso

la “memoria involontaria”, quella che è capace di restituire in modo irrazionale episodi del

passato che si credevano perduti per sempre, facendoli rivivere come fossero presente e

provando quindi le medesime sensazioni.

Per risvegliare e mettere in azione questa memoria, basta lo stimolo di una sensazione

visiva, o olfattiva, come un profumo o un sapore, perché dentro di noi riaffiori un ricordo

che è legato a quella percezione. Ciò che ha il potere di far ritrovare i giorni trascorsi, che la

memoria volontaria non riesce a rievocare, sono quei momenti in cui ad una situazione

attuale viene a sovrapporsi una situazione passata simile, che restituisce all’autore un

frammento di vita trascorsa e fa rivivere “altrettanto fedelmente ciò che noi eravamo allora;

questo frammento di tempo non può essere rivissuto se non dalla nostra sensibilità, dalla

nostra persona di allora”.

Questa concezione è sviluppata in particolar modo nel primo e nell'ultimo volume dell'opera

proustiana (rispettivamente 'Dalla parte di Swann' e 'Il tempo ritrovato'), composte negli

stessi anni .

Nel primo volume, infatti, nel capitolo 'Le intermittenze del cuore', c'è la rievocazione dei

periodi della fanciullezza , che Marcel, il protagonista, ha trascorso a Combray, dove tra

l'altro è entrato in contatto con i duchi di Guermantes, e Swann, un gentiluomo marito di

una cortigiana.

Tutti questi ricordi, vengono rivissuti dal protagonista, solo dopo aver imbevuto nel tè la

madaleine, azione che faceva da piccolo e che, attraverso la memoria volontaria gli ha fatto

rivivere la sua infanzia.

La scrittura di Proust tende ad una cristallina precisione, a fare estrema chiarezza attraverso

uno stile minutamente analitico e essenziale.

La Recherche è quindi un'opera innovatrice, non solo per lo stile impiegato dallo scrittore,

ma anche per la particolare importanza che in essa assume il tema del tempo, e per

l'eccezionale prospettiva soggettiva ed emotiva dell'autore, che attraverso la realtà parigina

dell'alta società francese, fa rivivere nel soggetto gli eventi trascorsi della sua vita.

MATEMATICA

Gli integrali

Integrali indefiniti

L'insieme di tutte le primitive F(x)+c di una funzione f(x), avente per c un numero reale

qualunque, si chiama integrale indefinito della funzione f(x), e si indica con ∫f(x) dx.

Prima proprietà di linearità

L'integrale indefinito di una somma di funzioni è uguale alla somma degli integrali delle

singole funzioni:

∫[f(x)+g(x)]dx = ∫f(x) dx + ∫g(x) dx

Seconda proprietà di linearità

L'integrale del prodotto di una costante per una funzione integrabile è uguale al prodotto

della costante per l'integrale della funzione.

∫k f(x) dx = k ∫f(x) dx

Integrali immediati delle funzioni fondamentali

∫sen x dx = - cos x + c ∫ dx = ln |x| + c

∫cos x dx = sen x + c ∫ dx = tg x + c

∫xa dx = + c ∫ a

x dx = dx = + c

1

x

1

cos x

xa

+1 a+1

ax

ln a

Integrazione per sostituzione

Quando l'integrale non è di risoluzione immediata si può applicare il metodo di sostituzione,

che consiste nell'effettuare un cambiamento di variabile che consenta di riscrivere l'integrale

in una forma che sappiamo risolvere.

In generale, per calcolare ∫f(x) dx con il metodo di sostituzione si pone x = g(t), si

sostituisce nell'integrale e si risolve. Infine si scrive il risultato in funzione di x.

Integrazione per parti

Date due funzioni f(x) e g(x) derivabili, l'integrale del loro prodotto, dove una funzione è

guardabile come derivata, è uguale al prodotto delle funzioni meno il prodotto delle due

funzioni scambiando la funzione derivata.

∫f(x) g'(x)dx = f(x) g(x) - ∫f '(x) g(x) dx

Integrazione di funzioni razionali fratte

Dato l'integrale di funzioni razionali fratte ∫ , dove il numeratore N(x) e il

denominatore D(x) sono dei polinomi, e in cui il grado del numeratore è maggiore di quello

del denominatore, occorre eseguire la divisione del polinomio N(x) per il polinomio D(x),

ottenendo un polinomio quoziente Q(x) e un polinomio resto R(x) di grado minore di quello

di D(x):

∫ = Q(x) +

da cui:

∫[ dx = ∫[Q(x) + ]dx = ∫Q(x) dx + ∫ dx

N(x)

D(x)

N(x)

D(x) R(x)

D(x)

N(x)

D(x)

R(x)

D(x)

R(x)

D(x)

Numeratore derivata del denominatore

L'integrale indefinito di una funzione fratta in cui il numeratore è la derivata del

denominatore è uguale al logaritmo del valore assoluto del denominatore.

∫ dx = ln | f(x) | + c

denominatore di primo grado

Nel caso in cui la frazione algebrica ha il denominatore di primo grado, si risolve nello

stesso modo in cui il numeratore è la derivata del denominatore.

Basta infatti moltiplicare la frazione per e applicare la seconda proprietà di linearità:

∫[ dx = ∫ dx = ln | ax + b | + c

denominatore di secondo grado

Per calcolare l'integrale ∫[ dx , con a ≠ 0, si utilizzano metodi risolutivi

diversi a seconda del segno del discriminante del denominatore Δ = b2

- 4 ac.

Il discriminante è positivo: Δ > 0:

1. si scompone il denominatore: ax2

+bx + c =a(x-x1)(x-x2);

2. si scrive la frazione data come somma di frazioni con denominatore di primo

grado:

= +

3. si calcola la somma delle due frazioni al secondo membro

4. si determinano i valori di A e B risolvendo il sistema le cui equazioni si

ottengono uguagliando fra loro i coefficienti della x e i termini noti

5. si risolve l'integrale ∫[ + ] dx

f '(x)

f (x)

a

a

1

ax + b

1

a

a

ax + b 1

a

pq + q

ax2 + bx + c

pq

ax2 + bx + c

A

a(x - x1)

B

(x -x2)

A

a(x - x1)

B

(x -x2)

Il discriminante è nullo: Δ =0:

1. si scompone il denominatore: ax2 + bx + c = a (x - x1)

2

2. si scrive la frazione data come somma di de funzioni:

= +

3. si calcola la somma delle frazioni al secondo membro

4. si determinano i valori di A e B risolvendo il sistema le cui equazioni si

ottengono uguagliano i coefficienti della x e i termini noti

5. si risolve l'integrale ∫[ + ] dx

Integrali definiti

L'integrale si dice definito quando si individuano i limiti di integrazione. L'intervallo viene

calcolato nell'intervallo [a;b] che deve essere compreso nel campo di esistenza .

a∫ b

f(x) dx = F(b) - F(a)

Integrale della somma di funzioni

Se f(x) e g(x) sono funzioni integrabili su [a;b], allora lo è anche la loro somma f(x) + g(x),

e risulta: a∫

b [f(x) + g(x)] dx = a∫

b f(x) dx + a∫

b g(x) dx

Integrale del prodotto di una costante per una funzione

Se f(x) è una funzione integrabile su [a;b]. allora lo è anche la funzione k · f(x), con k Є R, e

risulta:

pq

ax2 + bx + c

A

a(x - x1)

B

(x -x2)

A

a(x - x1)

B

(x -x2)

a∫ b

k · f(x) dx = k · a∫ b

f(x) dx

Integrale di una funzione costante

Se una funzione f(x) è costante nell'intervallo [a;b]. cioè f(x) = k, allora l'integrale da a a n

della f(x) è uguale al prodotto di k per (b – a):

a∫ b

k dx = k (b – a)

Teorema della media

Se f(x) è una funzione continua in un intervallo [a;b], esiste almeno un punto z

dell'intervallo tale che :

a∫ b

f(x) dx = (b – a) · f(z)

con z Є [a;b]

Valore medio di una funzione

Il teorema della media afferma l'esistenza del punto z, ma non fornisce indicazioni su come

calcolarlo. Tuttavia è possibile ricavare f(z) dall'uguaglianza a∫ b

f(x) dx = (b – a) · f(z)

dividendo entrambi i membri per b – a e scrivendo l'uguaglianza da sinistra a destra :

f(z)= · a∫ b

f(x) dx

Il valore f(z) definito valore medio della funzione f(x).

1

ax + b