Un server è un computer o un sistema che fornisce risorse, dati, servizi o programmi ad altri computer, detti client, attraverso una rete. In teoria, ogni volta che i computer condividono risorse con i computer client sono considerati server. Esistono molti tipi di server, tra cui server web, server di posta e server virtuali.
Un singolo sistema può fornire risorse e utilizzarle contemporaneamente da un altro sistema. Ciò significa che un dispositivo può essere sia un server che un client allo stesso tempo.
Alcuni dei primi server erano computer mainframe o minicomputer. I minicomputer erano molto più piccoli dei computer mainframe, da cui il nome. Tuttavia, con il progredire della tecnologia, hanno finito per diventare molto più grandi dei computer desktop, rendendo il termine microcomputer un po' farsesco.
Inizialmente, tali server erano collegati a client noti come terminali che non eseguivano alcuna operazione di calcolo. Questi terminali, detti "terminali muti", servivano semplicemente ad accettare input tramite una tastiera o un lettore di schede e a restituire i risultati dei calcoli a uno schermo o a una stampante. Il calcolo vero e proprio veniva eseguito sul server.
In seguito, i server erano spesso singoli e potenti computer collegati in rete a una serie di computer client meno potenti. Questa architettura di rete viene spesso definita modello client-server, in cui sia il computer client che il server possiedono potenza di calcolo, ma alcuni compiti sono delegati ai server. Nei modelli informatici precedenti, come il modello mainframe-terminal, il mainframe fungeva da server, anche se non veniva chiamato così.
Con l'evoluzione della tecnologia, anche la definizione di server si è evoluta. Al giorno d'oggi, un server può essere nient'altro che un software in esecuzione su uno o più dispositivi informatici fisici. Tali server sono spesso definiti server virtuali. In origine, i server virtuali venivano utilizzati per aumentare il numero di funzioni server che un singolo server hardware poteva svolgere. Oggi, i server virtuali sono spesso gestiti da terzi su hardware attraverso Internet, in un sistema chiamato cloud computing.
Un server può essere progettato per svolgere un singolo compito, come ad esempio un server di posta elettronica, che accetta e archivia le e-mail per poi fornirle a un client richiedente. I server possono anche svolgere diverse attività, come un server di file e stampa, che archivia i file e accetta i lavori di stampa dai client per poi inviarli a una stampante collegata alla rete.
Gli avvisi personalizzati e la visualizzazione dei dati consentono di identificare e prevenire rapidamente i problemi di salute e di prestazioni della rete.
Per funzionare come server, un dispositivo deve essere configurato per ascoltare le richieste dei client su una connessione di rete. Questa funzionalità può far parte del sistema operativo come applicazione installata, ruolo o una combinazione dei due.
Ad esempio, il sistema operativo Windows Server di Microsoft fornisce la funzionalità di ascolto e risposta alle richieste dei client. Inoltre, i ruoli o i servizi installati aumentano i tipi di richieste client a cui il server può rispondere. In un altro esempio, un server Web Apache risponde alle richieste dei browser Internet tramite un'applicazione aggiuntiva, Apache, installata su un sistema operativo.
Quando un client richiede dati o funzionalità a un server, invia una richiesta in rete. Il server riceve la richiesta e risponde con le informazioni appropriate. Questo è il modello di richiesta e risposta della rete client-server, noto anche come modello di chiamata e risposta.
Un server spesso esegue numerose attività aggiuntive nell'ambito di una singola richiesta e risposta, tra cui la verifica dell'identità del richiedente, la garanzia che il client abbia il permesso di accedere ai dati o alle risorse richieste e la corretta formattazione o restituzione della risposta richiesta nel modo previsto.
Notifiche in tempo reale significano una risoluzione più rapida dei problemi, in modo da poter intervenire prima che si verifichino problemi più gravi.
Esistono molti tipi di server che svolgono funzioni diverse. Molte reti contengono uno o più tipi di server comuni:
I file server memorizzano e distribuiscono i file. Più client o utenti possono condividere i file archiviati su un server. Inoltre, l'archiviazione centralizzata dei file offre soluzioni di backup o di tolleranza agli errori più semplici rispetto al tentativo di garantire la sicurezza e l'integrità dei file su ogni dispositivo dell'organizzazione. L'hardware del file server può essere progettato per massimizzare le velocità di lettura e scrittura e migliorare le prestazioni.
I server di stampa consentono di gestire e distribuire le funzionalità di stampa. Invece di collegare una stampante a ogni postazione di lavoro, un singolo server di stampa può rispondere alle richieste di stampa di numerosi client. Oggi, alcune stampanti più grandi e di fascia alta sono dotate di un proprio server di stampa integrato, che elimina la necessità di un server di stampa aggiuntivo basato su computer. Anche questo server di stampa interno funziona rispondendo alle richieste di stampa di un client.
I server di applicazioni eseguono le applicazioni al posto dei computer client che le eseguono localmente. I server di applicazioni spesso eseguono applicazioni ad alta intensità di risorse che vengono condivise da un gran numero di utenti. In questo modo si elimina la necessità che ogni client abbia risorse sufficienti per eseguire le applicazioni. IT elimina anche la necessità di installare e mantenere il software su molti computer anziché su uno solo.
I server DNS (Domain Name System) sono server di applicazione che forniscono la risoluzione dei nomi ai computer client convertendo i nomi facilmente comprensibili dall'uomo in indirizzi IP leggibili dalla macchina. Il sistema DNS è un database ampiamente distribuito di nomi e altri server DNS, ognuno dei quali può essere utilizzato per richiedere il nome di un computer altrimenti sconosciuto. Quando un client ha bisogno dell'indirizzo di un sistema, invia una richiesta DNS con il nome della risorsa desiderata a un server DNS. Il server DNS risponde con l'indirizzo IP necessario dalla sua tabella dei nomi.
I server di posta sono un tipo di server di applicazione molto comune. I server di posta ricevono le e-mail inviate a un utente e le conservano fino a quando non vengono richieste da un client per conto dell'utente stesso. La presenza di un server di posta elettronica consente a un singolo computer di essere sempre configurato e collegato alla rete. IT è quindi pronta a inviare e ricevere messaggi, invece di richiedere che ogni computer client abbia il proprio sottosistema di posta elettronica costantemente in funzione.
Uno dei tipi di server più diffusi sul mercato odierno è il server web. Un server Web è un tipo speciale di server di applicazioni che ospita programmi e dati richiesti dagli utenti attraverso Internet o una rete intranet. I server Web rispondono alle richieste di pagine Web o di altri servizi basati sul Web provenienti dai browser in esecuzione sui computer client. I server web più comuni sono i server Apache, i server Microsoft Internet Information Services (IIS) e i server Nginx.
La quantità di dati utilizzati da aziende, utenti e altri servizi è impressionante. Molti di questi dati sono archiviati in database. I database devono essere accessibili a più client in qualsiasi momento e possono richiedere quantità straordinarie di spazio su disco. Entrambe le esigenze si prestano bene alla collocazione dei database sui server. I server di database eseguono applicazioni di database e rispondono alle numerose richieste dei client. Le applicazioni di database server più comuni sono Oracle, Microsoft SQL Server, DB2 e Informix.
I server virtuali stanno conquistando il mondo dei server. A differenza dei server tradizionali, che sono installati come sistema operativo sull'hardware della macchina, i server virtuali esistono solo come definiti all'interno di un software specializzato chiamato hypervisor. Ogni hypervisor può eseguire centinaia o addirittura migliaia di server virtuali contemporaneamente. L'hypervisor presenta al server l'hardware virtuale come se fosse un vero hardware fisico. Il server virtuale utilizza l'hardware virtuale come di consueto, mentre l'hypervisor trasferisce le esigenze effettive di calcolo e di archiviazione sull'hardware reale sottostante, che viene condiviso da tutti gli altri server virtuali.
Un server proxy funge da intermediario tra un client e un server. Spesso utilizzato per isolare i client o i server per motivi di sicurezza, un server proxy riceve la richiesta dal client. Invece di rispondere al client, passa la richiesta a un altro server o processo. Il server proxy riceve la risposta dal secondo server e poi risponde al client originale come se rispondesse da solo. In questo modo, né il client né il server rispondente devono connettersi direttamente l'uno all'altro.
Alcuni server esistono per monitorare o gestire altri sistemi e client. Esistono molti tipi di server di monitoraggio. Alcuni ascoltano la rete e ricevono ogni richiesta del client e ogni risposta del server, mentre altri non richiedono né rispondono ai dati. In questo modo, il server di monitoraggio può monitorare tutto il traffico sulla rete, nonché le richieste e le risposte di client e server, senza interferire con le operazioni. Un server di monitoraggio risponde alle richieste dei client di monitoraggio, come quelli gestiti dagli amministratori di rete che controllano lo stato di salute della rete.
Il concetto di server è vecchio quasi quanto la rete stessa. Dopo tutto, lo scopo di una rete è quello di consentire a un computer di parlare con un altro computer e distribuire lavoro o risorse. Da allora l'informatica si è evoluta, dando vita a diversi tipi di strutture e hardware per i server.
Si può dire che i server originali, i computer mainframe e, più tardi, i minicomputer, gestivano quasi tutte le attività informatiche, tranne l'interazione con l'utente attraverso lo schermo e la tastiera, che era affidata al sistema client.
La successiva grande ondata di server comprendeva i server basati su computer. Per molti aspetti, questi server non erano altro che computer desktop più grandi e potenti. Questi server erano generalmente più costosi e disponevano di molta più memoria e spazio su disco rispetto alla maggior parte dei computer client. Ogni server era comunque un'unità autonoma con scheda madre, processore, memoria, unità disco e alimentatore propri. I server di questo tipo erano spesso immagazzinati in stanze climatizzate, chiamate server room, e in seguito furono imbullonati in rack per migliorarne l'archiviazione e l'accessibilità.
L'hardware dei server informatici originali era di grandi dimensioni e veniva immagazzinato in rack che potevano contenere centinaia di chili. Nel corso del tempo, tuttavia, i mezzi più veloci per collegare l'hardware hanno portato all'estrazione di parti del server da un unico dispositivo autonomo. Grazie alla rimozione dei dischi rigidi, all'eliminazione del raffreddamento interno e alla continua miniaturizzazione dei componenti informatici, i server si sono ridotti a un unico server sottile, noto come blade server. Pur essendo ancora conservati in rack nelle sale server, i server blade sono più piccoli e possono essere sostituiti più facilmente.
Anche prima della virtualizzazione, i server venivano estrapolati dal modello standard di un singolo sistema operativo installato su una macchina hardware. Tecnologie come lo storage collegato alla rete hanno eliminato la necessità di avere un server con uno storage proprio. Altre tecnologie, come il mirroring e il clustering, hanno permesso di combinare pezzi di hardware in server più grandi e potenti. Un server di questo tipo potrebbe essere composto da diversi blade, diversi dispositivi di archiviazione collegati e un alimentatore esterno, e ogni pezzo potrebbe essere sostituito da un altro mentre il server è ancora in funzione.
I server virtuali richiedono ancora hardware, ma questo hardware esegue un processo diverso, noto come hypervisor. In alcuni casi, come Hyper-V di Microsoft, un sistema operativo completo continua a girare sull'hardware stesso. In altri casi, i cosiddetti hypervisor bare-metal possono essere installati direttamente sull'hardware del server. In entrambi i casi, l'hardware stesso è spesso distribuito su una serie di server blade, storage in rete e alimentatori, dando vita a un ambiente in cui è impossibile distinguere la fine di un singolo server dall'inizio di un altro.
PRTG Network Monitor è un software di monitoraggio di rete completo e tiene traccia dell'intera infrastruttura IT.
Si può sostenere che Windows for Workgroups sia stato il primo sistema operativo server di Microsoft. In quella versione, alcuni computer potevano essere impostati per condividere le risorse e rispondere alle richieste dei client, il che li rendeva server per definizione. Il primo vero sistema operativo server di Microsoft fu Windows NT. Le sue versioni 3.5 e 3.51 sono state utilizzate in molte reti aziendali fino a quando Microsoft ha rilasciato la linea Windows Server, che esiste ancora oggi. La versione più recente di Windows Server è Windows Server 2016. Questa versione supporta numerose applicazioni e database, oltre a un hypervisor che consente di creare server virtuali.
L'altro grande protagonista dei sistemi operativi per server è il regno di Linux/Unix. Esistono diverse versioni e gusti di Linux/Unix, tra cui Red Hat Enterprise Linux, Debian e CentOS. Essendo un sistema operativo open-source, Linux è molto popolare come server web, spesso con il server di applicazioni web Apache installato.
Sebbene non sia più in produzione, NetWare è stato uno dei principali attori nello spazio del software per server mentre l'era del client-server si stava diffondendo. Alla fine, NetWare ha spostato il suo sistema operativo server su un kernel basato su Linux e lo ha chiamato Novell Open Enterprise Server (OES).
I server virtuali ospitati su un'infrastruttura di terzi su una rete aperta, come Internet, sono chiamati server cloud. Oggi esistono numerosi fornitori di server cloud, tra cui Google Cloud Platform, Microsoft Azure e IBM Cloud.
Tuttavia, il principale pioniere del cloud computing aziendale è stata la piattaforma AWS di Amazon. Inizialmente utilizzava la capacità inutilizzata dei server e delle reti di Amazon, ma ora AWS consente ai clienti di creare un server virtuale quasi istantaneamente e di regolare al volo la quantità di risorse che il server può utilizzare.
Oggi, un server può essere nient'altro che i dati di un hardware fisico composto da più processori, unità disco, memoria e connessioni di rete. Ma anche oggi un server è solo un sistema che risponde a una richiesta di un client.