L?architettura client-server
I sistemi
client-server sono concepiti come l?insieme di due parti logiche, il client, in altre parole l?applicazione utilizzatrice del servizio e il server, in pratica la parte che fornisce tale servizio.
Per un sistema client-server è fondamentale la scelta delle architetture appropriate, dato che le diverse parti dell?applicazione sono eseguite su più macchine. In sostanza la separazione delle funzionalità tra client e server facilita l?elaborazione d?applicazioni in vari componenti con ubicazioni ben definite.
Il client e il server La logica del sistema è basata su una suddivisione in componenti indipendenti:
- Componente di risposta (server) che offre servizi;
- Componente di richiesta (client) che richiede i servizi al server.
In generale i sistemi client-server presentano alcune funzionalità che fanno solitamente parte dell?una o dell?altra componente. Tale suddivisione può essere semplificata come segue:
Operazioni del client:
- Presentazione, che consiste nella visualizzazione delle informazioni richieste.
- Interazione, intesa nei confronti dell?utente, tale da permettere di eseguire operazioni.
- Richieste verso il server, in modo da permettere la richiesta al server di eseguire operazioni.
- Logica dell?applicazione, che consiste in tutti i meccanismi per non commettere errori nell?effettuazione delle richieste.
Operazioni del server:
- Query, intesi sulle risorse, vale a dire saper fornire risposte alle richieste.
- Calcoli, tali da riuscire a risolvere i problemi di cui l?utente ha chiesto la risoluzione.
- Gestione dei dati, per permettere la memorizzazione delle informazioni importanti del sistema.
- Comunicazioni, verso l?utente, tali da permettere al server di fornire una risposta al client.
Il problema dell'architettura client-server
Il problema fondamentale nella suddivisione dei compiti tra client e server è che sovraccaricando il server di lavoro, le risposte al client saranno più lente e quindi porteranno ad un degrado del sistema.Per questo la suddivisione è un lavoro delicato e importante e va fatta pensando che le risorse del server sono limitate e sono suddivise tra più client, ma se questi sono in numero eccessivo si può provocare un calo di prestazioni fino ad arrivare alla saturazione del server.