Sistema di gestione contenuti per portale e-commerce nordamericano

Pagina creata da Matteo Bartoli
 
CONTINUA A LEGGERE
Sistema di gestione contenuti per portale e-commerce nordamericano
UNIVERSITÀ DEGLI STUDI DI PARMA

 FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI

              Corso di Laurea in Informatica

              Tesi di Laurea Triennale

     Sistema di gestione contenuti
per portale e-commerce nordamericano

                       Candidato:

                   Andrea Gandol

                        Relatore:

                  Prof. Giulio Destri

                Anno Accademico 2011/2012
Sistema di gestione contenuti per portale e-commerce nordamericano
ii
Sistema di gestione contenuti per portale e-commerce nordamericano
iii

A Elisa
Sistema di gestione contenuti per portale e-commerce nordamericano
iv
Sistema di gestione contenuti per portale e-commerce nordamericano
v

                              Ringraziamenti

Desidero innanzitutto ringraziare i miei genitori Sergio e Renata, mia sorella Cristina ed

Elisa per il loro sostegno durante questi anni di studio.

Un ringraziamento particolare a Franco Folini e Cristiano Sacchi di Novedge LLC per

avermi dato la possibilità di lavorare con loro sviluppando il progetto descritto in questa

tesi.

Ringrazio l'Ing.   Cesare Chiodelli e il Prof.   Giulio Destri che, n dalla scuola supe-

riore, è stato per me una guida e un punto di riferimento per quanto riguarda il settore

informatico.

Inne un grazie a tutti gli amici del dipartimento con cui ho condiviso quest'avvenura:

Leonardo Bacchi, Federico Fontana, Federico Bacchi, Andrea Disarò, Federico Ferretti,

Matteo Masi, Davide Ponzo, Simone Bertocchi, Alice Pavarani, Beatrice Demaldè, Jessica

Groppi, Ilaria Fulcini, Martina Bonanzi e tanti altri.
Sistema di gestione contenuti per portale e-commerce nordamericano
vi
Sistema di gestione contenuti per portale e-commerce nordamericano
INDICE

1   Introduzione                                                                                1

2   Il contesto                                                                                 3

    2.1   E-Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         3

          2.1.1   Tipologie di e-commerce       . . . . . . . . . . . . . . . . . . . . . . .    4

          2.1.2   Il problema della sicurezza . . . . . . . . . . . . . . . . . . . . . .        6

    2.2   Content Management System           . . . . . . . . . . . . . . . . . . . . . . . .    7

    2.3   Novedge e il suo business model . . . . . . . . . . . . . . . . . . . . . . .          8

    2.4   L'architettura del sistema      . . . . . . . . . . . . . . . . . . . . . . . . . .    9

3   Obiettivi del progetto di tesi ed analisi                                                   13

    3.1   Analisi dei requisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     13

    3.2   Le entità da gestire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      14

          3.2.1   Prodotti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      14

          3.2.2   Brand     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15

          3.2.3   Special . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     16

          3.2.4   Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      16

          3.2.5   Categorie     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   17

          3.2.6   Documenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       17

          3.2.7   Aree    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   17

          3.2.8   Clusters    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   18

          3.2.9   Ordini    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   18
Sistema di gestione contenuti per portale e-commerce nordamericano
viii                                                                                    INDICE

          3.2.10 Free Download        . . . . . . . . . . . . . . . . . . . . . . . . . . . .   18

          3.2.11 Webinar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        19

    3.3   Elenco degli attori e use case . . . . . . . . . . . . . . . . . . . . . . . . .      20

    3.4   Coordinamento del progetto        . . . . . . . . . . . . . . . . . . . . . . . . .   22

4   Progettazione                                                                               23

    4.1   La situazione prima del progetto . . . . . . . . . . . . . . . . . . . . . . .        24

    4.2   Speciche software      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   24

    4.3   Struttura del progetto      . . . . . . . . . . . . . . . . . . . . . . . . . . . .   25

    4.4   Struttura delle singole applicazioni      . . . . . . . . . . . . . . . . . . . . .   26

    4.5   Le interfacce utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      27

    4.6   La base di dati     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   28

    4.7   I web service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     30

    4.8   Le tecnologie utilizzate . . . . . . . . . . . . . . . . . . . . . . . . . . . .      31

          4.8.1   HTML, CSS e JavaScript          . . . . . . . . . . . . . . . . . . . . . .   31

          4.8.2   ASP.NET       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   32

          4.8.3   jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      32

          4.8.4   AJAX      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   33

          4.8.5   JSON      . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   33

          4.8.6   Amazon Web Services         . . . . . . . . . . . . . . . . . . . . . . . .   33

    4.9   Gli strumenti utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . . . .      34

5   Implementazione                                                                             37

    5.1   La libreria Novedge Base . . . . . . . . . . . . . . . . . . . . . . . . . . .        37

    5.2   La barra di navigazione . . . . . . . . . . . . . . . . . . . . . . . . . . . .       48

    5.3   L'applicazione Products       . . . . . . . . . . . . . . . . . . . . . . . . . . .   49

          5.3.1   L'autocompletamento dei prodotti . . . . . . . . . . . . . . . . . .          51

          5.3.2   Sistema dei messaggi . . . . . . . . . . . . . . . . . . . . . . . . .        54

          5.3.3   Il plugin Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . .       55

    5.4   L'applicazione Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        57

    5.5   L'applicazione Specials . . . . . . . . . . . . . . . . . . . . . . . . . . . .       63

    5.6   L'applicazione Documents        . . . . . . . . . . . . . . . . . . . . . . . . . .   66

    5.7   L'applicazione Orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       69

    5.8   L'applicazione Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . .        71
Sistema di gestione contenuti per portale e-commerce nordamericano
INDICE                                                                                      ix

  5.9   Altre applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    74

  5.10 Web services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     74

  5.11 Validazione    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   76

  5.12 Liste per la consultazione delle entità . . . . . . . . . . . . . . . . . . . .      77

  5.13 Funzioni di Wall e Log     . . . . . . . . . . . . . . . . . . . . . . . . . . . .   79

Conclusioni                                                                                 81
Sistema di gestione contenuti per portale e-commerce nordamericano
CAPITOLO 1

                           INTRODUZIONE

Il lavoro della presente tesi nasce entro la collaborazione tra il Professor Giulio Destri e

la sua azienda AREA Professional e l'azienda statunitense Novedge, fondata nel 2003 a

San Francisco da due italiani, Franco Folini e Cristiano Sacchi, che è diventata oggi il più

grande rivenditore online al mondo di software per il CAD.

Novedge opera on-line attraverso un grande portale di vendita dei prodotti, aancato da

numerosi servizi che provvedono contenuti utili per gli utenti e da alcune vere e proprie

community di utenti, integrate con i principali social network. Attraverso una ottimizza-

zione spinta dei propri processi aziendali, Novedge riesce a garantire ai suoi clienti (prin-

cipalmente progettisti meccanici, architetti, artisti 3D e game developer) prezzi scontati

rispetto a quelli di listino eettuati da altri rivenditori, fornendo spedizioni veloci e un

supporto di base no all'installazione del software.

L'ottimizzazione dei processi è basata anche su una ampia automazione dei processi stes-

si, attraverso software scritto ad hoc ed integrato con servizi presenti in rete come quelli

di Amazon.

Dopo 10 anni di operatività coronata da successo, a causa della sua stessa espansione

negli anni, Novedge si è trovata nella necessità di una revisione ed ammodernamento del

proprio software interno. Tale operazione è stata compiuta sia da un punto di vista fun-

zionale, sia adottando una nuova piattaforma tecnologica: ASP.NET 4 ed il linguaggio

C#.

La denizione delle nuove necessità funzionali è stata compiuta dai fondatori stessi di
2                                                                             Introduzione

Novedge e l'architettura tecnica delle nuove applicazioni è stata denita dal Dr. Franco

Folini col contributo del Professor Destri.

Il lavoro della tesi si è inserito in questo contesto ed è consistito nella realizzazione dei

moduli del nuovo sistema di gestione dei contenuti (CMS) del portale, attraverso cui gli

addetti di Novedge caricano i prodotti, seguendo le speciche di analisi formalizzate dal

Dr. Folini. La libreria Novedge.Base, estesa ed integrata nel sistema in seguito da me, è

stata scritta dal Dr. Folini stesso.

Durante le fasi di analisi, progettazione e realizzazione dell'applicazione CMS si è utilizza-

ta una metodologia agile di sviluppo in modo di coinvolgere il più possibile il committente

ed avere quindi un feedback continuo riguardo allo stato del progetto e alle sue richieste.

Per far ciò è stato fondamentale l'utilizzo di strumenti di comunicazione e coordinamento

in quanto, data la distanza dagli uci Novedge, è stato impossibile un contatto diretto

per tutta la durata del progetto.      Solo alla ne, con un viaggio negli USA, ho potuto

lavorare di persona alcune settimane entro la sede di Novedge.

Durante la progettazione e la realizzazione del CMS si sono rivelate fondamentali le no-

zioni apprese durante il mio percorso di studi in informatica presso l'università degli studi

di Parma.

Partendo dai corsi di fondamenti di programmazione, algoritmi e strutture dati e fonda-

menti dell'informatica che coprono gli aspetti basilari dell'informatica e della program-

mazione, arrivando ai corsi più specici come metodologie di programmazione, basi di

dati, ingegneria del software e linguaggi di programmazione che arontano tematiche e

argomenti fondamentali per un informatico in quanto insegnano nozioni, metodologie e

procedure che, ad oggi, sono ampiamente utilizzate in ogni ambiente complesso in cui si

fa uso di calcolatori.

Man mano che prendevo conoscenza del sistema e della sua struttura, ho potuto contri-

buire non solo con la stesura del codice ma anche con evoluzioni rispetto all'architettura

di dettaglio inizialmente denita.

La tesi è organizzata in capitoli: il capitolo 2 presenta una visione del commercio elet-

tronico e dell'azienda Novedge, provvedendo il contesto in cui il lavoro della tesi è nato;

i capitoli successivi mostrano il lavoro secondo le modalità canoniche apprese nel cor-

so di ingegneria del software: obiettivi ed analisi, progettazione, implementazione.       Le

conclusioni completano il progetto con le future prospettive ed estensioni.
CAPITOLO 2

                              IL CONTESTO

2.1 E-Commerce

Con il termine e-commerce o commercio elettronico ci si riferisce a quell'insieme di attività

d'impresa, per lo scambio di beni o servizi, in cui la transazione tra le parti avviene

attraverso reti di telecomunicazione.

Il signicato del termine è mutato nel tempo. In principio indicava semplicemente l'uso del

calcolatore come strumento di supporto per lo scambio di documenti al ne di velocizzare

una transazione commerciale, mentre oggi, grazie al continuo sviluppo di Internet e delle

tecnologie basate sul Web, si dispone di tecnologie più avanzate che permettono di gestire

in modo completo l'acquisto di beni e servizi attraverso il Wold Wide Web ricorrendo ad

esempio a connessioni sicure e metodi di pagamento elettronici come le carte di credito.

Il fattore che più di tutti ha spinto la crescita di questo modo di fare business è sicura-

mente l'abbattimento dei costi ssi dato che, non essendo necessario un negozio sico,

diventa possibile anche per piccole aziende o persino per privati aprire il proprio negozio

online e potenzialmente attirare clienti da ogni parte del mondo.
4                                                                                  Il contesto

2.1.1 Tipologie di e-commerce
Il commercio elettronico si divide in diverse tipologie in base all'attività commerciale in

cui si svolge l'attività e ai soggetti coinvolti che possono avere esigenze diverse.       Tale

suddivisione inuenza anche la scelta degli strumenti tecnologici che un'azienda adotta.

Possiamo identicare quindi tre principali tipologie:

    •   Commercio elettronico tra aziende (B2B):

        Con questo termine si indica un'attività a supporto delle transazioni commerciali tra

        aziende e non coinvolge direttamente gli utilizzatori nali dei beni e servizi prodotti.

        I soggetti coinvolti sono aziende che si servono dei prodotti di altre aziende per

        realizzare i propri. Un esempio classico è la gestione della catena di distribuzione.

    •   Commercio elettronico tra aziende e consumatori (B2C):

        Questa è la forma più nota di e-commerce e rigurda la fornitura di beni e servizi

        tra un'azienda e il consumatore nale. In questo caso il consumatore si reca sulla

        pagina web dell'azienda e può visualizzare ed eventualmente acquistare i prodotti

        mostrati eettuando pagamenti online. La maggior parte dei siti di e-commerce che

        fanno parte di questa categoria comprendono almeno i seguenti elementi:

          1. Un catalogo elettronico dei prodotti e servizi oerti.

          2. Un'area di navigazione e ricerca che permette di trovare facilmente i prodotti.

          3. Un sistema di carrello virtuale dove l'utente può aggiungere gli oggetti da

             acquistare e procedere eventualmente al pagamento e all'evasione dell'ordine.

          4. Un sistema di pagamento online sicuro.

          5. Un sistema di controllo degli ordini che permette di seguire il processo di

             elaborazione dell'ordine e facilitarne il tracciamento.

    •   Commercio elettronico tra consumatori (C2C):

        Questa forma di commercio è più recente rispetto alle altre ed è diventata popolare

        grazie ai siti di aste online (primo fra tutti eBay), che orono al consumatore la

        possibilità di vendere ad altri consumatori i propri prodotti e servizi. In questo caso

        è il sito che ore il servizio di asta a imporre le regole e ad amministrare l'ambiente

        e gli utenti si registrano utilizzando i propri dati al ne di fornire le informazioni

        necessarie per garantire l'identità dei soggetti coinvolti nella trattativa.
2.1 E-Commerce                                                                                 5

Per realizzare e gestire un'attività di commercio elettronico di tipo B2C occorre tenere

in considerazione alcuni fattori cruciali necessari per il successo:

   •   Creazione del valore per il cliente orendo prodotti o servizi di qualità a prezzi

       competitivi.

   •   Ispirare ducia e sicurezza.

   •   Puntare sul web-marketing, ovvero pubblicità e azioni sui social network per farsi

       conoscere e creare un'immagine seria e adabile dell'azienda.

   •   Creare un sito web accattivante e di facile utilizzo.

   •   Incentivare il cliente all'acquisto e delizzarlo proponendo sconti e oerte speciali.

   •   Cercare di conoscere il cliente senza però essere troppo invadenti.

   •   Assistere il cliente nel suo ruolo di consumatore.

Anche se un venditore seguisse le linee guida sopra citate possono comunque sorgere

alcune problematiche, tra le quali:

   •   Dicoltà nella comprensione del comportamento dei clienti ovvero capire le aspet-

       tative e le motivazioni che spingono la clientela ad acquistare un certo prodotto.

   •   Mancanza di analisi dello scenario concorrenziale.

   •   Incapacità di prevedere le reazioni nell'ambiente in cui opera l'impresa. Altri siti

       potrebbero copiare l'idea e vendere gli stessi prodotti o fornire lo stesso servizio.

   •   Sovrastima delle competenze aziendali o dei sistemi hardware/software adottati.

   •   Mancanza di coordinazione.

   •   Incapacità nell'assicurarsi l'impegno dei vertici aziendali.    Spesso non è possibile

       raggiungere un determinato obiettivo a causa delle scarse risorse allocate.

   •   Incapacità nell'assicurarsi l'impegno dei dipendenti. Quando i progettisti non tra-

       ducono in modo chiaro la loro strategia ai dipendenti.

   •   Scarso addestramento all'utilizzo della piattaforma e-commerce realizzata da parte

       del committente.
6                                                                               Il contesto

    •   Sottovalutazione dei tempi richiesti per il raggiungimento degli obiettivi aziendali.

    •   Incapacità di rispettare la pianicazione dei tempi.

    •   Incapacità di rispettare livelli di servizio, soprattutto i tempi, per le consegne ai

        clienti.

2.1.2 Il problema della sicurezza
Oltre alle dicoltà elencate dovute alla gestione dell'impresa un altro problema da af-

frontare è quello della sicurezza sui dati. Durante l'acquisto on-line viaggiano su Internet

dati sensibili come le generalità del cliente e soprattutto durante la fase di pagamento

della merce è necessario utilizzare metodi e tecnologie per evitare che persone esterne

all'operazione intercettino queste informazioni e le utilizzino a scopo fraudolento.       Si

sono adottati quindi elevati standard di sicurezza per garantire questo tipo di riservatez-

za. In particolare la maggior parte dei siti di e-commerce ad oggi utilizzano le seguenti

tecnologie:

    •   L'HTTPS (HyperText Transfer Protocol Secure) è il risultato dell'applicazione di

        un protocollo di crittograa asimmetrica, come il TLS (Transport Layer Security)

        e il suo predecessore SSL (Secure Sockets Layer), al protocollo HTTP. In questo

        modo i dati viene creato un canale di comunicazione sicuro tra il client e il server

        attraverso uno scambio di chiavi pubbliche tra le parti. Una volta stabilito questo

        canale i dati che vi transitano sono decifrabili solamente dai due partecipanti alla

        comunicazione e non sono quindi intercettabili da altri.

    •   Con la procedura di autenticazione il server chiede all'utente di identicarsi, gene-

        ralmente inserendo uno username e una password associata, limitando il numero

        di tentativi in modo da evitare attacchi con tentativi ripetuti di trovare la pas-

        sword sugli account (i cosiddetti attacchi a forza bruta). Per questo motivo, oggi,

        viene sempre più consigliato all'utente il cambio periodico della propria password

        scegliendola di una certa complessità evitando, ad esempio, date di nascita e nomi

        propri di persona.

    •   Il venditore può avvalersi della rma digitale per evitare il ripudio da parte del

        cliente della merce acquistata.   Questa tecnologia fa sì che un contratto rmato

        digitalmente non possa essere disconosciuto da coloro che l'hanno sottoscritto.
2.2 Content Management System                                                                    7

    •     Un altro punto fondamentale è la sicurezza interna all'azienda, ovvero gestire la

          sicurezza e la manutenzione dei server su cui risiede la struttura di e-commerce sia

          nel caso in cui esso risieda presso l'azienda stessa sia nel caso in cui sia ospitato nei

          server di una società di hosting.

2.2 Content Management System
Un CMS (Content Management System) è un'applicazione che facilita e rende più sicu-

ro il compito dell'amministratore di inserire o modicare i contenuti di un sito internet

dinamico.       Questi software creano un livello (astrazione) tra il database dove vengono

memorizzati i contenuti e le persone addette all'aggiornamento del sito web, svincolando

costoro da conoscenze tecniche e orendo un ulteriore controllo sui dati che vengono in-

seriti.

Esistono CMS di ogni genere, alcuni specializzati e progettati in base al tipo di contenuti

da gestire (ad esempio blog, forum, siti di e-commerce) ed altri generici che si adattano

a qualsiasi tipo di sito web. Possiamo inoltre dividere questi software in base alla piatta-

forma su cui possono operare che dipende dal linguaggio di programmazione utilizzato e

dal framework su cui si appoggiano; tra i più comuni troviamo PHP, ASP.NET e Java.

Oggi, sul mercato, si possono trovare centinaia di CMS preconfezionati, molti di questi

gratuiti, che necessitano solamente di installazione e consentono in pochi minuti di creare

un sito web.       Tuttavia questi pacchetti, cercando di andare incontro alle esigenze più

comuni del pubblico, hanno uno scarso livello di personalizzazione e, a meno di interventi

sul codice sorgente, non consentono all'utente di ottenere sempre la essibilità e la specia-

lizzazione desiderata in relazione al proprio specico obiettivo. Questi problemi sono in

parte risolubili utilizzando software open source. Avendo accesso ai codici sorgenti si può

personalizzare il CMS in base alle proprie esigenze, ma vanno tenuti in considerazione il

tempo e i costi necessari per imparare a creare moduli personalizzati per la piattaforma

specica e la sua struttura. Spesso, in caso di personalizzazioni estreme, i costi per rea-

lizzare tali moduli diventano superiori a quelli della costruzione di un CMS partendo da

zero.
8                                                                              Il contesto

2.3 Novedge e il suo business model

Novedge LLC. è un'azienda di e-commerce statunitense con sede a San Francisco (Cali-

fornia) che si occupa della vendita online di software di progettazione e graca, perlopiù

nel territorio nordamericano. Fondata nel 2003 da Franco Folini e Cristiano Sacchi è, ad

oggi, il più grande rivenditore online al mondo di questo tipo di software. Novedge ha

un catalogo di circa ottomila prodotti da centocinquanta produttori dierenti ed utilizza

strumenti e modalità con un forte supporto tecnologico in modo da automatizzare e ren-

dere il più eciente possibile il processo di approvvigionamento e vendita.

Per questo possiamo catalogare l'azienda sia come B2B che come B2C.

La parte B2B è quella che si occupa delle comunicazioni tra l'azienda, le case produttrici

di software e le compagnie di trasporti. Ogni fornitore ha regole di business diverse, con

metodi di interazione e gestione degli ordini d'acquisto dierenti. Per gestire al meglio

questa parte sono stati deniti processi estremamente ecienti e automatizzati che eli-

minano o riducono al minimo indispensabile l'intervento umano nelle transazioni.

Per quanto riguarda la vendita al pubblico (B2C) l'azienda si ada al proprio sito web in

cui è possibile consultare il catalogo prodotti ltrandoli per marca o categoria e mostran-

doli suddivisi per sottocategorie in modo da consentire all'utente una navigazione tra

le pagine intuitiva e capace di indirizzarlo velocemente sul tipo di software cercato, che

può essere acquistato direttamente dal sito con pagamento elettronico oppure attraverso

ordine telefonico.   Novedge riesce a garantire ai suoi clienti (principalmente progettisti

meccanici, architetti, artisti 3D e game developer) prezzi scontati rispetto a quelli di li-

stino eettuati da altri rivenditori, fornendo spedizioni veloci e un supporto di base no

all'installazione del software.

Oltre alla vendita di software Novedge fornisce altri importanti servizi di contorno come:
2.4 L'architettura del sistema                                                            9

   •   Ask Novedge: un servizio di supporto email che consente all'utente di contattare

       l'azienda per chiarire i propri dubbi o fare domande riguardo ai prodotti.

   •   Mailing list a cui è possibile registrarsi per ricevere le ultime notizie sui nuovi

       prodotti o quelli di prossima presentazione.

   •   Materiale di supporto ai prodotti, come: suggerimenti di libri acquistabili da Ama-

       zon; video, documenti e gallerie immagini di recensioni, tutorial e case study;

       download di sofware trial, utility e plugin; suggerimenti di prodotti simili o di

       complemento.

   •   Webinars gratuiti: dirette video in cui esperti mostrano come utilizzare al meglio i

       prodotti e le loro caratteristiche più avanzate.

   •   Blog contenente interviste e news del settore.

   •   Forte interazione con i Social Media (Twitter, Facebook, Google+, Pinterest e

       LinkedIn) in cui l'utente può ricevere gli aggiornamenti sulle oerte e le attività

       dell'azienda.

   •   Pulse: un sistema di aggregatore di notizie che mostra notizie e aggiornamenti da

       oltre trecento blog e cinquecento dierenti autori del settore.

   •   Rhino Jungle,WikiCAD e Vectorworking, che sono comunità online gestite da No-

       vedge in cui si può discutere di un determinato argomento e dei prodotti relativi.

Il Dr. Franco Folini si occupa del sistema informatico di Novedge ed è la persona con

cui sono stato in contatto per tutta la durata del progetto discutendo insieme le diverse

problematiche riguardanti la progettazione e l'implementazione del sistema. Laureato in

scienze dell'informazione ha lavorato come ricercatore dal 1991 al 2001 presso la facoltà

di ingegneria dell'università degli studi di Parma dove ha insegnato disegno CAD per il

corso di ingegneria meccanica.

2.4 L'architettura del sistema
Il nucleo del sistema informatico su cui si basa l'intera architettura dell'azienda è il No-

vedge Main Website, un'applicazione web ad hoc scritta in Visual Basic su piattaforma
10                                                                             Il contesto

               Figura 2.1: Architettura del sistema informatico di Novedge

ASP classica gestita dal web server Microsoft IIS che si appoggia a una serie di sottosi-

stemi per usufruire di servizi esterni all'azienda con cui ha necessità di comunicare. Sulla

stessa macchina su cui opera il web server è installato anche il database Microsoft SQL

Server, contenente tutte le informazioni necessarie all'applicazione per svolgere il proprio

lavoro. Le tabelle del database non vengono interrogate direttamente dall'applicazione

web mediante query SQL ma, come scelta architetturale, i record vengono richiesti attra-

verso l'invocazione di stored procedures salvate sul database stesso. Questo approccio è

dettato dalla necessità di accedere ai dati contenuti nel database da applicazioni diverse

(principalmente Main Website e CMS) scritte in linguaggi diversi che si appoggiano a

frameworks dierenti.

I le di grosse dimensioni, come download di versioni trial dei prodotti, video e documen-

ti, vengono salvati su Amazon S3, un servizio di cloud computing per lo storage di le.

In questo modo i download sono sempre disponibili a una velocità di trasferimento alta

e non si rallenta il server su cui gira il sito.
2.4 L'architettura del sistema                                                             11

Tra i servizi che Novedge utilizza per gestire il processo di vendita troviamo un sistema

di validazione degli ordini che consente, dato l'indirizzo sico dell'utente, il suo indirizzo

IP e il metodo di pagamento selezionato, di capire la zona di provenienza e l'adabilità,

in modo da attribuire all'ordine un fattore di rischio e decidere successivamente come

procedere. Una volta che l'ordine viene accettato (automaticamente dal sistema se l'in-

dice di rischio basso o manualmente nel caso contrario) si passa alla fase di evasione

dell'ordine, che può avvenire digitalmente o attraverso i servizi di spedizione tradizionali.

Nel secondo caso il sistema contatta la compagnia logistica segnalando la spedizione e fa-

cendosi restituire un tracking number con cui sarà possibile tracciare il percorso del pacco.
12   Il contesto
CAPITOLO 3

OBIETTIVI DEL PROGETTO DI TESI ED
             ANALISI

3.1 Analisi dei requisiti
L'obiettivo del lavoro di tesi è la progettazione e realizzazione di un nuovo CMS per

Novedge che soddis i seguenti requisiti:

   •   sia in grado di gestire le operazioni di consultazione, inserimento, modica e can-

       cellazione dei prodotti a catalogo e di una serie di altre entità ad essi collegate.

   •   avere un'interfaccia graca semplice in modo da renderlo utilizzabile anche a persone

       con una scarsa conoscenza delle tecnologie informatiche cercando di nascondere la

       logica, talvolta complessa, delle operazioni.

   •   essere accessibile attraverso Internet in modo da permettere il telelavoro dei dipen-

       denti.

Il sistema deve essere aancato al sito web attuale e accessibile al solo personale del-

l'azienda, adottando quindi protocolli e standard di sicurezza necessari per garantire la

riservatezza delle informazioni.
14                                            Obiettivi del progetto di tesi ed analisi

                 Figura 3.1: Rappresentazione della collocazione del sistema

3.2 Le entità da gestire
3.2.1 Prodotti
I prodotti sono le entità principali dell'applicazione a cui tutte le altre fanno riferimento.

Il sistema deve consentire l'inserimento e la modica di nuovi prodotti con la possibilità di

creare collegamenti tra di loro in modo da poter raggruppare prodotti simili che verranno

poi mostrati sul sito web. Le informazioni base che devono essere editabili sono: SKU

(Stock-Keeping Unit, ossia un identicativo univoco della categoria di prodotto), nome,

versione, breve descrizione, disponibilità, produttore, tipo di prodotto, tipo di licenza,

formato (digitale o sico), immagine della scatola.

I prezzi sono divisi in tre campi: prezzo del fornitore (costo), prezzo di listino e prezzo

Novedge.     Ricoprendo un ruolo fondamentale è necessario adottare riscontri visivi per

capire immediatamente durante l'inserimento lo sconto eettuato rispetto al prezzo di

listino (discount) e quanto è il margine sulla vendita.

Oltre a queste informazioni deve essere possibile:

     •   Inserire una descrizione completa in formato HTML che può contenere collegamenti

         ad altri prodotti, brand, documenti e a pagine Wikipedia.
3.2 Le entità da gestire                                                                  15

   •   Inserire informazioni di supporto sul prodotto.

   •   Inserire collegamenti a versioni di prova (trial) del prodotto con una breve descri-

       zione che ne specica i limiti.

   •   Inserire in una sezione denominata facts le capacità e compatibilità del prodotto.

   •   Associare tag e parole chiave che semplichino la ricerca.

   •   Specicare i formati di input e di output supportati dal software.

Come detto in precedenza l'applicazione deve essere in grado di creare collegamenti logici

tra i prodotti in modo da creare una sorta di gerarchia che semplichi la ricerca e la

navigazione nel sito web da parte del visitatore. Le connessioni che devono essere possibili

tra i prodotti sono:

   •   Per i software di tipo plugin specicare i prodotti su cui possono venire installati.

   •   Creare collegamenti a pacchetti dello stesso software ma per sistemi operativi dif-

       ferenti.

   •   Creare prodotti di tipo bundle, ovvero prodotti che in realtà sono raggruppamenti

       di altri prodotti.

   •   Raggruppare prodotti in categorie.

   •   Raggruppare prodotti in aree. Le aree sono entità composte da prodotti, categorie

       e download.

   •   Collegamento tra un prodotto e i suoi master, ovvero prodotti da cui esso è stret-

       tamente legato.

3.2.2 Brand
I brand rappresentano i marchi, ovvero le case produttrici dei software, che vengono

associate ai prodotti, documenti e ai download gratuiti.       I campi contenuti in questa

entità sono:

   •   I campi elementari come nome, descrizione e logo dell'azienda
16                                                Obiettivi del progetto di tesi ed analisi

     •   Alcuni ag per indicare la visibilità dei prezzi per i prodotti associati; se il brand

         è visibile dal sito; se Novedge è un rivenditore autorizzato e se la casa produttrice

         accetta i resi.

     •   Una serie di indirizzi (sia sici che elettronici) per contattare i vari reparti dell'a-

         zienda in base alla necessità, ad esempio supporto tecnico e accounting.

     •   Altre informazioni necessarie per lo scambio di informazioni tra Novedge e l'azienda.

3.2.3 Special
Gli special vengono utilizzati per creare promozioni ed oerte a cui è possibile associare

uno o più prodotti. Ogni promozione è caratterizzata da:

     •   Una data di inizio e ne.

     •   I campi necessari per la composizione del messaggio da mostrare nel prodotto in

         promozione. Questi sono titolo, label (testo mostrato con caratteri grandi), testo e

         footer (testo piccolo mostrato ai piedi del messaggio).

     •   Possibilità di attivare e disattivare lo special.

     •   Un'area in cui associare i prodotti allo special. Per ognuno di questi deve essere

         possibile cambiare i prezzi, cambiare gli SKU (identicativi) che fanno riferimento

         al pacchetto del produttore e associare un prodotto target ovvero un prodotto a cui

         il prodotto in promozione fa riferimento.

Un vincolo importante da tenere in considerazione è che ogni prodotto può appartenere

ad un solo special attivo. Occorrerà quindi implementare sistemi di controllo adeguati

che avvisino l'utente quando questo cerca di associare un prodotto già in promozione ad

un altro special. Altre funzionalità richieste per gli special sono la possibilità di vedere

un'anteprima di come apparirà il messaggio che verrà mostrato nella pagina del prodotto

in promozione e una pagina contenente un calendario con il riassunto delle scadenze delle

promozioni attualmente attive.

3.2.4 Book
I book sono entità che permettono di associare un libro a una o più categorie di prodotti.

Ogni libro è composto da un identicativo, l'anno di pubblicazione, il titolo e l'autore.
3.2 Le entità da gestire                                                                    17

Il sistema deve implementare un modulo per raccogliere le informazioni sui libri dal

catalogo on-line di Amazon, in modo dal sollevare l'utente dal compito di inserire i dati

manualmente.

3.2.5 Categorie
Le categorie consentono di raggruppare i prodotti e sono composte da due campi testuali:

nome e descrizione. Oltre a questi sono necessari alcuni ag per poter attivare o disatti-

vare la categoria e specicare se questa è una categoria ad alta priorità e se deve essere

mostrata nei menù del sito web.

3.2.6 Documenti
I documenti sono entità che consentono di associare pdf, video o altri le a un prodotto

o a un brand. Ognuno di questi oggetti contiene:

   •   I campi per settare il titolo, l'URL, la descrizione ed eventualmente la data e l'autore

       del documento.

   •   Una regione per specicare il tipo di documento e con che icona deve essere visua-

       lizzato sul sito web.

   •   La possibilità di disattivare il documento

   •   Le associazioni a un brand e a uno o più prodotti.

Nel campo URL si può specicare l'indirizzo di un le o di una pagina già presente sul web,

tuttavia deve essere possibile, attraverso un sistema integrato, scegliere un le locale dal

computer per farne l'upload su Amazon S3. In questo caso il sistema dovrà preoccuparsi

di inserire negli appositi campi l'URL e la dimensione del le appena caricato.

3.2.7 Aree
Le aree sono raggruppamenti di uno o più prodotti, categorie e download gratuiti. Oltre

alle sezioni per poter associare queste entità le aree dovranno specicare un nome, una

breve descrizione, l'URL relativo sul sito Novedge, un logo e opzionalmente il prodotto

principale. Anche questo tipo di entità dev'essere disattivabile.
18                                              Obiettivi del progetto di tesi ed analisi

3.2.8 Clusters
I cluster sono un altro tipo di raggruppamento di prodotti. Questi hanno il solo campo

nome e vengono utilizzati dal sito web per mostrare i prodotti associati all'interno di

menù a tendina in contesti specici. Il sistema deve prevedere per i prodotti contenuti in

un cluster la possibilità di cambiare ad essi il nome (di solito per sintetizzarlo), di inserire

un separatore tra un prodotto e l'altro e un metodo per cambiarne velocemente l'ordine.

3.2.9 Ordini
Le entità degli ordini contenute nel database vengono generate automaticamente quando

il visitatore del sito web aggiunge dei prodotti al proprio carrello virtuale e conferma

l'acquisto della merce pagando con uno dei metodi disponibili. Il CMS opera solamente

su ordini già esistenti e deve permettere agli operatori di:

     •   Modicare le informazioni degli indirizzi di spedizione e fatturazione.

     •   Modicare i dati dei prodotti che compongono l'ordine (come prezzo e quantità).

     •   Inserire o cancellare prodotti.

     •   Esplodere i bundle, ovvero sostituire il prodotto nell'ordine con i prodotti contenuti

         nel bundle.   Questa operazione dev'essere eettuata non modicando l'importo

         totale.

     •   Modicare i dati dell'intero ordine come totale, tasse e costi di spedizione.

3.2.10 Free Download
I free download rappresentano software scaricabile direttamente dal sito. Queste entità

hanno le stesse funzionalità dei documenti ma vengono associate solamente ai brand e

alle aree, quindi non direttamente ai prodotti. Le dierenze con i documenti riguardano:

     •   I free download non devono specicare un'icona o un tipo di documento in quanto

         la maggior parte delle volte sono le eseguibili.

     •   I free download contengono tre campi booleani che deniscono se il software funziona

         su Windows, su Linux e su Mac.
3.2 Le entità da gestire                                                                  19

3.2.11 Webinar
Le entità webinar consentono di gestire i collegamenti ai webinar realizzati da Novedge.

Le informazioni da specicare sono:

   •   L'identicativo del video su Vimeo (la piattaforma, simile alla più nota YouTube,

       dove sono salvati i video).

   •   La data del webinar.

   •   Il prodotto trattato nel webinar.

   •   Titolo, descrizione e a chi si rivolge il webinar.

   •   Informazioni sulla persona che tiene il webinar ovvero nome, sito web, immagine e

       biograa.

   •   Informazioni su eventuali oerte collegate e possibilità di specicare un prodotto.

   •   Durata del video.

Per tutte le entità sopra descritte occorre implementare un sistema per la navigazione e

la ricerca veloce degli oggetti già presenti nel database.

Alcune di queste entità (quelle che modicano dati importanti come i prezzi) dovranno

contenere le funzionalità di wall e log. Il wall è una sorta di bacheca che consente all'ope-

ratore di inserire dei commenti o dei memo per motivare l'operazione eseguita o ricordare

qualcosa che andrà fatto in futuro. Il log invece è un diario che tiene traccia di tutte le

modiche eettuate a un'entità.

Il CMS oltre ad orire le funzionalità sopra descritte dovrà contenere una sezione Reports,

accessibile all'amministratore, che permetta di interrogare il database su determinate

regole (ad esempio il prezzo di un prodotto deve avere un valore compreso tra il costo e

il prezzo di listino del fornitore) in modo da avere un riscontro sulla conformità dei dati

e poter procedere alla correzione di eventuali incongruenze.
20                                                Obiettivi del progetto di tesi ed analisi

3.3 Elenco degli attori e use case
Gli attori, secondo la terminologia di UML (Unied Modeling Language), sono le cate-

gorie di entità esterne, tipicamente persone, che dovranno interagire con il sistema. Per

il progetto attuale abbiamo tre attori in quanto, essendo un'area riservata del sito, i visi-

tatori non hanno accesso a questa parte. Verranno illustrati anche gli Use Case Diagram

di UML, che consentono di associare a un attore le operazioni che esso può eseguire.

     •   Products Operator: sono gli impiegati che hanno accesso all'applicazione e possono

         modicare i dati relativi ai prodotti e alle altre entità ad essi associate. E' il tipo di

         attore con meno permessi per il sistema, mentre gli altri due hanno autorizzazioni

         maggiori.

                        Figura 3.2: Products Operator use case diagram

     •   Orders Operator: questa categoria di operatori, oltre ad avere gli stessi permessi

         dei products operator, ha accesso alla modica degli ordini dei clienti.
3.3 Elenco degli attori e use case                                                     21

                      Figura 3.3: Orders Operator use case diagram

   •   Amministratore: è colui che gestisce il sistema e deve avere accesso ad ogni parte

       dell'applicazione compresa la possibilità di monitoring, ovvero vedere quali utenti

       sono loggati e cosa stanno facendo. E' inoltre l'unico a poter accedere all'area di

       report che permette di eseguire operazioni delicate sul database.

                       Figura 3.4: Administrator use case diagram

Tutti gli attori che utilizzano il portale non necessitano di competenze particolari nel

settore web o informatico in generale in quanto uno degli obbiettivi è la semplicità del

sistema. Tuttavia il ruolo di amministratore è limitato a un numero ristretto di persone.
22                                            Obiettivi del progetto di tesi ed analisi

3.4 Coordinamento del progetto
Durante le fasi di analisi, progettazione e realizzazione dell'applicazione CMS si è utilizza-

ta una metodologia agile di sviluppo in modo di coinvolgere il più possibile il committente

ed avere quindi un feedback continuo riguardo allo stato del progetto e alle sue richieste.

Per far ciò è stato fondamentale l'utilizzo di strumenti di comunicazione e coordinamento

in quanto, data la distanza dagli uci Novedge, è stato impossibile un contatto diretto

per tutta la durata del progetto.     Oltre all'email, strumento indispensabile per la co-

municazione testuale, si è fatto ampio uso del software Skype che consente di eettuare

videochiamate a livello globale completamente gratuite orendo funzionalità, come la

condivisione dello schermo, che si sono dimostrate irrinunciabili per illustrare le caratte-

ristiche e le problematiche che emergevano dal progetto. Un altro strumento utilizzato

ampiamente per il coordinamento del progetto è stato BitBucket, un'applicazione web che

fornisce strumenti di supporto agli sviluppatori per il lavoro congiunto su progetti soft-

ware. In particolare BitBucket consente di salvare online il codice sorgente del progetto

permettendo agli sviluppatori di accedervi mediante strumenti di controllo di revisio-

ne come Mercurial e Git e, grazie a un sistema di issues tracking, segnalare eventuali

malfunzionamenti del codice o richiedere l'implementazione di nuove caratteristiche.
CAPITOLO 4

                          PROGETTAZIONE

La fase di progettazione si occupa di denire come il sistema dovrà rendere possibili le

operazioni discusse nel processo di analisi. Per questo durante la progettazione bisogna

tenere in considerazione i fattori, le potenzialità e i limiti relativi alle tecnologie che ver-

ranno adoperate per la realizzazione. L'obbiettivo di questo processo è quindi ottenere

una descrizione accurata di tutte le parti del sistema, dall'architettura software e del

database no all'interfaccia graca con cui l'utente dovrà interagire.

Ciò che contraddistingue il progetto rispetto ad altri CMS che si possono trovare sul mer-

cato è la possibilità di dare ai prodotti e alle entità collegate a loro una gerarchia in modo

da poter creare collegamenti tra di essi nalizzati a rendere l'esperienza di navigazione

del visitatore più immediata proponendo suggerimenti coerenti con ciò che l'utente sta

cercando. Altri siti web creano collegamenti tra i loro prodotti in base a logiche che non

sempre hanno il risultato desiderato. Ad esempio, selezionato un prodotto, viene sugge-

rito un prodotto con un nome simile o, in base ad acquisti di utenti precedenti, viene

fornita una lista di ciò che hanno acquistato gli utenti interessati al prodotto.       Questa

scelta di progettazione è fondamentale per la tipologia di prodotti trattati e richiede a chi

si occupa dei contenuti un lavoro maggiore rispetto all'utilizzo di algoritmi automatizzati

ma il risultato che ne deriva è uno dei fattori che rendono Novedge leader nel settore.
24                                                                           Progettazione

4.1 La situazione prima del progetto

Prima della realizzazione del progetto i dati relativi ai contenuti del sito web venivano

inseriti o modicati attraverso l'utilizzo di form create in Microsoft Access oppure, nel

caso delle entità più semplici, editando direttamente le tabelle del database.          Questi

strumenti consentono di eettuare le stesse operazioni ed ottenere gli stessi risultati che

si avrebbero utilizzando un CMS ma in un modo molto più laborioso e senza controlli di

validazione che potrebbero portare l'operatore a commettere errori nell'inserimento dei

dati. L'unico punto a favore di questo approccio è l'abbattimento dei costi derivanti dal

dover sviluppare un'applicazione CMS ad hoc. Con la crescita della mole di informazioni

presenti nella base di dati e della loro complessità si è arrivati ad un punto in cui si è reso

necessario l'utilizzo di strumenti più avanzati. Per avere un'idea del volume di dati che il

sito web e il CMS devono gestire basti pensare che attualmente il database contiene oltre

ottomila SKU, trecentomila utenti registrati, tremila recensioni di prodotti, quattromila

documenti, cinquecento download gratuiti, cento special, settanta webinar ed altre entità

tutte interconnesse tra di loro.

4.2 Speciche software

Data la natura, orientata al web, del progetto, si è deciso di implementarlo come appli-

cazione web.

La scelta del linguaggio di programmazione lato server e delle tecnologie con le quali è

stato implementato il CMS sono state dettate in parte dall'ambiente in cui è stato instal-

lato l'applicativo, ovvero lo stesso del sito internet di Novedge.

Sul server in questione, acquistato da un hosting provider esterno all'azienda, è installato

il sistema operativo Microsoft Windows, con un web server IIS e un database SQL Server.

Si è quindi fatta un'analisi delle funzionalità supportate dal server di hosting e si è scelta

la tecnologia più recente e completa supportata dal sistema, ovvero ASP.NET 4.0 Web

Forms.
4.3 Struttura del progetto                                                              25

4.3 Struttura del progetto
Data la complessità del progetto è stato necessario suddividerlo in più parti in modo

da separare i concetti che stanno alla base delle classi che lo compongono e renderlo

quindi manutenibile. Le due componenti principali in cui è stato ripartito l'applicativo

sono Novedge.Base e Novedge.CMS. Il namespace Base contiene quelle classi adibite

all'interfacciamento col database e modellano le entità rendendole accessibili agli strati

di software superiori, sviluppate internamente a Novedge.        Nel CMS invece sono stati

collocati tutti i le relativi alle singole applicazioni che compongono il progetto, ognuna

delle quali risiede in una sottocartella separata dalle altre.

                     Figura 4.1: Struttura del progetto Novedge.CMS

Oltre a queste la cartella radice del progetto CMS contiene i seguenti elementi:

   •   Il le index.htm che rappresenta la pagina iniziale dell'applicazione.

   •   I le di congurazione Web.cong e Global.asax presenti in tutte le applicazioni

       ASP.NET.

   •   I le relativi alla barra di navigazione denominati Toolbar.

   •   I web service, con presso Ajax, che vengono chiamati da javascript lato client

       attraverso la tecnologia AJAX.
26                                                                               Progettazione

     •   La cartella CommonCode contenente Validator.cs che è la classe base di tutte le

         classi di validazioni.

     •   La cartella CustomControls dove sono stati implementati controlli personalizzati

         utilizzati in tutto il progetto.

     •   La cartella js contenente gli script javascript utilizzati lato client dalle applicazioni.

     •   La cartella css con gli stili delle pagine.

Tipicamente le cartelle delle applicazioni sono composte da almeno tre le principali:

     •   Un le aspx con il nome dell'applicazione contenente il codice della form che con-

         sente di editare l'entità e di salvarle nella base di dati.

     •   Un le aspx denominato List che permette all'utente di consultare la lista degli

         elementi presenti nel database.

     •   Una classe Validator che denisce i metodi necessari per controllare che i dati inseriti

         dall'utente siano validi.   Se tutti hanno esito positivo allora l'entità può essere

         inserita o aggiornata nel database.

4.4 Struttura delle singole applicazioni
Nella tecnologia ASP.NET ogni le aspx rappresenta una pagina web dinamica e viene

separata in due parti: una contenente il codice HTML che denisce la struttura e i con-

tenuti visibili della pagina e una classe denominata code behind dove risiede la logica

dell'applicazione.     In questo modo vengono separati i due concetti e il risultato nale

risulta molto più comprensibile e manutenibile.

Il CMS è composto da diverse pagine aspx, ognuna delle quali rappresenta un'applicazio-

ne web relativa alla gestione di una singola entità o una funzionalità associata ad essa.

Oltre a contenere il codice HTML necessario per mostrare all'utente i contenuti e i con-

trolli della form le pagine sono classi derivate da System.Web.UI.Page che mantengono

tutte la stessa struttura di base e contengono:
4.5 Le interfacce utente                                                                   27

   •   Attributi relativi all'oggetto che rappresentano lo stato della pagina o contengono

       riferimenti ad istanze di oggetti utilizzati (come ad esempio i validator).

   •   Gli eventi legati alla pagina sono metodi speciali che vengono richiamati dal fra-

       mework durante i vari stadi del ciclo di vita della pagina.       Tra i più utilizzati

       troviamo Page_PreInit in cui vengono istanziati gli oggetti e i controlli necessari

       all'applicazione, Page_Load richiamato durante il caricamento della pagina e Pa-

       ge_PreRender utilizzato per impostare gli attributi e gli stili dei controlli prima

       che la pagina venga renderizzata.

   •   Le proprietà sono una caratteristica di C# (in altri linguaggi, come Java, si utiliz-

       zerebbero i metodi get e set) e vengono utilizzate per impostare dall'esterno di una

       classe valori che possono corrispondere ad attributi privati oppure nascondere una

       logica più complessa al loro interno.

   •   Gli eventi dei controlli sono metodi che rispondono a eventi scatenati dai controlli

       della pagina web (come bottoni o check box) con cui l'utente interagisce.

   •   I metodi di validazione sono associati ai controlli della form e vengono invocati

       automaticamente dal sistema per controllare che i dati inseriti siano conformi al

       tipo di informazione richiesta.

   •   Altri metodi, ovvero funzioni che non ricadono nelle precedenti categorie e vengono

       utilizzate dal programma per spezzare il usso di esecuzione rendendo i frammenti

       di codice riutilizzabili e più comprensibili.

4.5 Le interfacce utente
L'interfaccia utente è quello strato del software che gli utenti utilizzano per interagire col

sistema. Per questo il CMS, nonostante sia stato suddiviso in diverse sottoapplicazioni

web, mantiene un'interfaccia graca simile e coerente per ognuna di queste. Queste ap-

plicazioni permettono, per ogni entità, di svolgere le classiche operazioni CRUD (Create,

Read, Update and Delete) che si eettuano solitamente su una base di dati, oltre ad orire

il controllo e validazione delle informazioni inserite nella form, automatizzando e sempli-

cando il più possibile il lavoro dell'utente nale. Nella tecnologia ASP.NET l'interfaccia

graca viene creata mediante l'utilizzo delle pagine aspx contenenti il codice HTML che
28                                                                           Progettazione

verrà mostrato nel browser oltre a supportare funzioni JavaScript per le operazioni lato

client e i fogli di stile CSS.

               Figura 4.2: Disposizione degli elementi nell'interfaccia utente

Nella parte superiore della pagina è sempre presente la barra di navigazione che consente

all'utente di passare da un'applicazione all'altra ed eettuare il login/logout nel CMS.

A sua volta la struttura delle pagine delle applicazioni può essere suddivisa in tre parti.

Quella superiore mostra il titolo o il nome dell'entità che si sta editando, l'identicativo e,

quando necessario, le tab in cui questa è stata suddivisa. In basso sono presenti i bottoni

che consentono di salvare, cancellare o creare un nuovo oggetto. In alcuni casi possiamo

trovare anche il tasto per accedere alla lista di tutti gli elementi o un menù a tendina

per la scelta veloce. Nel centro della pagina sono invece situati i controlli necessari per

la modica dell'entità caricata.

4.6 La base di dati
La base di dati con cui il progetto interagisce è la stessa su cui si appoggia il sito web,

quindi non è stato necessario progettarla da zero ma sono state apportate solo modiche

superciali alle tabelle e aggiunte le stored procedure necessarie. Il database contiene le

tabelle con i record relativi alle entità gestite dal CMS e i relativi collegamenti. Questi

dati vengono gestiti dallo strato software addetto all'accesso ai dati mediante chiamate

a stored procedure, in questo modo la libreria Novedge.Base non contiene direttamente
4.6 La base di dati                                                                    29

codice SQL e le query sono centralizzate nel database. Per ogni entità presente abbiamo

quattro stored procedure:

   •   La sp_GetEntity ritorna tutti i campi di un'entità in base all'identicativo.

   •   sp_GetEntities serve per avere la lista di tutte i record presenti nella tabella di

       un'entità.

   •   La stored procedure sp_CreateOrUpdateEntity ha come parametri i campi dell'en-

       tità. Quando viene invocata controlla se nel database è già presente un oggetto con

       l'ID specicato, se questo esiste aggiorna il record, in caso contrario ne aggiunge

       uno nuovo.

   •   sp_DeleteEntity cancella (se esiste) il record con l'identicativo passato come pa-

       rametro.

                      Figura 4.3: Diagramma ER della base di dati
30                                                                          Progettazione

Il diagramma ER mostra le relazioni e le cardinalità tra le tabelle gestite dal CMS, da

questa rappresentazione si può notare come i prodotti abbiano un ruolo centrale nella base

di dati e come tutte le altre entità siano collegate ad essi direttamente o indirettamente.

Per chiarezza sono state omesse le tabelle che vengono utilizzate solamente dal Novedge

Web Site e quelle dei log e commenti in quanto possono contenere dati relativi a tutte le

altre entità.

4.7 I web service

Per rendere le pagine web ancora più dinamiche si è scelto di implementare anche alcuni

web service interni all'applicazione in modo da consentire al codice lato client eseguito dal

browser di accedere a informazioni presenti nel database. Questo scambio di dati avviene

attraverso la tecnologia AJAX utilizzando il formato JSON, molto più leggero rispetto

a XML e ugualmente supportato.        Una volta ricevuta la risposta il codice JavaScript

si occupa di modicare il DOM della pagina senza dover eettuare una nuova richiesta

HTTP che richiederebbe il refresh della pagina.

                 Figura 4.4: Schema di funzionamento di un web service
4.8 Le tecnologie utilizzate                                                                31

4.8 Le tecnologie utilizzate
4.8.1 HTML, CSS e JavaScript
Queste tre sono le tecnologie fondamentali che stanno alla base di tutte le web application

moderne. HTML (Hyper Text Markup Language) è un linugaggio di formattazione uti-

lizzato per creare la struttura di una pagina web e inserirne i contenuti. La formattazione

consiste nell'inserire nel testo una serie di marcatori (tag) che deniscono come questo

deve essere visualizzato e disposto.    Ogni documento di questo tipo inizia con un tag,

detto document type, che segnala al browser che versione di HTML è stata usata nella

pagina. Dopo di questo, il documento HTML presenta una struttura ad albero annidato

composta da sezioni delimitate da tag opportuni che al loro interno contengono a loro

volta sottosezioni sempre delimitate da tag. La struttura più esterna delimita l'interno

documento ed è compresa tra i tag  e . All'intergno dei tag  lo

standard prevede la denizione di due sezioni ben distinte e disposte in sequenza ordinata:

   •   l'intestazione (header), delimitata dai tag  e , contiene informa-

       zioni di controllo come titolo, metatag e collegamenti a script e fogli di stile. Queste

       informazioni solitamente non appaiono nella pagina.

   •   Il corpo (body), compreso tra i tag  e , contiene i contenuti ve-

       ri e propri, ossia il testo, le immagini e i collegamenti che costituiscono la parte

       visualizzata dal browser.

L'ultima versione disponibile è HTML5 che ore funzionalità più avanzate rispetto alle

versioni precedenti ma è ancora in una fase di sviluppo e non ancora supportata da tutti

i browser, quindi si è optato per l'utilizzo di HTML4.

CSS (Cascading Style Sheets) è un linguaggio usato per denire la formattazione e lo

stile di una pagina HTML. Questa tecnologia è stata introdotta per separare i contenuti

di una pagina (descritti nell'HTML) dalla formattazione; in questo modo strutturando

correttamente un documento HTML è possibile cambiarne lo stile modicando semplice-

mente alcune proprietà nel le CSS associato.

Inne JavaScript è un linguaggio di programmazione orientato agli oggetti. A dierenza

di altri linguaggi di programmazione, che permettono la scrittura di programmi stand-
Puoi anche leggere