Tecnologia usada

Tecnologia web

Social Shared è sviluppato in PHP 5.3, con approssimativamente 50.000 linee di codice PHP, un linguaggio che usiamo per elaborare i front-end ed in concomitanza con REDIS per la memoria della cache del browser, gli status degli utenti, i workers ed altre informazioni volatili.

Per l’eleborazione intensiva (come il notificare a centinaia di utenti un nuovo post o invitarne altrettanti a un evento), usiamo RESQUE, un sistema di coda lavori che ci permette di portare avanti attività che non richiedono immediatezza in maniera non simultanea, facendo in modo che l’interazione dell’utente non sia rallentata dalla complessità dell’attività stessa.

Attualmente usiamo questo sistema per ridimensionare le immagini degli utenti, le notifiche dei messaggi di gruppo e gli eventi, gli inviti agli eventi ma anche la consegna di mail e le pubblicazioni sui social network.

la rete è integrata con Facebook e Twitter ed è quindi possibile pubblicare i messaggi su tutte le reti sociali nello stesso momento, se viene richiesto. Questa operazione non avviene in maniera simultanea dato che possono volverci fino a 10 secondi per l’invio a Twitter o Facebook.

Per quanto riguarda la memoria di massa persistente usiamo una base di dati MYSQL composta da 65 tabelle di cui abbiamo ottimizzato la consultazione per fare in modo che sia quanto più rapida e leggera.

I messaggi delle bacheche vengono caricati mano a mano che l’utente scrolla la pagina, con una tecnica chiamata Lazy Loading, che carica solo i messaggi mano a mano che l’utente li vede. I commenti ed il caricamento delle immagini sono realizzati via Ajax per evitare caricamenti innecessari e, allo stesso tempo, migliorare la velocità.

La htmlizzazione della pagina è realizzata con Bootstrap per mantenere un layout coerente ed elegante.

Il caricamento delle foto è realizzato con HTML5 che permette il caricamento multiplo di file in parallelo.

Per la versione mobile usiamo il framework di sviluppo di JQuery Mobile per garantire la compatibilità con il maggior numero di dispositivi possibile.



Hosting

Per l'hosting di tutte le nostre reti ci affidiamo al cloud di Amazon, usando EC2 (Elastic Compute Cloud), che permette di scalare automaticamente il numero di server in funzione a diversi parametri come il carico di sistema o il traffico, ma dà anche la possibilità di equilibrare le richieste tra i front-end disponibili, il tutto in modo automatico.