SlideShare una empresa de Scribd logo
1 de 86
Facoltà di                         Corso di Laurea in
Ingegneria dell’Informazione                           Ingegneria Informatica




           Progettazione e Sviluppo di
          una Piattaforma Software per
         la Raccolta di Informazioni da
               Reti Sociali Online
                             di Feroldi Federico


                          Relatore: Prof. Piero FRATERNALI



                           Anno Accademico 2009 - 2010
INTRODUZIONE
Cos’è una Rete Sociale?
Cos’è una Rete Sociale?



          u
Cos’è una Rete Sociale?

      u
      u    u
       u
Cos’è una Rete Sociale?
               u
      u            u
      u    u
       u
Cos’è una Rete Sociale?
              u
      u    u
      u   uu
       u u
Cos’è una Rete Sociale?
   u u u u u
          u u u u
   u u               u
                u
 u u
      u
    u u
          u    u uuu
   u u
        u uuu
        uu     u
           u u
        u    u u
Cos’è una Rete Sociale?
   u u u u u
           u u u u
   u u
 u u
       u
        150
         u          u   u
      NUMERO MEDIO DI u u
                   u u
    uRELAZIONI SOCIALI
       u
         u uuu
    (NUMERO DI DUNBAR)
   u u
         uu       u
            u   u
         u      u  u
Reti Sociali Online
Reti Sociali Online
Reti Sociali Online
Reti Sociali Online


     400
  NUMERO MEDIO DI
  RELAZIONI SOCIALI
    SU FACEBOOK
Influenza
Influenza
Reputazione
Reputazione
Interessi
Interessi
Filtraggio Sociale: Cascaad
Filtraggio Sociale: Cascaad
Architettura di Cascaad
Architettura di Cascaad
Architettura di Cascaad
        RACCOLTA
Architettura di Cascaad
        RACCOLTA

              relazioni

         ANALISI
Architettura di Cascaad
                        RACCOLTA

                              relazioni
flu
   ss
      o                  ANALISI
          ag
            gr
               eg
                 at
                    o
                              caratteristiche

                         FILTRO
                                   flusso
                                   filtrato
                                                u
Architettura di Cascaad
                        RACCOLTA
                         RACCOLTA

                               relazioni
flu
   ss
      o                   ANALISI
          ag
            gr
               eg
                 at
                    o
                               caratteristiche

                          FILTRO
                                    flusso
                                    filtrato
                                                 u
Raccolta dati: il Web Crawler
Raccolta dati: il Web Crawler

“È un software che analizza i
contenuti di una rete in modo
 metodico e automatizzato.”
                         - Wikipedia
ANALISI
Prototipo Sperimentale
Prototipo Sperimentale

Integrazione?
Prototipo Sperimentale

Integrazione?
Architettura?
Prototipo Sperimentale

Integrazione?
Architettura?
Criticità?
Twitter: Problematiche Emerse
Twitter: Problematiche Emerse

 Request Rate Limitato
Twitter: Problematiche Emerse

 Request Rate Limitato
 Singolo Crawler =
 Bottleneck
Twitter: Problematiche Emerse

 Request Rate Limitato
 Singolo Crawler =
 Bottleneck
 Scalabilità su milioni di
 utenti
IL   PROGETTO
Principi di Progettazione
Principi di Progettazione

Scalabilità
Principi di Progettazione

Scalabilità
Flessibilità
Principi di Progettazione

Scalabilità
Flessibilità
Modularità
Principi di Progettazione

Scalabilità
Flessibilità
Modularità
Estensibilità
Tecnologie
Tecnologie
Tecnologie
Tecnologie
Layer Applicativi
Layer Applicativi




JVM    JVM    JVM
Layer Applicativi




SPRING   SPRING   SPRING


 JVM      JVM      JVM
Layer Applicativi




         MULE ESB


SPRING    SPRING    SPRING


 JVM       JVM       JVM
Layer Applicativi


  CRAWLING FRAMEWORK


         MULE ESB


SPRING    SPRING    SPRING


 JVM       JVM       JVM
Layer Applicativi
TWITTER   FACEBOOK      ...


  CRAWLING FRAMEWORK


          MULE ESB


SPRING     SPRING    SPRING


 JVM        JVM       JVM
Architettura del Framework
Architettura del Framework
crawling job   SPIDER
Architettura del Framework
crawling job   SPIDER

   requests

 SCHEDULER
Architettura del Framework
crawling job      SPIDER

   requests

 SCHEDULER
               requests    DOWNLOADER
Architettura del Framework
crawling job      SPIDER

   requests                 data

 SCHEDULER
               requests    DOWNLOADER
Architettura del Framework
crawling job      SPIDER

   requests                 data

 SCHEDULER
               requests    DOWNLOADER
Architettura del Framework
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
Architettura del Framework
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Modularità
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Scalabilità
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Scalabilità
crawling job      SPIDER
                  SPIDER
                   SPIDER
   requests        results    data

 SCHEDULER
               requests      DOWNLOADER
                             DOWNLOADER
                              DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Flessibilità
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Flessibilità
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Estensibilità
crawling job      SPIDER

   requests        results    data

 SCHEDULER
               requests      DOWNLOADER




                PROCESSOR
                              processed
                                results
Caratteristiche: Estensibilità
crawling job        SPIDER

   requests           results    data
               Duplicate
               Filter
               requests
 SCHEDULER                      DOWNLOADER




                 PROCESSOR
                                 processed
                                   results
Soluzioni Tecniche

Protocollo di Autenticazione
 SPIDER            DOWNLOADER
Soluzioni Tecniche

Deduplicazione a Tempo
SPIDER                             SCHEDULER




Requests Requests Requests Requests Request
  Today   1 Day Ago   2 Days Ago   3 Days Ago   4 Days Ago

   FIFO queue made of Bloom Filters
RISULTATI
Twitter “Followers” Crawler
Twitter “Followers” Crawler
Ruolo del Framework
Ruolo del Framework

       Twitter Specific
            10%




         Generic Framework
                90%




     3 Giorni/Uomo
    Tempo di Sviluppo
Raccolta dati da Twitter




  1 Million Users/Day
  Crawling Rate (single node)
Cloud Deployment

Scheduler         Spider
  Module          Modules
            EC2
Processor         Downloader
  Module          Modules
Running Live
Running Live
Running Live
Sorgenti informative selezionate per livello
 di INFLUENZA, REPUTAZIONE e
  affinità di INTERESSI con il lettore.
Considerazioni Finali
Considerazioni Finali

Open Source = Vantaggio
Considerazioni Finali

Open Source = Vantaggio
Framework = Flessibilità
Considerazioni Finali

Open Source = Vantaggio
Framework = Flessibilità
Aspetti Legali ed Etici
Grazie

Más contenido relacionado

Similar a Design and development of an Online Social Network crawler

ArcGIS Utility Network Management
ArcGIS Utility Network ManagementArcGIS Utility Network Management
ArcGIS Utility Network ManagementServizi a rete
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
 
Azure Day Rome Reloaded 2019 - Azure Application Insights Overview
Azure Day Rome Reloaded 2019 - Azure Application Insights OverviewAzure Day Rome Reloaded 2019 - Azure Application Insights Overview
Azure Day Rome Reloaded 2019 - Azure Application Insights Overviewazuredayit
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTMirko Compagno
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiwalk2talk srl
 
Figure libro "Plasmare il Web"
Figure libro "Plasmare il Web"Figure libro "Plasmare il Web"
Figure libro "Plasmare il Web"Roberto Polillo
 
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...Roberto Albano
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collinaSMAU
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle AppMatteo Collina
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiMajong DevJfu
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on AzureAzure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on AzureDaniele Scrivano
 

Similar a Design and development of an Online Social Network crawler (20)

ArcGIS Utility Network Management
ArcGIS Utility Network ManagementArcGIS Utility Network Management
ArcGIS Utility Network Management
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Azure Day Rome Reloaded 2019 - Azure Application Insights Overview
Azure Day Rome Reloaded 2019 - Azure Application Insights OverviewAzure Day Rome Reloaded 2019 - Azure Application Insights Overview
Azure Day Rome Reloaded 2019 - Azure Application Insights Overview
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
WiStat@Unina
WiStat@UninaWiStat@Unina
WiStat@Unina
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
 
AUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERTAUGMENTED REALITY EXPERT
AUGMENTED REALITY EXPERT
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tuttiCCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
 
Figure libro "Plasmare il Web"
Figure libro "Plasmare il Web"Figure libro "Plasmare il Web"
Figure libro "Plasmare il Web"
 
Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+
 
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo...
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collina
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
 
Web dynpro for abap 02
Web dynpro for abap 02Web dynpro for abap 02
Web dynpro for abap 02
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Presentazionefinale
PresentazionefinalePresentazionefinale
Presentazionefinale
 
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on AzureAzure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure
 

Más de Federico Feroldi

Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Federico Feroldi
 
From 1 to infinity: how to scale your tech organization, build a great cultur...
From 1 to infinity: how to scale your tech organization, build a great cultur...From 1 to infinity: how to scale your tech organization, build a great cultur...
From 1 to infinity: how to scale your tech organization, build a great cultur...Federico Feroldi
 
Crawling the web for fun and profit
Crawling the web for fun and profitCrawling the web for fun and profit
Crawling the web for fun and profitFederico Feroldi
 
Cloudify - Scalability On Demand
Cloudify - Scalability On DemandCloudify - Scalability On Demand
Cloudify - Scalability On DemandFederico Feroldi
 
Federico Feroldi Php In Yahoo
Federico Feroldi Php In YahooFederico Feroldi Php In Yahoo
Federico Feroldi Php In YahooFederico Feroldi
 

Más de Federico Feroldi (7)

Project IO - TS-Conf 2019
Project IO - TS-Conf 2019Project IO - TS-Conf 2019
Project IO - TS-Conf 2019
 
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
 
From 1 to infinity: how to scale your tech organization, build a great cultur...
From 1 to infinity: how to scale your tech organization, build a great cultur...From 1 to infinity: how to scale your tech organization, build a great cultur...
From 1 to infinity: how to scale your tech organization, build a great cultur...
 
Crawling the web for fun and profit
Crawling the web for fun and profitCrawling the web for fun and profit
Crawling the web for fun and profit
 
the Picmix experiment
the Picmix experimentthe Picmix experiment
the Picmix experiment
 
Cloudify - Scalability On Demand
Cloudify - Scalability On DemandCloudify - Scalability On Demand
Cloudify - Scalability On Demand
 
Federico Feroldi Php In Yahoo
Federico Feroldi Php In YahooFederico Feroldi Php In Yahoo
Federico Feroldi Php In Yahoo
 

Design and development of an Online Social Network crawler

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n