Sistema client/server: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichette: Annullato Modifica visuale Modifica da mobile Modifica da web per mobile
Livello di servizio: code: esempio di coda durante il click day
 
(26 versioni intermedie di 20 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]]]]
<span lang="it" dir="ltr">In</span> [[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''' ({{Lett|cliente-servente}}) 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]].

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 ==
=== 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 localegeografica]] o [[WideRete area networklocale|geograficalocale]], ed al quale richiede uno o più servizi, utilizzando uno o più [[protocollo di rete|protocolli di rete]] è un esempio di ''client'' hardware. Un programma di [[posta elettronica]] è un esempio di ''client'' software. Sono sempre di più i software, come il [[web]], l'[[e-mail]], i [[database]], che sono divisi in una parte ''client'' (residente ed in esecuzione sul [[personal computer|pc]] ''client'') e una parte ''server'' (residente ed in esecuzione sul ''server'').<ref>{{Cita web|url=http://java.sun.com/developer/Books/jdbc/ch07.pdf|titolo=Wayback Machine|sito=web.archive.org|accesso=2022-04-04|dataarchivio=6 aprile 2011|urlarchivio=https://web.archive.org/web/20110406121920/http://java.sun.com/developer/Books/jdbc/ch07.pdf|urlmorto=sì}}</ref>
 
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 iil protocollo [[Simple Mail Transfer Protocol|SMTP]] e [[Post Office Protocol|POP]] o [[Internet Message Access Protocol|IMAP]]; il ''client'' per la consultazione o la modifica del database (spesso costituito da [[Libreria (software)|librerie]] software utilizzate da un'[[applicazione (informatica)|applicazione]]) parla con il [[DBMS]], che gestisce il database e risponde alle interrogazioni del ''client''.
 
=== 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.
 
Line 23 ⟶ 26:
{{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).
 
Line 31 ⟶ 35:
=== 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 44 ⟶ 49:
=== 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 49 ⟶ 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 63 ⟶ 70:
=== 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 91 ⟶ 99:
 
==== Modello OSI e Modello TCP/IP====
{{vedi anche|Open Systems Interconnection|Modello OSI|Suite di protocolli Internet}}
 
L{{'}}''International Organisation for Standardisation'' ([[Organizzazione internazionale per la normazione|ISO]]) nel [[1979]] ha rettificato lo [[standard (informatica)|standard]] ''[[Open Systems Interconnection]]'' (OSI), con l'intenzione di creare un [[Modello di riferimento OSI|modello di riferimento]] per le telecomunicazioni da usare nelle reti di tutto il mondo. All'atto pratico però, lo [[standard de facto]] che viene comunemente usato nella maggior parte delle reti, è il [[TCP/IP]], definito nella [[RFC 1155]] da parte dell'[[IETF]]. Le differenze fondamentali tra i due standard sono semplici: il primo è stato definito a tavolino da un'organizzazione super partes, mentre il secondo è opera di chi costruì materialmente le prime reti, sviluppandolo sul campo. Inoltre, lo standard ISO/OSI assegna un determinato compito ad ogni livello, mentre il [[TCP/IP]] è più "elastico" e permette di sviluppare protocolli che svolgono più di un compito-base.
 
=== Sistema client/server in un sistema locale ===
Line 110 ⟶ 119:
* [[Server]]
* [[Peer-to-peer]]
* [[Coda (informatica)|Sistema a coda]]
* [[Cloud Service Application]]
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|client-server|client-server}}
 
{{Controllo di autorità}}