Ciao, come indicazioni e forse aiuto vorrei darti queste:
Per quanto riguarda la progettazione Ajax in ambiente J2EE potresti adottare il framework
Javaserver Faces con Icefaces, quest'ultimo in particolare fornisce funzionalità ajax avanzate
come Ajax Push e Push Server di cui ti scrivo una piccola introduzione tratta dal sito
(
www.icefaces.or):
Ajax Push è una rivoluzionaria funzionalità del framwork ICEfaces che permette l'aggiornamento dell'interfaccia utente nel browser a seguito di eventi che avvengono sul server. Ogni applicazione web in cui gli utenti devono consultare dati dinamici può beneficiarne, visto che Ajax Push permette di sincronizzare i dati con aggionamenti istantanei e dinamici. Quando vari utenti stanno interagendo con gli stessi dati, Ajax Push permette funzionalità di collaborazione in tempo reale, visto che ciascuno può istantaneamente essere informato delle azioni degli altri utenti. Ajax Push è una funzionalità base del framework ICEfaces, disponibile dalla prima versione. Il framework gestisce tutte le difficoltà del meccanismo di push, e lo sviluppatore lavora semplicemente con Java. Questo permette al programmatore di concentrarsi sugli aspetti creativi dello sviluppo in stile Push.
Per la parte database credo che sistemi come facebook non facciano uso di database relazionali ma di diverso tipo, ad esempio proprio facebook dovrebbe essere basato su Apache Cassandra (
http://wiki.apache.org/cassandra/ArticlesAndPresentations)