Laboratorio di Applicazioni Informatiche II mod. A Linguaggi per il Web Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Nel World Wide Web sono impiegati diversi strumenti software che, in una classifica di complessità crescente, si possono elencare secondo lo schema della seguente tabella: Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Tipologia di linguaggio Esempio Linguaggi di marcatura ipertestuale HTML, DHTML, XML, WML, ColdFusion Linguaggi di scripting JavaScript, JScript, VBscript PHP, Perl, Python Linguaggi per script CGI C, Perl, Java, Visual Basic, TCL Linguaggi per database SQL (Structured Query Language) Programmi per Web server Apache, IIS (Internet Information Server) Programmi per creare siti Web FrontPage, DreamWeaver, Flash Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Linguaggi di Marcatura ipertestuale I linguaggi quali HTML, DHTML, XML, WML, ColdFusion, ecc. sono tecniche di inserimento di marcatori in un testo per ottenere funzionalità di impaginazione ottimale, ipertesto, multimedialità, pubblicabilità sul Web (quindi disponibilità mondiale, indipendente dalla piattaforma di computer usata dal navigatore). Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Linguaggi di scripting Sono linguaggi con cui si realizzano gli script, ovvero sequenze di istruzioni che, inserite all'interno di una pagina HTML, sono interpretate ed eseguite da un apposito modulo software detto motore di scripting. Il motore di scripting può essere contenuto nel browser del computer client (JavaScript, JScript, VBscript), oppure nel Web server (ASP, PHP, JSP). Sono usati per rendere attive le pagine Web, dotando i documenti HTML di intelligenza e interattività. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Linguaggi per script CGI Gli script CGI (Common Gateway Interface) sono piccoli insiemi di istruzioni (o procedure) che permettono a programmi esterni di eseguire elaborazioni complete su un server Web, utilizzandone l'hard disc per elaborare database, documenti, dati inviati dal client, ecc. (si tenga presente che la scrittura sull'hard disc del server non può essere fatta con i normali JavaScript elaborati dal browser). Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Se il server Web è abilitato all'esecuzione di script CGI, quando gli viene richiesto un file in una determinata directory, se questo risulta uno script CGI, non lo manda subito al client, ma lo elabora con il suo motore di scripting, e invia all’utente solo il risultato della elaborazione perché lo visualizzi. Un esempio è il contatore di accessi. Il linguaggio più usato per scrivere i CGI è il Perl, particolarmente orientato alla gestione di stringhe e file di testo. Sono anche usati i linguaggi di programmazione C, Java, Visual Basic. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Java E' un linguaggio di programmazione moderno, orientato agli oggetti, simile ma più semplice di C++. Le sue istruzioni vengono compilate e il codice risultante (bytecode) viene interpretato ed eseguito dalla Java Virtual Machine, modulo software contenuto nel browser. Con questa tecnica si assicura la portabilità e l'indipendenza dalla piattaforma delle applicazioni Java. Java supporta il multitasking, cioè la capacità di elaborare simultaneamente più compiti (task), chiamati 'thread' (multi-threading). Per capirne l'utilità basta pensare alle animazioni nelle pagine Web (prodotte con Java applet). Applicazioni Java possono lavorare anche sul computer server (servlet) e sono molto utili per applicazioni di programmazione distribuita, potendo comunicare facilmente con le applet Java in esecuzione nel computer client. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Linguaggi per database CGI Il più diffuso è SQL (Structured Query Language), un linguaggio utilizzato per estrarre le informazioni da un database relazionale. Questo è una raccolta di dati che viene gestita da un software apposito, chiamato DBMS (DataBase Management System), grazie al quale l'utente e le applicazioni possono accedere ai dati usando la loro rappresentazione logica, e non quella fisica. Ciò permette un elevato grado di indipendenza della programmazione delle applicazioni dalla memorizzazione fisica dei dati (che potrebbe anche essere variata nel tempo dall'amministratore). Non tutte le pagine Web sono documenti HTML statici: alcune sono dinamiche, cioè vengono create dal Web server quando noi le richiediamo e spesso contengono informazioni estratte da un database con un linguaggio come SQL. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Programmi per Web server Sono programmi – quali Apache, IIS, ecc... - residenti nel computer Web server, che rispondono alle richieste dei vari browser che si collegano a essi per scaricare delle pagine HTML, direttamente o dopo l’elaborazione di uno script contenuto nella pagina. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Strumenti per creare siti Web Sono programmi applicativi – quali DreamWeaver, FrontPage - concepiti per facilitare la creazione di pagine Web, o la realizzazione di animazioni (Flash). ASP (Active Server Pages). E’ una tecnologia sviluppata da Microsoft e inserita nel programma Internet Information Server (IIS). In normali pagine HTML si possono inserire comandi di script ASP che vengono eseguiti nel server da un apposito interprete; si producono così pagine HTML che vengono inviate al browser del client, per essere visualizzate. Le ASP sono caricate in una directory del server con estensione .asp. Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web PHP (Personal Home Pages). E' un interprete aggiunto ai Web server che permettere di creare pagine Web dinamiche. Opera su pagine composte sia da tag HTML, sia da parti in codice PHP, limitate tra i tag "<?PHP" e "?>“. Tali parti vengono eseguite prima di inviare all'utente la pagina richiesta. Il funzionamento è simile a quello delle pagine ASP. JSP (Java Server Pages). E’ una tecnica che permette d’inserire in una normale pagina HTML delle parti scritte in linguaggio Java, che vengono poi eseguite sul Web server (come i servlet Java). Laboratorio di applicazioni informatiche II – Mod. A Linguaggi per il Web Controlli ActiveX Come i CGI, non sono un linguaggio di programmazione, ma delle specifiche proprietarie di Microsoft che permettono di eseguire in una pagina Web programmi scritti in linguaggi quali Visual C++ o Visual Basic. Queste applicazioni sono caricate in forma compilata sul Web server e vengono scaricate ed eseguite dal browser, come le applet Java. A differenza delle applet Java, i controlli ActiveX: possono restare installati permanentemente sul computer client (per evitare i tempi di scaricamento dalla Rete); possono compiere azioni anche pericolose (quali formattare l'hard disk): la sicurezza è affidata a una firma che permette di identificare se la fonte è affidabile; funzionano solo con Internet Explorer e su sistemi operativi Windows. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità HTML (HyperText Markup Language) è un linguaggio di descrizione della pagina, creato dai ricercatori del CERN con lo scopo iniziale di scambiarsi rapidamente on-line documenti su supporto elettronico anziché cartaceo. Esso è un linguaggio ipertestuale basato su marcatori (markup), impiegato per creare pagine Web. il primo browser HTML, Mosaic, è stato sviluppato nel 1993 nell’ambito del progetto WWW, avviato nel 1990 per realizzare un metodo ipertestuale e intuitivo per accedere alle risorse sulla rete. Oggi le regole del linguaggio HTML sono stabilite dal consorzio W3 (vedi http://www.w3.org). Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità HTML fu definito utilizzando SGML (Standard Generalized Markup Language), uno standard per la gestione delle informazioni adottato dall’ISO nel 1986. La finalità di SGML è di consentire la preparazione di documenti indipendenti dalla piattaforma e dalle applicazioni, mantenendovi al contempo informazioni di struttura relative al formato, all’indice analitico e alle informazioni collegate. SGML distingue il contenuto (testuale o multimediale) di un documento dalle informazioni riguardanti il contenuto stesso, che non vengono visualizzate. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità SGML è un metalinguaggio, ossia un linguaggio che ne definisce altri, che facilitano la gestione delle informazioni in modo che possano essere distribuite, ricercate e fornite indipendentemente dai dettagli di visualizzazione dei documenti. Per tale ragione gli sviluppatori devono specificare regole di struttura dei documenti, chiamate Definizioni del Tipo di Documento (DTD), che specificano esattamente come devono apparire le strutture SGML. Un documento SGML non possiede alcuna indicazione sulla sua rappresentazione estetica, dato che i comandi di SGML identificano soltanto le strutture quali titoli, sottotitoli, paragrafi, elenchi e altre componenti. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità Tali comandi semplificano il riutilizzo delle informazioni e aiutano le ricerche, dato che facilitano la comprensione della struttura logica di un documento. La pagina può essere visualizzata soltanto quando un programma reinterpreta il documento mediante un foglio di stile. Questo definisce l'aspetto dei documenti di un sito in maniera uniforme e coerente, rendendo molto veloce la loro produzione. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità In origine HTML non fu concepito come un linguaggio di descrizione di pagina, ma per contrassegnare le parti strutturali dei documenti, quali paragrafi, elenchi, titoli, citazioni e così via. Basandosi sull'identificazione di queste parti strutturali un programma browser può interpretare i documenti HTML visualizzandoli in un formato leggibile. Questa organizzazione permette di evidenziare la distinzione tra il codice HTML, in cui vengono specificati gli aspetti strutturali del documento, e la sua visualizzazione all'interno di un browser. In pratica HTML utilizza diversi costrutti linguistici per controllare l'aspetto dei documenti. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità Concepito come linguaggio di contrassegno semantico per definire la struttura logica dei documenti, HTML fornisce un mezzo mediante il quale gli utenti identificano le parti strutturali che compongono i documenti. Alla base delle regole che definiscono i linguaggi a marcatori, di cui HTML è l'esempio più conosciuto, c’è la tecnica di inserire in un documento, con un editore di testi, sequenze di caratteri (marcatori) che non possono comparire nel documento originario, che forniscono direttive al programma di impaginazione e stampa. Tale tecnica è stata usata fin dai tempi dei primi word processor, che erano costituiti da un modulo editore di testo e da uno per l'impaginazione e la stampa del documento. Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità Per esempio, facendo iniziare una riga con un punto esclamativo (nessuna riga in un normale documento inizia così), seguito dai caratteri di una apposita direttiva (comando diretto al programma di stampa) era possibile ottenere la stampa con caratteri corsivi da quel punto in poi. Ovviamente tutti i caratteri della direttiva, compreso il punto esclamativo, non venivano stampati nel documento. Un'altra direttiva, inserita nel testo in modo analogo, permetteva di ripristinare la stampa normale (o il grassetto, la sottolineatura, ecc.). Laboratorio di Applicazioni Informatiche II mod. A HTML - Generalità L'idea è stata poi ulteriormente estesa in HTML permettendo l'inserimento di comandi che, in fase di impaginazione e stampa (o visualizzazione) del documento, possono: includere l'indirizzo di un altro documento collegato (link); inserire un elemento multimediale (immagine o suono); acquisire con apposite istruzioni dei dati dall'utente in modo interattivo (form); eseguire istruzioni di appositi linguaggi (per esempio JavaScript o Applet Java) per conferire un comportamento dinamico al documento presentato all'utente.