Vorrei condividere alcune riflessioni sulla modalità di implementazione della chat.
Avendo a disposizione 2 application server e un database server, le 3 soluzioni che mi vengono in mente sono:
1. [Soluzione più semplice] Sviluppare una chat pura jsp+ajax che accede direttamente al db (ossia ogni x secondi dovrà effettuare un'estrazione dei nuovi messaggi e un update di un datetime per notificare il suo stato *online*).
2-3. [Soluzioni più complesse] Sviluppare una chat jsp + ajax + servlet in modo da gestire a livello applicativo alcuni aspetti della chat, quale ad esempio la gestione delle sessioni attive. In questo modo ridurrei tantissimo carico sul db spostandolo a livello applicativo ed evitando inutili interrogazioni sul db.
Disponendo di 2 application server, quest'ultima soluzione può ramificarsi in 2 approcci:
- Installare la servlet su entrambi i server ma reindirizzare tutto il traffico su uno dei due (l'altro si usa come backup)
- Installare la servlet su entrambi i server ma implementare un meccanismo di comunicazione sulle servlet che ne permetta la sincronizzazione
Sarei tentato a realizzare la soluzione più semplice ma vorrei un'opinione anche vostra, considerando che si stima un numero di utenti di circa 200 contemporaneamente connessi e che tutte le comunicazioni avverranno solo tra 2 persone (ossia non saranno disponibili room multiutente).
Qualsiasi suggerimento è ben accetto. Grazie in anticipo