Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
E' nata anche una nuova tecnologia che serve per rispondere al bisogno della
connettività in movimento: il Wi-Fi. Si tratta di una tecnologia che permette il
collegamento del PC senza cavo, ossia in wireless, e addirittura alcuni comuni offrono
la connessione gratuita, rendendola disponibile in piazza, nelle biblioteche, in aeroporti,
in stazioni ferroviarie, ospedali.
Oggi la comunicazione è Internet.
1.2 Il Web
Oggi la tecnologia permette una comunicazione “immediata con contenuti
multimediali e attiva” tra persone, con raggio d' azione in tutto il Mondo.
Fino a diversi anni fa, le informazioni “immediate e passive” erano distribuite al
pubblico solo tramite due grossi media:
1) i telegiornali, in televisione.
2) i giornali o quotidiani, in edicola.
Oggi, a questi due, si è affiancato Internet.
E' cambiato un aspetto fondamentale. I grossi media distribuiscono notizie tramite un
gruppo di persone, in genere loro dipendenti. In Internet tutti possono partecipare a
distribuire notizie, semplicemente realizzando un sito, anche senza bisogno di denaro.
La qualità delle notizie dei media non si era mai percepita con chiarezza, fino all'
avvento del Web; ciò, infatti, dimostra che anche una sola persona è in grado di
rilasciare notizie di qualità ben superiore a quel gruppo dipendente da un media.
Inoltre, se i media utilizzano sempre il loro gruppo, data l' impossibilità di assumerne
altri per motivi di budget, in Internet sono già “assunti” tutti i gruppi, senza
remunerazione, ma anche senza spesa da parte di essi per quanto riguarda la
pubblicazione.
Se, come pregio, il Web produce informazioni di qualità, come difetto ha la
pubblicazione, che raggiunge un determinato numero di persone, dato che sono notizie
che non “passano” davanti a tutti, ma devono essere cercate da ogni singolo utente in
Internet, propagandosi con i passaparola della gente.
Solo quando ci si renderà conto dell'importanza della notizia ed essa avrà raggiunto un
gran numero di persone, arriverà a toccare anche i grossi media.
In un mondo frenetico come il nostro si è bombardati d' informazioni da parte dei
media e quindi ogni individuo prende delle misure di difesa contro queste eccessive
informazioni.
…......................................................................................................................................................................................................................................................................................
5
Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
Una prima difesa consiste nel trascurarle e avere un distacco da quello che succede,
anche perché (nel riscontro con i gli eventi accaduti in passato) le notizie sono relative
ad avvenimenti coesistenti e sempre attuali: politica, economia, eventi di cronaca.
Inoltre, per quanto riguarda il “corpo” delle informazioni, con Internet si è capito che
il testo lungo non funziona più. Le persone leggono spesso il titolo, il sottotitolo e
scorrono con il mouse sulle conclusioni finali.
Un articolo molto lungo, di molte pagine, è spesso noioso da intraprendere come
lettura. Quindi un primo messaggio che dà il web è quello del motto tedesco:
“Discorsi lunghi, poco senso, discorsi brevi grande senso”
Diverse sono le notizie di qualità che Internet fornisce rispetto ai media.
A mio parere, ogni individuo deve imparare ad esercitare la ragione e quindi le notizie
deve cercarle nel Web. Si parte dai ragionamenti semplici e sensati. Si analizza ciò che
avviene nel modo di vivere le giornate.
Per esempio, io ho fatto questo semplice ragionamento: la maggior parte della
giornata si passa sul posto di lavoro.
E per quanto riguarda il lavoro, un normale ragionamento porta alla conclusione:
“Lavoriamo tutti, per creare un mondo migliore per tutti”
Ecco che una caratteristica di Internet è quella di unire e non dividere, fornendo un
ottimo canale di comunicazione tra le parti su un progetto comune.
In base alle mie esperienze personali, posso descrivere alcune caratteristiche che più
mi piacciono di Internet.
Per esempio, diversi anni fa ho realizzato un piccolo progetto personale in ambito
elettrico/elettronico, ossia realizzare una semplice scheda elettronica per il controllo di
velocità di un motore elettrico di pochi Watt.
Avendo già da anni la passione per l' elettronica, la realizzazione del progetto è
scaturita dalla consultazione in Internet di molti siti sull' elettronica e relativi articoli
tecnici sul fai da te.
Ho potuto cosi scaricare fogli tecnici di componenti elettronici e consultarli prima di
acquistare il prodotto; installare software di simulazione e avere un feedback di
progettazione, realizzare fogli di lavoro, ricercare libri di testo su particolari circuiti
elettronici e con l'avvento delle fotocamere digitali realizzare fotografie digitali per poi
condividere con altri il progetto.
Ricercare, successivamente, aziende specifiche per realizzare un determinato pezzo
meccanico o altro e indirizzi di negozi situati nelle vicinanze per l'acquisto fisico del
componente elettronico.
Quindi un' altra caratteristica di Internet è stata quella di permettermi di rispondere a
più domande per realizzare un progetto personale:
…......................................................................................................................................................................................................................................................................................
6
Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
“ … devo fare questo, come posso farlo ?
… che cosa c'è a disposizione ?
… dove posso trovarlo ? “
Una per una, Internet mi ha dato le risposte e sono riuscito a realizzare un prodotto
finito e funzionante come desiderato.
1.3 Motivazioni e risultati
Le motivazioni che mi hanno portato a contribuire alla realizzazione di questo
progetto sono principalmente tre:
– l' apprendimento del Web come mezzo sociale,
– un apprendimento personale dei linguaggi Web,
– il realizzare un' applicazione Web e Desktop.
Il primo motivo deriva dal fatto che i documenti cartacei e tutta la burocrazia statale
“passa” ora on-line e quindi non è più necessario recarsi presso un ente, ritirare un
modulo, compilarlo a casa e poi riconsegnarlo fisicamente.
Per esempio, le iscrizioni alle scuole si fanno esclusivamente via Internet, cosi come
una prenotazione medica in ospedale, fissare un appuntamento presso un ente statale o
mettersi in contatto con una azienda e possibilità di fornire documentazioni con allegato
foto e video.
Si mantengono i contatti con gli “altri” tramite il web e lo spostamento fisico avviene
solo se necessario.
Il secondo motivo riguarda una conoscenza e interesse personale, ossia conoscenza
dei linguaggi di programmazione.
Poiché l'elettronica è strettamente collegata ai linguaggi di programmazione (per
esempio un motore passo-passo viene controllato da chip che contengono software,
generalmente linguaggio C per l'esecuzione delle istruzioni) conoscere più linguaggi mi
fa sentire più preparato per affrontare il mondo del lavoro.
Oltre ai consueti linguaggi specifici per l'elettronica, imparati negli anni universitari, si
possono conoscere anche i linguaggi Web; si arriva ad avere una preparazione più
adeguata al mondo di oggi.
Inoltre, per un Ingegnere, l'uso del PC è essenziale e diventa naturale e spontaneo,
come usare una calcolatrice scientifica.
Il terzo motivo è un completamento del secondo.
Non si tratta solo di conoscere i vari linguaggi di programmazione, ma anche di saper
…......................................................................................................................................................................................................................................................................................
7
Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
usare e realizzare applicazioni software, sia Web che Desktop, di vario tipo e
interagenti con l'elettronica discreta.
In questo progetto, l'obiettivo è la replica esatta di quello che avviene in laboratorio
utilizzando la strumentazione reale, in modo tale da preparare lo studente ad apprendere
velocemente e in modo più approfondito.
Il progetto riguarda la realizzazione di una applicazione Web relativa ad un nuovo
libro di testo sulla microelettronica, consultabile, previa autorizzazione, da casa
utilizzando il proprio PC collegato in rete.
I risultati ottenuti sono molto interessanti.
Una volta avviata l'applicazione ci si trova in un laboratorio virtuale proprio come se
fosse vero. E' possibile interagire direttamente modificando i valori degli strumenti,
cliccando sui rispettivi pulsanti, e vedere realmente i segnali generati dal circuito.
Il vantaggio è che non c'è il rischio di bruciare le apparecchiature poiché sono virtuali,
e non c'è il rischio che il circuito esploda.
L'applicazione è utile a chi non ha la possibilità di accedere ai laboratori.
Il libro di testo è il riferimento, mentre l'applicazione Web è un complemento
interattivo per le spiegazioni della materia e degli esercizi.
Il risultato finale è molto piacevole allo studente, in quanto rimane coinvolto in modo
positivo.
Una mia esperienza lavorativa
Durante gli studi universitari ho dovuto intraprendere attività lavorative in quanto mi
sono trovato in difficoltà economiche per la prematura scomparsa di mio padre.
Ho lavorato in una azienda produttrice di macchine perforatrici elettroidrauliche con
controllo a microprocessore.
Questi macchinari presentano un quadro elettrico dove vi è presente un PLC con i suoi
moduli d' ingresso e di uscite sia digitali che analogici e dove vi sono collegati tutti i
sensori, valvole elettroidrauliche, schede elettroniche per pilotare motori elettrici,
monitor touchscreen con grafica di comando, leve, pulsanti e tastiere di ogni genere per
comandare la macchina.
Il mio lavoro era quello di programmatore di PLC, utilizzando un PC portatile da
collegare al quadro elettrico e progettare la logica a livello software di ciò che vi era
collegato sugli ingressi e sulle uscite.
Per diversi anni, quindi, ho utilizzato esclusivamente il PC portatile come strumento
di lavoro per lo sviluppo di codice di programmazione e supervisione grafica di queste
macchine.
Queste macchine di enormi dimensioni sono state vendute in tutto il mondo per
l'estrazione di petrolio e a me è stato affidato soprattutto il compito dell' assistenza in
Sud America. Vedi fig. 1.3.1.
…......................................................................................................................................................................................................................................................................................
8
Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
Esse venivano poste in zone di difficile accesso come all' interno della foresta
amazzonica, su isole di grossi fiumi e in zone aride e distese.
Dopo il collaudo in Italia si presentava la necessità di una assistenza sul posto di
perforazione con meccanici, elettricisti, idraulici e programmatori.
Questi macchinari risultavano isolati a livello di rete elettrica e di comunicazione.
E' come se fosse un' isola a sé stante.
Vi erano dei grossi generatori trifase da
380V alimentati a gasolio che fornivano
elettricità a tutto l' impianto.
Una volta arrivati sul posto di lavoro, che
poteva essere Colombia, Venezuela, Brasile,
Argentina, Perù, Cile o altro stato, mi
collegavo con il PC alla macchina per il
collaudo e lo sviluppo della parte software.
Ebbene, nonostante potessi portarmi tutto il
necessario dall' Italia come hard disk con
backup dei dati, progetti e programmi,
succedeva sempre quel imprevisto tale per
cui era necessario uno scambio dati con l'
azienda madre.
Per risolvere il problema di comunicazione
dati vennero installate parabole satellitari di
enorme dimensioni così da poter avere
telefono e, colpo di scena, anche Internet !!!
“... un' esperienza indimenticabile essere in mezzo
ad una foresta amazzonica con il PC ed essere
collegati ad Internet: questo mi ha salvato
dai problemi più difficili, dove il cliente
necessitava di tutto e subito in un
clima di forte criminalità. “
Ottimo, con la possibilità di collegarsi in rete, potevo inviare e ricevere file di
qualsiasi tipo purché di piccole dimensioni; essendo un collegamento satellitare, la linea
non era sempre garantita, ma dipendeva dalle condizioni meteo presenti sul posto.
A volte si rimaneva qualche giorno senza linea e i successivi giorni con un
collegamento a “singhiozzo”, ma comunque sufficiente per l' invio di e-mail con
allegato file di piccole dimensioni (qualche MB), come:
…......................................................................................................................................................................................................................................................................................
9
Fig. 1.3.1: Italia - Sud America.
Capitolo 1 Introduzione e Motivazioni
…......................................................................................................................................................................................................................................................................................
– foto del pezzo meccanico o elettrico guasto,
– documenti elettronici,
– file del progetto PLC aggiornato e compresso,
– file di aggiornamento e configurazione schede elettroniche,
– firmware per dispositivi elettronici,
– brevissimi file video a bassa risoluzione.
Il problema più grosso, invece, era dato dall' impossibilità di scambiare file di grosse
dimensioni come 300 MB ed oltre.
Per esempio, il file di progetto relativo alla supervisione grafica raggiungeva queste
dimensioni e perciò non era possibile un invio e ricezione con Internet, perché ci voleva
troppo tempo in quanto la velocità di collegamento era bassa.
Anche i file video di grosse dimensioni era meglio evitare di spedirli.
Grazie a questo ho potuto:
– consultare alcune righe di codice, non sviluppate da me, con i miei colleghi,
– avere un' approvazione sulle modifiche software da effettuare,
– ricevere file testati sul banco prova in Italia,
– inviare file a colleghi in altre parti del mondo per lo stesso macchinario,
– firmare documenti per l' approvazione delle modifiche software,
– consegnare un rapporto di lavoro ai dirigenti,
– ricevere il biglietto aereo per spostamenti non previsti.
Per me è stato un vero piacere avere Internet quasi ovunque come programmatore di
PLC sul posto di lavoro.
La cosa più importante è stato l'aver un contatto con qualcuno del tuo paese, anche se
dall' altra parte del mondo.
…......................................................................................................................................................................................................................................................................................
10
Capitolo 2 Linguaggi per il Web e Flash
….......................................................................................................................................................................................................................................................................................
CAPITOLO 2
Linguaggi per il Web e Flash
2.1 Introduzione
Un sito Internet è un insieme di pagine collegate fra di loro in modo ipertestuale. Ciò
significa che esiste una relazione tra di esse, grazie a parole chiave che consentono il
passaggio da una ad un'altra tramite uno schema prefissato. Tali pagine risiedono
fisicamente su server accessibili agli utenti attraverso un browser, quando essi ne fanno
richiesta sulla rete mondiale World Wide Web.
Ci sono due tipologie di siti:
• siti statici,
• siti dinamici.
Un sito web statico è formato da pagine di sola lettura, al solo scopo di visualizzarne i
contenuti senza la possibilità di modificarne il contenuto e le informazioni.
Un sito web dinamico, invece, è formato da pagine che interagiscono con l'utente,
visualizzando quelle che vengono richieste con determinate condizioni di database.
I siti Internet sono poi suddivisi in categorie, tra le quali si possono citare quelli di tipo:
• personale
• commerciale elettronico
• aziendale
• comunicativo
• informativo
• archivio
• “motore di ricerca”
• database
• ludico
Molti siti possono anche avere contemporaneamente più funzioni: ad esempio, si
….......................................................................................................................................................................................................................................................................................
11
Capitolo 2 Linguaggi per il Web e Flash
….......................................................................................................................................................................................................................................................................................
possono trovare siti in cui viene descritto un prodotto e, nello stesso sito, lo si può
comprare on-line.
Il loro frequente uso ha naturalmente portato a sviluppare anche molti linguaggi di
programmazione per la realizzazione di essi ed il tipo di linguaggio è legato alla scelta
tra web statico e web dinamico.
La programmazione web è divisa in tre categorie:
• Programmazione Client-Side
• Programmazione Server-Side
• Programmazione Database
Nella programmazione Client-Side alcuni contenuti possono essere generati
dinamicamente sul browser dell'utente; mentre la programmazione Server-Side serve
per la costruzione di siti dinamici in grado di accedere a dati da database. Client-Side e
Server-Side sono anche i termini usati per indicare la modalità con cui è stata
implementata una pagina web.
Nella programmazione Client-Side i linguaggi più comuni sono:
– HTML
– AJAX
– Adobe Flash Player
– Dart
– JavaScript
– JAVA (applet)
Mentre per la programmazione Server-Side si possono trovare i seguenti linguaggi:
– ASP
– ColdFusion
– CGI e/o Perl
– Java, J2EE o WebObjects
– PHP
– Python
– Smalltalk
– .NET
Per quel che riguarda la programmazione Database, i linguaggi più usati sono qui di
seguito elencati:
– DB2
– Firebird SQL
– Microsoft SQL Server
– MySQL
– Oracle
– PostgreSQL
….......................................................................................................................................................................................................................................................................................
12
Capitolo 2 Linguaggi per il Web e Flash
….......................................................................................................................................................................................................................................................................................
– SQLite
Il linguaggio più comunemente usato per la programmazione Client-Side è l' HTML
(Hyper Test Markup Language) e la comunicazione tra un PC (computer collegato alla
rete dell'utente) e un server (computer generalmente senza monitor di proprietà di una
azienda) avviene come segue:
- Inserendo un indirizzo nel proprio browser (ad esempio
www.unipv.it/facoltà.html), esso si collega al server corrispondente all' indirizzo
www.unipv.it e gli chiede il file facoltà.html, che è scritto in linguaggio HTML.
Il server prende e spedisce il file al browser, il quale lo apre e lo visualizza,
mostrando la pagina web completa degli allegati sul PC dell'utente; tali allegati
devono poi essere richiesti al server stesso.
- Nel caso in cui il browser richieda un file scritto con codice Server-Side (ad
esempio studenti.php), il server prima esegue tale codice localmente, poi
produce un secondo file in HTML, che successivamente invia al browser.
Al contrario, quando il browser chiede un file scritto con codice Client-Side (ad
esempio lezioni.js), il server prima lo invia al browser e poi quest'ultimo lo
esegue e lo visualizza.
Alla rete sono collegati moltissimi computer di diverso tipo, con hardware diverso (ad
esempio CPU con architettura x86 o ARM), con software diverso (ad esempio per PC,
per server), con sistema operativo diverso (ad esempio Windows, MacOS, Linux,
Symbian) e, conseguentemente, con una formattazione del disco fisso con file system
diversi (ad esempio FAT, FAT32, NFTS, HFS+, ext3) e su ognuno di essi vengono
create pagine web con diversi tipi di linguaggi di programmazione, come
precedentemente descritto.
Il browser, quindi, deve essere in grado di aprire velocemente pagine web scritte con i
diversi linguaggi e deve avere la possibilità di installare plug-in per i linguaggi poco
usati.
Un plug-in è un particolare software che non è in grado di funzionare da solo, ma
semplicemente aggiunge potenzialità a un programma più complesso.
Ad esempio, infatti, Flash Player fruisce a un browser la capacità di visualizzare i file
creati con Flash.
L'indice chiamato TIOBE Programming Community Index valuta la popolarità di un
dato linguaggio di programmazione.
Questo indice si basa su molte fonti, principalmente sui tanti motori di ricerca, per
valutare la diffusione e l'utilizzo dei linguaggi, senza tener conto del gradimento da
parte degli utenti.
Ecco la classifica delle prime 20 posizioni ad ottobre 2011:
….......................................................................................................................................................................................................................................................................................
13
Capitolo 2 Linguaggi per il Web e Flash
….......................................................................................................................................................................................................................................................................................
Posizione Linguaggio Percentuale Status
…................................................................................................................................................................................................
1 Java 17,9% A
2 C 17,7% A
3 C++ 9,1% A
4 PHP 6,8% A
5 C# 6,7% A
6 Objective-C 6,2% A
7 Visual Basic 4,5% A
8 Python 3,9% A
9 Perl 2,4% A
10 JavaScript 2,2% A
11 Ruby 1,5% A
12 Delphi 1,1% A
13 Lisp 1,0% A
14 Transact-SQL 0,9% A
15 PL/SQL 0,9% A-
16 Lua 0,8% A
17 RPG(OS/400) 0,7% A--
18 Pascal 0,7% A
19 Assembly 0,6% B
20 Ada 0,6% B
Tab. 2.1.1: Classifica TIOBE.
Nell' elenco di tab. 2.1.1 non viene menzionato l' HTML in quanto esso è un
linguaggio web e non di programmazione.
Oltre alla classificazione dei linguaggi di programmazione, vi è anche uno status
indicato nella tabella TIOBE.
Linguaggi di programmazione che hanno lo status di "A" sono considerati linguaggi
mainstream (ossia di tendenza).
Gli stati di "A-" e "A--" indicano che un linguaggio di programmazione è tra "A" e
"B". Se un linguaggio di programmazione ha una valutazione che è superiore allo 0,7%
(questo numero è discutibile) significa che per almeno 3 mesi è stato premiato "A".
I primi due mesi del linguaggio di programmazione riceveranno lo status "A--" e "A-"
rispettivamente. Il ragionamento al contrario vale per i linguaggi che vanno dallo status
"A" allo status "B" (quindi prima "A-" e "A--").
Quindi, se un linguaggio ha avuto lo status "A" 2 mesi fa, una valutazione di
"0,607%" il mese scorso e una valutazione di "0,687%" ora, avrà lo status di "A--".
Java, JavaScript, C, C++ e C#
Java è un linguaggio di programmazione orientato agli oggetti di proprietà Oracle, ed
….......................................................................................................................................................................................................................................................................................
14
Capitolo 2 Linguaggi per il Web e Flash
….......................................................................................................................................................................................................................................................................................
è derivato dal C++ e dall' Objective C (Goodman 2001 [18]; Goodman 2010 [19]).
Fu sviluppato per realizzare programmi complessi da apportare su piccoli dispositivi
elettronici, ma il suo successo si sviluppò con l'avvento di Internet e della JVM ( Java
Virtual Machine per eseguire i programmi scritti in bytecode) che permisero di rendere
le pagine web interattive con l'utente in modalità Client-Side.
Uno dei punti di forza risiede nel realizzare semplici giochi implementati nel browser
e di essere indipendente dal tipo di piattaforma utilizzata grazie all'installazione di
applet nel browser.
Le applet poi sono piccole applicazioni facilmente installabili nel browser ed eseguibili
in background per visualizzare animazioni nelle pagine web; grazie anche a questo, il
successo di Java è enormemente cresciuto: “Scrivi una volta, esegui dovunque”.
In questo modo, il linguaggio Java raggiunge la cosiddetta portabilità su macchine con
hardware differente grazie al fatto anche di accedere a librerie e strumenti.
Vedi fig. 2.1.1.
La nascita di questo linguaggio deriva dal fatto che la programmazione in C++ non è
stato possibile renderla indipendente dalla piattaforma hardware, perché essa permette
un accesso alle risorse a livello molto basso e quindi dipendente dall'architettura della
CPU usata.
JavaScript è un linguaggio di scripting orientato agli oggetti con una sintassi molto
simile a quella di Java, standardizzato da ECMA.
Appena dopo la nascita di Internet, le pagine web erano solamente di tipo passivo,
ossia si poteva soltanto vedere testo, immagini e link, e quando lo sviluppo tecnologico
….......................................................................................................................................................................................................................................................................................
15
Fig. 2.1.1: Schema a blocchi della portabilità di Java.