UNIVERSITÀ DELLA CALABRIA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea in Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DELLA CALABRIA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea in Informatica"

Transcript

1 UNIVERSITÀ DELLA CALABRIA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea in Informatica TESI DI LAUREA Un File Management su Cloud Relatore Calimeri Francesco Candidato Coscarella Valentina matr Anno Accademico 2010/2011

2 Ai miei genitori. per aver reso possibile tutto ciò

3 INDICE 1 INTRODUZIONE Contesto e Motivazioni Attività Svolte e Risultati Ottenuti TECNOLOGIE E STRUMENTI UTILIZZATI PER LO SVILUPPO DEL PROGETTO Tecnologie e Metodologie Cloud Computing Html Ajax Xhtml Mobile Profile Applet Java Ambienti e Strumenti Php Ftp Ssh MySql Apache Http Server YOUR FILES ANYWHERE Architettura dell applicazione Your Files Anywhere su PC Descrizione Funzionalità dell applicazione Casi d uso Your Files Anywhere su Mobile Descrizione Funzionalità dell applicazione Casi d uso FUNZIONI PRELIMINARI (BETA) CONCLUSIONI BIBLIOGRAFIA SITOGRAFIA RINGRAZIAMENTI... 43

4 Un File Management su Cloud 2 1 INTRODUZIONE 1.1 Contesto e Motivazioni Tenere il passo con le nuove tecnologie è a dir poco difficile se non impossibile. Negli ultimi anni siamo stati testimoni di innumerevoli cambiamenti e progressi, in ogni ambito dall informatica, dalla portabilità alla condivisione dei file. Se prima l hard disk del nostro computer, era l unico posto dove memorizzare tutti i nostri file, con l avanzare della tecnologie si è passati all utilizzo dei dispositivi portatili, fino ad arrivare al cloud computing. Il cloud computing è l insieme di tecnologie informatiche che permettono l utilizzo di risorse hardware e software distribuite on line, basandosi su Applicazioni Web. Quest ultime sono applicazioni accessibili via web, che forniscono ad un qualsiasi client funzioni applicative, attraverso i normali browser. In altre parole, il cloud computing consente la gestione on line delle applicazioni e delle attività, indipendentemente dal dispositivo che si sta utilizzando. Proviamo ad immaginare il web come un cielo pieno di nuvole, clouds appunto, e immaginiamo che ogni file risieda su ognuna di essa: ecco, per noi sarebbe possibile accedere al nostro file in qualunque istante e da qualsiasi luogo in cui ci troviamo, senza doverci preoccupare di altro. Un hosting service provider, o un insieme di essi, si occuperà di gestire l architettura, l hardware ed il software, la sicurezza dei dati, mentre l utente finale dovrà solo accedere ai suoi documenti e programmi via internet.

5 Un File Management su Cloud 3 Se oltre ai file pensiamo a spostare sul cloud anche gli applicativi, è facile immaginare una immediata riduzione dei costi avendo, per di più, sempre a disposizione le versioni più aggiornate dei programmi. L interesse per il web e la voglia di ascoltare la nostra musica dovunque ci troviamo, associate alla curiosità che nutriamo verso il cloud computing, ci hanno spinto a sviluppare un applicazione web tramite cui è possibile fruire dei propri contenuti, senza l installazione di alcun software. La scelta delle ultime tecnologie web per realizzare l applicazione, quali AJAX e HTML5, è dovuta alla possibilità di imparare il più possibile da un lavoro che si basa sulla combinazione di più tecnologie. Ad ajax e html, si aggiungono php, applet java, mysql e xhtml mp, la cui trattazione verrà approfondita all interno di questo lavoro di tesi. 1.2 Attività Svolte e Risultati Ottenuti L applicazione web è stata sviluppata integrando php, ajax e html, servendosi di alcuni protocolli come FTP, per la connessione con il server. Si è reso necessario poi, in un particolare caso, l aggiunta di un applet java integrata in una delle pagine della nostra applicazione, per fornire all utente un ulteriore servizio. Il risultato finale è un file management su Cloud. L utente avrà a disposizione, sul server, una home personale a cui accedere, e da cui gestire tutti i propri file, organizzandoli in cartelle, e effettuando diverse operazioni, quali: Caricare; Scaricare; Cancellare; Condividere;

6 Un File Management su Cloud 4 E sempre direttamente dal web browser l utente avrà la possibilità di Visualizzare le immagini; Leggere i file di testo; Ascoltare i file audio; Guadare i file video; Altra funzionalità messa a disposizione all utente è la sincronizzazione di file e cartelle da locale a remoto e viceversa. Molto utile per tenere in costante aggiornamento tutti i file personali.

7 Un File Management su Cloud 5 2 TECNOLOGIE E STRUMENTI UTILIZZATI PER LO SVILUPPO DEL PROGETTO 2.1 Tecnologie e Metodologie Cloud Computing In informatica con il termine inglese cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio offerto da un provider al cliente, di memorizzare/archiviare e/o elaborare dati (tramite CPU o software) grazie all'utilizzo di risorse hardware/software distribuite e virtualizzate in Rete. La correttezza nell'uso del termine è contestato da molti esperti: se queste tecnologie sono viste da alcuni analisti come una maggiore evoluzione tecnologica offerta dalla rete Internet, da altri, sono invece considerate una trappola di marketing. È noto come, utilizzando varie tipologie di unità di elaborazione (CPU), memorie di massa fisse o mobili come ram, dischi rigidi interni o esterni, Cd/DVD, chiavi USB, eccetera, un computer sia in grado di elaborare, archiviare, recuperare programmi e dati. Nel caso di computer collegati in rete locale (lan) o geografica (wan) la possibilità di elaborazione/archiviazione/recupero può essere estesa ad altri computer e dispositivi remoti dislocati sulla rete stessa. Sfruttando la tecnologia del cloud computing gli utenti collegati ad un cloud

8 Un File Management su Cloud 6 provider possono svolgere tutte queste mansioni, anche tramite un semplice internet browser. Possono, ad esempio, utilizzare software remoti non direttamente installati sul proprio computer e salvare dati su memorie di massa on-line predisposte dal provider stesso (sfruttando sia reti via cavo che senza fili). Nonostante il termine sia piuttosto vago e sembri essere utilizzato in diversi contesti con significati differenti tra loro, si possono distinguere tre tipologie fondamentali di cloud Computing: SaaS (Software as a Service) - Consiste nell'utilizzo di programmi in remoto, spesso attraverso un server web. Questo acronimo condivide in parte la filosofia di un termine oggi in disuso, ASP (Application service provider). PaaS (Platform as a Service) - È simile al SaaS, ma, invece che uno o più programmi singoli, viene eseguita in remoto una piattaforma software che può essere costituita da diversi servizi, programmi, librerie, etc. IaaS (Infrastructure as a Service) - Utilizzo di risorse hardware in remoto. Questo tipo di Cloud è quasi un sinonimo di Grid Computing, ma con una caratteristica imprescindibile: le risorse vengono utilizzate su richiesta o domanda al momento in cui un cliente ne ha bisogno, non vengono assegnate a prescindere dal loro utilizzo effettivo. Il termine cloud computing si differenzia però da grid computing che è invece un paradigma orientato al calcolo distribuito, e in generale, richiede che le applicazioni siano progettate in modo specifico. Nel caso di funzionalità di memorizzazione in remoto la creazione di una copia di sicurezza (backup) è automatica e l'operatività si trasferisce tutta online mentre i dati sono memorizzati in server farm generalmente localizzate nei Paesi di origine del service provider. Il Cloud Computing rende disponibili all'utilizzatore le risorse come se fossero implementate da sistemi (server o periferiche personali) "standard". L'implementazione effettiva delle risorse non è definita in modo dettagliato; anzi l'idea è proprio che l'implementazione sia un insieme eterogeneo e distribuito

9 Un File Management su Cloud 7 the cloud, in inglese nuvola di risorse le cui caratteristiche non sono note all'utilizzatore. Il sistema del cloud computing prevede tre fattori distinti: Fornitore di servizi (cloud provider) Offre servizi (server virtuali, storage, applicazioni complete) generalmente secondo un modello "pay-per-use"; Cliente amministratore Sceglie e configura i servizi offerti dal fornitore, generalmente offrendo un valore aggiunto come ad esempio applicazioni software; Cliente finale Utilizza i servizi opportunamente configurati dal cliente amministratore. In determinati casi d'uso il cliente amministratore e il cliente finale possono coincidere. Ad esempio un cliente può utilizzare un servizio di storage per effettuare il backup dei propri dati, in questo caso il cliente finale provvede a configurare e utilizzare il servizio. L'architettura del cloud computing prevede uno o più server reali, generalmente in architettura ad alta affidabilità e fisicamente collocati presso il data center del fornitore del servizio.

10 Un File Management su Cloud 8 Il fornitore di servizi espone delle interfacce per elencare e gestire i propri servizi. Il cliente amministratore utilizza tali interfacce per selezionare il servizio richiesto (ad esempio un server virtuale completo oppure solo storage) e per amministrarlo (configurazione, attivazione, disattivazione). Il cliente finale utilizza il servizio configurato dal cliente amministratore. Le caratteristiche fisiche dell'implementazione (server reale, localizzazione del data center) sono irrilevanti. I sistemi di cloud computing vengono criticati principalmente per l'esposizione degli utenti a rischi legati a: 1) Sicurezza informatica e privacy degli utenti: Utilizzare un servizio di cloud computing per memorizzare dati personali o sensibili, espone l'utente a potenziali problemi di violazione della privacy. I dati personali vengono memorizzati nelle Server Farms di aziende che spesso risiedono in uno stato diverso da quello dell'utente. Il cloud provider, in caso di comportamento scorretto o malevolo, potrebbe accedere ai dati personali per eseguire ricerche di mercato e profilazione degli utenti. Con i collegamenti wireless, il rischio sicurezza aumenta e si è maggiormente esposti ai casi di pirateria informatica a causa della minore sicurezza offerta dalle reti senza fili. In presenza di atti illegali, come appropriazione indebita o illegale di dati personali, il danno potrebbe essere molto grave per l'utente, con difficoltà di raggiungere soluzioni giuridiche e/o rimborsi se il fornitore risiede in uno stato diverso da paese dell'utente. Nel caso di industrie o aziende, tutti i dati memorizzati nelle memorie esterne sono seriamente esposti a eventuali casi di spionaggio industriale. 2) Problemi internazionali di tipo economico e politico Possono verificarsi quando dati pubblici sono raccolti e conservati in archivi privati, situati in un paese diverso da quelli degli utenti della "nube". Produzioni cruciali e di carattere intellettuale insieme ad una grande quantità di informazioni personali sono memorizzate crescentemente in forma di dati digitali in archivi privati centralizzati e parzialmente accessibili. Nessuna garanzia viene data agli utenti per un libero accesso futuro.

11 Un File Management su Cloud 9 Altre problematiche sono legate alla localizzazione degli archivi della "nube" in alcuni paesi ricchi. Se non regolato da specifiche norme internazionali ciò potrebbe: 1. aumentare il "digital divide" tra paesi ricchi e poveri (se l'accesso alle conoscenze memorizzate non sarà liberamente garantita a tutti). 2. favorire principalmente grandi corporation con «organismi policentrici" e "menti monocentriche" dislocate principalmente nei Paesi della "nuvola", essendo la proprietà immateriale considerata come un fattore strategico per le moderne economie "knowledge-based". 3) Continuità del servizio offerto: Delegando a un servizio esterno la gestione dei dati e la loro elaborazione l'utente si trova fortemente limitato nel caso in cui i suddetti servizi non siano operativi (out of service). Un eventuale malfunzionamento inoltre colpirebbe un numero molto elevato di persone contemporaneamente dato che questi sono servizi condivisi. Anche se i migliori servizi di cloud computing utilizzano architetture ridondate e personale qualificato al fine di evitare malfunzionamenti dei sistema e ridurre la probabilità di guasti visibili dall'utente finale, non eliminano del tutto il problema. Bisogna anche considerare che tutto si basa sulla possibilità di avere una connessione Internet ad alta velocità sia in download che in upload e che anche nel caso di una interruzione della connessione dovuta al proprio Internet Service Provider/ISP si ha la completa paralisi delle attività. 4) Difficoltà di migrazione dei dati nel caso di un eventuale cambio del gestore dei servizi cloud: Non esistendo uno standard definito tra i gestori dei servizi un eventuale cambio di operatore risulta estremamente complesso. Tutto ciò risulterebbe estremamente dannoso in caso di fallimento del gestore dei servizi cui ci si è affidati.

12 Un File Management su Cloud Html In informatica l'hypertext Markup Language (traduzione letterale: linguaggio di descrizione per ipertesti) è il linguaggio solitamente usato per i documenti ipertestuali disponibili nel World Wide Web. In tali documenti, un tratto di testo può essere contrassegnato inserendo delle etichette, tag, che ne descrivono la funzione, il colore, il link, o altre caratteristiche. Il contenuto servito dai siti web in seguito a una richiesta dell'utente solitamente consiste di un documento HTML: un web browser scarica da uno o più web server il contenuto HTML ed eventuali documenti collegati e li elabora, ossia ne interpreta il codice, al fine di generare la visualizzazione della pagina desiderata sullo schermo del computer. L'HTML non è un linguaggio di programmazione (in quanto non prevede alcuna definizione di variabili, strutture dati, funzioni, strutture di controllo) ma solamente un linguaggio di markup che descrive le modalità di impaginazione, formattazione o visualizzazione grafica (layout) del contenuto, testuale e non, di una pagina web attraverso tag di formattazione. Tuttavia, l'html supporta l'inserimento di script e oggetti esterni quali immagini o filmati. Punto HTML (.html) o punto HTM (.htm) è anche l'estensione comune per riconoscere i documenti in questo formato. L'HTML è un linguaggio di pubblico dominio la cui sintassi è stabilita dal World Wide Web Consortium (W3C), e che è basato su un altro linguaggio avente scopi più generici, l'sgml. È stato sviluppato alla fine degli anni ottanta da Tim Berners- Lee al CERN di Ginevra assieme al noto protocollo HTTP che supporta invece il trasferimento di documenti in tale formato. Verso il 1994 ha avuto una forte diffusione in seguito ai primi utilizzi commerciali del web. Nel corso degli anni, seguendo lo sviluppo di Internet, l'html ha subito molte revisioni, ampliamenti e miglioramenti, che sono stati indicati secondo la classica numerazione usata per descrivere le versioni dei software. Attualmente l'ultima versione disponibile è la versione 4.01, resa pubblica il 24 dicembre Dopo un periodo di sospensione, in cui il W3C si è focalizzato soprattutto sulle definizioni di XHTML (applicazione a HTML di regole e

13 Un File Management su Cloud 11 sintassi in stile XML) e dei fogli di stile (CSS), nel 2007 è ricominciata l'attività di specifica con la definizione, ancora in corso, di HTML5. Un'ulteriore ed importante caratteristica di HTML è che esso è stato concepito per definire il contenuto logico e non l'aspetto finale del documento. I dispositivi che possono accedere ad un documento HTML sono molteplici e non sempre dotati di potenti capacità grafiche. Proprio per questo gli sviluppatori di HTML hanno optato per un linguaggio che descrivesse dal punto di vista logico, piuttosto che grafico il contenuto dei documenti. Questo significa che non esiste alcuna garanzia che uno stesso documento venga visualizzato in egual modo su due dispositivi. Se da una parte questo ha imposto in passato dei forti limiti agli sviluppatori di pagine Web, ha dall'altro garantito la massima diffusione di Internet ed evitato che essa diventasse un medium di élite. Attualmente i documenti HTML sono in grado di incorporare molte tecnologie, che offrono la possibilità di aggiungere al documento ipertestuale controlli più sofisticati sulla resa grafica, interazioni dinamiche con l'utente, animazioni interattive e contenuti multimediali. Si tratta di linguaggi come CSS, JavaScript o Java, o di altre applicazioni multimediali di animazione vettoriale o di streaming audio o video. Al giorno d'oggi molti web designer delegano la scrittura del codice HTML ad applicazioni specifiche, come per esempio i cosiddetti editor WYSIWYG che permettono al designer di occuparsi dell'aspetto grafico finale della pagina mentre il codice vero e proprio viene generato automaticamente. Gli sviluppatori puri preferiscono invece utilizzare direttamente il codice HTML, in modo da avere un maggior controllo sul risultato finale e sulla pulizia del codice scritto, cosa che gli editor WYSIWYG odierni nonostante siano sempre più avanzati non possono sempre garantire. I documenti HTML vengono immagazzinati di solito sui dischi rigidi di macchine elaboratrici (computer-server) costantemente collegate alla rete Internet. Su queste macchine è installato un software specifico detto web server che si occupa di produrre e inviare i documenti ai browser degli utenti che ne fanno richiesta usando il protocollo HTTP per il trasferimento dati.

14 Un File Management su Cloud 12 Spesso il documento HTML viene generato del tutto o parzialmente tramite un codice eseguibile residente sul server Internet in grado di interagire con altre applicazioni presenti sul server stesso, come per esempio un database, e inviare poi al browser il risultato finale, realizzando le cosiddette pagine dinamichecon cui un utente può compiere operazioni interattive avanzate (per esempio, filtrare gli articoli all'interno di un catalogo on-line). È il caso dei documenti scritti in linguaggi come ASP, PHP o Perl Ajax Una tecnica di sviluppo per la realizzazione di applicazioni web interattive è AJAX, acronimo di Asynchronous JavaScript and XML. Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente. AJAX è asincrono nel senso che i dati extra sono richiesti al server e caricati in background senza interferire con il comportamento della pagina esistente. Normalmente le funzioni richiamate sono scritte con il linguaggio JavaScript. Tuttavia, e a dispetto del nome, l'uso di JavaScript e di XML non è obbligatorio, come non è necessario che le richieste di caricamento debbano essere necessariamente asincrone. AJAX è una tecnica multi-piattaforma utilizzabile su molti sistemi operativi, architetture informatiche e browser web, ed esistono numerose implementazioni open source di librerie e framework. La tecnica Ajax utilizza una combinazione di: HTML (o XHTML) e CSS per il markup e lo stile; DOM ( Document Object Model) manipolato attraverso un linguaggio ECMAScript come JavaScript o JScript per mostrare le informazioni ed interagirvi;

15 Un File Management su Cloud 13 l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser dell'utente e il web server. In alcuni framework Ajax e in certe situazioni, può essere usato un oggetto Iframe invece di XMLHttpRequest per scambiare i dati con il server e, in altre implementazioni, tag <script> aggiunti dinamicamente (JSON); in genere viene usato XML come formato di scambio dei dati, anche se di fatto qualunque formato può essere utilizzato, incluso testo semplice, HTML preformattato, JSON e perfino EBML. Questi file sono solitamente generati dinamicamente da script lato server. Come DHTML o LAMP, Ajax non è una tecnologia individuale, piuttosto è un gruppo di tecnologie utilizzate insieme. Le applicazioni web che usano Ajax richiedono browser che supportano le tecnologie necessarie (quelle dell'elenco sopra). Questi browser includono: Mozilla, Firefox, Opera, Konqueror, Safari, Internet Explorer e Chrome. Tuttavia, per specifica, "Opera non supporta la formattazione degli oggetti XSL". Le applicazioni web tradizionali consentono agli utenti di compilare moduli e, quando questi moduli vengono inviati, viene inviata una richiesta al web-server. Il web server agisce in base a ciò che è stato trasmesso dal modulo e risponde bloccando o mostrando una nuova pagina. Dato che molto codice HTML della prima pagina è identico a quello della seconda, viene sprecata moltissima banda. Dato che una richiesta fatta al web server deve essere trasmessa su ogniinterazione con l'applicazione, il tempo di reazione dell'applicazione dipende dal tempo di reazione del web server. Questo comporta che l'interfaccia utente diventa molto più lenta di quanto dovrebbe essere. Le applicazioni Ajax, d'altra parte, possono inviare richieste al web server per ottenere solo i dati che sono necessari (generalmente usando SOAP e JavaScript per mostrare la risposta del server nel browser). Come risultato si ottengono applicazioni più veloci (dato che la quantità di dati interscambiati fra il browser ed il server si riduce). Anche il tempo di elaborazione da parte del web server si riduce poiché la maggior parte dei dati della richiesta sono già stati elaborati.

16 Un File Management su Cloud 14 Un esempio concreto: molti siti usano le tabelle per visualizzare i dati. Per cambiare l'ordine di visualizzazione dei dati, con un'applicazione tradizionale l'utente dovrebbe cliccare un link nell'intestazione della tabella che invierebbe una richiesta al server per ricaricare la pagina con il nuovo ordine. Il web server allora invierebbe una nuova query SQL al database ordinando i dati come richiesto, la eseguirebbe, prenderebbe i dati e ricostruirebbe da zero la pagina web reinviandola integralmente all'utente. Usando le tecnologie Ajax, questo evento potrebbe preferibilmente essere eseguito con uno JavaScript lato client che genera dinamicamente una vista dei dati con DHTML. Un altro esempio potrebbe essere la scelta di un nuovo nickname in fase di creazione di un account su un sito web, nel caso classico, se il nome che abbiamo scelto fosse già esistente, dovremmo compilare prima tutto il modulo ed accorgerci solo dopo aver atteso il caricamento della pagina di conferma che il nome è già esistente e dobbiamo cambiarlo, invece con AJAX può essere introdotto un controllo sull'evento onchange o addirittura OnKeyUp della casella di testo che ci può informare tempestivamente che il nome inserito non è valido, magari evidenziando il testo in rosso (CSS + Javascript). Come per le applicazioni DHTML, anche le applicazioni AJAX devono essere testate su più browser per verificarne la compatibilità (librerie come Sarissa di SourceForge possono tuttavia essere di aiuto). Inoltre è richiesto che nel client sia attivato Javascript. Il vantaggio di usare AJAX è la grande velocità alla quale un'applicazione risponde agli input dell'utente. Un problema abbastanza degno di nota è che, senza l'adozione di adeguate contromisure, le applicazioni AJAX possono rendere non utilizzabile il tasto "indietro" del browser: con questo tipo di applicazioni, infatti, non si naviga da una pagina all'altra, ma si aggiorna di volta in volta una singola parte del medesimo documento. Proprio per questo i browser, che sono programmi orientati alla pagina, non hanno possibilità di risalire ad alcuna di tali versioni "intermedie". Google, nella sua Google Maps, ha sviluppato una possibile soluzione al problema: invece di usare XMLHttpRequest quando l'utente clicca sul pulsante di ricerca, il risultato della ricerca viene inviato in un iframe invisibile, dal quale le informazioni sono portate nella pagina visibile.

17 Un File Management su Cloud 15 Le ultime tecnologie HTML5 (non ancora totalmente supportate ovunque) che permettono di manipolare la cronologia del browser, hanno permesso di ovviare al problema dell'orientamento a pagina. Questo utilizzo si svolge principalmente in 4 fasi: Blocco dell'evento di refresh con un event.preventdefault() Introduzione di una nuova entità nella cronologia tramite il metodo history.pushstate(state_object, title, link) Richiesta in Ajax Handling dell'evento popstate In ogni modo, un attento design delle applicazioni AJAX permette di risolvere in parte (talvolta tutti) questi aspetti negativi Xhtml Mobile Profile Linguaggio di markup, progettato specificatamente per telefoni cellulari e altri apparecchi con risorse limitate. È un tipo di XHTML definito dalla Open Mobile Alliance. XHTML-MP è derivato da XHTML 1.1 Basic Profile aggiungendo XHTML Modules (e altri moduli nelle versioni più recenti, anche se questo non assicura una completa compatibilità con i browser XHTML-MP). Lo standard raccomandato è l'1.1 DTD, concluso ad ottobre I lavori sulla versione 1.2 DTD continuano ma una data di rilascio non è ancora nota. Per essere validato XHTML Mobile 1.1, un documento deve contenere la seguente Dichiarazione di Tipo di Documento, o DOCTYPE: <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/dtd/xhtml-mobile11.dtd"> Il tipo MIME per XHTML Mobile Profile è "application/vnd.wap.xhtml+xml". Gli user agent compatibili dovrebbero accettare anche "application/xhtml+xml" and "text/html".

18 Un File Management su Cloud 16 La versione 1.2 aggiunge il support per gli oggetti e le form. La versione 1.1 ha aggiunto il supporto per lo scripting ECMAScript Mobile Profile. La versione 1.0 ha esteso XHTML 1.1 Basic Profile con alcune rappresentazioni di elementi e un supporto di scripting di base. I moduli inclusi in XHTML-MP 1.2 sono: Structure Texts Hypertext List Forms Basic Tables Image Object Metainformation Scripting Style Sheet Style Attribute Link Base XHTML-MP 1.2 supporta anche parzialmente: Presentation Intrinsic Events Legacy Infine la versione 1.2 include uno specifico modulo Open Mobile Alliance (OMA), il "Text Input Modes", per usare i diversi tipi di input-mode permessi sui cellulari.

19 Un File Management su Cloud 17 Molti problemi sorgono quando il contenuto scritto in XHTML è visualizzato su apparecchi diversi. Alcuni rispetteranno i colori specificati nel CSS mentre alcuni non lo faranno, altri visualizzeranno le tabelle e altri no, solo per citare alcuni esempi. Sviluppare un'applicazione che si adatti ai device, significa scrivere contenuti diversi per apparecchi diversi, in base alle loro capacità. Questo può portare ad un'enorme complessità dato il numero elevato di apparecchi diversi presenti sul mercato con diverse caratteristiche hardware (dimensione dello schermo, capacità sull'uso dei colori, tasti, memoria e velocità) e browser. L'aggiornamento software dei browser per cellulari è in ogni caso molto più difficile di quello dei browser per PC, con il risultato che il software installato rimane in uso fino a quando il telefono non viene dismesso. Alcune iniziative presentano una soluzione a questo problema. La maggior parte fornisce un linguaggio proprietario per scrivere contenuti WAP che verranno visualizzati in maniera diversa (in XHTML-MP, WML, CHTML, etc) a seconda dell'apparecchio che ne ha fatto richiesta. Un'altra libera iniziativa è WURFL che usa una configurazione XML gerarchica in grado di mappare centinaia di caratteristiche dei vari device, e un layer di astrazione (WALL: Wireless Abstraction Layer) che permette di scrivere tag che sono convertiti automaticamente nel tipo di mark-up supportato dal device Applet Java In informatica, le applet Java sono programmi scritti in linguaggio Java che possono essere eseguiti da un Web browser. Le applet appaiono visivamente collocate all'interno di pagine Web, e sono solitamente usate per creare pagine dotate di funzioni interattive non realizzabili con altre tecnologie per il Web. Le Java applets sono eseguibili dai web browser che utilizzano la Java virtual machine (JVM). In alternativa possono essere eseguite utilizzando il Sun AppletViewer, un programma nato per testare le applet. Le Java applets furono annunciate per la prima volta da Sun Microsystems, nel 1995.

20 Un File Management su Cloud 18 Incapsulate all'interno di pagine web, le Applet sono utilizzate per fornire contenuti interattivi che il linguaggio HTML non è in grado di offrire. Per eseguirne il contenuto, la maggioranza dei Web Browser utilizza una sandbox, in modo da impedire alle applet di accedere alle informazioni salvate in locale sul computer. Il codice delle Applet viene scaricato dal web server nel web browser. Quest'ultimo, insieme all'applet, riceve anche la pagina html che lo contiene. In alternativa, l'applet può provvedere ad aprire una finestra personale senza doversi appoggiare a codice html per mostrare l'interfaccia grafica. Le Applet mostrate nelle pagine web sono identificati dal tag html <applet>...</applet> (non ufficiale), al quale è preferibile<object></object> Il tag html utilizzato specifica la posizione del sorgente dell'applet da scaricare. Dato che il bytecode Java è indipendente dalla piattaforma, gli Applet Java possono essere eseguiti senza problemi dai browser delle principali piattaforme. 2.2 Ambienti e Strumenti Php Linguaggio di scripting interpretato con licenza open source e libera (ma incompatibile con la GPL), originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. È l acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni standalone con interfaccia grafica. L'elaborazione di codice PHP sul server produce codice HTML da inviare al browser dell'utente che ne fa richiesta. Il vantaggio dell'uso di PHP e degli altri linguaggi Web come ASP e.net rispetto al classico HTML derivano dalle differenze profonde che sussistono tra Web dinamico e Web statico.

21 Un File Management su Cloud 19 PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, Oracle, Firebird, IBM DB2, Microsoft SQL Server, solo per citarne alcuni, e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e.net e si può dire che esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL ed altro. Fornisce un'api specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite. Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL che raccoglie tutte le estensioni conosciute scritte in C. A partire dal 2011 PHP non ha supporto nativo per le stringhe Unicode o multibyte, il supporto Unicode è in fase di sviluppo per una futura versione di PHP e consentirà stringhe così come classe, metodo, e la funzione nomi per contenere caratteri non ASCII.

22 Un File Management su Cloud Ftp Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un protocollo per la trasmissione di dati tra host basato su TCP. FTP è uno dei primi protocolli definiti ed ha subito una lunga evoluzione negli anni. La prima specifica, sviluppata presso il MIT, risale al 1971 (RFC-114). L'attuale specifica fa riferimento all'rfc-959. Gli obiettivi principali di FTP descritti nella sua RFC ufficiale sono: 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. Altro protocollo usato per il trasporto dati in Internet è il protocollo HTTP. FTP, a differenza di altri protocolli come ad esempio HTTP, utilizza due connessioni separate per gestire comandi e dati. Un server FTP rimane tipicamente in ascolto sulla porta 21 TCP a cui si connette il client. La connessione da parte del client determinerà l'inizializzazione del canale comandi attraverso il quale client e server si scambieranno comandi e risposte. Lo scambio effettivo di dati (come ad esempio file) richiederà l'apertura del canale dati il quale può essere di due tipi. In un canale dati di tipo attivo il client apre una porta tipicamente random, tramite il canale comandi rende noto il numero di tale porta al server e attende che esso si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP. A tale scopo possono venire impiegati i comandi PORT o EPRT, a seconda del protocollo di rete utilizzato (tipicamente IPv4 o IPv6). In un canale dati di tipo passivo il server apre una porta tipicamente random (> 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che esso si connetta. A tale scopo possono venire impiegati i

23 Un File Management su Cloud 21 comandi PASV o EPSV, a seconda del protocollo di rete utilizzato (tipicamente IPv4 oipv6). Sia il canale comandi sia il canale dati sono delle connessioni TCP; FTP crea un nuovo canale dati per ogni file trasferito all'interno della sessione utente, mentre il canale comandi rimane aperto per l'intera durata della sessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente. 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 (N.B. in chiaro) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazione cosiddetta "anonima" prevede che il client non specifichi nessuna password di accesso e che lo stesso abbia privilegi che sono tipicamente di "sola lettura". La specifica originale di FTP non prevede alcuna cifratura per i dati scambiati tra client e server. Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali possono essere "sniffati" o visionati da malintenzionati in determinate situazioni (esempio: ambienti intranet). Il problema è comune a diversi altri protocolli utilizzati prima della diffusione di SSL quali HTTP, TELNET e SMTP. Per ovviare al problema è stata definita una nuova specifica che aggiunge al protocollo FTP originale un layer di cifratura SSL/TLS più una nuova serie di comandi e codici di risposta. Il protocollo prende il nome di FTPS ed è definito nella RFC Da non confondersi con SFTP che è comunque una valida alternativa per ovviare al problema descritto.

24 Un File Management su Cloud Ssh In informatica e telecomunicazioni SSH (Secure SHell, shell sicura) è un protocollo di rete che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host di una rete informatica. E' il protocollo che ha sostituito l'analogo ma insicuro Telnet. Il client SSH ha una interfaccia a riga di comando simile a quella di telnet e rlogin, ma l'intera comunicazione (ovvero sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard di fatto per l'amministrazione remota di sistemi unix e di dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni. Il client ed il server SSH sono installati o installabili su molte versioni di UNIX, GNU/Linux, Mac OS X e Microsoft Windows. Inoltre è disponibile come strumento di amministrazione su alcuni apparati di rete La sintassi su sistemi UNIX-like è la seguente: $ ssh [opzioni] dove con "$" si intende il prompt della shell utilizzata La prima versione dell'ssh era completamente Open Source, mentre la seconda è diventata commerciale; esiste comunque una versione libera detta OPEN SSH che si basa sulla prima versione, ma che fornisce supporto alla seconda versione. SSH consente la realizzazione di tunnel criptati che, trasportando sessioni TCP arbitrarie all'interno della connessione criptata, permettono di proteggere da intercettazione protocolli non sicuri, o di aggirare limitazioni di routing. Questa funzionalità è detta port forwarding, e permette di aprire un socket TCP sul client SSH (local port forwarding) o sul server (remote port forwarding). Le connessioni ricevute su questa porta vengono inoltrate dall'altro capo della connessione SSH, verso un host e una porta specificata.

25 Un File Management su Cloud 23 Ad esempio, con questo comando ci si collega ad host1, inoltrando la porta della macchina in cui lanciamo il client ssh alla porta 22 di host2attraverso un canale sicuro tra client e host1: ssh host1 L 10022:host2:22 Mentre questa connessione è attiva, collegandosi alla porta del client si viene rediretti verso la porta 22 di host2. Il port forwarding è utile anche per trasportare applicazioni X Window attraverso una connessione SSH. SSH imposta anche automaticamente le opportune variabili d'ambiente, in modo che le applicazioni X lanciate da un terminale remoto vengano visualizzate sul display da cui è stata avviata la connessione. L'X forwarding dal lato client deve essere abilitato passando l'opzione "-X" mentre dal lato server va modificato il file di configurazione /etc/ssh/sshd_configabilitando la direttiva X11Forwarding (ricordatevi di riavviare il server una volta apportata la modifica al file di configurazione). Il port forwarding è utile ad esempio per fare assistenza remota a macchine prive di un sistema di gestione remota sicuro. È possibile creare un tunnel sicuro tra una porta del client e una porta del server remoto o di qualsiasi terza macchina dietro al sever remoto, a patto che la macchina server abbia abilitato il forwarding. Questo è normalmente possibile senza installare nessun pacchetto aggiuntivo. Ad esempio, nel seguente scenario CLIENT [rete insicura] ssh server [rete sicura] TERZA MACCHINA Se vogliamo utilizzare un desktop remoto sulla terza macchina basta che ci connettiamo al server ssh includendo un tunnel tra una porta locale della macchina dove lavoriamo e la porta 3389 della TERZA MACCHINA. Dopo di che basterà avviare il client RDP e connettersi a localhost:(porta scelta). Il client ssh locale stabilirà una connessione criptata con il server, creerà un tunnel all'interno di questa connessione criptata, ed invierà la connessione RDP

26 Un File Management su Cloud 24 su questo tunnel. Il server a sua volta stabilirà una normale sessione TCP con la terza macchina sulla porta richiesta. Come risultato, il client RDP verrà messo in comunicazione con la terza macchina. La connessione tra ssh server e terza macchina non sarà criptata, per cui è opportuno che la comunicazione tra queste due macchine non sia a rischio di intercettazione. La terza macchina vedrà la connessione TCP provenire dal server ssh invece che dal client. Esistono principalmente due metodi di autenticazione per controllare l'accesso ad un server ssh: L'utente fornisce un nome utente ed una password, che vengono validati dal server. Questo scambio avviene all'interno di un canale cifrato, per cui non è a rischio di intercettazione. Procedura: 1. A B: SSH_MSG_USERAUTH_REQUEST, pappy, ssh-userauth, keyboard-interactive 2. B A: SSH_MSG_USERAUTH_INFO_REQUEST, pappy, passwordauthentication, 1, "Enter Password" 3. A B: SSH_MSG_USERAUTH_INFO_RESPONSE, 1, "love" 4. B A: SSH_MSG_USERAUTH_SUCCESS. Per prevenire attacchi brute force si può utilizzare un tool DenyHosts o Fail2ban. Questo metodo di autenticazione è basato sulla crittografia asimmetrica. Per utilizzarlo l'utente genera una coppia di chiavi. La chiave pubblica è copiata sul server, tipicamente in un apposito file nella home directory dell'utente; la chiave privata deve essere conservata dall'utente, ed è bene che sia protetta con una parola chiave (passphrase). Nella fase di accesso, il client ssh prova al server di essere in possesso della chiave privata, e in caso di successo viene consentito l'accesso. In questo modo, all'utente non è richiesto di fornire la propria password ad ogni connessione. SSH prevede anche la verifica dell'autenticità del server. Questo serve ad evitare che un utente maligno "impersoni" il server, facendosi fornire le credenziali

27 Un File Management su Cloud 25 dell'utente (attacco man in the middle). A questo scopo, per ciascun server viene generata una coppia di chiavi asimmetriche. La chiave privata rimane sul server. La chiave pubblica deve essere installata sui client. Quando un client si collega ad un server di cui conosce la chiave pubblica, verifica che il server sia ancora in possesso della chiave privata. Se questa verifica fallisce, la connessione viene abbattuta, evitando di fornire credenziali al server. Nella pratica, quando ci si collega ad un server per la prima volta, il client chiede se si vuole accettare la chiave pubblica di questo server, e se l'utente risponde positivamente memorizza questa chiave e prosegue nella connessione. Alle connessioni successive con lo stesso server, il client ne verifica l'autenticità, e in caso la chiave privata non corrisponda impedisce di proseguire la connessione MySql Relational database management system (RDBMS), composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java, un driver per Mono e.net ed una libreria per python. Il codice di MySQL venne sviluppato fin dal 1979 dalla ditta TcX ataconsult, poi rinominata MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: msql. MySQL AB è stata rilevata da Sun Microsystems nel 2008, mentre nel 2010 quest'ultima è stata acquisita da Oracle Corporation. MySQL svolge il compito di DBMS nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche.

28 Un File Management su Cloud 26 Esistono diversi tipi di MySQL Manager, ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è phpmyadmin (richiede un server web come Apache HTTP Server ed il supporto del linguaggio PHP). Si può utilizzare facilmente tramite un qualsiasi browser. Alcune offerte di terze parti sono HeidiSQL, SQLYog o Toad for MySQL. In alternativa la stessa MySQL AB offre programmi quali MySQL Administrator (amministrazione del database, degli utenti, operazioni pianificate, carico del server,...) e MySQL Query Browser (esecuzione di svariati tipi di query), MySQL Migration Toolkit per importare da altri DBMS. Per il disegno e la modellazione di database MySQL esiste MySQL Workbench: integra il disegno, la modellazione, la creazione e l'aggiornamento di database in un unico ambiente di lavoro. In passato veniva sviluppato anche MySQLcc (MySQL control center), sostituito da MySQL Query Browser. Fino a qualche anno fa lo sviluppo del programma era opera soprattutto dei suoi sviluppatori iniziali: David Axmark, Allan Larsson e Michael Widenius. Quest'ultimo era il principale autore del codice - oltre che principale socio della società - e tuttora coordina il progetto, tra l'altro vagliando i contributi che pervengono dai volontari. I contributi vengono accettati a condizione che il loro autore condivida i diritti d'autore con la società. Da luglio 2007 la società impiega un centinaio di sviluppatori a tempo pieno. MySQL, essendo scritto in linguaggio C e C++, è disponibile su molti differenti sistemi operativi tra cui AIX, AmigaOS, BSDi, Digital Unix, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, SGI Irix, Tru64,Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista,Windows 7, Windows 8.

29 Un File Management su Cloud 27 Le piattaforme di riferimento sono Linux e Solaris. La documentazione di MySQL offre comunque un aiuto per chi avesse bisogno di provare a compilare il software su qualsiasi sistema operativo discretamente diffuso. MySQL utilizza anche i tool automake, autoconf e libtools per aumentare la compatibilità. Le tabelle di tipo BDB funzioneranno solo sui seguenti sistemi operativi: GNU/Linux 2.x Intel, Solaris (SPARC and x86), FreeBSD 4.x/5.x (x86, sparc64), AIX4.3.x, SCO OpenServer, SCO UnixWare 7.1.x Sono disponibili dei driver per i linguaggi C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, Tcl e per le piattaforme Mono e.net. Infine, il linguaggio SQL di MySQL comprende numerose estensioni che sono tipiche di altri DBMS, quali PostgreSQL, Oracle e Sybase. In questo modo le query non standard scritte per altri DBMS in alcuni casi funzioneranno senza problemi Apache Http Server È la piattaforma server Web modulare più diffusa, in grado di operare da sistemi operativi UNIX/Linux e Microsoft, più comunemente chiamato Apache. Apache è un software che realizza le funzioni di trasporto delle informazioni, di internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy. Il Web Server Apache presenta un'architettura modulare, quindi ad ogni richiesta del client vengono svolte funzioni specifiche da ogni modulo di cui è composto, come unità indipendenti. Ciascun modulo si occupa di una funzionalità, ed il controllo è gestito dal core. I moduli: Core: programma principale composto da un ciclo sequenziale di chiamate ai moduli.

30 Un File Management su Cloud 28 Translation: traduce la richiesta del client Acces Control: controlla eventuali richieste dannose MIME Type: verifica il tipo di contenuto Response: invia la risposta al client e attiva eventuali procedure Logging: tiene traccia di tutto ciò che è stato fatto Il core suddivide la richiesta ai vari moduli in modo sequenziale, usando i parametri di uscita di un modulo come parametri di accesso per l'altro, creando così l'illusione di una comunicazione orizzontale fra i moduli (Pipeline software). Sopra il ciclo del core c'è un ulteriore ciclo di polling svolto da un demone che interroga continuamente le linee logiche da cui possono pervenire messaggi di richiesta.

31 Un File Management su Cloud 29 3 YOUR FILES ANYWHERE 3.1 Architettura dell applicazione Your Files Anywhere, denominazione dell applicazione web sviluppata, è basata su un architettura di tipo Client-Server, tipica delle applicazioni su web, ma arricchita con Ajax. Architettura dell'applicazione Web: Your Files Anywhere Il Livello Presentazione costituisce l interfaccia utente dell applicazione e corrisponde a quello che nelle Client-Server è il client. È costituito da vari componenti combinati tra loro: browser, documenti HTML, applet Java e script Javascript. Nel nostro caso aggiungiamo un motore AJAX, richiamato nelle pagine html, che invia una richiesta al server in modo asincrono e, in base ad alcuni eventi, richiama gli script php restituendone il risultato nella stessa pagina. Con questa tecnica l utente non dovrà più attendere che la pagina venga ricaricata ma bensì vedrà apparire il risultato della richiesta contestualmente. Il Livello Intermedio contiene la logica elaborativa dell applicazione. È in grado di soddisfare le richieste del client, attraverso l interpretazione di script php e di creare pagine web dinamiche.

32 Un File Management su Cloud 30 Il Livello Dati fornisce servizi non direttamente disponibili tramite server web, che spesso costituiscono le applicazioni persistenti e, come nel nostro caso, un gestore di database dove sono memorizzati gli utenti registrati. 3.2 Your Files Anywhere su PC Descrizione Your Files Anywhere è il nostro sistema di gestione di documenti su cloud. Si presenta all utente con un interfaccia web molto semplice ed intuitiva e pagine web dinamiche. Login e/o SignUp Per accedere al sistema, l utente deve necessariamente effettuare la registrazione. La form html presente, nella prima pagina web del sito, consente l inserimenti dei dati. Durante l inserimento dello username o degli altri dati richiesti, javascript inoltra una richiesta ad uno script php che controlla se esistono già utenti con lo stesso nome e/o password/myhome. La risposta viene visualizzata a lato della form guidando l utente nella continuazione della registrazione o reindirizzandolo alla pagina di login.

33 Un File Management su Cloud 31 Ultimata la registrazione l utente accede al sistema, connettendosi al server mediante l utilizzo del protocollo FTP e di alcune funzioni php. Effettuato l accesso, l utente ha a disposizione la sua directory personale, dove eseguire le varie funzionalità messe a disposizione dall applicazione. MyHome Nella cosiddetta MyHome, l utente potrà navigare tra le sue cartelle e i suoi file, avendo l opportunità di: Caricarne di nuovi; Eliminare quelli già presenti; Creare una nuova cartella; Sincronizzare file e cartelle tra remoto e locale; Scegliere la visualizzazione: File, Music o Player Audio Funzionalità dell applicazione Vediamo nel dettaglio le principali funzionalità: Il caricamento di nuovi file avviene tramite una form html, che combinata con javascript, usato per l animazione durante l attesa del caricamento del file, e php si occupa dell effettivo caricamento. Questa funzione fornisce all utente la

34 Un File Management su Cloud 32 possibilità di scegliere il file da caricare sul server, direttamente dal suo pc, in modo da potervi accedere da qualsiasi luogo e in qualsiasi momento. Caricamento file L eliminazione dei file dal server può essere individuale o collettiva. Dopo la selezione dei file, basterà cliccare su delete e il file verrà eliminato direttamente dal server. Ciò avviene sempre con la stessa tecnica, l invio della richiesta asincrona e la risposta dello script php che dopo l eliminazione mostrerà l elenco aggiornato dei file nella stessa pagina. La creazione di una nuova cartella, fornisce all utente una form dove inserire il nome. Al clic del pulsante crea, questa funzione richiama, uno script php che effettuerà la creazione della cartella, con le funzioni messe a disposizione da php per la gestione di file su un server. Altra importante funzionalità è la possibilità di filtrare i tipi di file. È possibile visualizzare solo i file audio o solo i file di altro tipo, oppure visualizzare il player audio. Avviando il player e se nella cartella dove ci troviamo, esistono dei file audio, questi saranno riprodotti automaticamente. La sincronizzazione dei file differisce dalle altre funzionalità soprattutto per la tecnica usata per implementarla. Abbiamo deciso di utilizzare un applet Java certificata per le nostre esigenze. Occorreva un applicazione che richiedesse

35 Un File Management su Cloud 33 all utente il permesso di accedere ai file del suo personal computer, di leggerli e di confrontarli con quelli sul server. Sincronizzazione file: Certificazione Una volta accettato di eseguire l applicazione l utente si troverà di fronte a delle scelte e a dei passi da seguire: 1. Selezionare la cartella locale; 2. Selezionare la cartella remota; 3. Scegliere il verso della sincronizzazione; 4. Scegliere che tipo di sincronizzazione effettuare: Aggiungere i file della prima cartella alla seconda, lasciando invariati i file presenti nella seconda cartella; Aggiornare il contenuto della seconda cartella con i file della prima cartella, sostituendo quelli più recenti lasciando invariati gli altri; Aggiornare il contenuto della seconda cartella con i file della prima cartella, eliminando quelli presenti nella sola seconda cartella.

36 Un File Management su Cloud 34 Sincronizzazione file: Vista Una volta effettuate tutte le scelte, si può lanciare l applicazione tramite il pulsante go che, in attesa del confronto tra le cartelle, visualizzerà una barra di caricamento dell operazione. Ultimata la sincronizzazione l utente avrà la cartella locale o la cartella remota, sincronizzata. Come detto in precedenza, questa è un applicazione web dove è possibile fruire di alcuni contenuti. Infatti cliccando sul nome del file e a seconda della tipologia, potremmo visualizzare i file di testo e immagine, oppure riprodurre file audio e video. Visualizzazione Immagini

37 Un File Management su Cloud 35 Sia per la riproduzione video che per quella audio, abbiamo utilizzato i nuovi tag introdotti da HTML 5, integrato in php. La riproduzione avviene in streaming e direttamente dal browser. Ecco il codice HTML5 per la riproduzione dei video: <video width="320" height="240" controls="controls" autoplay="autoplay"> <source src="<?php echo $url;?>" /></video> Riproduzione Video Per il tag audio varia, come possiamo vedere dal codice sottostante, solo il nome: <audio id="player" src="<?php echo $pathmusic.$track;?>" controls="controls" autoplay="autoplay"></audio> Riproduzione Audio

38 Un File Management su Cloud 36 Una volta aperto il file, potremmo scaricarlo, passando ad uno script php il nome del file da scaricare, oppure condividerlo con i nostri amici tramite i pulsanti di condivisione dei principali Social Network Casi d uso L utente potrà effettuare il login oppure, se non possiede le credenziali per accedere al sistema, potrà registrarsi. Login Una volta effettuato l accesso, l utente potrà: caricare e scaricare i propri documenti; sincronizzare file e cartelle tra locale e remoto; creare nuove cartelle; riprodurre file audio e video in streaming; visualizzare i file di testo;

39 Un File Management su Cloud 37 MyHome 3.3 Your Files Anywhere su Mobile Descrizione Your Files Anywhere su Mobile presenta delle funzionalità ridotte rispetto alla versione per personal computer. Ritroviamo anche qui un interfaccia molto semplice, con pagine web dinamiche ma che rispettano le principali regole per la realizzazione di siti per piattaforme mobile. È buona norma, pertanto, realizzare schemi di navigazione più semplici possibili e cercare di non appesantire di troppi contenuti la pagina. Le funzionalità per l accesso e la registrazione al sistema sono le medesime.

40 Un File Management su Cloud 38 Effettuato l accesso l utente avrà a disposizione solo alcune delle funzionalità descritte in precedenza, come: Caricare nuovi file; Eliminare file; Creare una nuova cartella; MyHome Mobile Funzionalità dell applicazione Le funzionalità elencate in precedenza sono implementate, per il mobile, nello stesso modo della versione per pc. È nello stesso modo è possibile fruire di alcuni contenuti. Infatti cliccando sul nome del file e a seconda della tipologia, potremmo visualizzare i file di testo e immagine, oppure riprodurre file audio e video. Visualizzazione Immagini Riproduzione Audio

41 Un File Management su Cloud 39 Anche nella versione mobile è possibile effettuare il download dei file mediante lo script php che riceve il nome del file da scaricare Casi d uso Collegandosi al sito mobile dell applicazione l utente potrà effettuare il login oppure registrarsi, come già descritto per la versione su pc. Login Una volta effettuato l accesso, l utente potrà: caricare e scaricare i propri documenti; creare nuove cartelle; riprodurre file audio e video in streaming;

42 Un File Management su Cloud 40 MyHome Mobile 4 FUNZIONI PRELIMINARI (BETA) Nella nostra versione beta, non ancora ben definita, mettiamo a disposizione dell utente ulteriori funzionalità. La prima riguarda la visualizzazione di più tipologie di file e la seconda, invece, riguarda le modalità d accesso al server. Per quando concerne la prima funzionalità, quindi la visualizzazione di più tipologie di file da browser, abbiamo pensato di dare la possibilità all utente di associare il suo account con quello di google docs, naturalmente con le opportune misure di sicurezza. Associato l account, la nostra applicazione, grazie alla vastissima documentazione fornita da google docs, caricherà il file sul server di google e visualizzerà nella nostra pagina web il collegamento diretto al file su docs, mostrandone il contenuto. La seconda funzionalità riguarda l accesso al server con il protocollo SSH, comunicando con il medesimo in modo cifrato e, garantendo cosi una maggiore sicurezza all utente.

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

Il protocollo FTP (1/3)

Il protocollo FTP (1/3) FTP Server e Client Il protocollo FTP (1/3) Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un Protocollo per la trasmissione di dati tra host basato su TCP. Un server FTP offre svariate

Dettagli

Rilevazione automatizzata delle timbrature di presenza

Rilevazione automatizzata delle timbrature di presenza Direzione Servizi Interni Rilevazione automatizzata delle timbrature di presenza MANUALE DI UTILIZZO DELLA PROCEDURA TIMBR@WEB Versione 2.0 del 09 Gennaio 2012 A cura di Luigi D Elia SOMMARIO ACCESSO ALL

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

Appunti di Informatica Gestionale per cl. V A cura del prof. ing. Mario Catalano. Internet e il Web

Appunti di Informatica Gestionale per cl. V A cura del prof. ing. Mario Catalano. Internet e il Web Appunti di Informatica Gestionale per cl. V A cura del prof. ing. Mario Catalano Internet e il Web 1 Internet Internet è un insieme di reti informatiche collegate tra loro in tutto il mondo. Tramite una

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso ai database

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 1. Introduzione a Internet e al WWW Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica CL3 - Biotecnologie Orientarsi nel Web Prof. Mauro Giacomini Dott. Josiane Tcheuko Informatica - 2006-2007 1 Obiettivi Internet e WWW Usare ed impostare il browser Navigare in internet

Dettagli

ADOBE FLASH PLAYER 10.3 Pannello di controllo nativo

ADOBE FLASH PLAYER 10.3 Pannello di controllo nativo ADOBE FLASH PLAYER 10.3 Pannello di controllo nativo Note legali Note legali Per consultare le note legali, vedete http://help.adobe.com/it_it/legalnotices/index.html. iii Sommario Memorizzazione.......................................................................................................

Dettagli

venerdì 31 gennaio 2014 Programmazione Web

venerdì 31 gennaio 2014 Programmazione Web Programmazione Web WWW: storia Il World Wide Web (WWW) nasce tra il 1989 e il 1991 come progetto del CERN di Ginevra affidato a un gruppo di ricercatori informatici tra i quali Tim Berners- Lee e Robert

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Apache MySQL PHP - FTP

Apache MySQL PHP - FTP Apache MySQL PHP - FTP Scelta del software, Installazione e configurazione Ivan Grimaldi grimaldi.ivan@gmail.com HcssLug GNU/LINUX USERS GROUP Outline Cenni sul funzionamento di un WebServer Apache, PHP,

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Il Livello delle Applicazioni

Il Livello delle Applicazioni Il Livello delle Applicazioni Il livello Applicazione Nello stack protocollare TCP/IP il livello Applicazione corrisponde agli ultimi tre livelli dello stack OSI. Il livello Applicazione supporta le applicazioni

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante CONOSCENZE DI INFORMATICA 1) Una periferica di input è: A) il mouse B) il monitor C) la stampante 2) Una memoria in sola lettura con la particolarità di essere cancellata in particolari condizioni è detta:

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

C Cloud computing Cloud storage. Prof. Maurizio Naldi

C Cloud computing Cloud storage. Prof. Maurizio Naldi C Cloud computing Cloud storage Prof. Maurizio Naldi Cos è il Cloud Computing? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/

Dettagli

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

Dettagli

SIAGAS Manuale Utente Utente non autenticato

SIAGAS Manuale Utente Utente non autenticato SIAGAS Manuale Utente Utente non autenticato 27 marzo 2007 v.1.7 SIAGAS: Manuale Utente: utente non autenticato 1/10 1 Introduzione 1.1 Destinatario del prodotto SIAGAS è uno Sportello Informativo per

Dettagli

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile Pag.1 Obiettivi Il progetto, Portale delle fonti di energia rinnovabile, ha l obiettivo di facilitare lo scambio di informazioni e notizie

Dettagli

I Principali Servizi del Protocollo Applicativo

I Principali Servizi del Protocollo Applicativo 1 I Principali Servizi del Protocollo Applicativo Servizi offerti In questa lezione verranno esaminati i seguenti servizi: FTP DNS HTTP 2 3 File Transfer Protocol Il trasferimento di file consente la trasmissione

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

COMPLETA SICUREZZA GRAZIE ALL ACCESSO PROTETTO E AI LIVELLI AUTORIZZATIVI

COMPLETA SICUREZZA GRAZIE ALL ACCESSO PROTETTO E AI LIVELLI AUTORIZZATIVI Consultazione prodotti e gestione ordini via internet SAM r-evolution La rivoluzione non è cambiare il software! SAM OW - Open Web Open-Web è l applicazione web per la consultazione online degli articoli

Dettagli

Atollo Backup Standard

Atollo Backup Standard Atollo Backup Standard (backup affidabile in Cloud e gestibile con pochi click) Il backup in Cloud è un servizio che consente il salvataggio dei dati aziendali o personali in un server remoto con il rispetto

Dettagli

CONCETTI DI NAVIGAZIONE IN RETE

CONCETTI DI NAVIGAZIONE IN RETE CONCETTI DI NAVIGAZIONE IN RETE Internet (La rete delle reti) è l insieme dei canali (linee in rame, fibre ottiche, canali radio, reti satellitari, ecc.) attraverso cui passano le informazioni quando vengono

Dettagli

Internet Terminologia essenziale

Internet Terminologia essenziale Internet Terminologia essenziale Che cos è Internet? Internet = grande insieme di reti di computer collegate tra loro. Rete di calcolatori = insieme di computer collegati tra loro, tramite cavo UTP cavo

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

L'elaborazione dei dati su client Linguaggi di script

L'elaborazione dei dati su client Linguaggi di script Pagina 1 di 5 L'elaborazione dei dati su client Linguaggi di script Attualmente si tende a scaricare sul computer dell'utente piccoli programmi (Javascript o applet Java) che svolgano parte dell'elaborazione

Dettagli

LABORATORIO DI TELEMATICA

LABORATORIO DI TELEMATICA LABORATORIO DI TELEMATICA COGNOME: Ronchi NOME: Valerio NUMERO MATRICOLA: 41210 CORSO DI LAUREA: Ingegneria Informatica TEMA: Analisi del protocollo FTP File Transfer Protocol File Transfer Protocol (FTP)

Dettagli

Uso sicuro del web Navigare in siti sicuri

Uso sicuro del web Navigare in siti sicuri Uso sicuro del web Navigare in siti sicuri La rete internet, inizialmente, era concepita come strumento di ricerca di informazioni. L utente esercitava un ruolo passivo. Non interagiva con le pagine web

Dettagli

Le mie immagini su WEB: l ABC per iniziare. 6 maggio 2008

Le mie immagini su WEB: l ABC per iniziare. 6 maggio 2008 Le mie immagini su WEB: l ABC per iniziare 6 maggio 2008 1 1) Le nostre immagini su internet; perchè? 2) il WEB...il pc di chi accede (il client)...il sito (server); 3) costruzione del sito (design, strumenti

Dettagli

HTML 1. HyperText Markup Language

HTML 1. HyperText Markup Language HTML 1 HyperText Markup Language Introduzione ad HTML Documenti HTML Tag di markup Formattazione del testo Collegamenti ipertestuali Immagini Tabelle Form in linea (moduli) Tecnologie di Sviluppo per il

Dettagli

Reti Informatiche ed Internet

Reti Informatiche ed Internet Reti Informatiche ed Internet Bari, 21-02-2011-1 - Internet Internet è, per definizione, l insieme dei collegamenti, fra le reti di trasmissione dati esistenti. Alcuni parlano di rete delle reti. cioè

Dettagli

Manuali.net. Nevio Martini

Manuali.net. Nevio Martini Manuali.net Corso base per la gestione di Siti Web Nevio Martini 2009 Il Linguaggio HTML 1 parte Introduzione Internet è un fenomeno in continua espansione e non accenna a rallentare, anzi è in permanente

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

Le Reti (gli approfondimenti a lezione)

Le Reti (gli approfondimenti a lezione) Le Reti (gli approfondimenti a lezione) Per migliorare la produttività gli utenti collegano i computer tra di loro formando delle reti al fine di condividere risorse hardware e software. 1 Una rete di

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Le reti Sicurezza in rete

Le reti Sicurezza in rete Le reti Sicurezza in rete Tipi di reti Con il termine rete si intende un insieme di componenti, sistemi o entità interconnessi tra loro. Nell ambito dell informatica, una rete è un complesso sistema di

Dettagli

CONTROLLO REMOTO DI UNA TELECAMERA IP

CONTROLLO REMOTO DI UNA TELECAMERA IP Scuola Media Pietro Coppo Isola CONTROLLO REMOTO DI UNA TELECAMERA IP Tesi di maturità professionale Indirizzo Tecnico Informatico Alunno: Massimiliano Bevitori Mentore: Maurizio Škerlič Anno Scolastico:

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

Reti basate sulla stack di protocolli TCP/IP

Reti basate sulla stack di protocolli TCP/IP Reti basate sulla stack di protocolli TCP/IP Classe V sez. E ITC Pacioli Catanzaro lido 1 Stack TCP/IP Modello TCP/IP e modello OSI Il livello internet corrisponde al livello rete del modello OSI, il suo

Dettagli

Manuale LiveBox WEB UTENTE. http://www.liveboxcloud.com

Manuale LiveBox WEB UTENTE. http://www.liveboxcloud.com 2015 Manuale LiveBox WEB UTENTE http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

Dettagli

La domotica e l'informatica

La domotica e l'informatica Istituto di Scienza e Tecnologie dell'informazione A Faedo (ISTI) Laboratorio di domotica La domotica e l'informatica Dario Russo (dario.russo@isti.cnr.it) Cosa è l'informatica L'informatica è una scienza

Dettagli

Indice I rischi: introduzione alle reti connesse a Internet Le reti e il protocollo TCP/IP

Indice I rischi: introduzione alle reti connesse a Internet Le reti e il protocollo TCP/IP Indice Capitolo 1 I rischi: introduzione alle reti connesse a Internet 1 1.1 Il virus Worm 3 1.2 Lo stato della rete nel 2002 9 1.3 Cos è Internet 10 1.4 La commutazione di pacchetti: la base della maggior

Dettagli

Corso Creare Siti WEB

Corso Creare Siti WEB Corso Creare Siti WEB INTERNET e IL WEB Funzionamento Servizi di base HTML CMS JOOMLA Installazione Aspetto Grafico Template Contenuto Articoli Immagini Menu Estensioni Sito di esempio: Associazione LaMiassociazione

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Web Autore: Davide Revisione: 1.2 Data: 23/5/2013 Titolo: Innopedia File: Documentazione_tecnica Sito: http://inno-school.netsons.org/ Indice: 1. Presentazione

Dettagli

Funzioni principali di Dropbox

Funzioni principali di Dropbox ICT Rete Lecco Generazione Web - Progetto FARO Dropbox "Un luogo per tutti i tuoi file, ovunque ti trovi" Dropbox è il servizio di cloud storage più popolare, uno tra i primi a fare la sua comparsa nel

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

MySQL Biblioteca Libreoffice (MySQL Biblioteca in tutte le salse)

MySQL Biblioteca Libreoffice (MySQL Biblioteca in tutte le salse) MySQL Biblioteca Libreoffice (MySQL Biblioteca in tutte le salse) Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 Febbraio 2011 MySQL è un Relational Database Management System (RDBMS), composto

Dettagli

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013

Corso di HTML. Prerequisiti. Modulo L3. 1-Concetti generali. Browser Rete Internet Client e server. M. Malatesta 1-Concetti generali-12 28/07/2013 Corso di HTML Modulo L3 1-Concetti generali 1 Prerequisiti Browser Rete Internet Client e server 2 1 Introduzione In questa Unità introduciamo alcuni semplici elementi del linguaggio HTML, con il quale

Dettagli

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Servizi di Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza Sicurezza su Sicurezza della La Globale La rete è inerentemente

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

Manuale accesso a B.Point SaaS

Manuale accesso a B.Point SaaS Manuale accesso a B.Point SaaS Manuale utente INDICE: 1. Introduzione... 1-3 2. Tipi di client... 2-4 Premessa... 2-4 Peculiarità e compatibilità con i browser... 2-4 Configurazione del tipo di Client...

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

Contromisure 3 Alcuni software. Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER

Contromisure 3 Alcuni software. Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER Contromisure 3 Alcuni software Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER CCleaner è un utilità gratuita per eseguire la pulizia del sistema in modo efficiente

Dettagli

Caratteristiche generali

Caratteristiche generali Caratteristiche generali Tecnologie utilizzate Requisiti software/hardware Modalità di installazione del database del PSDR INSTALLAZIONE PSDR Installazione on-line Installazione off-line Primo avvio Riservatezza

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

Intel Server Management Pack per Windows

Intel Server Management Pack per Windows Intel Server Management Pack per Windows Manuale dell'utente Revisione 1.0 Dichiarazioni legali LE INFORMAZIONI CONTENUTE IN QUESTO DOCUMENTO SONO FORNITE IN ABBINAMENTO AI PRODOTTI INTEL ALLO SCOPO DI

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0 AJAX Goy - a.a. 2006/2007 Servizi Web 1 Cos'è il Web 2.0 Web 2.0 = termine introdotto per la prima volta nel 2004 come titolo di una conferenza promossa dalla casa editrice O Reilly L'idea è che ci si

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

REQUISITO DI ACCESSIBILITA

REQUISITO DI ACCESSIBILITA ISTITUTO COMPRENSIVO Pascoli - Crispi Via Gran Priorato, 11-98121 Messina Via Monsignor D'Arrigo, 18-98122 Messina Tel/Fax. 09047030 090360037 e-mail: meic87300t@istruzione.it / meee00800r@istruzione.it

Dettagli

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

Concetti di base della Tecnologia dell'informazione

Concetti di base della Tecnologia dell'informazione Corso ECDL Concetti di base della Tecnologia dell'informazione Modulo 1 Le reti informatiche 1 Le parole della rete I termini legati all utilizzo delle reti sono molti: diventa sempre più importante comprenderne

Dettagli

Manuale Utente Archivierete Novembre 2008 Pagina 2 di 17

Manuale Utente Archivierete Novembre 2008 Pagina 2 di 17 Manuale utente 1. Introduzione ad Archivierete... 3 1.1. Il salvataggio dei dati... 3 1.2. Come funziona Archivierete... 3 1.3. Primo salvataggio e salvataggi successivi... 5 1.4. Versioni dei salvataggi...

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software. Reti locati e reti globali Tecnologie: Reti e Protocolli Reti locali (LAN, Local Area Networks) Nodi su aree limitate (ufficio, piano, dipartimento) Reti globali (reti metropolitane, reti geografiche,

Dettagli

Come installare e configurare il software FileZilla

Come installare e configurare il software FileZilla Come utilizzare FileZilla per accedere ad un server FTP Con questo tutorial verrà mostrato come installare, configurare il software e accedere ad un server FTP, come ad esempio quello dedicato ai siti

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Il sito della scuola con

Il sito della scuola con Incontro in aula virtuale del 24 gennaio 2013 Il sito della scuola con La sicurezza di un sito Joomla Il Pacchetto Joomla pasw quickstart versione 2.0. a cura di Gianluigi Pelizzari IIS Fantoni Clusone

Dettagli

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI 1 Web Link Monitor... 2 2 Database Browser... 4 3 Network Monitor... 5 4 Ghost Site... 7 5 Copy Search... 9 6 Remote Audio Video

Dettagli

Funzionamento del protocollo FTP

Funzionamento del protocollo FTP Alunno:Zamponi Claudio Numero matricola:4214118 Corso: Ingegneria Informatica Funzionamento del protocollo FTP L'FTP, acronimo di File Transfert Protocol (protocollo di trasferimento file), è uno dei protocolli

Dettagli

ADA. E learning e open source

ADA. E learning e open source 1 ADA. E learning e open source ADA 1.7.1 Come cresce un Ambiente Digitale per l'apprendimento open source Maurizio Graffio Mazzoneschi 2 Cos'è il software libero Libertà 0, o libertà fondamentale: la

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

CMS (Content Management System) della categoria Open Source

CMS (Content Management System) della categoria Open Source Una panoramica sui CMS (Content Management System) CMS (Content Management System) della categoria Open Source Per la piattaforma PHP/MYSQL e considerata l esigenza sempre più ricorrente di realizzare

Dettagli