SlideShare a Scribd company logo
1 of 15
Download to read offline
UNIVERSITA' DEGLI STUDI DELL'INSUBRIA




        Facoltà di Informatica

        Anno accademico 2009/2010

             Corso di Web 2.0




        Barboni Stefano   702499
       Castiglioni Andrea 700484
        Modugno Manlio    701896
Sommario


Introduzione ......................................................................................................................... 3
Trovare lavoro on-line .......................................................................................................... 6
Dominio applicativo ............................................................................................................. 8
   Le aziende......................................................................................................................... 8
   Gli eventi lavorativi .......................................................................................................... 9
   Le categorie lavorative .................................................................................................... 10
   L’utente in cerca di lavoro .............................................................................................. 10
Sicurezza e Privacy ............................................................................................................ 11
   Sicurezza ........................................................................................................................ 11
   Privacy ............................................................................................................................ 12
Tecnologie ......................................................................................................................... 13
   Il pattern MVC................................................................................................................ 13
INTRODUZIONE

Il World Wide Web era un contenitore di documenti statici visualizzabili da un Web Browser.
Documenti statici venivano resi disponibili da un web server che rispondeva alla richiesta di un
client (tramite la chiamata ad un Url da parte di un web browser).

Digitando un Url (per esempio www.miosito.com/index.html) sul nostro web browser, il web server
verificava la presenza del file richiesto (index.html) e ,se lo trovava, inviava la risposta al client
permettendo la lettura del file.

Questo tipo di struttura aveva il difetto di necessitare di un intervento tecnico diretto sul server ad
ogni aggiornamento dei dati.

Inoltre la gestione di autorizzazione e autenticazione degli utenti imponeva lo sviluppo di soluzioni
(per esempio script cgi o filtri isapi) che non erano alla portata di tutti.

                        Figura 1: Schema della struttura di un sito web "statico"
L'evoluzione tecnologica ha modificato radicalmente i sistemi di gestione delle informazioni in rete.
Il principio attuale dello sviluppo web può essere riassunto così: "informazioni sempre aggiornate,
sempre disponibili .

La diffusione di linguaggi e tecnologie lato server (Asp, Php, j2ee, jsp, servlet, .net e altri) hanno
portato notevoli semplificazioni nella gestione di informazioni, fornendo modelli di sviluppo e
framework che, se da una parte hanno reso lo sviluppo rapido e proficuo, dall'altra hanno
allontanato il programmatore dai protocolli, spesso impedendo un controllo funzionale e preciso
sulla sicurezza del flusso di dati.

La figura 2 descrive la struttura tipica di una semplice applicazione Web sviluppata con un
linguaggio di scripting lato server.

       ·   Il web server riceve dal client la richiesta di un'informazione aggiornata.
       ·   L'applicazione (ospitata dal server applicazioni) riceve la richiesta proveniente dal web
           server e la elabora, interrogando la fonte dati e ricevendo una risposta.
       ·   L'applicazione risponde al web server con una pagina formattata e comprensibile
           (contenente i dati provenienti dalla fonte dati).
       ·   Il web server risponde al client fornendo l'informazione richiesta.

                Figura 2: Schema di una struttura di una applicazione web "dinamica"
Questo struttura, tuttora in uso, ha diversi vantaggi, tra cui il fatto che le informazioni sono più
semplici da aggiornare e che i tre livelli "logici" dell'applicazione (presentazione, logica, dati) sono
separati.

L'ultima "moda" dello sviluppo dell'applicazione Web (non una novità, ma solo un'applicazione
evoluta di tecnologie già esistenti), è il cosiddetto Web 2.0.in cui viene utilizzata una tecnologia
chiamata Ajax Asynchronous JavaScript and XML per fornire all'applicazione web funzionalità di
aggiornamento asincrono. La figura 3 descrive la struttura di un'applicazione Ajax.




                             Figura 3: Struttura di una applicazione Ajax




La trasmissione di dati tra il client e il server avviene secondo richieste "esclusive per zone della
pagina", in questo modo non si ha la necessità di aggiornare tutta la pagina per visualizzare i
contenuti aggiornati di un "box".
TROVARE LAVORO ON-LINE


Il lavoro oggi, forse a seguito anche dell'ultima crisi economica, è rappresenta una delle
problematiche principali, e per trovarlo non sempre si hanno gli strumenti giusti: le agenzie
interinali non offrono un vero impiego lavorativo ma danno lavoro solo in sostituzione di malattie o
ferie di dipendenti fissi, inoltre ci sono spesso lunghi tempi di attesa; in internet possiamo trovare
numerosi siti che propongono lavoro come Bakeka o JobRapido ma non sempre si trovano tutte le
informazioni a riguardo e, elemento da non sottovalutare, fondamentale i siti non vengono
aggiornati frequentemente.

Inoltre su questi siti non si conosce approfonditamente l'entità di chi offre il lavoro, quindi il
lavoratore interessato si deve fidare della società che lo fornisce senza avere nessun feedback a
riguardo se non facendo una ricerca sui vari blog, a discapito della sicurezza e di una reale perdita
di tempo.

Possiamo quindi dire che al giorno d'oggi internet è uno strumento potentissimo per interagire e
risolvere problemi importanti come quello della ricerca di un impiego, ma deve essere sicuramente
sfruttato in una maniera migliore in modo che chi offre lavoro sia occasionalmente (esempio
servizio catering per feste, cerimonie) oppure costantemente (normale contratto lavorativo) siano
aziende conosciute o perlomeno valutabili da chi richiede lavoro. L’idea che ha fatto nascere questa
applicazione web ha come utenza principale le aziende che si iscrivono illustrando un profilo
completo della propria attività e, di volta in volta, pubblicheranno eventi lavorativi nei quali si
ricercano personale.

Le applicazioni web-based oggi concorrono ad implementare in tutto o in parte soluzioni software
quali Webmail, e-commerce, web forum, blog, MMORPG e molto altro ancora.

Troviamo applicazioni web ovunque. Esempi comuni sono quelle applicazioni che ci permettono di
cercare sul web, come Google; di collaborare a progetti, come SourceForge; di acquistare prodotti
da un'asta, come avviene su eBay. Inoltre sono nati molti siti web che fungono da directory di
script, spesso gratuiti (Opensource), come Hotscripts.com (In lingua Inglese).
Ma questo è solo un esempio poiché se ricerchiamo su Google è facile scoprire un'infinità di siti in
tutte le lingue e paesi. La stessa Wikipedia è un brillante esempio di riuscitissima webapp.

Non sono presenti però web application che siano in grado di fornire agli utenti la ricerca e l’offerta
di lavoro dislocato in un determinato ambito territoriale.

Si costruisce così la web application del lavoro (NET – WORK), una rete non ancora presente sul
web, facile da usare, trasparente e che offra lavoro anche a breve termine (es.: un'azienda di catering
può aver bisogno per la settimana immediatamente successiva di 5 camerieri. Posterà l'evento
“catering” e successivamente valuterà le proposte dei candidati iscritti a quell'evento scegliendone i
cinque canditati che l’azienda ritiene essere migliore).

Parallelamente ad uno sviluppo implementativo verrà aggiornato anche uno sviluppo teorico per
eventuali sviluppi futuri.
DOMINIO APPLICATIVO


Come descritto nel capitolo precedente, delle strutture web per la ricerca del lavoro non sono ancora
esistenti. La nostra idea è quella di creare una web application (quindi non solo un sito dove si
mettono dei semplici annunci) in cui le informazioni scambiate sono la domanda e l'offerta di
lavoro, inoltre l'aspetto fondamentale è la semplicità di utilizzo e la conoscenza dell'utente che offre
lavoro e che usufruisce del lavoro. Punto cardine della applicazione sarà la dislocazione territoriale
della forza lavoro: molte aziende hanno necessità di ricercare personale in breve tempo e in una
determinata area, mentre gli utenti in cerca di lavoro temporaneo potranno selezionare la zona
interessata e il tipo di mansione che possono prestare.

Le aziende
Le aziende rappresentano le utenze principali. Esse dovranno compilare un profilo dettagliato e
completo in modo tale da fornire, agli utenti interessati, tutte le informazioni che riguardano
l’azienda stessa, dando così l’opportunità a tutti gli utenti di valutare il futuro datore di lavoro.

Agli utenti che presteranno attività lavorativa presso un’azienda, sarà data la possibilità di valutare
l’azienda attraverso dei feedback che potranno essere positivi, nulli o negativi.
Gli eventi lavorativi
Gli eventi lavorativi saranno inseriti nell’applicazione dalle aziende in cerca di personale
dipendente. Negli eventi dovranno essere indicati obbligatoriamente il tipo di mansione richiesto,
luogo e data dove svolgere l’attività lavorativa. In particolare sarà data importanza alla dislocazione
territoriale dell’evento (attraverso una mappa interattiva), per permettere all’utente in cerca di
lavoro di ricercare, nella zona a lui più conveniente, l’attività lavorativa.




L’evento lavorativo metterà in relazione le agenzia con gli utenti in cerca di lavoro. Candidandosi
all’evento, l’utente permetterà all’azienda di accedere ai suoi dati personali e alle sue qualifiche.
Le categorie lavorative


Un ruolo importante appartiene anche alle categorie lavorative che indicano il tipo di lavoratore del
quale l’aziende intende avvalersi. Uno degli scopi dell’applicazione è quello di offrire ad un utente
in cerca di opportunità lavorativa, la possibilità di ricercare tali eventi filtrati per categoria.




L’utente in cerca di lavoro
Gli utenti in cerca di lavoro (iscritti o non iscritti) avranno la possibilità di cercare gli eventi
lavorativi, selezionando il tipo di mansione preferito e la zona di lavoro. All’utente in cerca di
lavoro sarà data la possibilità di compilare un curriculum vitae on-line che gli permetterà di
mostrare, a chi offre il lavoro, le proprie qualifiche.
SICUREZZA E PRIVACY

Sicurezza


Il requisito della sicurezza nelle applicazioni web rimane, ad oggi, uno dei principali problemi che
affligge questa tecnologia. Basta scorrere le security advisory pubblicate su, ad esempio, Security
Focus per accorgersi della gravità del fenomeno. Sul totale delle vulnerabilità segnalate, una grossa
percentuale è da attribuire a software sviluppati con tecnologie web.

L’applicazione, per gestire il trattamento di dati personali, dovrà rispettare le seguenti misure di
sicurezza:

   ·   utilizzo di una procedura di autenticazione che permetta l'identificazione dell'incaricato
       attraverso opportune credenziali di autenticazione;
   ·   utilizzo di una parola chiave, quando prevista dal sistema di autenticazione, composta da
       almeno otto caratteri;
   ·   possibilità di modifica della parola chiave, quando prevista dal sistema di autenticazione,
       da parte dell'incaricato al primo utilizzo e, successivamente, almeno ogni sei mesi;
   ·   possibilità di disattivazione delle credenziali di autenticazione non utilizzate da almeno
       sei mesi, salvo quelle preventivamente autorizzate per soli scopi di gestione tecnica;
   ·   esistenza di meccanismi di autorizzazione per la separazione dei privilegi degli incaricati
       in base a diversi profili autorizzativi;
   ·   esistenza di meccanismi di backup che consentano il salvataggio dei dati con frequenza
       almeno settimanale
Privacy

Ai sensi del D. Lgs. n. 196/2003 "Codice in materia di trattamento dei dati personali", quando siti e
applicazioni trattano dati personali e/o sensibili/giudiziari, le operazioni che vengono effettuate su
di essi devono essere previste da leggi o regolamenti.

Inoltre, è obbligatorio dare adeguata informativa su tutti i trattamenti dei dati personali che
vengono effettuati dal titolare.

Al momento della raccolta di dati tramite compilazione di schede per via telematica occorre fornire
all´utente una serie di informazioni specifiche:

   1. le finalità e le modalità del trattamento cui sono destinati i dati;
   2. la natura obbligatoria o facoltativa del conferimento dei dati;
   3. le conseguenze di un eventuale rifiuto di rispondere;
   4. i soggetti o le categorie di soggetti ai quali i dati personali possono essere comunicati o
       che possono venirne a conoscenza in qualità di responsabili o incaricati, e l'ambito di
       diffusione dei dati medesimi;
   5. i diritti di cui all'articolo 7;
   6. gli estremi identificativi del titolare e, se designati, del rappresentante nel territorio dello
       Stato ai sensi dell'articolo 5 e del responsabile. Quando il titolare ha designato più
       responsabili è indicato almeno uno di essi, indicando il sito della rete di comunicazione o le
       modalità attraverso le quali è conoscibile in modo agevole l´elenco aggiornato dei
       responsabili. Quando è stato designato un responsabile per il riscontro all´interessato in caso
       di esercizio dei diritti di cui all´articolo 7, è indicato tale responsabile.
TECNOLOGIE

Negli ultimi anni hanno cominciato a riscuotere sempre più successo tra i Web developers alcuni
framework (come Ruby on Rails per Ruby e Django per Phyton) tesi a migliorare lo sviluppo di
applicazioni Web. Questi framework, basati sul paradigma Model-View-Controller (MVC), offrono
allo sviluppatore diverse funzionalità tra cui:

   ·   maggiore organizzazione del codice
   ·   scaffolding dei dati
   ·   URL "puliti", adatti ai motori di ricerca
   ·   maggiore rapidità di sviluppo.


ASP.Net MVC rappresenta anche uno dei primi esperimenti Open Source di Microsoft. Il nuovo
componente del framework .NET è stato infatti sviluppato in collaborazione con la community
attraverso il rilascio su CodePlex di diverse versioni di prova durante tutto il ciclo di sviluppo,
iniziato nel 2007, e del codice sorgente, disponibile sotto licenza Ms-PL anche per la versione 1.0 di
ASP.Net MVC.

Il diverso approccio utilizzato da Microsoft per ASP.Net MVC trova conferma anche
nell'inserimento all'interno del download ufficiale della libreria Javascript JQuery in una versione
con supporto all'Intellisense di Visual Studio.


Il pattern MVC


Model-View-Controller (MVC) è un pattern utilizzato in programmazione per dividere il codice in
blocchi dalle funzionalità ben distinte.

Per capire come questo approccio si possa adattare allo sviluppo Web, si pendi al classico
funzionamento di una applicazione internet.

Un client, tipicamente un browser, inoltra la richiesta ad un server per una pagina HTML. Il server
ospita un'applicazione scritta in un linguaggio di programmazione lato server (come C# o VB.NET)
che preleva i dati da un database, li elabora e li restituisce al client in formato HTML.
Figura 4: Funzionamento di una applicazione server




La parte più "attiva" in questo procedimento è l'applicazione Web che ha il compito di reperire ed
inviare le informazioni.

Si immagini ora di scrivere una applicazione consistente in una singola pagina Web che svolga tutti
i compiti descritti in precedenza. È evidente che riunire tutte queste operazioni in un unico blocco di
codice (la pagina) creerà presto molta confusione, oltre a portare problemi di manutenzione e
infinite sessioni di debug per risolvere i problemi.

Si provi ora ad organizzare il codice in modo più logico, dividendolo in tre parti: la prima si
occuperà dei dati e fornirà quindi i metodi per accedere al database, la seconda sarà responsabile
della creazione del codice HTML, mentre la terza farà da intermediario fra le prime due.

Lo sviluppatore, organizzando il codice secondo questo schema, potrà concentrarsi su un problema
specifico ed avere la sicurezza che l'intervento rimanga circoscritto al blocco di codice di cui si sta
occupando, lasciando intatti gli altri. Se pensiamo poi ad un progetto di grandi dimensioni, in cui
presumibilmente ogni parte sarà creata e mantenuta da persone diverse, diventa evidente come la
divisione logica del codice in zone distinte aumenti l'efficienza complessiva.
Lo schema che abbiamo identificato è esattamente quello proposto dal pattern MVC. In particolare:

   ·   Model: contiene i metodi di accesso ai dati.
   ·   View: si occupa di visualizzare i dati all'utente e gestisce l'interazione fra quest'ultimo e
       l'infrastruttura sottostante.
   ·   Controller: riceve i comandi dell'utente attraverso il View e reagisce eseguendo delle operazioni che
       possono interessare il Model e che portano generalmente ad un cambiamento di stato del View.


                                       Figura 5: Divisione dei ruoli in MVC

More Related Content

Similar to Relazione

Applicazioni web e SaaS, considerazioni. [Report]
Applicazioni web e SaaS, considerazioni. [Report]Applicazioni web e SaaS, considerazioni. [Report]
Applicazioni web e SaaS, considerazioni. [Report]Claudio Rava
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006Emanuele Della Valle
 
Web 2.0 e semplicità
Web 2.0 e semplicitàWeb 2.0 e semplicità
Web 2.0 e semplicitàguestf44f11
 
Web 2.0 Expo SF 2010
Web 2.0 Expo SF 2010Web 2.0 Expo SF 2010
Web 2.0 Expo SF 2010stefanochiari
 
Open labor appcontest
Open labor appcontestOpen labor appcontest
Open labor appcontestLynx
 
SEO: Search Engine Optimization & Cloud computing
SEO: Search Engine Optimization & Cloud computingSEO: Search Engine Optimization & Cloud computing
SEO: Search Engine Optimization & Cloud computingbsdlover
 
La rivoluzione del web 2.0
La rivoluzione del web 2.0La rivoluzione del web 2.0
La rivoluzione del web 2.0Luca Mascaro
 
Presentazione DevInterface
Presentazione DevInterfacePresentazione DevInterface
Presentazione DevInterfaceDevInterface srl
 
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...Flavio Bontà
 
2011-2014: cosa è cambiato sul Web per le aziende
2011-2014: cosa è cambiato sul Web per le aziende2011-2014: cosa è cambiato sul Web per le aziende
2011-2014: cosa è cambiato sul Web per le aziendeGabriele Romanato
 
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDESMAU
 
Professioni Web: come sopravvivere alla giungla digitale
Professioni Web: come sopravvivere alla giungla digitaleProfessioni Web: come sopravvivere alla giungla digitale
Professioni Web: come sopravvivere alla giungla digitaleRoberto Scano
 
Sala Biè 7 maggio 2015
Sala Biè 7 maggio 2015Sala Biè 7 maggio 2015
Sala Biè 7 maggio 2015Davis Cussotto
 
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...Roberto Scano
 
Lavoratori del Web: coniugare diritti e opportunità
Lavoratori del Web: coniugare diritti e opportunitàLavoratori del Web: coniugare diritti e opportunità
Lavoratori del Web: coniugare diritti e opportunitàFrancesca Tomasi
 

Similar to Relazione (20)

Applicazioni web e SaaS, considerazioni. [Report]
Applicazioni web e SaaS, considerazioni. [Report]Applicazioni web e SaaS, considerazioni. [Report]
Applicazioni web e SaaS, considerazioni. [Report]
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
 
Web 2.0 e semplicità
Web 2.0 e semplicitàWeb 2.0 e semplicità
Web 2.0 e semplicità
 
Web 2.0 Expo SF 2010
Web 2.0 Expo SF 2010Web 2.0 Expo SF 2010
Web 2.0 Expo SF 2010
 
Open labor appcontest
Open labor appcontestOpen labor appcontest
Open labor appcontest
 
Presentazione Wave37
Presentazione Wave37Presentazione Wave37
Presentazione Wave37
 
SEO: Search Engine Optimization & Cloud computing
SEO: Search Engine Optimization & Cloud computingSEO: Search Engine Optimization & Cloud computing
SEO: Search Engine Optimization & Cloud computing
 
La rivoluzione del web 2.0
La rivoluzione del web 2.0La rivoluzione del web 2.0
La rivoluzione del web 2.0
 
Presentazione DevInterface
Presentazione DevInterfacePresentazione DevInterface
Presentazione DevInterface
 
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...
Una webapp per il servizio di e-receuitment: progettazione e sviluppo con dat...
 
Tesina ITS final
Tesina ITS finalTesina ITS final
Tesina ITS final
 
Tesina ITS final
Tesina ITS finalTesina ITS final
Tesina ITS final
 
2011-2014: cosa è cambiato sul Web per le aziende
2011-2014: cosa è cambiato sul Web per le aziende2011-2014: cosa è cambiato sul Web per le aziende
2011-2014: cosa è cambiato sul Web per le aziende
 
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE
2011 -2014: COSA È CAMBIATO SUL WEB PER LE AZIENDE
 
Web-writing
Web-writingWeb-writing
Web-writing
 
Professioni Web: come sopravvivere alla giungla digitale
Professioni Web: come sopravvivere alla giungla digitaleProfessioni Web: come sopravvivere alla giungla digitale
Professioni Web: come sopravvivere alla giungla digitale
 
Web2.0
Web2.0Web2.0
Web2.0
 
Sala Biè 7 maggio 2015
Sala Biè 7 maggio 2015Sala Biè 7 maggio 2015
Sala Biè 7 maggio 2015
 
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...
Come evolverà il Web? Consigli su come non rimanere disoccupati nel giro di p...
 
Lavoratori del Web: coniugare diritti e opportunità
Lavoratori del Web: coniugare diritti e opportunitàLavoratori del Web: coniugare diritti e opportunità
Lavoratori del Web: coniugare diritti e opportunità
 

Relazione

  • 1. UNIVERSITA' DEGLI STUDI DELL'INSUBRIA Facoltà di Informatica Anno accademico 2009/2010 Corso di Web 2.0 Barboni Stefano 702499 Castiglioni Andrea 700484 Modugno Manlio 701896
  • 2. Sommario Introduzione ......................................................................................................................... 3 Trovare lavoro on-line .......................................................................................................... 6 Dominio applicativo ............................................................................................................. 8 Le aziende......................................................................................................................... 8 Gli eventi lavorativi .......................................................................................................... 9 Le categorie lavorative .................................................................................................... 10 L’utente in cerca di lavoro .............................................................................................. 10 Sicurezza e Privacy ............................................................................................................ 11 Sicurezza ........................................................................................................................ 11 Privacy ............................................................................................................................ 12 Tecnologie ......................................................................................................................... 13 Il pattern MVC................................................................................................................ 13
  • 3. INTRODUZIONE Il World Wide Web era un contenitore di documenti statici visualizzabili da un Web Browser. Documenti statici venivano resi disponibili da un web server che rispondeva alla richiesta di un client (tramite la chiamata ad un Url da parte di un web browser). Digitando un Url (per esempio www.miosito.com/index.html) sul nostro web browser, il web server verificava la presenza del file richiesto (index.html) e ,se lo trovava, inviava la risposta al client permettendo la lettura del file. Questo tipo di struttura aveva il difetto di necessitare di un intervento tecnico diretto sul server ad ogni aggiornamento dei dati. Inoltre la gestione di autorizzazione e autenticazione degli utenti imponeva lo sviluppo di soluzioni (per esempio script cgi o filtri isapi) che non erano alla portata di tutti. Figura 1: Schema della struttura di un sito web "statico"
  • 4. L'evoluzione tecnologica ha modificato radicalmente i sistemi di gestione delle informazioni in rete. Il principio attuale dello sviluppo web può essere riassunto così: "informazioni sempre aggiornate, sempre disponibili . La diffusione di linguaggi e tecnologie lato server (Asp, Php, j2ee, jsp, servlet, .net e altri) hanno portato notevoli semplificazioni nella gestione di informazioni, fornendo modelli di sviluppo e framework che, se da una parte hanno reso lo sviluppo rapido e proficuo, dall'altra hanno allontanato il programmatore dai protocolli, spesso impedendo un controllo funzionale e preciso sulla sicurezza del flusso di dati. La figura 2 descrive la struttura tipica di una semplice applicazione Web sviluppata con un linguaggio di scripting lato server. · Il web server riceve dal client la richiesta di un'informazione aggiornata. · L'applicazione (ospitata dal server applicazioni) riceve la richiesta proveniente dal web server e la elabora, interrogando la fonte dati e ricevendo una risposta. · L'applicazione risponde al web server con una pagina formattata e comprensibile (contenente i dati provenienti dalla fonte dati). · Il web server risponde al client fornendo l'informazione richiesta. Figura 2: Schema di una struttura di una applicazione web "dinamica"
  • 5. Questo struttura, tuttora in uso, ha diversi vantaggi, tra cui il fatto che le informazioni sono più semplici da aggiornare e che i tre livelli "logici" dell'applicazione (presentazione, logica, dati) sono separati. L'ultima "moda" dello sviluppo dell'applicazione Web (non una novità, ma solo un'applicazione evoluta di tecnologie già esistenti), è il cosiddetto Web 2.0.in cui viene utilizzata una tecnologia chiamata Ajax Asynchronous JavaScript and XML per fornire all'applicazione web funzionalità di aggiornamento asincrono. La figura 3 descrive la struttura di un'applicazione Ajax. Figura 3: Struttura di una applicazione Ajax La trasmissione di dati tra il client e il server avviene secondo richieste "esclusive per zone della pagina", in questo modo non si ha la necessità di aggiornare tutta la pagina per visualizzare i contenuti aggiornati di un "box".
  • 6. TROVARE LAVORO ON-LINE Il lavoro oggi, forse a seguito anche dell'ultima crisi economica, è rappresenta una delle problematiche principali, e per trovarlo non sempre si hanno gli strumenti giusti: le agenzie interinali non offrono un vero impiego lavorativo ma danno lavoro solo in sostituzione di malattie o ferie di dipendenti fissi, inoltre ci sono spesso lunghi tempi di attesa; in internet possiamo trovare numerosi siti che propongono lavoro come Bakeka o JobRapido ma non sempre si trovano tutte le informazioni a riguardo e, elemento da non sottovalutare, fondamentale i siti non vengono aggiornati frequentemente. Inoltre su questi siti non si conosce approfonditamente l'entità di chi offre il lavoro, quindi il lavoratore interessato si deve fidare della società che lo fornisce senza avere nessun feedback a riguardo se non facendo una ricerca sui vari blog, a discapito della sicurezza e di una reale perdita di tempo. Possiamo quindi dire che al giorno d'oggi internet è uno strumento potentissimo per interagire e risolvere problemi importanti come quello della ricerca di un impiego, ma deve essere sicuramente sfruttato in una maniera migliore in modo che chi offre lavoro sia occasionalmente (esempio servizio catering per feste, cerimonie) oppure costantemente (normale contratto lavorativo) siano aziende conosciute o perlomeno valutabili da chi richiede lavoro. L’idea che ha fatto nascere questa applicazione web ha come utenza principale le aziende che si iscrivono illustrando un profilo completo della propria attività e, di volta in volta, pubblicheranno eventi lavorativi nei quali si ricercano personale. Le applicazioni web-based oggi concorrono ad implementare in tutto o in parte soluzioni software quali Webmail, e-commerce, web forum, blog, MMORPG e molto altro ancora. Troviamo applicazioni web ovunque. Esempi comuni sono quelle applicazioni che ci permettono di cercare sul web, come Google; di collaborare a progetti, come SourceForge; di acquistare prodotti da un'asta, come avviene su eBay. Inoltre sono nati molti siti web che fungono da directory di script, spesso gratuiti (Opensource), come Hotscripts.com (In lingua Inglese).
  • 7. Ma questo è solo un esempio poiché se ricerchiamo su Google è facile scoprire un'infinità di siti in tutte le lingue e paesi. La stessa Wikipedia è un brillante esempio di riuscitissima webapp. Non sono presenti però web application che siano in grado di fornire agli utenti la ricerca e l’offerta di lavoro dislocato in un determinato ambito territoriale. Si costruisce così la web application del lavoro (NET – WORK), una rete non ancora presente sul web, facile da usare, trasparente e che offra lavoro anche a breve termine (es.: un'azienda di catering può aver bisogno per la settimana immediatamente successiva di 5 camerieri. Posterà l'evento “catering” e successivamente valuterà le proposte dei candidati iscritti a quell'evento scegliendone i cinque canditati che l’azienda ritiene essere migliore). Parallelamente ad uno sviluppo implementativo verrà aggiornato anche uno sviluppo teorico per eventuali sviluppi futuri.
  • 8. DOMINIO APPLICATIVO Come descritto nel capitolo precedente, delle strutture web per la ricerca del lavoro non sono ancora esistenti. La nostra idea è quella di creare una web application (quindi non solo un sito dove si mettono dei semplici annunci) in cui le informazioni scambiate sono la domanda e l'offerta di lavoro, inoltre l'aspetto fondamentale è la semplicità di utilizzo e la conoscenza dell'utente che offre lavoro e che usufruisce del lavoro. Punto cardine della applicazione sarà la dislocazione territoriale della forza lavoro: molte aziende hanno necessità di ricercare personale in breve tempo e in una determinata area, mentre gli utenti in cerca di lavoro temporaneo potranno selezionare la zona interessata e il tipo di mansione che possono prestare. Le aziende Le aziende rappresentano le utenze principali. Esse dovranno compilare un profilo dettagliato e completo in modo tale da fornire, agli utenti interessati, tutte le informazioni che riguardano l’azienda stessa, dando così l’opportunità a tutti gli utenti di valutare il futuro datore di lavoro. Agli utenti che presteranno attività lavorativa presso un’azienda, sarà data la possibilità di valutare l’azienda attraverso dei feedback che potranno essere positivi, nulli o negativi.
  • 9. Gli eventi lavorativi Gli eventi lavorativi saranno inseriti nell’applicazione dalle aziende in cerca di personale dipendente. Negli eventi dovranno essere indicati obbligatoriamente il tipo di mansione richiesto, luogo e data dove svolgere l’attività lavorativa. In particolare sarà data importanza alla dislocazione territoriale dell’evento (attraverso una mappa interattiva), per permettere all’utente in cerca di lavoro di ricercare, nella zona a lui più conveniente, l’attività lavorativa. L’evento lavorativo metterà in relazione le agenzia con gli utenti in cerca di lavoro. Candidandosi all’evento, l’utente permetterà all’azienda di accedere ai suoi dati personali e alle sue qualifiche.
  • 10. Le categorie lavorative Un ruolo importante appartiene anche alle categorie lavorative che indicano il tipo di lavoratore del quale l’aziende intende avvalersi. Uno degli scopi dell’applicazione è quello di offrire ad un utente in cerca di opportunità lavorativa, la possibilità di ricercare tali eventi filtrati per categoria. L’utente in cerca di lavoro Gli utenti in cerca di lavoro (iscritti o non iscritti) avranno la possibilità di cercare gli eventi lavorativi, selezionando il tipo di mansione preferito e la zona di lavoro. All’utente in cerca di lavoro sarà data la possibilità di compilare un curriculum vitae on-line che gli permetterà di mostrare, a chi offre il lavoro, le proprie qualifiche.
  • 11. SICUREZZA E PRIVACY Sicurezza Il requisito della sicurezza nelle applicazioni web rimane, ad oggi, uno dei principali problemi che affligge questa tecnologia. Basta scorrere le security advisory pubblicate su, ad esempio, Security Focus per accorgersi della gravità del fenomeno. Sul totale delle vulnerabilità segnalate, una grossa percentuale è da attribuire a software sviluppati con tecnologie web. L’applicazione, per gestire il trattamento di dati personali, dovrà rispettare le seguenti misure di sicurezza: · utilizzo di una procedura di autenticazione che permetta l'identificazione dell'incaricato attraverso opportune credenziali di autenticazione; · utilizzo di una parola chiave, quando prevista dal sistema di autenticazione, composta da almeno otto caratteri; · possibilità di modifica della parola chiave, quando prevista dal sistema di autenticazione, da parte dell'incaricato al primo utilizzo e, successivamente, almeno ogni sei mesi; · possibilità di disattivazione delle credenziali di autenticazione non utilizzate da almeno sei mesi, salvo quelle preventivamente autorizzate per soli scopi di gestione tecnica; · esistenza di meccanismi di autorizzazione per la separazione dei privilegi degli incaricati in base a diversi profili autorizzativi; · esistenza di meccanismi di backup che consentano il salvataggio dei dati con frequenza almeno settimanale
  • 12. Privacy Ai sensi del D. Lgs. n. 196/2003 "Codice in materia di trattamento dei dati personali", quando siti e applicazioni trattano dati personali e/o sensibili/giudiziari, le operazioni che vengono effettuate su di essi devono essere previste da leggi o regolamenti. Inoltre, è obbligatorio dare adeguata informativa su tutti i trattamenti dei dati personali che vengono effettuati dal titolare. Al momento della raccolta di dati tramite compilazione di schede per via telematica occorre fornire all´utente una serie di informazioni specifiche: 1. le finalità e le modalità del trattamento cui sono destinati i dati; 2. la natura obbligatoria o facoltativa del conferimento dei dati; 3. le conseguenze di un eventuale rifiuto di rispondere; 4. i soggetti o le categorie di soggetti ai quali i dati personali possono essere comunicati o che possono venirne a conoscenza in qualità di responsabili o incaricati, e l'ambito di diffusione dei dati medesimi; 5. i diritti di cui all'articolo 7; 6. gli estremi identificativi del titolare e, se designati, del rappresentante nel territorio dello Stato ai sensi dell'articolo 5 e del responsabile. Quando il titolare ha designato più responsabili è indicato almeno uno di essi, indicando il sito della rete di comunicazione o le modalità attraverso le quali è conoscibile in modo agevole l´elenco aggiornato dei responsabili. Quando è stato designato un responsabile per il riscontro all´interessato in caso di esercizio dei diritti di cui all´articolo 7, è indicato tale responsabile.
  • 13. TECNOLOGIE Negli ultimi anni hanno cominciato a riscuotere sempre più successo tra i Web developers alcuni framework (come Ruby on Rails per Ruby e Django per Phyton) tesi a migliorare lo sviluppo di applicazioni Web. Questi framework, basati sul paradigma Model-View-Controller (MVC), offrono allo sviluppatore diverse funzionalità tra cui: · maggiore organizzazione del codice · scaffolding dei dati · URL "puliti", adatti ai motori di ricerca · maggiore rapidità di sviluppo. ASP.Net MVC rappresenta anche uno dei primi esperimenti Open Source di Microsoft. Il nuovo componente del framework .NET è stato infatti sviluppato in collaborazione con la community attraverso il rilascio su CodePlex di diverse versioni di prova durante tutto il ciclo di sviluppo, iniziato nel 2007, e del codice sorgente, disponibile sotto licenza Ms-PL anche per la versione 1.0 di ASP.Net MVC. Il diverso approccio utilizzato da Microsoft per ASP.Net MVC trova conferma anche nell'inserimento all'interno del download ufficiale della libreria Javascript JQuery in una versione con supporto all'Intellisense di Visual Studio. Il pattern MVC Model-View-Controller (MVC) è un pattern utilizzato in programmazione per dividere il codice in blocchi dalle funzionalità ben distinte. Per capire come questo approccio si possa adattare allo sviluppo Web, si pendi al classico funzionamento di una applicazione internet. Un client, tipicamente un browser, inoltra la richiesta ad un server per una pagina HTML. Il server ospita un'applicazione scritta in un linguaggio di programmazione lato server (come C# o VB.NET) che preleva i dati da un database, li elabora e li restituisce al client in formato HTML.
  • 14. Figura 4: Funzionamento di una applicazione server La parte più "attiva" in questo procedimento è l'applicazione Web che ha il compito di reperire ed inviare le informazioni. Si immagini ora di scrivere una applicazione consistente in una singola pagina Web che svolga tutti i compiti descritti in precedenza. È evidente che riunire tutte queste operazioni in un unico blocco di codice (la pagina) creerà presto molta confusione, oltre a portare problemi di manutenzione e infinite sessioni di debug per risolvere i problemi. Si provi ora ad organizzare il codice in modo più logico, dividendolo in tre parti: la prima si occuperà dei dati e fornirà quindi i metodi per accedere al database, la seconda sarà responsabile della creazione del codice HTML, mentre la terza farà da intermediario fra le prime due. Lo sviluppatore, organizzando il codice secondo questo schema, potrà concentrarsi su un problema specifico ed avere la sicurezza che l'intervento rimanga circoscritto al blocco di codice di cui si sta occupando, lasciando intatti gli altri. Se pensiamo poi ad un progetto di grandi dimensioni, in cui presumibilmente ogni parte sarà creata e mantenuta da persone diverse, diventa evidente come la divisione logica del codice in zone distinte aumenti l'efficienza complessiva.
  • 15. Lo schema che abbiamo identificato è esattamente quello proposto dal pattern MVC. In particolare: · Model: contiene i metodi di accesso ai dati. · View: si occupa di visualizzare i dati all'utente e gestisce l'interazione fra quest'ultimo e l'infrastruttura sottostante. · Controller: riceve i comandi dell'utente attraverso il View e reagisce eseguendo delle operazioni che possono interessare il Model e che portano generalmente ad un cambiamento di stato del View. Figura 5: Divisione dei ruoli in MVC