Файл: Принципы построения и основные задачи, выполняемые серверными программами.pdf
Добавлен: 22.04.2023
Просмотров: 112
Скачиваний: 1
ВВЕДЕНИЕ
Сервер – это аппаратный комплекс, имеющий большие вычислительные мощности. Обычно сервер собирают под какие-либо конкретные сервисные функции. Например, сервер баз данных или файловый сервер.
Сервер – программное обеспечение, принимающее и обрабатывающее запросы клиентов с целью оказания тех или иных услуг.
Если мы говорим про аппаратную часть, то сервер – это специализированный компьютер или же специальное оборудование, которое используется для выполнения каких-либо узкоспециализированных функций, требующих больших вычислительных мощностей.
Выполнение узкоспециализированных функций сервера обусловлено использованием специального серверного программного обеспечения.
Иногда вместо термина сервер можно услышать словосочетание выделенный компьютер, опять же, это потому, что функции сервера в компьютерной сети отличаются от функций других машин.
В лучшем случае человек работает с серверной машиной только один раз – когда настраивает сервер, далее работа серверного компьютера (опять же, в идеальном случае) происходит автономно без вмешательства человека.
Итак, сервер – это специально выделенный компьютер для каких-то определённых функций (хотя это не всегда так), зачастую при недостатке бюджета сервер может выполнять сразу несколько функций.
Также стоит заметить, что обычно управление сервером осуществляют не рядовые пользователи, а специально обученные и подготовленные системные администраторы, в задачу которых входит обслуживание серверных компьютеров.
Серверное приложение – это специализированная программа, которая принимает запросы клиентов и обрабатывает.
В качестве примеров серверных приложений можно привести:
- любой HTTP сервер, например, сервер Apache или lighttpd;
- сервер баз данных MySQL;
- готовые сборки для веб-разработчика, такие как Denwer или локальный сервер AMPPS.
Серверное приложение выполняет определённый набор функций, который ограничен его назначением. Например, веб-сервер должен принимать HTTP запросы от клиента, анализировать их, проверяя полученные HTTP методы и поля заголовков, затем выполнять действия, указанные в запросе и отчитываться клиенту о результатах своей работы при помощи специального HTTP сообщения, которое получило название ответ.
А, например, серверное приложение MySQL должно анализировать SQL запрос, полученный от клиента, обработать его, организовать доступ к файловой системе и вернуть результат запроса клиенту.
Но, помимо того, что у серверного приложения есть определённая роль или функция, стоит отметить то, что взаимодействие между клиентской программой и серверным приложением происходит по сетевому протоколу (даже если оба приложения установлены на один компьютер, например, по протоколу HTTP).
Следует отметить, что серверные приложения выполняют строго определённую роль и в архитектуре клиент-сервер являются поставщиками услуг для клиентов.
Актуальность исследования заключается в том, что развитие корпоративных сетей и сети Интернет делает необходимым применение различных систем серверного ПО.
Целью данной работы является изучение программных продуктов, обеспечивающие функционирование серверов.
Предмет исследования – принципы работы и задачи, выполняемые серверными программами.
1. Объект – ПО серверов.
11. Основные понятия серверов и их классификация
Сервер (от англ. server , обслуживающий). В зависимости от предназначения существует несколько определений понятия сервер.
1. Сервер (сеть) — логический или физический узел сети, обслуживающий запросы к одному адресу и/или доменному имени (смежным доменным именам), состоящий из одного или системы аппаратных серверов, на котором выполняются один или система серверных программ
2. Сервер (программное обеспечение) — программное обеспечение принимающее запросы от клиентов (в архитектуре клиент-сервер).
3. Сервер (аппаратное обеспечение) — компьютер (или специальное компьютерное оборудование) выделенный и/или специализированный для выполнения определенных сервисных функций.
3.Сервер в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента , предоставляя ему доступ к определённым ресурсам.
Взаимосвязь понятий. Серверное приложение (сервер) запускается на компьютере, так же называемом "сервер", при этом при рассмотрении топологии сети, такой узел называют "сервером". В общем случае может быть так, что серверное приложение запущено на обычной рабочей станции, или серверное приложение, запущенное на серверном компьютере в рамках рассматриваемой топологии выступает в роли клиента (т.е. не является сервером с точки зрения сетевой топологии).
Понятия сервер и клиент и закрепленные за ними роли образуют программную концепцию «клиент-сервер».
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет, и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис).
В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например COM-порт) или сетевые соединения.
Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например, протоколы Интернета определяются в документах RFC.
В зависимости от выполняемых задач одни серверы, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей.
Классификация стандартных серверов. Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг, которые они предоставляют.
Универсальные серверы — особый вид серверной программы, не предоставляющий никаких услуг самостоятельно. Вместо этого универсальные серверы предоставляют серверам услуг упрощенный интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Существуют несколько видов таких серверов:
· inetd от англ. i nternet super- server d aemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода (stdin и stdout).
· RPC от англ. R emote P rocedure C all удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный SunMicrosystems для своей операционной системы (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).
Сетевые службы обеспечивают функционирование сети, например серверы DHCP и BOOTP обеспечивают стартовую инициализацию серверов и рабочих станций, DNS — трансляцию имен в адреса и наоборот.
Серверы туннелирования (например, различные VPN-серверы) и прокси-серверы обеспечивают связь с сетью, недоступной роутингом.
Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа.
Информационные службы. К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.
Особым видом информационных служб являются серверы синхронизации времени — NTP, кромеинформировании клиента о точном времени NTP-сервер периодически опрашивает несколько других серверов на предмет коррекции собственного времени.
Кроме коррекции времени анализируется и корректируется скорость хода системных часов. Коррекция времени осуществляется ускорением или замедлением хода системных часов (в зависимости от направления коррекции), чтобы избежать проблем возможных при простой перестановке времени.
Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.
Прежде всего, это серверы передачи файлов по заказу, по протоколам FTP, TFTP, SFTP и HTTP. Протокол HTTP ориентирован на передачу текстовых файлов, но серверы могут отдавать в качестве запрошенных файлов и произвольные данные, например динамически созданные веб-страницы, картинки, музыку и т. п.
Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC.
Недостатки файл-серверной системы:
• Очень большая нагрузка на сеть, повышенные требования к пропускной способности. На практике это делает практически невозможной одновременную работу большого числа пользователей с большими объемами данных.
• Обработка данных осуществляется на компьютере пользователей. Это влечет повышенные требования к аппаратному обеспечению каждого пользователя. Чем больше пользователей, тем больше денег придется потратить на оснащение их компьютеров.
• Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.
• Безопасность. Для обеспечения возможности работы с такой системой Вам будет необходимо дать каждому пользователю полный доступ к целому файлу, в котором его может интересовать только одно поле
Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).
Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).
Службы обмена сообщениями позволяют пользователю передавать и получать сообщения (обычно — текстовые).
В первую очередь это серверы электронной почты, работающие по протоколу SMTP.
SMTP-сервер принимает сообщение и доставляет его в локальный почтовый ящик пользователя или на другой SMTP-сервер (сервер назначения или промежуточный).
На многопользовательских компьютерах, пользователи работают с почтой прямо на терминале (или веб-интерфейсе). Для работы с почтой на персональном компьютере, почта забирается из почтового ящика через серверы, работающие по протоколам POP3 или IMAP.
Для организации конференций существует серверы новостей, работающие по протоколу NNTP.
Для обмена сообщениями в реальном времени существуют серверы чатов, стандартный чат-сервер работает по протоколу IRC — распределенный чат для интернета. Существует большое количество других чат-протоколов, например ICQ или Jabber.
Серверы удаленного доступа, через соответствующую клиентскую программу, обеспечивают пользователя консольным доступом к удаленной системе.
Для обеспечения доступа к командной строке служат серверы telnet, RSH, SSH.
Графический интерфейс для Unix-систем — X WindowSystem, имеет встроенный сервер удаленного доступа, так как с такой возможностью разрабатывался изначально. Иногда возможность удаленного доступа к интерфейсу Х-Window неправильно называют «X-Server» (этим термином в X-Window называется видеодрайвер).