Сервер (программное обеспечение): различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
← Содержимое страницы заменено на «лекция ушла гулять =D Категория:Сетевое программное обеспече…» |
|||
Строка 1: | Строка 1: | ||
лекция ушла гулять =D |
|||
Серверное по |
|||
= Сервер (программное обеспечение) = |
|||
''У этого термина существуют и другие значения, см. [[Сервер]].'' |
|||
Логотип веб-сервера [[Apache HTTP Server|Apache]] |
|||
'''Се́рверное програ́ммное обеспечение''' ('''се́рвер''', [[Английский язык|англ.]] ''server'' от ''to serve'' — служить; множественное число се́рверы, в разговорном языке также употребляется сервера́) — в [[Информационные технологии|информационных технологиях]] — программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу [[Клиент (информатика)|клиента]], предоставляя ему доступ к определённым ресурсам или услугам. |
|||
== Содержание == |
|||
[скрыть] |
|||
· [[Сервер (программное обеспечение)#.D0.A0.D0.BE.D0.BB.D1.8C .D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D0.B0|1Роль сервера]] |
|||
· [[Сервер (программное обеспечение)#.D0.90.D0.BF.D0.BF.D0.B0.D1.80.D0.B0.D1.82.D0.BD.D0.BE.D0.B5 .D0.BE.D0.B1.D0.B5.D1.81.D0.BF.D0.B5.D1.87.D0.B5.D0.BD.D0.B8.D0.B5|2Аппаратное обеспечение]] |
|||
· [[Сервер (программное обеспечение)#.D0.9A.D0.BB.D0.B0.D1.81.D1.81.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F .D1.81.D1.82.D0.B0.D0.BD.D0.B4.D0.B0.D1.80.D1.82.D0.BD.D1.8B.D1.85 .D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D0.BE.D0.B2|3Классификация стандартных серверов]] |
|||
o [[Сервер (программное обеспечение)#.D0.A3.D0.BD.D0.B8.D0.B2.D0.B5.D1.80.D1.81.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5 .D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D1.8B|3.1Универсальные серверы]] |
|||
o [[Сервер (программное обеспечение)#.D0.9C.D0.B0.D1.80.D1.88.D1.80.D1.83.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F|3.2Маршрутизация]] |
|||
o [[Сервер (программное обеспечение)#.D0.94.D0.B8.D0.BD.D0.B0.D0.BC.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B0.D1.8F .D0.BC.D0.B0.D1.80.D1.88.D1.80.D1.83.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F|3.3Динамическая маршрутизация]] |
|||
o [[Сервер (программное обеспечение)#.D0.A1.D0.B5.D1.82.D0.B5.D0.B2.D1.8B.D0.B5 .D1.81.D0.BB.D1.83.D0.B6.D0.B1.D1.8B|3.4Сетевые службы]] |
|||
o [[Сервер (программное обеспечение)#.D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5 .D1.81.D0.BB.D1.83.D0.B6.D0.B1.D1.8B|3.5Информационные службы]] |
|||
o [[Сервер (программное обеспечение)#.D0.A4.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D1.8B.D0.B5 .D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D1.8B|3.6Файловые серверы]] |
|||
o [[Сервер (программное обеспечение)#.D0.A1.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D1.8B .D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.B0 .D0.BA .D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D0.BC|3.7Серверы доступа к данным]] |
|||
o [[Сервер (программное обеспечение)#.D0.A1.D0.BB.D1.83.D0.B6.D0.B1.D1.8B .D0.BE.D0.B1.D0.BC.D0.B5.D0.BD.D0.B0 .D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D0.BD.D0.B8.D1.8F.D0.BC.D0.B8|3.8Службы обмена сообщениями]] |
|||
o [[Сервер (программное обеспечение)#.D0.A1.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D1.8B .D1.83.D0.B4.D0.B0.D0.BB.D1.91.D0.BD.D0.BD.D0.BE.D0.B3.D0.BE .D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.B0|3.9Серверы удалённого доступа]] |
|||
o [[Сервер (программное обеспечение)#.D0.98.D0.B3.D1.80.D0.BE.D0.B2.D1.8B.D0.B5 .D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D1.8B|3.10Игровые серверы]] |
|||
· [[Сервер (программное обеспечение)#.D0.A1.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D0.BD.D1.8B.D0.B5 .D1.80.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D1.8F|4Серверные решения]] |
|||
== Роль сервера[править | править вики-текст] == |
|||
Понятия ''сервер'' и ''клиент'' и закреплённые за ними роли образуют программную [[Концепция|концепцию]] «''[[клиент-сервер]]''». |
|||
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы [[Межпроцессное взаимодействие|межпроцессного взаимодействия]] ([[разделяемая память]], [[Именованный канал|пайп]], [[Сокет (программный интерфейс)|сокет]] и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, [[Последовательный порт|COM-порт]]) или сетевые соединения. |
|||
Формат запросов клиента и ответов сервера определяется [[Протокол передачи данных|протоколом]]. Спецификации открытых протоколов описываются открытыми стандартами, например, протоколы Интернета определяются в документах [[RFC]]. |
|||
В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей. |
|||
== Аппаратное обеспечение[править | править вики-текст] == |
|||
''Основная статья: '''[[Сервер (аппаратное обеспечение)]]''''' |
|||
У слова «сервер» есть и другое значение — компьютер, выполняющий серверные задачи, или компьютер (или иное аппаратное обеспечение), специализированный (по форм-фактору и/или ресурсам) для использования в качестве аппаратной базы для серверов услуг (иногда — услуг определённого направления), разделяя ресурсы компьютера с программами, запускаемыми пользователем. Такой режим работы называется «невыделенным», в отличие от «выделенного» ([[Английский язык|англ.]] ''dedicated''), когда компьютер выполняет только сервисные функции. Строго говоря, на рабочей станции (для примера, под управлением Windows XP) и без того всегда работает несколько серверов — сервер удалённого доступа (терминальный сервер), сервер удалённого доступа к файловой системе и системе печати и прочие удалённые и внутренние серверы. |
|||
== Классификация стандартных серверов[править | править вики-текст] == |
|||
Как правило, каждый сервер обслуживает один или несколько схожих протоколов. Серверы можно классифицировать по типу услуг, которые они предоставляют. |
|||
=== Универсальные серверы[править | править вики-текст] === |
|||
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощённый интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов: |
|||
· ''inetd'' (от [[Английский язык|англ.]] '''''i'''nter'''net''' super-server '''d'''aemon'' — [[Демон (программа)|демон]] сервисов IP) — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout). |
|||
· ''RPC'' (от [[Английский язык|англ.]] '''''R'''emote '''P'''rocedure '''C'''all'' — удалённый вызов процедур) — система интеграции серверов в виде [[Подпрограмма#.D0.92.D0.B8.D0.B4.D1.8B .D0.BF.D0.BE.D0.B4.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC|процедур]], доступных для вызова удалённым пользователем через унифицированный интерфейс. Интерфейс, изобретённый Sun Microsystems для своей операционной системы (SunOS, Solaris; Unix-система), в настоящее время используется как в большинстве Unix-систем, так и в Windows. |
|||
· Прикладные клиент-серверные технологии Windows: |
|||
· (''D''-)''COM'' ([[Английский язык|англ.]] ''('''D'''istributed) '''C'''omponent '''O'''bject '''M'''odel'' — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных, используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE [[Английский язык|англ.]] '''''O'''bject '''L'''inking and '''E'''mbedding''), но в общем позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удалённо через RPC. |
|||
· ''Active-X'' — Расширение COM и DCOM для создания мультимедийных приложений. |
|||
Универсальные серверы часто используются для написания всевозможных информационных серверов — серверов, не нуждающихся в специфической работе с сетью и не имеющих никаких задач, кроме обслуживания клиентов. Например, в роли серверов для ''inetd'' могут выступать обычные консольные программы и скрипты. |
|||
Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM). |
|||
=== Маршрутизация[править | править вики-текст] === |
|||
Строго говоря, сервер маршрутизации не является сервером в классическом смысле, а является базовой функцией поддержки сети операционной системой. |
|||
Для [[TCP/IP]] маршрутизация является базовой функцией ''стека IP'' (кода поддержки TCP/IP). Маршрутизацию своих пакетов к месту назначения выполняет любая система в сети, маршрутизацию же чужих пакетов (форвардинг) выполняют только [[Маршрутизатор|маршрутизаторы]] (также известные как роутеры или шлюзы). Задачи маршрутизатора при форвардинге пакета: |
|||
· принять пакет |
|||
· найти машину, на которую следует этот пакет, или следующий маршрутизатор по маршруту к ней (в таблице маршрутов) |
|||
· передать пакет или вернуть [[ICMP]]-сообщение о невозможности его доставки по причинам: |
|||
· назначение недостижимо ([[Английский язык|англ.]] ''Destination unreachable'') — у пакета кончилось «''время жизни''» прежде чем он достиг места назначения |
|||
· хост недостижим (''Host unreachable'') — компьютер или следующий маршрутизатор выключен или не существует |
|||
· сеть недостижима (''Network unreachable'') — маршрутизатор не имеет маршрута в сеть назначения |
|||
· если пакет не может быть доставлен по причине перегрузки маршрутизатора (или сети) — отбросить пакет без уведомлений |
|||
=== Динамическая маршрутизация[править | править вики-текст] === |
|||
Решения динамической маршрутизации призваны собирать информацию о текущем состоянии сложной сети и поддерживать таблицу маршрутов через эту сеть, чтобы обеспечить доставку пакета по кратчайшему и самому эффективному маршруту. |
|||
Из этих решений клиент-серверную модель использует только [[Border Gateway Protocol|BGP]] ([[Английский язык|англ.]] '''''B'''order '''G'''ateway '''P'''rotocol'' — протокол пограничного шлюза), применяемый для глобальной маршрутизации. Локальные решения ([[RIP2|RIP]] [[OSPF]]) используют в своей работе [[Broadcasting|бродкастовые]] и [[Мультикаст|мультикастовые]] рассылки. |
|||
=== Сетевые службы[править | править вики-текст] === |
|||
Сетевые службы обеспечивают функционирование сети; например, серверы [[DHCP]] и [[BOOTP]] обеспечивают стартовую инициализацию [[Сервер (аппаратное обеспечение)|серверов]] и рабочих станций, [[DNS]] — трансляцию имён в адреса и наоборот. |
|||
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом. |
|||
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа. |
|||
=== Информационные службы[править | править вики-текст] === |
|||
К информационным службам можно отнести как простейшие серверы, сообщающие информацию о хосте (time, daytime, motd) и пользователях (finger,[[ident]]), так и серверы для мониторинга, например [[SNMP]]. Большинство информационных служб работают через универсальные серверы. |
|||
Особым видом информационных служб являются серверы ''синхронизации времени'' — [[NTP]]. Кроме информирования клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени. Помимо времени, анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем, возможных при простой перестановке времени. |
|||
=== Файловые серверы[править | править вики-текст] === |
|||
''Основная статья: '''[[Файловый сервер]]''''' |
|||
Файловые серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера. |
|||
Прежде всего это серверы передачи файлов по заказу, по протоколам [[FTP]], [[TFTP]], [[SFTP]] и [[HTTP]]. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п. |
|||
Другие серверы позволяют ''монтировать'' дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов [[Network File System|NFS]] и [[SMB]]. Серверы NFS и SMB работают через интерфейс [[Remote Procedure Call|RPC]]. |
|||
Недостатки файл-серверной системы: |
|||
· Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объёмами данных. |
|||
· Обработка данных осуществляется на компьютере пользователя. Это влечёт повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придётся потратить на оснащение их компьютеров. |
|||
· Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей. |
|||
· Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле. |
|||
=== Серверы доступа к данным[править | править вики-текст] === |
|||
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых сервисов подобного типа — [[LDAP]]([[Английский язык|англ.]] ''Lightweight Directory Access Protocol'' — облегчённый протокол доступа к спискам). |
|||
Для доступа к [[Сервер базы данных|серверам баз данных]] единого протокола не существует, однако ряд баз данных объединяет использование единых правил формирования запросов — языка [[SQL]] ([[Английский язык|англ.]] ''Structured Query Language'' — язык структурированных запросов). Наряду с ними есть и другие — [[NoSQL]] базы данных. |
|||
=== Службы обмена сообщениями[править | править вики-текст] === |
|||
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые). |
|||
В первую очередь это серверы [[Электронная почта|электронной почты]], работающие по протоколу [[SMTP]]. ''SMTP-сервер'' принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный). На многопользовательских компьютерах пользователи работают с почтой прямо на терминале (или в веб-интерфейсе). Для работы с почтой на персональном компьютере почта забирается из почтового ящика через серверы, работающие по протоколам [[POP3]] или [[IMAP]]. |
|||
Для организации конференций существует серверы новостей, работающие по протоколу [[NNTP]]. |
|||
Для обмена сообщениями в реальном времени существуют серверы [[Чат|чатов]]. Существует большое количество чат-протоколов, например, [[IRC]], [[Jabber]] и[[OSCAR]]. |
|||
=== Серверы удалённого доступа[править | править вики-текст] === |
|||
Серверы удалённого доступа, через соответствующую клиентскую программу, обеспечивают пользователя аналогом локального терминала (текстового или графического) для работы на удаленной системе. |
|||
Для обеспечения доступа к [[Командная строка|командной строке]] служат серверы [[telnet]], RSH и [[SSH]]. |
|||
Графический интерфейс для Unix-систем — [[X Window System]] — имеет встроенный сервер удалённого доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удалённого доступа к интерфейсу Х-Window ''неправильно'' называют «X-Server» (этим термином в X-Window называется видеодрайвер). |
|||
Стандартный сервер удалённого доступа к графическому интерфейсу [[Microsoft Windows]] называется [[терминальный сервер]]. |
|||
Некоторую разновидность управления (точнее, мониторинга и конфигурирования) также предоставляет протокол SNMP. Компьютер или аппаратное устройство для этого должно иметь SNMP-сервер. |
|||
=== Игровые серверы[править | править вики-текст] === |
|||
[[Игровые сервера|Игровые серверы]] служат для одновременной игры нескольких пользователей в единой игровой ситуации. Некоторые игры имеют сервер в основной поставке и позволяют запускать его в невыделенном режиме (то есть позволяют играть на машине, на которой запущен сервер). |
|||
== Серверные решения[править | править вики-текст] == |
|||
Серверные решения — [[операционные системы]] и/или пакеты программ, оптимизированные под выполнение компьютером функций [[Сервер (аппаратное обеспечение)|сервера]] и/или содержащие в своем составе комплект программ для реализации типичного набора сервисов. |
|||
В качестве примера серверных решений можно привести Unix-системы, изначально предназначенные для реализации серверной инфраструктуры. |
|||
Также необходимо выделить пакеты серверов и сопутствующих программ (например комплект [[веб-сервер]]/PHP/MySQL для быстрого развёртывания хостинга) для установки под Windows (для Unix свойственна модульная или «пакетная» установка каждого компонента, поэтому такие решения редки<sup>[''[[Википедия:Ссылки на источники|источник не указан 1519 дней]]'']</sup>, но они существуют. Наиболее известное — LAMP). |
|||
В интегрированных серверных решениях установка всех компонентов выполняется единовременно, все компоненты в той или иной мере тесно интегрированы и предварительно настроены друг на друга. Однако в этом случае замена одного из серверов или вторичных приложений (если их возможности не удовлетворяют потребностям) может представлять проблему. |
|||
Серверные решения служат для упрощения организации базовой ИТ-инфраструктуры компаний, то есть для оперативного построения полноценной сети в компании, в том числе и «с нуля». Компоновка отдельных серверных приложений в решение подразумевает, что решение предназначено для выполнения большинства типичных задач; при этом значительно снижается сложность развёртывания и общая стоимость владения ИТ-инфраструктурой, построенной на таких решениях. |
|||
[[Категория:Сетевое программное обеспечение]] |
[[Категория:Сетевое программное обеспечение]] |
Версия от 10:22, 17 апреля 2017
лекция ушла гулять =D