Терминология и основные понятия

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

2.3.1. Клиенты и серверы

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

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

2.3.2. Привилегии и сложность

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

Как правило, серверная программа содержит код, выполняющий многие действия, перечисленные ниже, которые относятся к сфере защиты:

  • аутентификация — проверка подлинности клиента;
  • авторизация — определение того, разрешено ли данному клиенту обращаться к службе, предоставляемой сервером;
  • защита данных — предотвращение возможности непреднамеренного раскрытия или компрометации конфиденциальных данных;
  • секретность — предотвращение возможности несанкционированного доступа;
  • защита — предотвращение возможности недопустимого использования системных ресурсов сетевыми приложениями.
  • Шикарный салон свадебных платьев, москва

С формальной точки зрения, сервер представляет собой программу, а не аппаратное устройство. Однако пользователи компьютеров часто ошибочно применяют этот термин к компьютеру, на котором работает та или иная серверная программа. Например, иногда можно услышать: "Этот компьютер — наш файловый сервер". Но в таких случаях следует говорить: "На этом компьютере работает программа нашего файлового сервера".

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

Похожие статьи Меню Опрос Фото Популярное