Design and development of an Online Social Network crawler

Federico Feroldi
Federico FeroldiDigital Transformation leadership & CTO
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
1 of 86

Recommended

From Startup to Exit in 18 months by
From Startup to Exit in 18 monthsFrom Startup to Exit in 18 months
From Startup to Exit in 18 monthsFederico Feroldi
1.3K views9 slides
Innovate, optimize and profit with cloud computing by
Innovate, optimize and profit with cloud computingInnovate, optimize and profit with cloud computing
Innovate, optimize and profit with cloud computingFederico Feroldi
521 views32 slides
Scaling web application in the Cloud by
Scaling web application in the CloudScaling web application in the Cloud
Scaling web application in the CloudFederico Feroldi
2.8K views34 slides
Cloudify your applications with Amazon Web Services by
Cloudify your applications with Amazon Web ServicesCloudify your applications with Amazon Web Services
Cloudify your applications with Amazon Web ServicesFederico Feroldi
2.3K views134 slides
10分でわかる marathon-lb by
10分でわかる marathon-lb10分でわかる marathon-lb
10分でわかる marathon-lbShuji Yamada
2.5K views21 slides
コンテナのユースケース考察 by
コンテナのユースケース考察コンテナのユースケース考察
コンテナのユースケース考察Shuji Yamada
3.3K views27 slides

More Related Content

Similar to Design and development of an Online Social Network crawler

ArcGIS Utility Network Management by
ArcGIS Utility Network ManagementArcGIS Utility Network Management
ArcGIS Utility Network ManagementServizi a rete
500 views15 slides
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server by
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
48 views21 slides
Azure Day Rome Reloaded 2019 - Azure Application Insights Overview by
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
21 views14 slides
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control by
[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
954 views39 slides
Designing with microservices - Daniele Mondello by
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
338 views39 slides
Pensiero Analogico e Microservizi by
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
786 views28 slides

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

ArcGIS Utility Network Management by Servizi a rete
ArcGIS Utility Network ManagementArcGIS Utility Network Management
ArcGIS Utility Network Management
Servizi a rete500 views
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server by Alessandro Alpi
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
Alessandro Alpi48 views
Azure Day Rome Reloaded 2019 - Azure Application Insights Overview by azuredayit
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
azuredayit21 views
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control by Alessandro Alpi
[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
Alessandro Alpi954 views
Designing with microservices - Daniele Mondello by Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
Daniele Mondello338 views
Pensiero Analogico e Microservizi by Consulthinkspa
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
Consulthinkspa786 views
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti by walk2talk srl
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
walk2talk srl29 views
Application insights - Meet{cast} - Meetup #AperiTech dotNET{podcast} - Marzo... by Roberto Albano
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 Albano57 views
Smau milano 2012 arena social media matteo-collina by Smau
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collina
Smau216 views
L'universo dietro alle App by Matteo Collina
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
Matteo Collina3.7K views
Basi di Dati - A2 - Tecnologia dei sistemi informativi by Majong DevJfu
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Majong DevJfu917 views
Introduzione alla localizzazione web by Qabiria
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
Qabiria581 views
Azure Saturday 2019 - Keep Calm and "Lift&Shift" on Azure by Daniele Scrivano
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
Daniele Scrivano201 views

More from Federico Feroldi

Project IO - TS-Conf 2019 by
Project IO - TS-Conf 2019Project IO - TS-Conf 2019
Project IO - TS-Conf 2019Federico Feroldi
436 views43 slides
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C... by
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
494 views33 slides
From 1 to infinity: how to scale your tech organization, build a great cultur... by
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
573 views27 slides
Crawling the web for fun and profit by
Crawling the web for fun and profitCrawling the web for fun and profit
Crawling the web for fun and profitFederico Feroldi
8.5K views23 slides
the Picmix experiment by
the Picmix experimentthe Picmix experiment
the Picmix experimentFederico Feroldi
769 views15 slides
Cloudify - Scalability On Demand by
Cloudify - Scalability On DemandCloudify - Scalability On Demand
Cloudify - Scalability On DemandFederico Feroldi
1.2K views9 slides

More from Federico Feroldi(7)

Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C... by 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...
Federico Feroldi494 views
From 1 to infinity: how to scale your tech organization, build a great cultur... by 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...
Federico Feroldi573 views
Crawling the web for fun and profit by Federico Feroldi
Crawling the web for fun and profitCrawling the web for fun and profit
Crawling the web for fun and profit
Federico Feroldi8.5K views

Design and development of an Online Social Network crawler

Editor's Notes

  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