PhpServer gestirà le richieste di gSoap e le richieste http dai client.
PushServer invierà notifiche ai client e fungerà da file server.
Ci sono molte macchine server. Ogni PhpServer comunicherà con uno specifico PushServer quando necessario. Ogni PhpServer deve registrarsi a un PushServer lasciando che il PushServer aiuti a inviare notifiche ai client.
Ecco due architetture:
1) Architecure A
Questa architettura eseguirà ciascun PushServer con un PhpServer sulla stessa macchina. Ogni client si registrerà a un PhpServer e al PushServer che è in esecuzione sulla stessa macchina con PhpServer
|Database|
_____|_____
| |
| |
(|PhpServer| + |PushServer|) //a same server machine
\ /
|Client|
2) Architettura B
Questa architettura eseguirà ogni PushServer su una singola macchina. Ogni client si registrerà a un PhpServer e al PushServer che registra il PhpServer.
|Database|
_____|_____
| |
(|PhpServer|) (|PushServer|) //two server machines
\ /
|Client|
Quale architettura è migliore e perché?
[update]
Siamo preoccupati per le prestazioni, l'estensibilità e la flessibilità. In realtà la prima architettura è ciò che attualmente abbiamo e se scegliamo la seconda, dobbiamo modificare il nostro software: PhpServer, PushServer e Client. Pertanto, a meno che la seconda architettura di rete non sia molto migliore (dal punto di vista del bilanciamento del carico o della progettazione di applicazioni di rete), non sceglieremo la seconda.