Sistema client/server: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Livello di servizio: code: esempio di coda durante il click day |
|||
(41 versioni intermedie di 30 utenti non mostrate) | |||
Riga 1:
{{F|sistemi di rete|maggio 2012}}
[[File:Client-server-model.svg|thumb|Schematizzazione della comunicazione tra client e server attraverso [[Internet]]]]
In [[informatica]] il termine '''sistema client-server''' (letteralmente ''cliente-serviente'') indica un'[[architettura di rete]] nella quale genericamente un [[computer]] ''[[client]]'' o [[terminale (informatica)|terminale]] si [[connessione (informatica)|connette]] ad un ''[[server]]'' per la fruizione di un certo servizio, quale ad esempio la condivisione di una certa [[risorsa informatica|risorsa]] [[hardware]]/[[software]] con altri client, appoggiandosi alla sottostante architettura [[protocollo di rete|protocollare]].▼
▲In [[informatica]] il termine '''sistema client-server''' (
Più semplicemente, i sistemi ''client/server'' sono un'evoluzione dei sistemi basati sulla condivisione semplice delle [[Risorsa informatica|risorse]]: la presenza di un ''[[server]]'' permette ad un certo numero di ''client'' di condividerne le risorse, lasciando che sia il ''server'' a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi [[sistema informatico|sistemi informatici]].<ref>{{cita web|lingua=en|url=http://www.linfo.org/client_server.html|titolo=Client/Server Definition|editore=linfo.org|data=26 novembre 2005|accesso=13 maggio 2012}}</ref><ref>{{cita web|lingua=en|url=http://compnetworking.about.com/od/basicnetworkingfaqs/a/client-server.htm|titolo=Introduction to Client Server Networks|editore=about.com|autore=Bradley Mitchell|accesso=13 maggio 2012}}</ref> Le [[rete locale|reti locali]] aziendali (LAN), la rete [[Internet]], i sistemi informatici e i [[sistema operativo|sistemi operativi]] sono organizzati sotto forma di una tipica architettura client-server per la fruizione dei rispettivi servizi.▼
▲Più semplicemente, i sistemi ''client/server'' sono un'evoluzione dei sistemi basati sulla condivisione semplice delle [[Risorsa informatica|risorse]]: la presenza di un ''[[server]]'' permette ad un certo numero di ''client'' di condividerne le risorse, lasciando che sia il ''server'' a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi [[sistema informatico|sistemi informatici]].<ref>{{cita web|lingua=en|url=http://www.linfo.org/client_server.html|titolo=Client/Server Definition|editore=linfo.org|data=26 novembre 2005|accesso=13 maggio 2012}}</ref><ref>{{cita web|lingua=en|url=http://compnetworking.about.com/od/basicnetworkingfaqs/a/client-server.htm|titolo=Introduction to Client Server Networks|editore=about.com|autore=Bradley Mitchell|accesso=13 maggio 2012|dataarchivio=25 aprile 2012|urlarchivio=https://web.archive.org/web/20120425072256/http://compnetworking.about.com/od/basicnetworkingfaqs/a/client-server.htm|urlmorto=sì}}</ref> Le [[rete locale|reti locali]] aziendali (LAN), la rete [[Internet]], i sistemi informatici e i [[sistema operativo|sistemi operativi]] sono organizzati sotto forma di una tipica architettura client-server per la fruizione dei rispettivi servizi.
==Descrizione==▼
▲== Descrizione ==
=== Client ===
{{vedi anche|Client}}
Il [[software]] ''client'' in genere è di limitata complessità, limitandosi normalmente ad operare come interfaccia verso il ''server''. In generale nel campo informatico il termine ''client'' indica una componente che accede ai servizi o alle risorse di un'altra componente, detta ''server''. In questo contesto si può quindi parlare di ''client'' riferendosi all'[[hardware]] o al [[software]].
Un computer collegato ad un ''server'' tramite [[rete
Il termine ''client'' indica anche il software usato sul computer ''client'' per accedere alle funzionalità offerte dal ''server''. Ad esempio, nel web il software ''client'' è il ''[[web browser]]'', e parla con un ''server'' web attraverso il protocollo [[Hypertext Transfer Protocol|HTTP]]; per l'e-mail il ''client'' è detto in gergo ''mail user agent'' o [[Client di posta elettronica|MUA]] (ad esempio, [[Outlook]], [[Mozilla Thunderbird]], [[Eudora]], ...), e parla con il ''server'' (''Mail Transfer Agent'' o [[Mail server|MTA]]) attraverso
=== Server ===
{{vedi anche|Server}}
Il software ''server'', oltre alla gestione logica del sistema, deve implementare tutte le tecniche di gestione degli accessi, allocazione e rilascio delle risorse, condivisione e [[sicurezza informatica|sicurezza]] dei dati o delle risorse.
Ad esempio un ''server'' di posta elettronica è paragonabile ad un qualunque ufficio postale. Gli utilizzatori per accedere via ''client'' alla loro cassetta di posta elettronica devono essere stati autorizzati. In modo analogo un utente deve possedere la chiave della cassetta situata presso un ufficio postale dalla quale vuole prelevare la corrispondenza.
===
{{vedi anche|Architettura multitier}}
[[File:Client-server model.svg|thumb|Schematizzazione della comunicazione tra client e server]]
Quando un ''computer client'' si connette direttamente ad un sistema di ''database'' o a una ''[[server application]]'' standard, questa viene chiamata '''2-tier architecture''' (architettura a 2 livelli).
Recentemente, è più usuale per ''computer'' ''[[client]]'', chiamati ''[[thin client]]'' che non incorporano ''[[business logic]]'', ma solo elementi di interfaccia, connettersi
In generale architetture ad ''n'' livelli possono impiegare un certo numero di servizi distinti, comprese relazioni transitive tra ''application server'' che implementano differenti funzioni di ''business logic'', ognuna delle quali può impiegare o meno un sistema di database condiviso o distinto.
=== Collegamento ===
{{vedi anche|Commutazione di pacchetto}}
I ''client'' ed il ''server'' sono in collegamento tramite un [[Protocollo di rete|protocollo]] di comunicazione attraverso una [[rete di telecomunicazioni|rete di comunicazione]]. Il protocollo può essere in chiaro o in certi casi [[crittografia|crittografato]].
Line 42 ⟶ 48:
=== Livello di servizio: code ===
{{vedi anche|Teoria delle code}}
Quando troppi client accedono ad un servizio, può succedere che la [[Coda (informatica)|coda]] di attesa diventi inaccettabile. In questo caso si parla di sovraffollamento. Il gestore deve prendere delle misure per cadenzare le richieste o per aumentare le risorse disponibili.
Line 47 ⟶ 55:
La coda di richieste generati dai clienti può essere gonfiata artificialmente allo scopo di negare il servizio ai clienti che autenticamente lo richiedono. Questo succede nel caso di un attacco informatico di tipo ''[[Denial of Service]]'' (DOS) o Distributed Denial of Service (DDOS). In questi attacchi, il nemico crea, assolda o manipola in maniera irregolare un alto numero di client, a cui comanda una cadenza di richieste molto superiore a quello previsto dal servizio sotto attacco.
Il problema della gestione di una lunga coda di client si verifica anche in assenza di un attacco informatico vero e proprio, ad esempio, quando troppi utenti si collegano contemporaneamente con diversi browser alla stessa pagina web (cioè allo stesso server web). Questo si verifica quasi sempre, ad esempio, nei cosiddetti ''click day'', cioè quando una Pubblica Amministrazione offre un servizio ad un numero limitati di utenti a partire da un giorno e un orario prestabilito.
=== Esempi ===
Esempi di sistemi ''client/server'':
* [[Web server]]: per la gestione dell'interazione via web tra ''server'' e ''client''.
* [[File server]]: per la condivisione dei [[file]];
Line 58 ⟶ 67:
* [[Print server]]: per la condivisione delle stampanti;
== Implementazioni ==
=== Architettura di rete a livelli ===
{{vedi anche|Architettura di rete}}
Ciascun protocollo regola normalmente solo una parte degli aspetti di una comunicazione. I diversi protocolli sono organizzati con un sistema o [[architettura di rete]] detto "a livelli" dove in ciascun livello viene usato uno specifico protocollo.
Line 67 ⟶ 77:
I vari livelli sono organizzati in pile di protocolli (''stack protocollare''). Le pile di protocolli sono un modo flessibile per combinare componenti per realizzare un servizio.
Un esempio reale di
La struttura serve ad adempiere ad alcuni compiti:
Line 86 ⟶ 96:
Non è detto che due macchine che comunicano usino la stessa pila di protocolli. Ad esempio, se vi connettete ad [[Internet]] attraverso un [[modem]] voi appoggiate il livello di rete IP su una connessione PPP, mentre il ''server'' a cui vi collegate probabilmente appoggia la rete IP su una connessione [[Ethernet]].
In una rete a pacchetto ciascun livello della "pila protocollare" aggiunge ai pacchetti
==== Modello OSI e Modello TCP/IP====
{{vedi anche
L{{'}}''International Organisation for Standardisation'' ([[Organizzazione internazionale per la normazione|ISO]]) nel [[1979]] ha rettificato lo [[standard (informatica)|standard]] ''
===
Quasi tutti i [[sistemi operativi]] utilizzano, per il funzionamento dei vari [[processo (informatica)|processi]], dei meccanismi basati sul modello client-server. Lo stesso [[kernel]] si comporta come server quando gestisce le chiamate alle [[chiamata di sistema|primitive di sistema]] da parte dei processi in esecuzione.
Più in generale in un sistema operativo, per alcuni tipi di servizi, sono espressamente previsti dei '''processi server''', gli unici in grado di eseguire una certa operazione. Spesso questi processi hanno accesso esclusivo
Ad esempio, nei sistemi [[Windows]] è presente uno [[spooler]], unico processo in tutto il sistema a poter utilizzare la [[stampante]]. Per poter stampare, un processo non deve interfacciarsi con il driver della stampante (ed eseguire la sequenza del [[driver]] virtualizzato ''acquisizione-uso-rilascio'') ma deve inviare i propri dati, attraverso i servizi offerti dal sistema, al processo spooler, il quale, tra l'altro, effettua lo [[scheduling]] dei documenti da stampare. Una volta inviati i dati allo spooler, il processo saprà non che la stampa è stata eseguita, ma che lo sarà certamente (a meno di intoppi). Avendo accesso esclusivo a tutte le stampanti di sistema, il driver della stampante non prevede procedure di acquisizione e rilascio.
Line 102 ⟶ 113:
<references />
== Voci correlate ==
* [[Dominio (informatica)]]
* [[Rete di computer]]
Line 108 ⟶ 119:
* [[Server]]
* [[Peer-to-peer]]
* [[Coda (informatica)
== Altri progetti ==
{{interprogetto|preposizione=sul}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|client-server|client-server}}
{{Controllo di autorità}}
|