POLITECNICO DI MILANO
Facoltà di Ingegneria dell'Informazione
Corso di Laurea in Ingegneria Informatica
Dipartimento di Elettronica e Informazione
GRIDCOM: UN SOCIAL NETWORK PER AZIENDE
Relatore: Professoressa Franca Garzotto
Tesi di Laurea di:
Marco Bombarda, matricola 770964
Simone De Nicolo, matricola 771120
Anno Accademico 2012-2013
A tutte le persone care
pag. 2
RINGRAZIAMENTI
Vorremmo ringraziare la professoressa Garzotto per l’aiuto dato nella
realizzazione del progetto. Vorremmo inoltre ringraziare i nostri genitori, i
famigliari e tutte le persone care che ci sono state vicine in questi anni. Infine un
grazie ai nostri compagni di corso e di studio.
pag. 3
pag. 4
INDICE
RINGRAZIAMENTI ................................................................................................................................ 3
INDICE .................................................................................................................................................. 5
INDICE DELLE FIGURE .......................................................................................................................... 7
INDICE DEI GRAFICI.............................................................................................................................. 8
1.
2
3
4
INTRODUZIONE ........................................................................................................................... 9
1.1
ABSTRACT ............................................................................................................................ 9
1.2
MOTIVAZIONI/ PROBLEMI ................................................................................................. 10
1.3
PERCHE’ ............................................................................................................................. 12
STATO DELL’ARTE ...................................................................................................................... 13
2.2
PREMESSA ......................................................................................................................... 13
2.2
DIFFERENZE CON I SOCIAL NETWORK ESISTENTI .............................................................. 17
2.2.1
FACEBOOK ..................................................................................................................... 17
2.2.2
TWITTER ........................................................................................................................ 19
2.2.3
LINKEDIN........................................................................................................................ 21
2.2.4
YOUTUBE ....................................................................................................................... 22
PROGETTAZIONE ....................................................................................................................... 25
3.1
PUNTI SVILUPPATI ............................................................................................................. 25
3.2
ASP..................................................................................................................................... 26
3.3
REQUISITI ........................................................................................................................... 28
3.4
USER EXPERIENCE.............................................................................................................. 30
3.5
DATABASE.......................................................................................................................... 31
3.6
UX CONCETTUALE.............................................................................................................. 33
DESIGN IMPLEMENT.................................................................................................................. 34
4.1
SCENARI ............................................................................................................................. 34
4.2
SICUREZZA INFORMATICA ................................................................................................. 47
4.3
LE PAGINE.......................................................................................................................... 53
4.4
PARTICOLARITA’ DEL CODICE ............................................................................................ 57
5
TEST EFFETTUATI ....................................................................................................................... 60
6
SVILUPPI FUTURI ....................................................................................................................... 63
7
CONCLUSIONI ............................................................................................................................ 64
pag. 5
8
BIBLIOGRAFIA ........................................................................................................................... 65
pag. 6
INDICE DELLE FIGURE
Figura 1: interazione tra utente e clienti/fornitori ............................................................................ 15
Figura 2: relazione ciclica .................................................................................................................. 15
Figura 3: Logo Gridcom ..................................................................................................................... 16
Figura 4: logo facebook ..................................................................................................................... 18
Figura 5: logo twitter ......................................................................................................................... 20
Figura 6: logo Linkedin ...................................................................................................................... 21
Figura 7: logo youtube ...................................................................................................................... 22
Figura 8: analogie con i social network ............................................................................................. 23
Figura 9: Architettura Asp.net ........................................................................................................... 27
Figura 10: Requisiti ............................................................................................................................ 28
Figura 11: User experience Gridcom ................................................................................................. 30
Figura 12: Struttura database ........................................................................................................... 32
Figura 13: ux concettuale .................................................................................................................. 33
Figura 14: scenario registrazione ...................................................................................................... 35
Figura 15: Schema Ricerca fornitori .................................................................................................. 40
Figura 16: Aggiunta/Rimozione fornitore ......................................................................................... 42
Figura 17: Modifica impostazioni profilo .......................................................................................... 43
Figura 18: Partership ......................................................................................................................... 45
Figura 19: Fatturazione ..................................................................................................................... 46
Figura 20: Architettura Master-slaves............................................................................................... 50
Figura 21: architettura Master-Master ............................................................................................. 51
Figura 22: Architettura ad anello ...................................................................................................... 51
Figura 23: Homepage ........................................................................................................................ 53
Figura 24: pagina profilo personale .................................................................................................. 54
Figura 25: pagina profilo fornitore/cliente........................................................................................ 55
Figura 26: pagina storico fatture ....................................................................................................... 56
Figura 27: l'hiddenfield...................................................................................................................... 58
Figura 28: sqldependency ................................................................................................................. 59
pag. 7
INDICE DEI GRAFICI
Grafico 1: Qualità grafica………………………………………………………………………………………………………………60
Grafico 2: Qualità dei tag………………………………………………………………………………………………………………61
Grafico 3: Gestione clienti/fornitori………………………………………………………………………………………………61
pag. 8
1.
INTRODUZIONE
1.1
ABSTRACT
Gridcom è un social network che è stato sviluppato per consentire alle
aziende di avere maggiore visibilità sul mercato e per aiutarle ad individuare
possibili fornitori e clienti in modo facile e mirato.
La piattaforma riprende gli aspetti generali dei social network più comuni, quali un
sistema di messaggistica, la ricerca di altri contatti e la fase di registrazione, ma in
più aggiunge nuove funzionalità.
GridCom si basa su un’idea totalmente differente e innovativa rispetto agli altri
social network: le aziende organizzano stand, fiere ed eventi per farsi conoscere, per
portare la propria immagine sul mercato e per parlare di sé, allo scopo di creare
interesse verso possibili clienti e fornitori.
Dunque il fine dell’azienda è di vendere i propri prodotti e quindi di diventare
fornitrice dell’azienda cliente, oppure di acquistare le proprie forniture e quindi di
diventare cliente di un possibile fornitore.
GridCom si basa su questo concetto.
L’obiettivo della piattaforma è dare visibilità alle aziende ed aiutarle a creare una
rete commerciale sulla base di criteri mirati: ciò che essa produce e ciò di cui
necessita.
GridCom è quella fiera, quell’evento, al quale le aziende presentano i propri prodotti
e cercano le proprie forniture tramite il loro stand ( il Profilo).
GridCom è una piazza sulla quale si affacciano le aziende iscritte e stringono
rapporti tra loro.
Attualmente non esiste nulla sul web che sia definito secondo queste caratteristiche.
pag. 9
1.2
MOTIVAZIONI/ PROBLEMI
Le motivazioni che ci hanno portato alla sviluppo di Gridcom sono
molteplici:
•
Volevamo creare qualcosa che si differenziasse dai soliti social network, nei
quali lo scopo primario è l’interazione con altre persone.
•
Di solito (in particolare per piccole realtà) il social network non è sfruttato
come mezzo di business, perché interpretato unicamente come fonte di svago.
•
I classici motori di ricerca, come Google o Bing, utilizzano l’analisi
semantica per ricercare quello che si vuole trovare; noi invece abbiamo creato
un sistema mirato, che permette di ricercare fornitori e clienti attraverso
l’inserimento delle forniture e dei prodotti desiderati.
I problemi riscontrati vengono divisi in quattro grandi aree: logici, implementativi,
sicurezza informatica e grafica.
Durante la trattazione questi problemi verranno analizzati ed esposte le soluzioni
intraprese.
Qui di seguito è riportata una lista di problematiche divise per macroarea:
LOGICA
Quando si vuole sviluppare una qualsiasi applicazione informatica il primo
obiettivo su cui bisogna riflettere è l’algoritmo da implementare. Questo deve essere
efficiente e funzionale.
Un esempio può essere mostrare o meno ciò che un’altra azienda produce o cerca.
Da un lato potrebbe portare a fare un’analisi di mercato e individuare possibili
competitor, ma dall’altro potrebbe portare all’eliminazione di account di aziende che
non vogliono più mostrare i loro dati di ricerca.
IMPLEMENTAZIONE
Qui sorgono i problemi di maggior rilievo: innanzitutto bisognava imparare a
programmare in asp.net, ambiente di sviluppo della Microsoft utilizzato per la
creazione di pagine dinamiche e basato su tutti i linguaggi che fanno uso del
framework .NET, quali ad esempio C#, Visual Basic e j# (nello specifico è stato
utilizzato C# per la sua maggiore somiglianza a C++).
Inoltre per alcune funzionalità bisognava utilizzare altri linguaggio come jquery,
utile per creare applicazioni aggiornabili a runtime.
pag. 10
Altro problema era l’interfacciarsi con i server Google per utilizzare le loro API
(Application Programming Interface) allo scopo di interfacciarsi al servizio Google
Maps, il quale prevede la creazione di un codice da inserire nel sorgente.
Altri problemi si sono riscontrati nel sistema di messaggistica; per spiegare meglio
questo problema bisogna fare una premessa.
Il codice asp.net si divide sostanzialmente in due aree: la prima “client side”, ovvero
il codice dell’interfaccia visualizzata dal browser (ovviamente priva di codice c#), la
seconda “Server side”, nel codice chiamata “behind code”, nel quale vengono gestiti
i dati immessi, le api Google e il database.
Per l’interfacciamento tra le due aree esistono dei comandi appositi, ma che
richiedono il refresh della pagina, un problema in un servizio di messaggistica.
SICUREZZA INFORMATICA
Nel campo informatico la sicurezza è sempre uno dei problemi di maggior
rilievo nello sviluppo di un software, soprattutto quando c’è la necessità di trattare
dati personali.
In particolare, è necessario risolvere vulnerability che possano portare a possibili
exploit.
Una possibile vulnerability riscontrata nell’implementazione del codice è stata la
SQL Injection, debolezza che può portare un malintenzionato a introdursi nel
database “iniettando” una query.
Un altro problema è mantenere l’integrità dei dati nel tempo; il server potrebbe
essere down, e se ci fosse un guasto, i dati potrebbero essere compromessi: si
necessita quindi di un’architettura che possa mantenere l’integrità dei dati.
GRAFICA
Una volta sviluppata interamente la logica l’ultimo problema da affrontare è
l’implementazione della grafica; questa deve essere semplice e user friendly, in
modo che sia facilmente utilizzabile dall’utente medio.
pag. 11
1.3
PERCHE’
Come accennato in precedenza lo scopo è offrire alle aziende un servizio web
completamente innovativo, che attraverso la definizione di azienda come nodo tra
fornitori e clienti, sia in grado di costruire una vera e propria rete commerciale.
pag. 12
2 STATO DELL’ARTE
2.2
PREMESSA
Per definire lo stato dell’arte, è necessario fare una prefazione sull’etimologia
del termine “azienda”:
“In economia aziendale, un'azienda è un'organizzazione di persone e mezzi
finalizzata alla soddisfazione di bisogni umani attraverso la produzione,
la distribuzione o il consumo di beni economici.”
Esistono varie tipologie di aziende, ovvero:
1.
familiare: persegue il suo scopo tramite valori non economici (come
l'assistenza reciproca, i sentimenti, ecc.) ed economici (consumi, investimenti
e risparmio). Tipicamente è un'azienda di consumo in cui il risparmio è
formato dalla differenza tra redditi di lavoro e capitale da una parte,
e consumi e investimenti dall'altra; se le uscite superano gli introiti si accede
al finanziamento di terzo. Non va confusa con l'impresa familiare, cioè
l'istituzione economica che impiega membri della stessa famiglia e che è
volta a produrre reddito.
2.
pubblica: si occupa in primo luogo di soddisfare i bisogni pubblici, inoltre
crea, accresce e distribuisce valore non solo in relazione alla collettività; ma
coinvolgendo anche altri soggetti (stakeholders) quali fornitori,
dirigenti, dipendenti pubblici, clienti, concorrenti, ecc.
3.
di produzione (o impresa): ha come fine diretto (principale) la produzione e
la distribuzione di ricchezza, e come fine indiretto (secondario) il
soddisfacimento dei bisogni umani. Si chiamano imprese perché operano in
un'economia di mercato, e sono soggette al rischio del capitale investito. A
seconda del settore in cui operano, possono essere ulteriormente classificate
in: del primario (agricole, minerarie), del secondario (industriali, edili),
del terziario (commerciali, mercantili, bancarie, assicurative, di servizi),
del terziario avanzato (informatiche, di consulenza).
pag. 13
4.
no profit: si tratta di aziende che non hanno fini di lucro soggettivo, nel senso
che, pur potendo realizzare dei risultati economici e finanziari positivi, questi
non vengono distribuiti al soggetto economico. È tuttavia lecito che svolgano
una qualche attività commerciale inerente all'oggetto sociale purché essa sia
solo marginale o rientri all'interno di finalità di utilità sociale. Un discorso
particolare
vale
per
le ONLUS (Organizzazioni Non Lucrative
di Utilità Sociale). Si tratta di una qualifica ai fini delle imposte - ovvero che
incide sulle modalità di pagamento delle imposte - che possono assumere le
aziende non profit che operano in uno dei seguenti settori: assistenza sociale e
socio-sanitaria,
assistenza
sociale, assistenza
sanitaria, beneficenza, istruzione, formazione, sport dilettantistico, tutela e
promozione dei beni storici e artistici, tutela dell'ambiente, promozione
culturale ed artistica, tutela dei diritti civili, ricerca scientifica. Tali società
devono essere iscritte all'anagrafe delle ONLUS, presso la Direzione
Regionale delle Imprese per avere diritto a particolari vantaggi fiscali (non
sono soggette a tassazione).
5.
mutualistiche: comprendono cooperative, società di mutua assicurazione e
consorzi di cooperative. La cooperative hanno uno scopo principalmente
mutualistico, che consiste nel fornire beni o servizi o lavoro direttamente ai
soci, in modo più vantaggioso rispetto alle condizioni del mercato. Lo scopo
mutualistico assicura la limitata distribuzione degli utili tra i soci e la
devoluzione a scopi di utilità pubblica del patrimonio sociale, in caso dello
scioglimento della società. Oltre ai soci ordinari è possibile che ci siano
dei soci sovventori, che investono nella cooperativa al fine di ottenere un
interesse sul capitale investito. Le attività che possono essere svolte in forma
cooperativistica comprendono: consumo, produzione, lavoro agricolo, edilizia,
trasporti, pesca, economia sociale. Le società di mutua assicurazione sono
cooperative che si occupano di attività assicurativa (ramo vita e ramo danni),
sono a responsabilità limitata e il capitale sociale è costituito dai contributi
versati dai soci, che servono anche come premi assicurativi.
Quasi tutte le aziende necessitano quindi di fornitori da cui comprare materie
prime e di clienti per generare un profitto.
pag. 14
Un esempio:
l’azienda B produce motori e richiede all’azienda A dei bulloni. L’azienda C che
produce ascensori necessita dei motori dell’azienda B.
Graficamente:
Azienda A
Azienda B
Azienda C
Fornitore
“Motori”
Cliente
“Bulloni”
“Ascensori”
Figura 1: interazione tra utente e clienti/fornitori
Questa relazione è considerata dal punto di vista dell’azienda B dove A sarà un
possibile fornitore e C un probabile cliente.
La relazione invece cambia se ci si pone da un altro punto di vista; per esempio per
l’azienda C, l’azienda B sarà un fornitore.
Azienda B
Azienda C
Fornitore
“Ascensori”
“Motori”
Figura 2: relazione ciclica
Si crea in questo modo una griglia di aziende che sono collegate direttamente ai loro
fornitori ed ai loro clienti. Questa rete di nodi rappresenta l’intero mercato.
pag. 15
Da questa idea ha preso spunto il nome Gridcom:
Gridcom
Grid Commercial (Griglia Commerciale)
Figura 3: Logo Gridcom
pag. 16
2.2
DIFFERENZE CON I SOCIAL NETWORK ESISTENTI
Come introdotto nel capitolo precedente (cap 1.1), Gridcom si pone nel contesto dei
social network.
Nel capitolo seguente analizzeremo analogie e differenze con i principali social
network.
2.2.1
FACEBOOK
“Facebook è un servizio di rete sociale lanciato nel febbraio
2004, posseduto e gestito dalla corporation Facebook, Inc. Il
sito, fondato a Cambridge negli Stati Uniti da Mark
Zuckerberg e dai suoi compagni di università Eduardo
Saverin, Dustin Moskovitz e Chris Hughes, era
originariamente stato progettato esclusivamente per gli
studenti dell'Università di Harvard, ma fu presto aperto
anche agli studenti di altre scuole della zona di Boston, della
Ivy League e della Stanford University. Successivamente fu
aperto anche agli studenti delle scuole superiori e poi a
chiunque dichiarasse più di 13 anni di età. Da allora
Facebook raggiunse un enorme successo: è diventato il
secondo sito più visitato al mondo, preceduto solo da
Google; è disponibile in oltre 70 lingue e nell'ottobre 2012
conta circa 1 miliardo di utenti attivi che effettuano
l'accesso almeno una volta al mese, classificandosi come
primo servizio di rete sociale per numero di utenti attivi.
Il nome "Facebook" prende spunto da un elenco con nome e
fotografia degli studenti, che alcune università statunitensi
distribuiscono all'inizio dell'anno accademico per aiutare gli
scritti a socializzare tra loro.
Gli utenti possono accedere al sito previa una registrazione
gratuita, durante la quale vengono richiesti dati personali
come nome, cognome, data di nascita e indirizzo email. Il
sito chiarisce che l'inserimento obbligatorio della data di
nascita serve esclusivamente "per favorire una maggiore
autenticità e consentire l'accesso ai vari contenuti in base
all'età". Completata la registrazione, gli utenti possono
creare un profilo personale, includere altri utenti nella
propria rete sociale, aggiungendoli come amici, e
pag. 17
scambiarsi messaggi, anche via chat, incluse le notifiche
automatiche quando questi aggiornano i propri profili.
Inoltre gli utenti possono fondare e unirsi a gruppi per
condividere interessi in comune con altri utenti, organizzati
secondo il luogo di lavoro, la scuola, l'università o altre
caratteristiche, condividere contenuti multimediali ed
utilizzare varie applicazioni presenti sul sito. Per
personalizzare il proprio profilo l'utente può caricare una
foto, chiamata immagine del profilo, con la quale può
rendersi riconoscibile. Può inoltre fornire ulteriori
informazioni, come il comune di nascita (esempio: Città
natale: Roma) e quello di residenza (esempio: Vive a
Milano), la scuola frequentata, il proprio datore di lavoro,
l'orientamento religioso e quello politico, la propria
situazione sentimentale e molte altre.”
Figura 4: logo facebook
Dalla descrizione di Wikipedia si evince che il più famoso social network al
mondo si basa sull’interazione di “amici”.
È la piattaforma da cui abbiamo tratto più spunto, in particolare:
•
Per quanto riguarda la grafica entrambe le piattaforme si basano
sull’essenzialità con colori sobri e font sempre uguale;
•
Con entrambe le piattaforme è possibile creare una lista di amici; mentre in
Facebook sarà una lista di conoscenti o di follower, in Gridcom sarà l’elenco
di fornitori/clienti più interessanti per non intasare la homepage nel caso in
cui i contatti trovati tramite i tag siano troppi.
•
Nella home page di Facebook vengono visualizzati tutti gli avvenimenti/post
scritti dai contatti. Sulla nostra piattaforma è possibile interagire con la pagina
di un contatto amico solamente nel caso in cui si clicchi sul suo logo; in
pag. 18
•
questo modo si verrà reindirizzati alla pagina principale del contatto dove
sarà possibile messaggiare e creare fatture.
Facebook utilizza una chat a tendina per interagire con il contatto, mentre noi
utilizziamo una pagina dedicata (un popup).
Facebook è l’unico social network ad introdurre la possibilità di creare un profilo
aziendale, ma risulta identico ad un qualsiasi profilo utente, eccezion fatta per alcuni
dati aggiuntivi quali la partita IVA.
Utile in questo caso è la pubblicazione di messaggi pubblicitari nei banner dedicati
ai lati delle pagine, ma non si avrà nessun incremento di visibilità qualora l’azienda
produca semilavorati.
2.2.2
TWITTER
“Twitter è
un
servizio
gratuito
di social
network e microblogging che fornisce agli utenti una
pagina personale aggiornabile tramite messaggi di testo
con una lunghezza massima di 140 caratteri. Twitter è
costruito totalmente su architettura Open source. Gli
aggiornamenti possono essere effettuati tramite il sito
stesso, via SMS, con programmi di messaggistica
istantanea, posta elettronica, oppure tramite varie
applicazioni basate sulle API di Twitter. Twitter è stato
creato nel marzo 2006 dalla Obvious Corporation di San
Francisco.
Il nome "Twitter" deriva dal verbo inglese to tweet che
significa "cinguettare". Tweet è anche il termine tecnico
degli aggiornamenti del servizio. Itweet che contengono
esattamente 140 caratteri vengono chiamati twoosh. Gli
aggiornamenti sono mostrati nella pagina di profilo
dell'utente e comunicati agli utenti che si sono registrati
per riceverli. È anche possibile limitare la visibilità dei
propri messaggi oppure renderli visibili a chiunque. Il
valore del social network è stato stimato intorno agli 8,4
miliardi di dollari. Twitter nel 2012 ha raggiunto i 500
pag. 19
milioni di iscritti e 200 milioni di utenti attivi che fanno
accesso almeno una volta al mese.”
Figura 5: logo twitter
Questo social network potrebbe essere considerato il successore di Windows
live spaces.
Previa registrazione, l’utente può scrivere dei microblog che possono essere
commentati dagli altri utenti iscritti.
Si basa sul concetto di following e di follower: i primi indicano la comunità di utenti
che decidiamo di seguire, mentre i secondi indicano gli utenti che seguono i nostri
blog.
La più importante similitudine tra Gridcom e twitter è la creazione di una rete di
utenti: nel caso di twitter sarà l’utente a scegliere chi seguire ( inoltre è
implementato un algoritmo che consiglia altri possibili following sulla base dei
precedenti inseriti), mentre nel nostro caso sarà il software stesso a individuare i
potenziali clienti/fornitori basandosi solamente sui tag inseriti oppure ricercandoli
manualmente.
La più importante differenza tra Gridcom e Twitter, invece, è che il primo permette
di creare opinioni e pensieri che possono essere letti e commentati da tutti, mentre il
secondo crea un’interazione solo a scopo economico.
pag. 20
2.2.3
LINKEDIN
“LinkedIn è un servizio web di rete sociale, impiegato
principalmente per lo sviluppo di contatti
professionali. La rete di LinkedIn a gennaio 2009
contava circa 30 milioni di utenti, a maggio del 2010
sono più che raddoppiati arrivando a circa 68 milioni;
il 22 marzo 2011 LinkedIn, presente in oltre 200 paesi,
ha superato 100 milioni di utenti . Diffuso in tutti i
continenti cresce a una velocità di 1 milione di iscritti
a settimana. Il 56% degli iscritti risiede fuori dagli
Stati Uniti. U.S.A., India, Regno Unito e Brasile sono i
paesi col maggior numero di iscritti (quest'ultimo è
anche quello che cresce più velocemente). Gli utenti
europei sono oltre 22.100.000 e le nazioni che
mostrano un maggiore interesse sono l'Olanda, la
Francia e l'Italia. LinkedIn copre circa 150 comparti
economici e oltre 400 "regioni economiche". La società
che gestisce il servizio ha sede a Palo
Alto (California).”
Figura 6: logo Linkedin
Il fine di Linkedin è creare una rete di persone in campo lavorativo (chiamate
“connessioni”). Lo scopo principale non è rendere visibile un’azienda, ma
permettere alle persone di trovare opportunità di lavoro grazie ai contatti amici.
Inoltre le aziende possono pubblicare offerte e ricercare possibili candidati.
Questo ultimo punto è un futuro obiettivo che verrà implementato nelle successive
release del nostro software.
pag. 21
2.2.4
YOUTUBE
“YouTube è un sito web che consente la condivisione e
visualizzazione di video. Di proprietà di Google Inc. da
ottobre 2006, è il terzo sito più visitato al mondo dopo
Google e Facebook. L'azienda ha sede a San Bruno
(California) e utilizza Adobe Flash Video per
visualizzare una vasta gamma di video che però viene
sostituita da un'applicazione proprietaria del sito web
nel caso l'utente abbia attivato la prova beta HTML5
nel sito. La maggior parte dei contenuti su YouTube
viene caricata dai singoli utenti, anche se le società dei
media tra cui la CBS, BBC, VEVO e altre
organizzazioni offrono parte del loro materiale tramite
il sito, come parte del programma di partnership di
YouTube.”
Figura 7: logo youtube
Anche la piattaforma più grande al mondo di video in streaming è considerato un
social network, o per meglio dire un sito di content sharing adibito alla condivisione
di contenuti (in questo caso video) .
Si possono creare collegamenti tra utenti iscritti e ogni video può essere commentato
da chiunque.
Youtube utilizza un sistema di ricerca analogo a quello di Gridcom: quando si fa
l’upload di un video, vengono richieste della parole chiave (tag) che permetteranno
al video di essere trovato nella fase di ricerca.
Lo scopo di tale piattaforma è principalmente l’intrattenimento.
pag. 22
Un fattore importante da considerare è la visualizzazione di questi siti in vetta alle
classifiche mondiali; esattamente:
•
•
•
•
2° Facebook
3° Youtube
11° twitter
13° Linkedin
Dati importanti che dimostrano quanto siano utilizzati i social network dall’utenza di
tutto il mondo.
La piattaforma Gridcom non vuole essere un concorrente o sostituto dei social
network sopra descritti, ma un’integrazione diversa e mirata al business.
FACEBOOK
YOUTUBE
LINKEDIN
Amici
tag
Possibili
assunzioni
Messaggi
GRIDCOM
Figura 8: analogie con i social network
Come si evince dal grafo Gridcom si basa su idee già esistenti e presenti sui
più classici social network (la freccia tratteggiata indica la non implementazione
nella corrente release), ma introduce una nuova figura, ovvero l’azienda come entità
e non come individuo.
Bisogna però distinguere tra due tipologie di aziende: quelle che si rivolgono al
mercato customer (utenti finali) e le aziende B2B, ovvero le aziende che producono
semilavorati destinati ad altre aziende.
pag. 23
Le prime fanno largo uso dei social network esistenti per data mining, ovvero analisi
dei dati allo scopo di creare possibili previsioni. Gli utenti scrivono sui social
network per esprimere pareri riguardo i prodotti/servizi offerti e le società possono
trarre beneficio da tali commenti.
Inoltre pubblicare su un social network o comunque in Internet ha costi
infinitamente inferiori rispetto ad altri mezzi pubblicitari quali locandine cartacee o
pubblicità televisive.
Le aziende che producono semilavorati invece, stentano ad utilizzare i social
network perché non hanno la visibilità dei clienti consumer che rappresentano la
fetta di mercato più grande.
Manca quindi un social network che si rivolga esclusivamente a loro.
pag. 24
3 PROGETTAZIONE
3.1
PUNTI SVILUPPATI
Il progetto iniziale si basa sui seguenti punti:
• Sistema di registrazione di una nuova azienda con inserimento di nuovi
tag(forniture e prodotti)
• Possibilità di inserimento di altri tag in qualsiasi momento
• Sistema di ricerca di possibili fornitori e clienti
• Sistema di messaggistica tra aziende
• Sistema di creazione/memorizzazione fatture
• Sistema di rimozione di un account di un’azienda
• Gestire la lista di amici
• Modificare in qualsiasi momento i dati personali (ad esclusione della mail di
accesso)
• Modifica e inserimento del logo aziendale
• Possibilità di decidere quali dati verranno mostrati alle altre aziende
attraverso specifiche impostazioni sulla privacy.
pag. 25
3.2
ASP
La tecnologia utilizzata per implementare l’applicazione è asp.net.
Asp.net è caratterizzato da un’architettuta client-server Three Tier, in cui
l’interfaccia grafica, i processi logici e l’accesso ai dati sono sviluppati su 3 moduli
indipendenti
Tali moduli sono:
Livello di presentazione
Questo è il livello più alto dell'applicazione. Il livello di presentazione mostra
l’interfaccia grafica con la quale l’utente interagisce.
Livello applicazione
Questo livello gestisce le funzioni logiche che vengono attivate nel livello di
presentazione.
Si occupa di gestire le richieste dell’utente, di svolgere le funzioni a livello server e
di interagire col database
Livello dati
Questo livello è costituito da server database. Qui le informazioni vengono
memorizzate e recuperate. Si occupa di mantenere i dati neutrali e indipendenti da
applicazioni server o da logica di business.
Inoltre fornendo informazioni del proprio livello migliora la scalabilità e le
prestazioni.
pag. 26
Figura 9: Architettura Asp.net
L’interfaccia grafica è stata gestita tramite i classici linguaggi grafici di
programmazione di pagine web, quali HTML, CSS, JAVASCRIPT .
Il back-end, invece, è stato programmato attraverso il linguaggio C#, mentre le
chiamate al database sono stata implementate con SQL.
pag. 27
3.3
REQUISITI
Per progettare Gridcom abbiamo tenuto in considerazione diversi fattori in modo da
prendere corrette decisioni di design :
Stakeholders: a chi è rivolta l’applicazione
Goals: quali sono gli obbiettivi del sito
Requirements: quali sono i requisiti necessari a conseguire gli obbiettivi
Design: come sono sviluppati i requisiti
GOALS
REQUIREMENTS
DESIGN
Figura 10: Requisiti
STAKEHOLDERS
L’applicazione è rivolta alle aziende, all’ambito business. In particolare possiamo
pensare che nelle piccole imprese il sito possa essere gestito direttamente dal titolare,
mentre in aziende di grandi dimensioni possa essere gestito dall’ufficio acquisti per
quanto riguarda i fornitori, e dall’ufficio vendite per quanto riguarda i clienti.
pag. 28
GOALS
L’obiettivo è creare un social network che sia utile alle aziende per avere visibilità
sul mercato e che sia assolutamente innovativo.
REQUIREMENTS
I requisiti necessari per raggiungere l’obbiettivo sono fornire un servizio di
registrazione, login, messaggistica, visualizzazione e ricerca profili per quanto
riguarda il social network. Per quanto riguarda gli aspetti innovativi, invece, i
requisiti sono fornire la possibilità di ricerche mirate sul territorio in base a prodotti
e forniture e consentire il salvataggio delle trattative concluse.
DESIGN
REQUIREMENTS DESIGN
Registrazione
Servizio di registrazione con i seguenti campi: nome
Azienda, IVA,Indirizzo, Logo,
Forniture,Prodotti,Password,Email
Login
Servizio che consente l’identificazione degli utenti e
l’accesso al sito
Messaggistica
Dare la possibilità di inviare/ricevere messaggi in tempo
reale, di salvare ed eliminare le conversazioni effettuate
Visualizzazione e
Ricerca Profilo
Servizio che permette di ricercare e visualizzare i profili in
base al nome dell’azienda
Ricerche mirate
Servizio che permette di ricercare e visualizzare i profili
delle aziende che corrispondono alle forniture, ai prodotti e
ai luoghi inseriti nella ricerca
Salvare Trattative
Servizio che permette di salvare le trattative attraverso
l’inserimento dei prodotti comprati e del prezzo.
Per soddisfare i requisiti oltre ad implementare la grafica delle pagine web, è stato
necessario gestire un database contente i dati degli utenti, dei messaggi e delle
trattative attraverso la logica.
pag. 29
Abbiamo così deciso di utilizzare la tecnologia asp.net perché pone grafica, logica e
database su 3 livelli diversi e perché è in forte sviluppo sul web.
3.4
USER EXPERIENCE
<screen>
Index
Login
<Input Form>
Login
Email
Password
Login
Registrati
OK
OK
Registrati
OK
<screen>
Registration
<screen>
Ricerca Fornitori
Ricerca Fornitori/Clienti
/Clienti
<screen>
Profilo $
Lista Profili Trovati
<input Form>
Ricerca Fornitori
Ricerca Fornitori
/Clienti
/Clienti
Forniture
Luogo
Visualizza Profilo
Conferma
Logo
Dati Azienda
Lista amici
Lista Fornitori
Conferma
Visualizza Profilo
Ricerca Fornitori
Ricerca Clienti
Partnership
Messaggi
Storico Fatture
Visualizza Profilo
<Input Form>
Regitration
Email
Passw
IVa
etc
<screen>
Storico Fatture
Storico Fatture
Lista Fatture
Visualizza Profilo
Visualizza Profilo
Partnership
Messaggi
<screen>
Partnership
<screen>
Messaggi
Archivio Messaggi
Lista Profili Utili
Visualizza Profilo
Visualizza Profilo
Visualizza
Profilo
Aggiugi ai miei Fornitori/Clienti
Visualizza
Profilo
Visualizza Profilo
<input form>
Fattura
Salva
messaggio
<screen>
ShowProfilo
Salva Trattativa
Attributes
Dati Azienda
Oggetto della
spesa
Prezzo
Unità
<input form>
Messaggi
<screen>
Fattura
Salva
<screen>
Messaggio
Invia
Invia Messaggio
Salva Trattativa
Invia Messaggio
Aggiungi ai Fornitori
Aggiungi ai clienti
Attributes
Invia
OK
Figura 11: User experience Gridcom
GridCom offre all’utente tutte le caratteristiche dei social network e tutti gli
strumenti necessari a ricercare le aziende specifiche sul mercato .
L’utente ha la possibilità di registrarsi e loggarsi, di visualizzare le proprie liste di
fornitori e clienti amici e di inviare e ricevere messaggi.
pag. 30
Il sito è però integrato con altre funzionalità che caratterizzano l’azienda, quali la
ricerca di fornitori e clienti sul territorio, e la possibilità di salvare le trattative
concluse in uno storico.
3.5
DATABASE
Il database utilizzato è sqlServer.
È formato da 7 tabelle:
TagForn
serve per memorizzare le informazioni personali e
anagrafiche dell’azienda utente
memorizza le forniture associate ad ogni azienda
TagProd
memorizza i prodotti associati ad ogni azienda
FriendList
Fattura
memorizza i rapporti di amicizia tra fornitore e clienti e
tra cliente e fornitore
memorizza i dati delle fatture salvate
FattDett
per ogni fattura memorizza i prodotti salvati
Chat
memorizza tutti i messaggi
Profilo
pag. 31
Figura 12: Struttura database
La tabella Friendlist è di fondamentale importanza. I rapporti di amicizia
sono salvati in questo modo:
email di chi effettua la richiesta – email di chi riceve la richiesta- tipo di
amicizia(fornitore o cliente)- confermata(si o no).
Il tipo di amicizia è definito rispetto all’azienda che effettua la richiesta, quindi
rispetto all’altra sarà l’esatto contrario, come avviene nelle trattative sul mercato
reale dove se A è fornitore di B, allora B è cliente di A.
Il campo “confermata” serve a sapere se la richiesta è stata accettata.
Per esempio: A - B – forn - si
Significa che B è nella lista fornitori di A, e che quindi A è nella lista clienti di B.
pag. 32
3.6
UX CONCETTUALE
Il modello UX concettuale su cui si basa l’idea di Gridcom è il seguente:
Figura 13: ux concettuale
L’azienda utente è al centro del sistema e può in qualsiasi momento interagire con le
funzionalità messe a disposizione.
Si evince come a livello astratto vi sia una netta distinzione tra fornitore e cliente.
pag. 33
4 DESIGN IMPLEMENT
4.1
SCENARI
Login
Utente
Inserisce Email e password e clicca il
pulsante di login sulla home page
Sistema
Verifica la correttezza e in caso permette
l’accesso alla pagina profilo.
Registrazione:
Utente
Clicca il pulsante registrati sulla home page
Sistema
Apre il form di inserimento dati per la
registrazione
Utente
Inserisce i dati e da l’ok
Sistema
Crea nel database un nuovo utente con i dati
registrati.
pag. 34
Figura 14: scenario registrazione
Da questo punto in poi analizzeremo due possibili tipologie di aziende: i fornitori e i
clienti.
Tuttavia si tratta di un’astrazione della realtà, perché non esiste una netta distinzione
tra le 2 tipologie, ogni azienda potrebbe essere fornitrice di un’altra e nel contempo
essere cliente di una terza.
Chiaramente per il rapporto di mercato che lega 2 aziende, se l’azienda A è un
fornitore di B, allora l’azienda B è cliente di A.
pag. 35
FORNITORE
Inserimento forniture:
Utente
Clicca dal menu “opzioni” il pulsante “modifica
forniture/prodotti ”
Sistema
Apre il menu forniture dove appare un editor dal
quale selezionare le forniture desiderate.
Utente
Seleziona le forniture desiderate. Clicca su
conferma
Sistema
Aggiorna il database con le forniture dell’utente
e le visualizza sulla pagina profilo.
Modifica forniture:
Utente
Clicca dal menu opzioni il pulsante “modifica
forniture/prodotti”
Visualizza il menu forniture dove appare un
Sistema
editor dal quale selezionare le forniture
desiderate .
Utente
Deseleziona quelle da togliere e seleziona le
forniture desiderate. Clicca su conferma.
Sistema
Aggiorna il database con le forniture dell’utente.
pag. 36
Ricerca clienti:
Utente
Clicca sul pulsante ricerca clienti sulla pagina
profilo.
Sistema
Apre un menu dove selezionare la locazione
geografica e i prodotti da associare alla ricerca
Seleziona la
Utente
nazione/regione/provincia/città desiderata e
i prodotti
Sistema
Visualizza le aziende che corrispondono alla
ricerca.
Utente
Vede le aziende utili e cliccando sul nome ne
visualizza il profilo
Elimina cliente
Utente
Clicca sul tasto “Non mi piace” nella lista dei
clienti
Sistema
Elimina il fornitore dalla lista
Aggiunge un azienda alla lista clienti
Utente
Dal profilo dell’azienda desiderata clicca
aggiungi ai miei clienti
Inserisce nel database la richiesta non
Sistema
confermata in attesa che venga accettata
dall’altra azienda.
pag. 37
L’azienda 1 accetta la richiesta di entrare nella lista fornitori dell’azienda 2
Dal menu “richieste in attesa” della pagina
Utente 2
profilo visualizza le richieste di amicizia e clicca
accetta(o rifiuta se vuole rifiutare)
Aggiorna il campo “confermata” del database e
Sistema
inserisce l’azienda 2 tra i clienti dell’azienda 1 e
l’azienda 1 tra i fornitori dell’azienda 2.
Rimuove un azienda dalla lista clienti:
Utente
Clicca il pulsante rimuovi dai miei clienti sulla
pagina profilo dell’azienda desiderata.
Sistema
L’azienda viene eliminata dalla lista
pag. 38
CLIENTE
Inserimento prodotti:
Utente
Clicca dal menu “opzioni” il pulsante “modifica
forniture/prodotti ”
Sistema
Apre il menu prodotti dove appare un editor dal
quale selezionare i prodotti desiderati.
Utente
Seleziona i prodotti desiderati. Clicca su
conferma.
Sistema
Aggiorna il database con i prodotti dell’utente e
le visualizza sulla pagina profilo.
Modifica prodotti:
Utente
Clicca dal menu “opzioni” il pulsante “modifica
forniture/prodotti”
Sistema
Apre il menu prodotti dove appare un editor dal
quale selezionare i prodotti desiderati.
Utente
Deseleziona quelli da togliere e seleziona i
prodotti desiderati. Clicca su conferma.
Sistema
Aggiorna il database con i prodotti dell’utente e
le visualizza sulla pagina profilo.
pag. 39
Ricerca fornitori:
Utente
Clicca il pulsante ricerca fornitori sulla pagina
profilo.
Sistema
Apre un menu dove selezionare la locazione
geografica e le forniture da associare alla ricerca
Utente
Seleziona la nazione/regione/provincia/città
desiderata e le forniture.
Sistema
Visualizza le aziende che corrispondono alla
ricerca
Utente
Vede le aziende utili e cliccando sul nome ne
visualizza il profilo
Figura 15: Schema Ricerca fornitori
pag. 40
Elimina fornitore
Clicca sul tasto “Non mi piace” nella lista dei
Utente
fornitori.
Elimina il fornitore dalla lista
Sistema
Aggiunge un azienda alla lista fornitori
Dal profilo dell’azienda desiderata clicca
Utente
aggiungi ai miei fornitori
Inserisce nel database la richiesta non
confermata in attesa che venga accettata
Sistema
dall’altra azienda
L’azienda 1 accetta la richiesta di entrare nella lista clienti dell’azienda 2
Dal menu “richieste in attesa” della pagina
Utente
profilo visualizza le richieste di amicizia e clicca
accetta(o rifiuta se vuole rifiutare)
Aggiorna il campo “confermata” del database e
Sistema
inserisce l’azienda 2 tra i fornitori dell’azienda 1
e l’azienda 1 tra i clienti dell’azienda 2
Rimuove un azienda dalla lista fornitori:
Utente
Clicca il pulsante rimuovi dai miei fornitori
sulla pagina profilo dell’azienda desiderata
Sistema
L’azienda viene eliminata dalla lista
pag. 41
Figura 16: Aggiunta/Rimozione fornitore
COMUNE AD ENTRAMBE
Modificare le impostazioni personali
Utente
Clicca il tasto impostazioni profilo dal menu a
tendina opzioni
Sistema
Ritorna una pagina dove sono contenuti i dati
del profilo dell’utente
Utente
Modifica i campi desiderati
Sistema
Aggiorna il database
pag. 42
Figura 17: Modifica impostazioni profilo
Contattare altre aziende:
Utente
Dalla pagina profilo dell’altra azienda clicca
invia messaggio
Sistema
Apre un form di inserimento messaggio
Utente
Inserisce il messaggio e clicca ok
pag. 43
Leggere posta:
Utente
Dalla pagina profilo clicca messaggi
Sistema
Restituisce la pagina messaggi
Utente
Clicca sull’azienda della quale si vogliono
visualizzare i messaggi
Sistema
Restituisce i messaggi dell’azienda selezionata
Utente
Scrive nell’apposito box se vuole rispondere
Sistema
Inserisce il messaggio nel database
Visualizzare le aziende che corrispondono alle forniture/prodotti dell’azienda
Utente
Sistema
Clicca “partnership” dalla pagina profilo
Restituisce una lista di possibili clienti e
fornitori nell’area geografica vicina all’utente
Utente
Sistema
Clicca su un azienda della lista
Restituisce la pagina profilo dell’azienda
selezionata
pag. 44
Figura 18: Partership
Concludere una trattativa
Utente
Clicca sul pulsante “salva fattura ” dalla pagina
profilo dell’azienda desiderata
Sistema
Ritorna un menu dal quale inserire i prodotti e il
prezzo che caratterizzano la trattativa
Utente
Inserisce i dati della trattativa
Sistema
Salva i dati della trattativa nel database
pag. 45
Visualizzare archivio fatture:
Utente
Dalla pagina profilo clicca su ”archivio fatture”
Sistema
Visualizza lo storico delle fatture
Utente
Clicca sulla fattura desiderata
Sistema
Visualizza i dati della fattura selezionata
Figura 19: Fatturazione
A livello software le distinzioni cliente/fornitore non esistono; tutte le aziende hanno
funzionalità sia per i clienti che per i fornitori.
pag. 46
4.2
SICUREZZA INFORMATICA
Quando si sviluppa un software, uno dei punti fondamentali è garantire la
sicurezza informatica, ovvero che non sia possibile introdursi nel codice al fine di
distruggere, modificare o rubare i dati inseriti.
Questo tema diventa ancora più importante nel momento in cui si sviluppano
applicazioni web, perché queste si rivolgono a chiunque e quindi si è ignari di chi si
possa introdurre nel sistema.
Nello specifico, un software può contenere delle “vulnerability”, ovvero parti di
codice vulnerabili che possono essere utilizzate da un malintenzionato (per esempio
un hacker) al fine di produrre degli exploit; qui di seguito ne vengono citati alcuni:
•
•
•
•
•
•
•
•
•
•
Buffer Overflow
Eavesdropping
Race Condition
Man in the Middle
Input Validation
Session Hijacking
Memory Residue
Replays
Path Manipulation
Backdoors
Nell’ambito web le più pericolose sono sicuramente queste:
•
•
•
•
Input Validation
Session Hijacking
Sql injection
Cookie poisoning
In pochi anni il web ha subito una notevole evoluzione; inizialmente esistevano solo
pagine statiche, ovvero siti in cui l’utente poteva solamente consultare il contenuto
senza potervi interagire.
All’inizio del nuovo millennio invece si sono cominciate a diffondere le prime
pagine dinamiche, siti in cui gli utenti potevano interagire con applicazioni. Ne
sono esempi gli E-commerce, le banche e le assicurazioni on line e i più recenti
social network.
pag. 47
Oggi il web conta miliardi di pagine dinamiche e altrettante interazioni di utenti;
questo vuol dire che i dati personali sono moltissimi e bisogna garantire che almeno
i più importanti siano protetti (per esempio numeri di conti correnti, carte di credito
ecc).
Qui di seguito vengono analizzate le contromisure adottate da Gridcom per
difendere i dati delle aziende iscritte.
INPUT VALIDATION
Come citato in precedenza, chiunque può aprire una pagina web, e dato che Gridcom
utilizza pagine dinamiche per interagire con i clienti, si necessita di una validazione.
L’utente all’accesso nella piattaforma, sarà costretto ad effettuare il login previa
registrazione. In questo modo è garantito il controllo dell’utente, che se non rispetta
il servizio offerto verrà eliminato dal database impedendone un nuovo accesso.
SQL INJECTION
Il problema dello sql injection è noto da quando sono stati creati i primi database. Il
funzionamento è molto semplice: si inserisce una stringa all’interno della query che
permette di accedere ad una determinata tabella del database.
Per esempio:
“SELECT * FROM utente WHERE IDutente=’”+txtEmail.text+”’ and
pass=’”+txtPass.text+”’; ”
La query sopra indicata potrebbe essere utilizzata nella fase di login dove txtEmail
indicherà il campo Email dell’utente e txtPAss il campo password.
Se nel campo txtEmail venisse inserita la seguente stringa:
‘1’=’1’;-Si avrebbe un attacco sql injection perché:
• 1=1 indica una condizione di verità costante
• ;-- indica il termine della query. La parte rimanente viene considerata
solamente un commento
pag. 48
Il software vedrebbe quindi la seguente query:
“SELECT * FROM utente WHERE IDutente=’1’=’1’;--”
Permettendo all’utente di visualizzare l’intero contenuto della tabella utente.
Gridcom risolve questo problema validando l’input e filtrando il contenuto: non
sono permessi caratteri speciali quali ‘=’ ‘;’ e ‘-’.
COOKIE POISONING
In informatica i cookie HTTP (più comunemente denominati Web cookies, tracking
cookies o semplicemente cookie) sono stringhe di testo di piccola dimensione
inviate da un server ad un Web client (di solito un browser) e poi rimandati indietro
dal client al server (senza subire modifiche) ogni volta che il client accede alla stessa
porzione dello stesso dominio. Il termine "cookie" - letteralmente "biscotto" - deriva
da magic cookie, concetto ben noto in ambiente UNIX e che ha ispirato sia l'idea che
il nome dei cookie HTTP.
Sono molto utilizzati in campo e-commerce per pubblicizzare nei banner prodotti
visti in precedenza o per effettuare acquisti online (carrello elettronico).
Il cookie poisoning consiste nel modificare i contenuti di un cookie (per esempio le
informazioni personali salvate nel computer dell'utente) con il fine di eludere i
meccanismi di sicurezza. Attraverso questa tecnica, chi attacca può ottenere
informazioni private e non autorizzate da un utente, nonché rubare la sua identità. I
cookie immagazzinati nel computer dell'utente contengono le informazioni che
consentono alle applicazioni di autenticare la userID, monitorare i comportamenti e
personalizzare i contenuti di un sito
Gridcom non utilizza il metodo dei cookie perché il sistema si basa interamente
sull’utilizzo del database e non ha lo scopo di pubblicizzare un prodotto.
pag. 49
OLTRE GLI ATTACCHI INFORMATICI
Uno dei principali problemi nello sviluppo di un software è garantire l’integrità dei
dati nel tempo.
Quando si parla di sicurezza informatica si pensa subito a virus, worm, malware o
attacchi da parte di hacker, ma un problema serio è anche l’affidabilità dell’hardware.
Come qualsiasi macchina un server può rompersi, e se non esiste una copia dei dati,
questi saranno irreparabilmente compromessi.
Esistono architetture che permettono di ovviare a questo problema. Nel seguito ne
sono elencate alcune.
Figura 20: Architettura Master-slaves
Una delle architetture più utilizzate è master-slaves; il master contiene il database
correntemente utilizzato mentre gli slave contengono le copie del database o del log
(a seconda della dimensione del database e del tipo di query effettuate).
È anche il caso di Gridcom; il sistema replica periodicamente i dati del database su
un disco separato (slave); in questo modo se un disco si danneggia diventa
facilmente sostituibile.
La copia effettuata è integrale, ovvero viene clonato interamente il database; si tratta
di una soluzione temporanea perché attualmente lo spazio occupato è minimo.
pag. 50
Inoltre soluzioni future necessiteranno di un’architettura più complessa, composta da
un numero di slave maggiore perché vi sarà un’ipotetica crescita esponenziale del
numero di accessi al social network e quindi un maggiore stress a lettura/scrittura su
hard disk.
Esistono anche altre soluzioni architetturali quali la master-master
Figura 21: architettura Master-Master
In questo caso entrambi i database posti sui due server risultano operativi ma vi sono
problemi di sincronia perché entrambi possono effettuare read e write.
Figura 22: Architettura ad anello
pag. 51
L’ultima architettura proposta è quella ad anello, poco utilizzata, perché risulta
essere molto fragile, infatti basta un singolo guasto per compromettere l’intera
l’architettura.
pag. 52
4.3 LE PAGINE
Il capitolo che segue, sarà dedicato a descrivere le funzionalità delle pagine
principali, con alcuni esempi.
INDEX
Figura 23: Homepage
La pagina iniziale presenta il form di login e il link per accedere alla pagina di
registrazione.
pag. 53
PROFILO
Figura 24: pagina profilo personale
Il profilo è il biglietto da visita dell’azienda: visualizza le informazioni principali e
la posizione sulla mappa; inoltre permette di accedere alle pagine di ricerca, alle
trattative salvate e alla pagina di partnership.
Permette anche di cambiare i propri dati personali e di modificare le impostazioni
sulla privacy.
La parte centrale della pagina presenta nella colonna di sinistra la lista dei fornitori,
al centro l’azienda stessa e nella colonna di destra la lista dei clienti. Dal punto di
vista logico, questa struttura riflette la realtà perché definisce l’azienda come nodo
legato ai suoi fornitori e ai suoi clienti, e ricalca il modello fornitori-azienda-clienti
come parte della rete commerciale che definisce il mercato.
pag. 54
PARTNERSHIP
Questa pagina presenta la lista delle aziende che in base a forniture e prodotti
potrebbero diventare possibili fornitori e clienti. Delinea quale può essere la rete
commerciale dell’utente.
La lista fornitori è popolata incrociando le forniture dell’utente ai prodotti degli altri
utenti, la lista clienti invece incrocia i prodotti dell’utente con le forniture delle altre
aziende.
E’ possibile trovare le partnership nella propria città, provincia o nazione.
PROFILO DI UN'ALTRA AZIENDA
Figura 25: pagina profilo fornitore/cliente
pag. 55
Questa pagina visualizza il profilo di un'altra azienda. Le informazioni sono rese
disponibili in accordo con le decisioni sulla privacy definite dall’attività di cui si sta
vedendo il profilo.
Inoltre si può aggiungere o rimuovere l’azienda dalle proprie liste, accedere al
salvataggio di una trattativa, o inviare un messaggio.
PRIVACY
La pagina della privacy è importantissima. L’azienda può decidere se rendere
pubbliche o meno le sue liste di fornitori e clienti . Prende decisioni su come gli altri
utenti visualizzeranno il suo profilo.
STORICO FATTURE
Visualizza l’archivio delle trattative concluse e la possibilità di vederne i dettagli.
Figura 26: pagina storico fatture
pag. 56
4.4 PARTICOLARITA’ DEL CODICE
HIDDENFIELD
La struttura di ASP.net, come detto, divide la parte client da quella server. Le
strutture definite sul client sono riconosciute dal server attraverso il file aspx.design.
Ogni volta che viene cliccato un tasto, la pagina viene ricaricata e le strutture
vengono aggiornate.
Per evitare il refresh della pagina e poter svolgere alcune operazioni in modo
asincrono, abbiamo utilizzato il linguaggio “javascript”, andando incontro ad alcuni
problemi.
Infatti quando vengono fatte delle modifiche lato client, usando linguaggi esterni
come javascript, le strutture non vengono aggiornate nel file di design e quindi non
vengono viste dal server.
La soluzione che abbiamo adottato in questo progetto è stato l’hiddenfield.
L’hiddenfield è una struttura invisibile sulla pagina ASP, che è definita per essere a
metà tra client e server. Attraverso l’hiddenfield le modifiche effettuate tramite tool
esterni, come javascript, possono essere visualizzate dal server.
Per esempio, la pagina che permette l’inserimento e la modifica di forniture e
prodotti presenta una lista che viene riempita e filtrata attraverso javascript. Senza
usare l’hiddenfield le modifiche finali sulle forniture, non sarebbero visibili dal lato
server, perché non vengono automaticamente considerate da ASP. Attraverso
l’hiddenfield invece è possibile registrare la lista finale tramite una stringa composta
dai materiali presenti, separati dalla virgola. Ogni volta che il codice javascript
inserisce un dato nella lista, lo stesso dato viene concatenato alla stringa
dell’hiddenfield.
In questo modo il server può vedere i dati inseriti.
pag. 57
Figura 27: l'hiddenfield
Per esempio, se tramite javascript l’utente inserisce nella lista le parole
“vite”,”martello” e”metallo” la stringa finale nascosta nell’hiddenfield sarà
“vite,martello,metallo” e sarà visibile dal lato server.
AJAX
Un'altra tecnica di sviluppo che abbiamo utilizzato per svolgere le operazioni in
modo asincrono è AJAX: Asynchronous Javascript and XML. Questa tecnica si
basa su uno scambio di dati in background fra web browser e server, che consente
l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte
dell'utente.
Una struttura di Ajax che abbiamo utilizzato spesso è l’UpdatePanel: la sua
caratteristica principale è quella di saper eseguire il codice presente o ad esso
associato in modalità completamente asincrona, senza modificare la modalità di
accesso al codice stesso, da parte dello sviluppatore e senza dover utilizzare
linguaggi lato client, come javascript.
Quindi la genialità di Ajax è che esegue le operazioni lato server, senza fare
ricaricare la pagina.
pag. 58
SQL DEPENDENCY
Un'ultima questione rilevante è la messaggistica. Affinché il servizio funzioni in
tempo reale, è necessario che quando un messaggio viene ricevuto il database
notifichi il dato immediatamente.
Questo è possibile utilizzando la funzione “SqlDependecy” che attiva un’effettiva
dipendenza dal database, il quale segnalerà in tempo reale una notifica in caso di
modifiche al suo interno.
Quindi il client si iscrive al database per ricevere le notifiche e quando viene
ricevuto un messaggio, il database avvisa che è avvenuto un cambiamento nei suoi
dati.
Figura 28: sqldependency
pag. 59
5
TEST EFFETTUATI
È stato proposto un questionario a 10 persone per analizzare l’usabilità dell’intero
sistema.
Le fasce di età sono le seguenti
• 4 utenti tra i 18 e i 25 anni
• 3 utenti tra i 26 e 45 anni
• 3 utenti sopra i 466 anni
Ogni domanda comprendeva un punteggio tra 1 (insoddisfatto) e 5 (pienamente
soddisfatto).
Inoltre il sistema era offline ed era già stato
stato inizializzato con dati fittizi
fittiz in modo che
si potesse già sfruttare al massimo l’intera
l’
piattaforma.
Qui di seguito vengono riproposte le domande chieste ai vari utenti.
1.
Credi che la grafica
rafica sia piacevole (logo, colori, font caratteri)?
media punteggi
5
4
3
2
media punteggi
1
0
18-25 anni
media punteggi
26-45
45 anni
>46 anni
Grafico 1: qualità grafica
pag. 60
Dal grafico si evince che gli utenti più adulti sono più attenti ai dettagli grafici ma
comunque soddisfatti della grafica.
2.
Credi che il sistema di tag sia facilmente intuibile?
media punteggi
3
2
media punteggi
1
0
18-25 anni
media punteggi
26-45
45 anni
>46
Grafico 2: Qualità dei tag
Questo punto ci ha stupiti per il punteggio mediamente basso e quindi abbiamo
chiesto chiarimenti. Ci è stato detto che l’idea è buona ma necessita di spiegazione
del funzionamento soprattutto nella fase di registrazione.
3.
Pensi che la gestione della lista dei clienti/fornitori sia appropriato?
media punteggi
4
2
media punteggi
0
18-25 anni
media punteggi
26-45
45 anni
>46
Grafico 3: gestione clienti/fornitori
pag. 61
In questa domanda si evince come le generazioni più giovani sappiano gestire
facilmente la lista di contatti.
4.
Cosa introdurresti in Gridcom? (domanda aperta)
Tra le risposte le principali sono state:
• Gridcom su smartphone
• Dare la possibilità di inserire altre immagini oltre a logo
• Possibilità ad utenti esterni di cercare lavoro
pag. 62
6
SVILUPPI FUTURI
Gridcom è un social network che permette un’infinità di sviluppi futuri.
Verrà introdotto un sistema di registrazione di utenti in cerca di lavoro, e in base a
un sistema di tag l’utente potrà individuare tutte le aziende presenti che ricercano
una figura professionale in base a determinate caratteristiche; per esempio se un ing.
Informatico inserirà “consulenza informatica” verranno visualizzate tutte le aziende
interessate ad assumere in tale ambito.
Verrà introdotto un sistema di inserimento immagini, cosicché l’azienda
nell’immediatezza potrà mostrare i prodotti sviluppati.
Sarà implementata un’architettura che permetta, in caso di un crollo del server
principale, che uno slave si attivi a diventare il nuovo master.
Un possibile sviluppo è l’implementazione di app in ambito mobile; potrebbe essere
creato un sistema che avvisi tramite smartphone, e quindi su piattaforme quali
Android, Windows Phone e IOS che una nuova azienda è stata trovata oppure
inviare messaggi ai propri clienti/fornitori.
Un contributo ulteriore alle aziende sarebbe l’introduzione di un sistema completo
per la gestione della contabilità interna e quindi non solo la gestione delle fatture;
Gridcom in questo modo si dividerebbe in due software complementari: da una parte
il social network e dall’altra un sistema gestionale (fatture, bolle, commissioni
bancarie ecc.) in modo che venga eliminato l’archivio cartaceo.
Verrà introdotto un sistema di feedback in modo che si possa migliorare l’usabilità
generale della piattaforma in base alle richieste degli utenti iscritti.
Ultimo punto importante la traduzione in varie lingue.
pag. 63
7
CONCLUSIONI
L’obbiettivo di GridCom è che un grande numero di aziende si iscriva al sito.
Questo farebbe di GridCom un’importante piazza di mercato, dove tutte le aziende
iscritte avrebbero grande visibilità e potrebbero interagire tra loro direttamente e
sulla base di specifici parametri quali le forniture e i beni prodotti.
L’azienda infatti si delinea sul mercato per quello che produce e per quello che ha
bisogno per produrre. Le interazioni con le altre aziende hanno questi elementi come
parametri fondamentali.
Ciò è testimoniato dal ruolo principale che l’ufficio acquisti e l’ufficio vendite
ricoprono nell’azienda.
GridCom può essere visto come un ulteriore integrazione del CRM (Customer
relationship management) operativo poiché si propone come nuovo canale
(sottocanale del web) utilizzato dall’azienda per interagire con i clienti. Inoltre si
propone come primo passo anche nel Supply Chain Management Aziendale che si
occupa della gestione dei fornitori.
GridCom vuole essere il primo passo che delinea il rapporto tra le aziende, il primo
step che in modo concreto ed esauriente permette di capire quali sono le aziende che
possono entrare nella sfera di mercato dell’azienda stessa.
E’ il primo servizio che agisce per legare e stringere rapporti di business.
Non esiste nulla sul web che sia definito secondo queste caratteristiche.
pag. 64
8
BIBLIOGRAFIA
http://www.alexa.com/topsites/global
Slide corso “SISTEMI INFORMATIVI 1 ” della prof. Francalanci
Slide corso “COMPUTER SECURITY” del prof. Zanero
http://it.wikipedia.org/wiki/YouTube
http://it.wikipedia.org/wiki/Twitter
http://it.wikipedia.org/wiki/Facebook
http://it.wikipedia.org/wiki/Linkedin
http://it.wikipedia.org/wiki/Azienda
pag. 65