Questo è un argomento Enorme .
Tuttavia, ci sono alcune cose che puoi fare per renderlo gestibile.
Il server ha stato condiviso. Ciò significa più lettori e più scrittori. Hai molte, molte opzioni per gestirlo.
-
Un database. La maggior parte dei database include blocchi per impedire le scritture simultanee.
-
Blocco. Puoi utilizzare il blocco a livello di sistema operativo sul file system per consentire le scritture simultanee.
-
Serializzazione delle transazioni. È possibile accodare le richieste di aggiornamento in qualche tipo di serializzatore di transazione. Spesso, l'accodamento riguarda il blocco di un file, ma alcune code di messaggi non riguardano i blocchi del file system.
Una volta che hai un modo per scrivere lo stato condiviso, ora hai bisogno di un modo per gestire più connessioni client simultanee. È possibile utilizzare processi o thread o una combinazione dei due.
Spesso si desidera avere l'autenticazione (chi è un utente). Spesso si desidera avere l'autorizzazione (ciò che l'utente è autorizzato a fare). Ci sono diversi modi per gestirlo. OS lo fanno. Database lo fanno. Oppure puoi utilizzare un server LDAP per conservare queste informazioni.
Potresti voler avere una "sessione" in cui un utente si connette, è autenticato e rimane connesso fino alla fine della sessione. TCP / IP può aiutarti a gestirlo.
Una delle grandi cose che sono successe negli ultimi anni è l'evoluzione di un'architettura standardizzata per applicazioni multi-client. A volte viene chiamato Il World Wide Web.
Spesso funziona così.
-
Hai un database. MySQL o qualcosa di simile. Gestisce la persistenza, il blocco, più autori e più lettori per te.
-
Hai un server web. Apache HTTPD o qualcosa di simile. Questo gestisce più connessioni client simultanee per te.
-
Hai una struttura per applicazioni web. Questo può gestire l'autenticazione, l'autorizzazione e la gestione delle sessioni per te, evitando di dover scrivere tutto ciò.
-
Scrivi la tua applicazione come transazioni basate sul web utilizzando il framework web e i vari server.