Службы с точки зрения того, кто их предоставляет

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

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

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

Работа параллельных прикладных программ внешне кажется непостижимой. Создается впечатление, что единственная прикладная программа выполняет сразу несколько действий. Например, если речь идет о службе TELNET, то программное обеспечение службы дистанционного доступа должно предоставлять многочисленным пользователям возможность подключиться к указанному компьютеру, управляя при этом несколькими активными сеансами дистанционного доступа. Обмен данными в одном сеансе дистанционного доступа должен выполняться без помех со стороны других сеансов. Аналогичным образом, программное обеспечение службы FINGER должно позволять многочисленным пользователям запрашивать информацию в одно и то же время, не нарушая работу друг друга.

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

1.9. Основное назначение данной книги

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

Задача обеспечения параллельного доступа к прикладным службам является важной и сложной, поэтому во многих главах настоящей книги подробно описаны параллельные версии программного обеспечения прикладных протоколов.

В каждой главе этой книги рассматривается один из возможных проектов. В первых главах представлена модель взаимодействия типа клиент/сервер, описаны транспортные протоколы с установлением логического соединения и без его установления, а также описан интерфейс прикладного программирования (API — Application Program Interface) сокетов. В следующих главах рассматриваются конкретные алгоритмы и методы реализации, применяемые в клиентском и серверном программном обеспечении, а также наиболее интересные сочетания алгоритмов и методов управления параллельной работой.

Кроме описания алгоритмов клиентского и серверного программного обеспечения, в книге представлены такие общие методы, как туннелирование, шлюзы прикладного уровня и дистанционный вызов удаленных процедур. И наконец, в ней рассмотрено несколько стандартных прикладных протоколов (NFS и TELNET) и описаны такие протоколы, как RTP.

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

1.10. Резюме

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

Большинство сетевых служб обеспечивают одновременный доступ к ним большого числа пользователей. Для поддержки одновременного доступа многих пользователей применяется параллельное серверное программное обеспечение. Значительная часть книги посвящена описанию методов обеспечения параллельного функционирования прикладных протоколов и анализу проблем управления параллельными процессами.

Материал для дальнейшего изучения

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

Упражнения
  1. Воспользуйтесь протоколом TELNET на своем локальном компьютере для подключения к другому компьютеру. Была ли вами обнаружена задержка при подключении к компьютеру, находящемуся в той же локальной сети? Появилась ли задержка при подключении к удаленному компьютеру?
  2. Прочитайте руководство по операционной системе, чтобы узнать, допускает ли реализованная в ней версия программного обеспечения TELNET подключение к порту удаленного компьютера, отличному от стандартного порта, который используется для дистанционной регистрации.
  3. Определите набор служб TCP/IP, доступных на вашем локальном компьютере.
  4. Воспользуйтесь программой FTP для получения файла с удаленного узла. Если это программное обеспечение не предоставляет статистических данных, оцените скорость передачи большого файла иным способом. Была ли скорость передачи выше или ниже, чем вы ожидали?
  5. Воспользуйтесь командой finger для получения информации о пользователях удаленного узла.
Похожие статьи Меню Опрос Фото Популярное