Sto cercando di cercare un framework o una libreria o anche delle tecniche per gestire le comunicazioni client / server N-Tier.
Sto ridimensionando il mio software applicativo e sto vedendo questa comunicazione diventare sempre più ingombrante. Ho un server delle applicazioni, ma ho anche dei server centrali per ridimensionare la capacità di elaborazione e scambio dei dati dell'interfaccia utente dei client connessi.
Nella mia architettura ho un server, che può avere N Client Engine, che possono avere N client.
In particolare, sto riscontrando problemi relativi allo scenario seguente. Userò l'autenticazione come esempio (anche se è semplice ma raggiunge il punto).
Un client (client Web angolare) accede tramite un endpoint websocket di un server Web Jetty. Il messaggio viene inoltrato alla coda del motore Client. Il motore client, quando elabora il messaggio, crea una richiesta per il server e lo accoda. Il server, quando elabora quel messaggio, esegue l'autenticazione. Ora la risposta deve tornare indietro nello stack. Il server deve accodare un messaggio di risposta al motore client (a destra), quindi quando il modulo client elabora quel messaggio, deve inviare un messaggio alla connessione client (a destra) tramite l'endpoint websocket.
Ora questo è certamente possibile e l'ho fatto semplicemente mappando le informazioni giuste nel messaggio e persistendo in ogni messaggio finché non ritorna al client.
Tuttavia, questo mi sembra abbastanza schifoso per me. Ho pensato di non essere la prima persona ad avere questo problema. Tuttavia, non credo di aver capito come viene chiamato questo problema perché i miei termini di ricerca: Programmazione asincrona, modello di comunicazione Client Server, modello di comunicazione Client Server Server, modello di comunicazione N-Tier, ecc. Non hanno fornito ciò che sto cercando.
Esiste un nome specifico per questo problema?
Volevo fornire maggiori dettagli sul sistema N-Tier che ho.
- Livello 1 - Server database (persistenza dati) 1 istanza
- Livello 2 - ApplicationServer (soluzione in memoria) 1 istanza
- Livello 3 - Server Delta (inoltro delta a N Client Engine) N istanze
- Tier 4 - Client Engine (sincronizza i dati, gestione delle sessioni, transazioni di sola lettura) Istanze M
- Livello 5 - Istanze Web Server (Websocket Server)
- Livello 6 - Client (Webapp angolare)