Serwer - program świadczący usługi na rzecz innych programów, zazwyczaj korzystających z innych komputerów połączonych w sieć.
Serwerem nazywa się często komputer świadczący takie usługi, sprowadzające się zazwyczaj do udostępniania pewnych zasobów innym komputerom lub pośredniczący w przekazywaniu danych między komputerami.
Serwerem nazywa się też systemy oprogramowania biorące udział w udostępnianiu zasobów. Przykładami udostępnianych zasobów są pliki, bazy danych, łącza internetowe, a także urządzeń peryferyjnych jak drukarki i skanery.
Serwerem może być zwykły komputer, jednak w celu pełnego wykorzystania możliwości, jakie daje oprogramowanie serwerowe, powinna to być maszyna przeznaczona do tej roli. Maszyny takie są przystosowane do pracy ciągłej, wyposaża się je w duże i szybkie dyski twarde, głównie SCSI, dużą ilość pamięci RAM najczęściej z ECC (Pamięć ECC ma rozszerzoną szynę danych, którą przesyłane są nadmiarowe dane kontrolne, umożliwiające korygowanie błędów polegających na przekłamaniu 1 bitu (ang. single-error-correcting) oraz wykrywanie błędów polegających na przekłamaniu 2 bitów (ang. double-error-detecting). Pamięć ECC zapewnia większą stabilność działania systemu komputerowego, niż w przypadku wykorzystania zwykłych pamięci RAM) oraz wydajne procesory serwerowe. Często serwerowe płyty główne mogą obsłużyć 2, 4 lub więcej procesorów.
Serwer musi być maszyną niezawodną, w tym celu często posiada 2 lub więcej wbudowanych zasilaczy typu hot-plug i awaryjne zasilanie, a pomieszczenie, w którym stoi powinno posiadać odpowiednią wentylację lub klimatyzację. Dodatkowo niezawodność podnosi zastosowanie układu kontroli poprawnej pracy, tzw. watchdog, którego zadaniem jest przeprowadzenie restartu serwera w razie zapętlenia się programu.
Serwer jest zazwyczaj podłączony do Internetu szybkim łączem, które dzięki oprogramowaniu maskarady (NAT) potrafi dzielić pomiędzy aktualnie chcących korzystać z zasobów internetu użytkowników, których nazywa się klientami.
Serwer niepodłączony do internetu, na przykład w sieci lokalnej może zarządzać współdzieleniem zasobów na poszczególnych komputerach (na przykład zainstalowanymi programami, danymi czy też urządzeniami peryferyjnymi).
Oprogramowanie
Serwery najczęściej pracują pod kontrolą systemów operacyjnych takich jak: FreeBSD, GNU/Linux, Solaris, Novell NetWare, Microsoft Windows Server 2003 lub 2008, Mac OS X Server. Oprogramowanie zainstalowane na komputerze, który pełni rolę serwera, zależne jest od jego funkcji.
Wśród wielu usług realizowanych przez serwery w internecie są między innymi: obsługa stron WWW, poczty elektronicznej, przesyłanie plików (np. FTP), komunikacja online czy strumieniowa transmisja audio i wideo oraz wiele innych. Przykładowo jeśli ma to być serwer WWW, wykorzystuje się najczęściej oprogramowanie Apache.
Serwer WWW - program działający na serwerze internetowym, obsługujący żądania protokołu HTTP. To z serwerem WWW łączy się przeglądarka internetowa, by załadować wskazaną przez użytkownika stronę WWW.
Serwer WWW pośredniczy czasem w realizacji innych usług, np. zleca przetworzenie pliku źródłowego serwerowi PHP i wysyła przeglądarce stronę wynikową.
Najpopularniejszym serwerem WWW jest Apache. Według badań ze stycznia 2010 obsługuje on prawie 54% wszystkich witryn internetowych na świecie. Drugim pod względem popularności jest Microsoft Internet Information Services (IIS).
Serwer muzyczny - urządzenie stacjonarne wyposażone w dysk twardy i służące do odtwarzania plików muzycznych w formacie Audio oraz formatach skompresowanych np. mp3.
Połączone w jednej obudowie z odtwarzaczem CD, z którego można bezpośrednio nagrywać muzykę z dysków CD na dysk twardy urządzenia.
Przeznaczone do połączenia z innymi segmentami audio (np. wzmacniacze, końcówki mocy), wchodzącymi w skład systemu nagłośnieniowego. Najczęściej stosowane w instalacjach multiroom.
Serwery muzyczne pojawiły się na początku XXI wieku, głównie w celu zastąpienia ogromnych rozmiarów zmieniarek płyt kompaktowych.
Jednym z systemów do obsługi serwera muzycznego służy Windows XP Media Center
Serwer plików - jest to komputer (serwer) lub program, który udostępnia zasoby dyskowe danego komputera, w szczególności zapewnia dostęp do plików: * FTP
* HTTP * NFS * Coda * Andrew FS * SMB * NCP
Serwer wydruku - serwer, który udostępnia obsługę zadań drukowania, obejmującą rozmaite usługi od prostego kolejkowania wydruków (ustawiania ich w odpowiedniej kolejności do odpowiednich drukarek), poprzez formatowanie wydruków (np. zamiana z popularnych formatów do postscriptu), aż po bardziej wyszukane funkcje, jak rozliczanie i raportowanie o liczbie wydrukowanych stron itp. Także w wielodostepnych komputerowych systemach domowych obsługą drukowania na drukarkach lokalnych zajmuje się podsystem drukowania (ang. spooler), który jest w istocie lokalnym serwerem drukowania. Drukarki mogą być podłączone do serwera wydruku bezpośrednio lub pośrednio:
* Połączenie bezpośrednie realizowane jest przy pomocy portu równoległego, portu szeregowego (w tym USB oraz port podczerwieni). * Połączenie pośrednie realizowane jest przez sieć komputerową.Usługa serwera wydruku jest dostępna m.in. w następujących systemach: Unix, rodzina Microsoft Windows NT, Linux, NetWare i inne.
Serwer OPC - oprogramowanie, które udostępnia dane w standardzie OPC dowolnym klientom OPC. Najważniejszym zadaniem serwera jest dbanie, aby dane procesowe były aktualne oraz klienci mieli do nich swobodny dostęp. Serwery OPC oferują elastyczne rozwiązania dostarczające dane procesowe wtedy, kiedy są potrzebne i minimalizujące wykorzystanie szerokości pasma komunikacyjnego (np. algorytm optymalnego przesyłania, algorytm skanowania adaptacyjnego, wielokanałowa transmisja danych, redundancja). Niektóre serwery OPC oferują rozwiązania, w których - dzięki zdefiniowanemu uniwersalnemu interfejsowi - funkcjonalność związaną z realizacją wybranego protokołu można lokować w zewnętrznych, dynamicznie przyłączanych komponentach zwanych DataProvider.
System zarządzania bazą danych, SZBD (ang. Database Management System, DBMS) nazywany też serwerem baz danych, SBD to oprogramowanie bądź system informatyczny służący do zarządzania komputerowymi bazami danych. Systemy baz danych mogą być sieciowymi serwerami baz danych lub udostępniać bazę danych lokalnie.
Niezbędne mechanizmy
* środki do gromadzenia, utrzymywania i administrowania trwałymi i masowymi zbiorami danych, * środki zapewniające spójność i bezpieczeństwo danych, * sprawny dostęp do danych (zwykle poprzez język zapytań, np. SQL), * środki programistyczne służące do aktualizacji/przetwarzania danych (API dla popularnych języków programowania), * jednoczesny dostęp do danych dla wielu użytkowników (z reguły realizowany poprzez transakcje), * środki pozwalające na regulację dostępu do danych (autoryzację), * środki pozwalające na odtworzenie zawartości bazy danych po awarii, * środki do zarządzania katalogami, schematami i innymi metadanymi, * środki optymalizujące zajętość pamięci oraz czas dostępu (np. indeksy), * środki do pracy lub współdziałania w środowiskach rozproszonych.Dodatkowe mechanizmy
* zarządzanie wersjami i danymi nietrwałymi, * przechowywanie i udostępnianie danych multimedialnych, * wygodne (wizyjne) środowiska do tworzenia aplikacji, * pomosty do współpracy z innymi systemami, * wspomaganie dla perspektyw, procedur składowanych i aktywnych reguł, * pakiety statystyczne, pakiety dla przeprowadzania analiz (eksploracji danych), * pakiety do tworzenia hurtowni danych, * środki udostępniające bazę danych w sieci Internet, itd.
SZBD działające w architekturze klient-serwer Większość obecnie spotykanych systemów działa w trybie klient-serwer, gdzie baza danych jest udostępniana klientom przez SZBD będący serwerem. Serwer baz danych może udostępniać dane klientom bezpośrednio lub przez inny serwer pośredniczący (np. serwer WWW lub aplikacji). Systemy bazy danych w architekturze klient-serwer to m.in.:
* DB2 * Informix Dynamic Server * Firebird * Microsoft SQL Server * MySQL * Oracle * PostgreSQL
* Access - zgodna ze standardem SQL baza, korzystająca z silnika Microsoft Jet * Kexi korzystająca z silnika SQLite