Серверное программное обеспечение, серверная поддержка — в информационных спецтехнологиях — программный компонент вычислительной системы, исполняющий сервисные (обслуживающие) функции по запросу заказчика, предоставляя ему доступ к определённым источникам либо службам.
Понятия сервер и заказчик и закреплённые за ними роли образуют программную доктрину «заказчик-сервер».
Для взаимодействия с заказчиком (либо заказчиками, если поддерживается одновременная работа с несколькими заказчиками) сервер выделяет нужные источники межпроцессного взаимодействия (разделяемая память, пайп, сокет и т. п.) и ждет запросы на открытие соединения (либо, собственно, запросы на предоставляемый сервис). В зависимости от типа такого источника, сервер может обслуживать процессы в пределах одной компьютерной системы либо процессы на других машинах через каналы передачи данных (скажем, COM-порт) либо сетевые соединения.
Формат запросов заказчика и результатов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми эталонами, скажем, протоколы Интернета определяются в документах RFC.
В зависимости от исполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут исполнять какую-то работу (скажем, работу по сбору информации), у таких серверов работа с заказчиками может быть второстепенной задачей.
У слова «сервер» есть и другое значение — компьютер, исполняющий серверные задачи, либо компьютер (либо иное аппаратное обеспечение), специализированный (по форм-фактору и/или источникам) для применения в качестве аппаратной базы для серверов служб (изредка — служб определённого направления), разделяя источники компьютера с программами, запускаемыми пользователем. Такой режим работы именуется «невыделенным», в различие от «выделенного» (англ. dedicated), когда компьютер исполняет только сервисные функции. Сурово говоря, на рабочей станции (для примера, под управлением Windows XP) и без того неизменно работает несколько серверов — сервер удалённого доступа (терминальный сервер), сервер удалённого доступа к файловой системе и системе печати и прочие удалённые и внутренние серверы.
Универсальные серверы — специальный вид серверной программы, не предоставляющий никаких служб независимо. Взамен этого универсальные серверы предоставляют серверам служб упрощённый интерфейс к источникам межпроцессного взаимодействия и/или унифицированный доступ заказчиков к разным службам. Существуют несколько видов таких серверов:
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 могут выступать обыкновенные консольные программы и скрипты.
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).
Сервером именуется компьютер, выделенный из группы персональных компьютеров (либо рабочих станций) для выполнения какой-либо сервисной задачи без непосредственного участия человека. Сервер и рабочая станция могут иметь идентичную аппаратную конфигурацию, так как различаются лишь по участию в своей работе человека за консолью.
Некоторые сервисные задачи могут выполняться на рабочей станции параллельно с работой пользователя. Такую рабочую станцию условно называют невыделенным сервером.