Introduzione Introduzione Obiettivo del presente lavoro di tesi è quello di sviluppare una applicazione che
consenta di convertire gli stili grafici di un web CMS, Joomla, verso un IDE
WebML, WebRatio.
Un web CMS (Content Management System per il web) è letteralmente un
“sistema di gestione dei contenuti” ed è uno strumento software, installato su un
server web, che ha come scopo quello di facilitare la progettazione di siti web,
senza che l'amministratore del sito debba possedere delle conoscenze tecniche di
programmazione.
I CMS possono essere considerati tra gli elementi più importanti nella rivoluzione
sociale e partecipativa del Web, in quanto una delle caratteristiche alla base del
Web 2.0 è infatti il concetto di User Generated Content , cioè quell’approccio
democratico e multidirezionale che consente a tutti gli utenti di produrre
attivamente del contenuto. Dopo l'avvento dei CMS, infatti, non sono più
necessarie, da parte degli utenti, quelle competenze tecnico informatiche,
necessarie fino ad allora, anche solo per l'operazione di pubblicazione dei
contenuti.
WebML è l'acronimo di Web Modeling Language ed è un linguaggio concettuale
per lo sviluppo di applicazioni web di tipo data-intensive. I sistemi data-intensive
hanno lo scopo principale di pubblicare e gestire grosse quantità di dati su
piattaforma web, caratterizzate da interfacce ipertestuali con supporto alla
9
Introduzione navigazione esplorativa dei contenuti.
WebML è basato su standard diffusi come il modello entità-relazione e UML, e
consente di specificare applicazioni Web complesse in modo indipendente dalla
piattaforma. WebRatio rappresenta l'IDE (Integrated Development Environment)
di WebML.
Moltissimi siti web odierni sono sviluppati su un qualche CMS, ed ognuno di essi
gestisce gli stili grafici in una modalità propria tale per cui, un template costruito
per un CMS, non può essere utilizzato in un altro CMS. D'altro canto però
abbiamo che: data la diffusione e l'altissimo numero di siti web e utenti che
utilizzano un qualche sistema CMS, in rete si possono trovare moltissimi
template, di ottima qualità, che possono essere utilizzati su uno specifico prodotto
CMS. Normalmente con pochi clic del mouse, tramite l'interfaccia web del
content management system, si può cambiare completamente aspetto grafico al
sito sviluppato e gestito dal CMS.
Risulta quindi facile capire l'importanza di raggiungere l'obiettivo qui proposto, in
quanto, gli sviluppatori WebRatio avrebbero la possibilità di prelevare, con alcune
semplici operazioni di setup sull'interfaccia visuale dell'applicazione, un template
sviluppato per Joomla e convertirlo in uno Style Project utilizzabile nell'IDE
WebML.
Il documento è strutturato come segue:
• Il primo capitolo introduce l'argomento CMS ed elenca quelle che sono le
caratteristiche dei prodotti software, oggi maggiormente utilizzati nel web.
• Nel secondo capitolo si approfondisce il CMS di cui verranno convertiti i
template, cioè Joomla. Si descrivono le modalità di gestione dei template
e come questi siano strutturati.
• Nel terzo capitolo si offre una descrizione di cosa sia WebML e quali
10
Introduzione siano le sue parti fondamentali.
• Nel quarto capitolo si descrive lo Style Project di WebRatio, che è il nome
del progetto che determina la gestione degli stili grafici utilizzabili nelle
applicazioni web sviluppate con questo strumento.
• Nel capitolo quinto si illustrano, fornendone una breve descrizione
ciascuna, le tecnologie utilizzate nello sviluppo del progetto.
• Nel sesto capitolo si descrive l'applicazione sia dal punto di vista dei
requisiti tecnici necessari per l'esecuzione, che dal punto di vista
dell'interfaccia grafica, descrivendo anche la logica interna con cui è stata
implementata e realizzata l'applicazione, sia in maniera informale che con
uno use case e un class diagram.
• Nel settimo ed ultimo capitolo presentiamo una sintesi del lavoro svolto in
questo studio con le relative conclusioni e alcune idee per uno sviluppo
ulteriore.
11
Capitolo 1 - Content Management System Capitolo 1 - Content Management System
1.1 Introduzione L'acronimo CMS significa “sistema di gestione dei contenuti” ed è uno strumento
software, installato su un server web, che ha come scopo quello di facilitare la
progettazione di siti web, senza che l'amministratore del sito debba possedere
delle conoscenze tecniche di programmazione.
Un CMS tecnicamente è una applicazione che si esegue lato server ( server-side ),
costituito da due componenti: uno di amministrazione (back- end) e un altro
applicativo (front end).
Il back-end serve a produrre, organizzare e modificare la struttura dei contenuti e i
contenuti stessi, mentre il front end è la parte che viene utilizzata dall'utente per
accedere ai contenuti del sito.
Esistono vari tipi di CMS che sono specifici per la pubblicazione di determinati
tipi di contenuti (blog, enciclopedie, forum, ecc...), oppure generici, che
consentono cioè la pubblicazione di diversi tipi di contenuti.
Possono essere programmati in vari linguaggi e i più comuni sono: PHP
1
,
Java 2
, .NET
3
.; la differenza di linguaggio utilizzato non implica differenze di
1 PHP:Hypertext Preprocessor. Linguaggio di scripting interpretato,http://www.php.net/
2 Java:Linguaggio di programmazione orientato agli oggetti, http://www.java.com/it/
3 .NET: Framework di programmazione orientato agli oggetti di Microsoft,
http://www.microsoft.com/net/
12
Capitolo 1 - Content Management System funzionalità implementate. Alcuni linguaggi, come PHP o Java a causa della loro
natura multi-piattaforma, fanno si che possano essere utilizzati su diversi sistemi
operativi (Linux, Windows), mentre altri li rendono utilizzabili solo su
determinate piattaforme come per .NET (solo su Windows).
Altro elemento tecnico essenziale in un CMS è il database server dove vengono
memorizzati dati e contenuti e anche in questo caso vi possono essere diversi
prodotti tra cui i due sicuramente più utilizzati sono: MySQL
4
e Microsoft SQL
Server 5
.
Al giorno d'oggi i CMS sono utilizzati per soddisfare una vasta gamma di
esigenze che vanno dalla gestione del piccolo sito web personale o aziendale, alla
pubblicazione in ambito web internet di grosse quantità di informazioni. Un
esempio ormai affermato e di cui ognuno di noi ha sicuramente esperienza
quotidiana, è quello dell'informazione online delle testate giornalistiche o delle
organizzazioni che si occupano di informazione specializzata.
In questi casi appare evidente come le skill tecniche delle persone che pubblicano
i contenuti informativi è: o un giornalista, o un esperto di un particolare settore,
che non deve avere necessariamente competenze tecniche informatiche per la
pubblicazione dell'articolo. Prima dell'affermazione dei CMS, invece, i tecnici
informatici dovevano formattare l'articolo 'cartaceo' per il canale web.
L'eliminazione di questi passaggi intermedi consente, oltre a migliorare
qualitativamente il risultato finale per il cliente, la riduzione dei tempi di
aggiornamento e la creazione di un canale diretto tra la redazione dell'articolo e il
mezzo di pubblicazione.
Altri esempi di utilizzo dell'applicazione CMS da parte di persone con
professionalità diversa dall'informatica, possono essere: archivi documentali,
4 MySQL:Database Management System Relazionale open-source, http://www.mysql.it/
5 MS SQL Server: DBMS relazionale di Microsoft,
http://www.microsoft.com/italy/server/sql/default.mspx 13
Capitolo 1 - Content Management System uffici stampa, uffici marketing e grafica pubblicitaria e altro.
1.2 Cenni storici I sistemi di gestione dei contenuti nascono negli USA, sviluppati da
organizzazioni che producevano grosse quantità di pubblicazioni per uso interno.
Nel 1995 il primo esempio è stato CNET
6
una organizzazione che si occupa di
informazione tecnologica, che distribuisce con il nome Vignette , un prodotto
utilizzato internamente per la pubblicazione e distribuzione di contenuti tramite il
web.
Nel 1998, Pencom Web Works, società di consulenza aziendale, introdusse un
server di trasformazione dei dati, chiamato Metaphoria , che consentiva agli
sviluppatori Java di scrivere applicazioni che potessero essere collegate con i
contenuti e che ne consentissero l'erogazione su canali diversi. Nonostante
l'innovazione introdotta dal progetto, Metaphoria non riscosse il successo
sperato, ma fece ugualmente storia in quanto i concetti importanti erano stati
delineati, al punto da divenire un fondamento su cui poggiano oggi i moderni
CMS.
Infatti, uno tra i problemi maggiori nella progettazione di un sito web era dovuto
al bagaglio di competenze tecniche necessarie alla sua creazione. Poter avere a
disposizione una applicazione software che fosse in grado di consentire a
chiunque di gestire documenti, inserire notizie, immagini, creare forum, sondaggi
e tutto ciò che è necessario alla creazione di un sito web, modificava le
competenze necessarie alla gestione di un sito: da puramente informatiche
orientate alla struttura, a competenze orientate al tipo di contenuti da gestire, cioè
grafiche piuttosto che giornalistiche.
6 CNET: http://www.cnet.com/
14
Capitolo 1 - Content Management System Ciò condusse nel breve tempo gli sviluppatori ad orientarsi sempre di più verso
software che gestivano contenuti mirati alla realizzazione di siti Web.
Un altro periodo fondamentale è stato tra il 1999 e il 2000 dove, complice
l'avvento e l'affermazione su larga scala dell'open-source con progetti come
Linux, Apache HTTP server 7
, PHP e infine MySQL– tutti assieme noti con
l'acronimo LAMP , sono apparsi sulla scena alcuni dei progetti CMS che oggi sono
tra i più utilizzati al mondo: Joomla, WordPress, Drupal, TYPO3, e altri.
1.3 La gestione dei contenuti È necessario puntualizzare cosa si intende per contenuto, in quanto lo scopo
primario di questi sistemi software è proprio la loro gestione.
Contenuto è una qualsiasi unità di informazione adatta ad essere trasferita su
supporto informatico, ci si sta riferendo quindi a: testo, immagini, suoni, video e
quindi informazioni multimediali e documenti in generale.
Occorre distinguere ulteriormente tra contenuto e dato. Il primo è composto da un
insieme del secondo e costituisce una informazione completa e interessante per
l'utente. Ad esempio, il titolo di un articolo giornalistico è considerato un singolo
dato, mentre il contenuto è costituito da: titolo, testo dell'articolo, data di
pubblicazione, autore e cosi via.
In generale quindi la gestione dei contenuti prevede tutte le procedure per la
visualizzazione, l'inserimento, la modifica, l'eliminazione e la catalogazione in
base a flussi organizzativi e regole prestabilite.
Una applicazione che si occupa della gestione dei contenuti deve occuparsi di
alcuni aspetti correlati a tale operazione che possono essere cosi elencati:
7 Apache HTTP server: Web server open source dell'Apache Software
Foundation,http://httpd.apache.org/
15