Сервер

Слово «сервер» также применяется для обозначения сервисного аппаратного обеспечения, это значение рассматривается в статье Сервер (аппаратное обеспечение)

Се́рвер (англ. server от англ. to serve — служить) — в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам.

Содержание

Роль сервера

Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер».

Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросов на открытие соедиения (или, собственно, запросов на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например COMM-порт) или сетевые соедиения.

Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.

В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей.

Аппаратное обеспечение

У слова «сервер», также есть второе значение — (персональный или иной) компьютер выполняющий только серверные задачи, или компьютер (или иное аппаратное обеспечение), специализированное (по форм-фактору и/или ресурсам) для использования в качестве аппаратной базы для серверов услуг (иногда — услуг определеного направления).

Аппаратными серверами (аппаратное обеспечение) называются узкоспециализированные решения со встроенным программным обеспечением (англ. firmware; в отличии от компьютеров, где программное обеспечение необходимо устанавливать), определяющим специализацию и возможные предоставляемые услуги. Аппаратные сервера, как правило, более просты и надежны в эксплуатации, потребляют меньше электроэнергии и, иногда, более дешевы. Но вместе с тем они менее гибки (так как изначально ограничены в выполняемых задачах) и, часто, ограничены в ресурсах.

Важно понимать что сервер, в том значении как его понимает эта статья (то есть сервер, предоставляющий какой-либо сервис, например прокси-сервер), всегда является программой (или программным модулем), выполняющейся на каком-то аппаратном обеспечении. Без этой программы аппаратное обеспечение не может ничего предоставлять. Даже «аппаратные серверы» (или роутеры) не исключение, потому что в них сервис, также, предоставляется (встроенным) программным обеспечением. Иногда, для простоты, сервером услуги (например тем же прокси-сервером) называют программное и аппаратное обеспечение в целом, в особенности если этот программно аппаратный комплекс выполняет только одну задачу.

Теоритически, на одной единице аппаратного обеспечения, может одновременно выполняться, практически, произвольное количество серверов (за исключением серверов конфликтующих между собой по ресурсам или их количеству), они будут делить между собой аппаратные ресурсы. Практически, между крайностями «один компьютер — одна услуга» и «один компьютер — все услуги» каждый находит свой компромисс.

Серверы услуг можно запускать на рабочей станции, чтобы они работали на фоне разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличии от «выделенного» (англ. dedicated), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того, всегда работает несколько серверов — сервер удаленного доступа (терминальный сервер), сервер удаленного доступа к файловой системе и системе печати, и прочие удаленные и внутренние серверы.

Классификация cтандартных серверов

Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг которые они предоставляют.

Универсальные серверы

Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:

  • inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем, программа позволяющий писать серверы TCP/IP (и сетевых протоколов других семейств) работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
  • RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используетстся как в большинстве Unix-систем, так и в Windows.
  • Прикладные клиент-серверные технологии Windows:
    • (D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначално данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.
    • Active-X — Расширение COM и DCOM для создания мультимедиа-приложений для Интернета.

Универсальные серверы часто используются для написания всевозможных информационных серверов, серверов, которым не нужна какая-то специфическая работа с сетью, серверов не имеющих никаких задач, кроме обслуживания клиентов. Например в роли серверов для inetd могут выступать обычные консольные программы и скрипты.

Большинство внутренних и сетевых cпецифических серверов Windows работают через универсальные серверы (RPC, (D-)COM).

Маршрутизация

Строго говоря, сервис маршрутизации не является сервером в классическом смысле, а является базовой функцией поддержки сети операционной системой.

Для TCP/IP, маршрутизация является базовой функцией стека IP (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только маршрутизаторы (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета:

  • принять пакет
  • найти машину на которую следует этот пакет или следующий маршрутизатор по маршруту к ней (в таблице маршрутов)
  • передать пакет или вернуть ICMP-сообщение о невозможности его доставки по причинам:
    • Назначение недостижимо (Destination unreachable) — у пакета кончилось «время жизни» прежде чем он достиг места назначения
    • Хост недостижим (Host unreachable) — компьютер или следующий маршрутизатор выключен или не существует
    • Сеть недостижима (Network unreachable) — маршрутизатор не имеет маршрута в сеть назначения
  • если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) — отбросить пакет без уведомлений

Маршрутизация других семейств протоколов (IPX, AppleTalk и т. п.), выполняется сходным образом, в соответствии с их спецификациями.

Динамическая маршрутизация

Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и в поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту.

Из этих решений клиент-серверную модель использует только BGP (англ. Border Gateway Protocol - протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения (RIP, OSPF) используют в своей работе бродкастовые и мультикастовые рассылки.

Сетевые службы

Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS - трансляцию имен в адреса и наоборот.

Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.

Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.

Информационные службы

К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP (англ. Simple Network Management Protocol — простой протокол управления сетью; частично SNMP относится к серверам удаленного управления). Большинство информационных служб работают через универсальные серверы.

Особым видом информационных служб являются серверы синхронизации времени (NTP англ. Network Time Protocol — протокол сетевого времени), кроме информировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.

Файл-серверы

Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.

Прежде всего это серверы передачи файлов по заказу, по протоколам FTP (англ. File Transfer Protocol — протокол передачи файлов), TFTP (англ. Тrivial FTP — упрощеный протокол FTP) и HTTP (англ. HyperText Transfer Protocol — протокол передачи гипертекста; протокол веб-сервера). Протокол HTTP предназначен для передачи файлов, но сервера могут отдавать в качестве запрошенных файлов произвольные данные, например динамически созданные веб-страницы, картинки и т. п.

Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS (англ. Network File System — сетевая файловая система; используется в Unix-cистемах) и SMB (англ. Server Message Block; используется Windows). Серверы NFS и SMB работают через интервейс RPC.

Серверы доступа к данным

Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Одним из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).

Для доступа к сервера базам данных не разработано единого протокола, однако их все объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).

Службы обмена сообщениями

Службы обмена сообщениями позволяют клиенту передавать и получать сообщения (блоки данных, обычно — текста).

В первую очередь это сервера электронной почты работающие по протоколу SMTP (англ. Simple Mail Transmit Protocol — простой протокол передачи почты) сервера позволяющие клиенту передавать сообщения и доставляющие почту по назначению — на SMTP-сервер назначения. Сообщение пришедшее на сервер можно прочитать на его консоли или (что бывает чаще) — получить почту на свою рабочую станцию по используя сервера получения почты по протоколам POP3 (англ. Post Office Protocol 3 протокол «почтового отделения» версии 3) или IMAP (англ. Interactive Mail Access Protocol — протокол интерактивного доступа к почте).

Для организации конференций существует сервер новостей — протокола NNTP (англ. Network News Transfer Protocol — протокол передачи сетевых новостей).

Для обмена сообщениями в реальном времени существуют сервера чатов (англ. chat — болтовня), стандартный чат-сервер работает по протоколу IRC (англ. Internet Relay Chat — распределенный чат для интернета). Существует большое количество других чат-протоколов, например ICQ.

Серверы удаленного доступа

Серверы удаленного доступа, через соотвествующую клиентсую программу, обеспечивают пользователя консольными доступом к удаленной системе.

Для обеспечения доступа к командной строке (точнее, терминалу) служат сервера telnet, RSH (англ. Remote SHell — удаленный шелл), SSH (англ. Security SHell — безопасный шелл).

Графический интерфейс для Unix-систем — X Window System, имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Windows неправильно называют «X-Server» (этим термином в X-Windows называется видеодрайвер).

Стандартный сервер удаленного доступа к графическому интерфейсу Microsoft Windows называется терминальный сервер.

Некоторую разновидность управления (точнее мониторинга и конфигурирования), также, предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер.

Серверы разделения ресурсов

Некоторые серверы призваны разделить доступ к аппаратным устройствам, например сервер печати разделяет доступ к принтеру или другому печатающему устройству.

Игровые сервера

Игровые сервера, служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделеном режиме (т.е. позволяют играть на машине, на которой запущен сервер).

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home