Sei sulla pagina 1di 21

Universit` a degli Studi di Roma - ROMA TRE

Facolt` a di INGEGNERIA
Corso di Laurea Triennale in INFORMATICA
Tesi di laurea triennale
Progettazione e sviluppo di un sistema
di monitoraggio e visualizzazione real
time di contenuti virali su Web.
Candidato
Stefano Salvucci
Matricola 441063
Relatore
Prof. Paolo Merialdo
Correlatore
Ing. Davide Palmisano
Anno Accademico 2012-2013
I NDI CE
1 co+rt+t vt nttt st vrn 1
1.1 La viralit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Il caso Dollarshaveclub.com . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Il caso Condividi una Coca-Cola . . . . . . . . . . . . . . . . . . . 3
1.2 Monitorare la viralit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 BuzzFeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Reddit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Mashable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.4 ViralHeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 tncut +r++tnt 7
2.1 Il Processo di denizione dellarchitettura . . . . . . . . . . . . . . . . . . 7
2.2 Stili architetturali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Domain Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Pipes And Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 Model-View-Controller . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Architettura candidata . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Bibliograa 17
i
ELENCO DELLE FI GURE
Figura 1 Dollar Shave Club . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figura 2 Condividi una Cocacola . . . . . . . . . . . . . . . . . . . . . . . 4
Figura 3 BuzzFeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figura 4 Reddit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figura 5 Mashable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figura 6 ViralHeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 7 Attivit di supporto alla denizione di unarchitettura . . . . . . 8
Figura 8 Attivit della denizione di unarchitettura . . . . . . . . . . . . 9
Figura 9 Il modello di dominio della Viral Video Chart . . . . . . . . . . 12
Figura 10 Pipeline del processo di inserimento e classicazione degli elementi 13
Figura 11 Pattern architetturale MVC applicato al progetto . . . . . . . . . 14
Figura 12 Larchitettura del sistema . . . . . . . . . . . . . . . . . . . . . . 16
ii
ELENCO DEL CODI CE
iii
1 CONTENUTI VI RALI SU WEB
Questo capitolo introduce il concetto di viralit e mostra alcuni esempi riusciti che
avevano come obiettivo quello di divenire virali.
Gli esempi presi in considerazione sono stati di forte impatto per molti analisti di mercato,
sulla rete infatti, si trovano molti studi sul come e sul perch questi esempi (spot, campagne
pubblicitarie, canzoni, foto, ecc.) siano andati virali.
!.! tt vtnttt+t
La viralit un concetto molto semplice ma allo stesso molto potente.
La denizione dell Oxford Dictionary [1]:
la tendenza di un immagine, video o informazione di circolare rapidamente e velocemente
da un utente di Internet ad un altro utente
e ancora[2]:
ogni fenomeno, che sia un oggetto oppure un contenuto capace di indurre altri soggetti a
replicarlo, diondendolo automaticamente
Per esempio, la viralit relativa al contagio sociale, culturale, emozionale ed aettiva si
dionde attraverso i social networks.
Ogni content manager, ovvero colui che gestisce i contenuti di un blog piuttosto
che di un sito internet desidera pi di ogni cosa di gestire contenuti virali. In questo
modo ogni contenuto si replica automaticamente, o meglio, si replica grazie allazione
dei singoli utenti che condividono linformazione.
Tutto ci genera un eetto a catena che nel migliore dei casi permette al contenuto stesso
di avere una visibilit enorme, senza aver speso un singolo euro in pubblicit.
1
1 co+rt+t vtnttt st vrn 2
Secondo una ricerca di Leo Widrich[3], gli ingredienti magici per rendere un contenuto
virale sono:
Esclusiva
Possedere materiale unico pu aumentare la voglia di un lettore di consultare il
documento. La paura di rimanere fuori non leggendo un articolo un ottima leva
per aumentare linteresse nei confronti dellarticolo stesso.
Pulsanti per la condivisione
Vanno inseriti sia allinizio che alla ne di un articolo, senza di essi il contenuto
dicilmente diverr virale.
Di facile lettura
Agli utenti web piace consultare porzioni di informazioni, quindi il contenuto deve
essere facilmente consultabile.
Uso pratico
Materiale utile alle persone sar condiviso pi facilmente rispetto a scadenti
informazioni prive di utilit.
Consistenza
Il rispetto della qualit e della frequenza dei contenuti permette di aumentare la
ducia dei lettori. Quando gli utenti credono in te e nei tuoi contenuti, sar pi
semplice condividerli.
Ecco alcuni esempi che evidenziano limportanza di essere virali:
!.!.! Il caso Dollarshaveclub.com
Dollar Shave Club una startup nata nel 2011.
Producono rasoi e li spediscono per posta, e sono divenuti famosissimi grazie ad un video
che ha permesso ai due soci fondatori di vincere il premio Best Out-of-Nowhere Video
Campaign agli AdAge Viral Video Awards del 2012.
Il video combina perfettamente tutti gli aspetti che deve avere un video virale (vedi
immagine 1). In un mese ha ottenuto oltre 40M di visualizzazioni permettendo alla startup
di entrare con forza in un mercato tutto nuovo: rasoi a domicilio, qualcuno direbbe RaaS
(Rasoi as a Service).
1 co+rt+t vtnttt st vrn 3
Figura 1: Dollar Shave Club
In un intervista il fondatore Michael Dubin[4] racconta la serata del lancio del video: Il
loro sito era stato bombardato da richieste che bloccarono il sistema per 20 ore. Dopo
averlo ripristinato, ricevettero pi di 12.000 ordini in meno di ventiquattro ore.
Questa la potenza della viralit.
!.!.2 Il caso Condividi una Coca-Cola
Dopo 127 anni di storia, il brand Coca-Cola modica per la prima volta la sua identit
visiva, introducendo bottiglie e lattine personalizzabili (vedi immagine 2).
Questa stata la campagna di personalizzazione in assoluto pi grande della storia.
Saranno interessate al progetto le confezioni di Coca-Cola, Coca-Cola light, Coca-Cola
Zero nei formati lattine 330ml, bottigliette PET 500ml e bottiglie PET da 1,75l, insomma
quasi la totalit della linea di prodotti.
La campagna talmente riuscita bene da spopolare sui social networks e generare oltre
20M di impressions.
Anche un brand forte come Coca-Cola ha puntato la propria campagna estiva sulla
viralit, aumentando i costi di produzione per la creazione delle lattine personalizzate,
diminuendo invece i costi della pubblicit (essendo una campagna virale la notizia delle
nuove lattine personalizzate si replica autonomamente) .
necessario per sottolineare un importante spesa iniziale per avviare il processo
virale: c stata infatti una forte campagna pubblicitaria nella fase iniziale che coinvolger
oltre 12mila punti della grande distribuzione e 37mila bar.
Inoltre la campagna verr arricchita da un tto tour in giro per lItalia, che porter dei
corner nei principali luoghi di aggregazione della nostra penisola, in modo che tutti
possano avere la propria Coca-Cola personalizzata.
1 co+rt+t vtnttt st vrn 4
Figura 2: Condividi una Cocacola
!.2 xot+ontnr tt vtnttt+t
Adesso chiaro cosa sia la viralit, ma come fare a scovare contenuti virali?
Ci sono diversi siti/blog che si occupano proprio di questo, e per farlo utilizzano algoritmi
e strutture di ranking descritti pi in avanti /refch:conclusioni DA MODIFICARE
Oltre ad essere un riferimento per i content manager, spesso questi siti/blog sono anche
un ottimo passatempo per i milioni di utenti internet che amano visitare il web per lunghi
periodi.
I servizi al pubblico (B2C) pi famosi sono: BuzzFeed, Reddit e Mashable.
Esistono anche servizi per privati (B2B) come ad esempio ViralHeat.
Verranno descritti di seguito:
!.2.! BuzzFeed
Figura 3: BuzzFeed
BuzzFeed un sito che combina una piattaforma per rilevare contenuti virali con un
processo di selezione editoriale per orire uno snapshot del web virale in tempo reale.
La Homepage di BuzzFeed fatta da una lista temporale di posts fatti da utenti e dai
membri dello sta. Il contenuto dei posts solitamente un video, unimmagine oppure un
link. Questi posts devono catturare lessenza del web virale in quel determinato istante.
1 co+rt+t vtnttt st vrn 5
Ogni venerd, BuzzFeed ospita una battaglia in cui gli utenti sono chiamati a condividere
sulla piattaforma il miglior gioco perditempo sul web.
Un valore aggiunto di BuzzFeed sono i badges: ogni utente pu dire la propria riguardo
un contenuto (ad esempio: LOL, AWFUL, OMG, ecc.) .
Se molti utenti pensano la stessa cosa assegnano lo stesso badge di un contenuto,
allora esso verr marcato con quel badge.
Ogni utente possiede un proprio punteggio, e pu confrontarsi con gli altri utenti at-
traverso una classica basata sui contributi generati dagli utenti, creando un meccanismo
di gamication[5].
!.2.2 Reddit
Figura 4: Reddit
Reddit un sito di social news ed intrattenimento dove gli utenti registrati possono
inserire contenuti sottoforma di link oppure di testo.
Ogni contenuto associato ad un area di interesse, chiamata subreddit.
Qualunque utente pu votare il contenuto esprimendo un parere positivo (upvote)
oppure un parere negativo (downvote) .
Questi voti permettono al sistema di generare una classica dei contenuti pi interessanti
basandosi sui voti e sulla data di immissione del contenuto.
Una descrizione pi approfondita dellalgoritmo di ranking utilizzato da reddit fornita
pi avanti RIFERIMENTO AL CAPITOLO 4 ALGORITMO DI REDDIT
!.2.3 Mashable
Figura 5: Mashable
1 co+rt+t vtnttt st vrn 6
Mashable un sito che fornisce news combinato ad un blog riguardante la tecnologia
ed il sociale fondato nel 2005.
Il focus principale del sito sono le social media news, ma incorpora anche notizie e
sviluppi riguardanti il mobile, lintrattenimento, video online, business, sviluppo web,
tecnologia e tanto altro.
Genera circa 50M di pagine visitate al mese.
!.2.4 ViralHeat
Figura 6: ViralHeat
ViralHeat un SaaS (Software as a Service) per il social media management che
permette al cliente di monitorare ed analizzare i contenuti creati dagli utenti, i feedback e
le discussioni riguardanti i prodotti del cliente.
Nello specico, la piattaforma permette di controllare il numero di volte che un indi-
viduo (o unazienda) viene menzionato sul web. Il dato viene analizzato, e si ricavano
valori come linuence
1
ed il sentiment
2
.
1 COS INFLUENCE
2 COS SENTIMENT
2 ARCHI TET T URA
La denizione dellarchitettura un processo in cui:
vengono colti gli interessi e i bisogni delle parti interessate;
viene progettata unarchitettura che soddisfa questi interessi;
larchitettura viene descritta in modo chiaro e non ambiguo mediante una descri-
zione architetturale.
La denizione dellarchitettura posta tra lanalisi dei requisiti, dove lattenzione
focalizzata sulla comprensione del problema, e la progettazione, dove lattenzione
focalizzata sulla ricerca di una soluzione (vincolata dal problema) .
Questo processo viene eseguito spesso nelle fasi iniziali e produce un progetto dellarchi-
tettura software del sistema da realizzare.
Tuttavia, la denizione dellarchitettura non pu considerarsi terminata senza la realizza-
zione completa del suo scheletro, che, in modo iterativo, consente ad ogni iterazione di
vericare e correggere larchitettura in perfetto stile Agile.
Il responsabile di questo processo un architetto, che responsabile della progettazione,
documentazione e guida alla creazione di un sistema che vuole soddisfare tutte le parti
interessate, concentrandosi prevalentemente sugli aspetti architetturali.
In questo capitolo si elencano rigorosamente tutti i passi del processo di denizione
dellarchitettura, le attivit speciche e di supporto al processo.
Verranno elencati inoltre i pattern scelti per questo progetto, ed inne viene proposta
unarchitettura candidata per la Viral Video Chart. (RIF cap 5)
2.! tt rnocrsso rt rrrtt zt or rrtttncut +r++tnt
La denizione dellarchitettura spesso caratterizzata da cambiamenti ed incertezza:
le necessit (funzionalit e qualit) desiderate dalle parti interessate cambiano mentre si
ottiene una migliore comprensione dellarchitettura stessa. Di conseguenza larchitettura
cambia anche durante lo sviluppo del prodotto, infatti, come detto in precedenza, questo
un processo iterativo. I risultati prodotti da questo processo, oltre allarchitettura stessa
spiegata in modo esaustivo, sono i seguenti:
7
2 tncut +r++tnt 8
la chiaricazione dei requisiti;
la gestione delle aspettative delle attivit interessate;
la descrizione e la valutazione delle opzioni architetturali;
la comprensione dei criteri di accettazione dellarchitettura;
la guida del processo di progettazione.
Il processo di denizione dellarchitettura supportato da una serie di attivit di
supporto.
Uno schema delle possibili attivit mostrato nella gura 7.
Figura 7: Attivit di supporto alla denizione di unarchitettura
Le attivit elencate in gura sono le seguenti:
denire portata e contesto iniziali, ovvero denire i conni del comportamento e
delle responsabilit del sistema e il suo conteso organizzativo ed operazionale;
coinvolgere le parti interessate, ovvero identicare le parti interessate importanti
per il sistema e stabilire una relazione con essi;
cogliere gli interessi iniziali, ovvero per ciascun gruppo di parti interessate, com-
prendere gli interessi e le priorit su tali interessi;
2 tncut +r++tnt 9
denire larchitettura, ovvero progettare larchitettura e creare la descrizione archi-
tetturale;
creare lo scheletro del sistema, ovvero implementare e validare le fondamenta
dellarchitettura.
In questo capitolo ci concentreremo sullattivit della denizione dellarchitettura, il
cui schema concettuale mostrato in gura 8.
Figura 8: Attivit della denizione di unarchitettura
Le attivit possono essere denite come:
consolidare linput
comprendere, validare e ranare linput iniziale incompleto e inconsistente;
risolvere le inconsistenze per avere un punto di partenza solido.
identicare gli scenari
identicare un insieme di scenari che illustrano i requisiti(funzionali e non
funzionali) pi signicativi per il sistema;
assegnare una priorit agli scenari che saranno utilizzati per denire e validare
larchitettura.
identicare gli stili architetturali pertinenti (cfr 2.2)
2 tncut +r++tnt 10
identicare gli stili architetturali che potrebbero essere usati come base per
lorganizzazione complessiva del sistema;
far s che la scelta sia guidata dagli scenari pi importanti.
creare unarchitettura candidata (cfr 2.3)
creare unarchitettura iniziale per il sistema che riette i suoi interessi archi-
tetturali primari, da usare come base (punto di partenza) per la valutazione e
il ranamento successivo dellarchitettura;
descrivere larchitettura da un insieme iniziale di viste architetturali.
esplorare le opzioni architetturali
esplorare le varie possibilit architetturali per il sistema e prendere delle
decisioni architetturali fondamentali, scegliendo tra le possibilit;
considerare pi alternative, per ridurre i rischi;
usare gli scenari per validare e migliorare larchitettura.
valutare larchitettura con le parti interessate
validazione dellarchitettura con le principali parti interessate, per ottenere
laccettazione (da parte loro) dellarchitettura;
la validazione serve a comprendere le conseguenze delle decisioni architettu-
rali sulla possibilit di controllare le qualit richieste.
rielaborare larchitettura
riconsiderare gli attributi di qualit che, secondo la valutazione, hanno un
supporto architetturale insuciente;
applicazione soprattutto di tattiche e prospettive architetturali.
rivisitare i requisiti
considerare la possibilit di cambiare i requisiti del sistema sulla base di
considerazioni derivanti dalla valutazione dellarchitettura;
larchitetto deve consultare le parti interessate per cercare un accordo/com-
promesso.
2.2 s+ttt tncut+r++tnttt
Uno stile architetturale (o pattern architetturale) lo strumento che guida lorganiz-
zazione di unarchitettura software. Un pattern suggerisce un modo di fare valido e
2 tncut +r++tnt 11
provato, tanto da divenire appunto, un pattern. Ogni stile adotta una o pi regole da
applicare al progetto, riuscendo in questo modo a controllare la risposta di un attributo
di qualit (prestazioni, modicabilit, disponibilit, sicurezza, ecc.).
Gli stili architetturali vengono presi in considerazione solo dopo unaccurata selezione in
base alla rilevanza degli scenari architetturali.
In questo paragrafo verranno elencati e motivati i pattern architetturali usati nel
progetto.
Il compito principale, quello di modellare il sistema, stato svolto con il pattern Domain
Model, mentre il processamento del usso di dati viene eettuato attraverso Pipes and
lter, inne, per garantire unelevata riusabilit ed un alto disaccoppiamento, viene
utilizzato fortemente il pattern MVC (Model-View-Controller).
Ogni pattern viene analizzato in 3 parti: il contesto (dove nasce il bisogno di usare un
pattern piuttosto che un altro), il problema da risolvere e la soluzione oerta dal pattern
scelto.
2.2.! Domain Model
Il pattern architetturale Domain Model quanto di pi astratto possa esistere, pu
essere visto come la radice da cui nasce tutta la progettazione.
Lutilizzo di questo pattern avviene allinizio della progettazione, quando larchitetto
necessita di una base da cui partire. importante riuscire a gestire parti minori senza
dover pensare minimamente al resto del progetto. Questo non solo favorisce un buon
disaccoppiamento, ma permette di separare mentalmente i diversi componenti evitando
cos di trovarsi di fronte quella che in gergo chiamata, una grossa palla di fango (a
big ball of mud); un grande insieme, spesso dicile da comprendere, da comunicare e da
usare come base per la creazione del sistema.
La soluzione oerta da Domain Model di creare un modello di dominio che denisce
i limiti e le responsabilit di business del sistema, e le sue possibili varianti. Gli elementi
nel modello sono astrazioni signicative nel dominio applicativo, i loro ruoli e le loro
interazioni riettono il usso di lavoro nel dominio. Successivamente, si usa il modello
di dominio come fondamento per larchitettura software del sistema; larchitettura cio,
diventa unespressione del modello, ed i due possono evolvere insieme in modo coerente.
Vi sono possibili interpretazioni dierenti per modello di dominio: con esso si pu
intendere un modello dei casi duso, una decomposizione che rappresenta le informazioni
del dominio (vedi gura 9), una decomposizione comportamentale (basata su processi o
ussi di dati), una decomposizione guidata da interessi tecnici e molte altre.
2 tncut +r++tnt 12
Figura 9: Il modello di dominio della Viral Video Chart
2.2.2 Pipes And Filters
Il contesto duso dello stile architetturale Pipes And Filters [18] quello di un sistema
che deve elaborare ussi di dati allinterno dei suoi processi. Esso fornisce una struttura
chiamata anche pipeline.
Il problema che pu presentarsi il seguente: dato che lapplicazione (o il componente)
deve elaborare un usso di dati, ovvero dei ussi di ingresso vanno trasformati in ussi
di uscita, una decomposizione in elementi che comunicano mediante meccanismi di tipo
richiesta/risposta considerata inadeguata.
Viceversa, possibile descrivere la trasformazione del usso di dati in termini di un
modello data-ow; in questo caso, lelaborazione complessiva pu essere organizzata
come un gruppo di passi di elaborazione successivi, i dettagli relativi a ciascun passo
potrebbero cambiare indipendentemente dagli altri e i passi potrebbero essere svolti in
parallelo.
La soluzione oerta da Pipes And Filters la seguente: si suddivide il compito com-
plessivo di elaborazione in una sequenza di passi di elaborazione dei dati auto-contenuti.
Ciascun passo implementato da un componente ltro: esso consuma dati da un usso
di input e genera dati in un usso di output, in modo incrementale. Conseguentemente,
si collegano questi passi (ltri) in una pipeline di elaborazione dei dati, che modella il
usso di dati complessivo dellapplicazione principale. I ltri successivi vengono collegati
tramite connettori chiamati pipe: essi sono buer di dati intermedi che non solo collegano
i ltri, ma che ne mantengono anche basso laccoppiamento.
2 tncut +r++tnt 13
Fra i diversi scenari in cui Pipes And Filters pu essere applicato, quello di nostro
interesse per il presente progetto il seguente: un usso di dati che va sempre nella stessa
direzione, dalla sorgente verso la destinazione. Vediamone un esempio.
Il processo che stato analizzato quello dellarrivo di un nuovo elemento da parte di uno
dei due listener con conseguente elaborazione da parte del cluster real-time. Larchitettura
basata su Pipes and lter sar composta come segue:
arrivato un nuovo elemento dal listener che viene depositato nella coda.
Il componente Deserializator responsabile della deserializzazione del contenuto,
quindi della conversione da stream di dati ad oggetto.
Il componente successivo responsabile di fornire, per ogni URL associata allele-
mento, la sua URL estesa.
Inne, lultimo componente responsabile della gestione del servizio di ranking,
necessario per generare la classica dei contenuti virali.
Un esempio di questapplicazione del pattern visibile in gura 10.
Figura 10: Pipeline del processo di inserimento e classicazione degli elementi
2.2.3 Model-View-Controller
Il pattern architetturale Model-View-Controller [18] il pattern di riferimento per
lo sviluppo di applicazioni web. Consente di separare in modo ottimale diversi strati
dellapplicazione a favore di unalta coesione e di un basso accoppiamento.
I problemi che questo pattern aronta sono i seguenti:
Come rendere indipendenti lo strato di logica applicativa dallo strato di presenta-
zione?
Come rendere lo strato di logica riutilizzabile con diversi strati di presentazione?
2 tncut +r++tnt 14
Il pattern suggerisce di dividere lapplicazione in 3 strati principali:
Il modello
lo strato pi importante, infatti chiamato anche business layer.
Questo perch al suo interno sono contenute tutte le regole per il corretto funzio-
namento dellapplicazione.
La vista
Come si intuisce dal nome, fanno parte della vista le componenti responsabili
di interagire con lesterno, solitamente con il termine vista si intende tutta la
componente UI (User Interface) del progetto.
Il controllore
Il controllore il componente responsabile del coordinamento sia del modello, sia
della vista(e); un intermediario che permette la comunicazione tra gli altri due
livelli.
Per rispettare il pattern, necessario che tutte e tre gli strati siano consistenti; questo
signica che se un layer cambia il proprio stato, deve essere in grado di comunicarne il
cambiamento agli altri layers. Per risolvere questo problema necessaria la creazione di
un meccanismo di propagazione dei cambiamenti.
Lapproccio che si deciso di utilizzare, come mostrato in gura 11, consiste nel
dividere il Model (Back-end) dalla View (Front-end) attraverso lutilizzo di un Controller
(Streaming Server).
Figura 11: Pattern architetturale MVC applicato al progetto
Va precisato, che, allinterno di questo stile architetturale, sono stati utilizzati nella
progettazione del sistema alcuni design pattern di uso comune.
Un design pattern fornisce uno schema per ranare gli elementi di un sistema software o
le relazioni tra di essi. Esso descrive una struttura ricorrente di elementi di progetto inter-
connessi, che risolvono un problema di progettazione generale in un contesto particolare.
Nello specico, i design pattern possono essere usati nellambito della progettazione di
dettaglio di singoli elementi architetturali, nonch delle interazioni tra di essi.
Si collocano quindi ad un livello gerarchico pi basso e specico rispetto ai pattern
architetturali.
2 tncut +r++tnt 15
I design pattern pi noti usati nel progetto sono stati:
Front Controller, che fornisce un punto di ingresso centralizzato per la gestione
delle richieste;
Dependency Injection, un Design Pattern il cui scopo quello di semplicare lo
sviluppo e migliorare la testabilit di software di grandi dimensioni.
Proxy, che ha lo scopo di far comunicare i client di un componente che ore servizi
con un rappresentante di quel componente, e non direttamente con il componente
stesso.
2.3 tncut+r++tnt ctrt rt+t
Larchitettura del sistema che andremo a progettare si basa sui pattern architetturali
descritti in precedenza. La piattaforma strutturata da due parti principali:
Front-end
la parte visibile dallutente, ovvero lo strato che gestisce la visualizzazione della
classica. Per ogni contenuto virale mostra il nome, una breve descrizione, unan-
teprima, un punteggio ed inne la URL del contenuto. Sono presenti anche dei
pulsanti per la condivisione del contenuto sui maggiori social network. Lunico
compito di questa parte quello di prendere i dati elaborati dal Back-end e visualiz-
zarli in modo accattivante, cos da indurre lutente alla condivisione, aumentandone
il fattore virale.
Back-end
Il Back-end la parte interessante del progetto, ovvero la parte dove vengono
elaborati i dati. I due listener (uno con sorgente Reddit.com, laltro con sorgente
Twitter) inviano i loro dati ad una coda che viene letta dal motore di elaborazione
real-time. I dati appena letti vengono prima deserializzati, dopodich ogni URL
viene espansa per poter essere comparata con le altre ed inne viene inviata alla
struttura dati che conterr la vera e propria classica dei contenuti virali in quel
preciso istante. Ogniqualvolta la classica cambia, le variazioni vengono inviate
ad un altra coda che viene letta dallo Streaming Server, il quale sar responsabile
della distribuzione della variazione ai vari client collegati in quel momento.
Una descrizione architetturale che riassume i componenti e le interazioni n qui
descritti pu essere vista in gura 12.
2 tncut +r++tnt 16
Figura 12: Larchitettura del sistema
BI BLI OGRAFI A
[1] La viralit secondo lOxford Dictionary
http://oxforddictionaries.com/definition/english/
viral
[2] La viralit secondo Wikipedia
http://en.wikipedia.org/wiki/Viral
[3] What makes content spread: The anatomy of a post that got over 500,000 likes, 2013
http://blog.bufferapp.com/what-makes-content-go-viral\
-the-anatomy-of-a-post-that-got-over-500000-likes
[4] Riding the Momentum Created by a Cheeky Video, 2013
DAMODIFICARE
[5] Gamication
DAMODIFICARE
[6] Lalgoritmo di Reddit
CAPITOLO 4
[7] ???
DAMODIFICARE
[8] Il ??
DAMODIFICARE
[9] Craig Larman, Applying UML and Patterns, 2nd Edition, Prentice Hall, 2001.
[10] Merialdo Paolo, Dispense del Corso di Sistemi Informativi su Web, Universit di Roma
Tre, A.A. 2010/2011.
17

Potrebbero piacerti anche