М. Н. Машкин Информационные технологии Учебное пособие

Вид материалаУчебное пособие

Содержание


21.6Распределение и параллелизм
22Технологии "клиент-сервер".
Подобный материал:
1   ...   27   28   29   30   31   32   33   34   ...   45

21.6Распределение и параллелизм


Следует отметить, что распределение (или разделение) не яв- ляется синонимом параллелизма. Распределение видов обработки состоит в том, чтобы поручить их машинам, наилучшим образом приспособленным к этому. Параллелизм подразумевает понятие одновременности обработки. Распределение позволяет иногда проводить параллельную обработку. Мы вернемся к этому в следующих главах при рассмотрении средств обработки данных.

21.7Прозрачность


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

- прозрачность доступа: к локальным или удаленным объектам можно обращаться посредством одинаковых операций;

- прозрачность местонахождения: объекты должны быть доступны без необходимости знать их физическое местоположение;

- прозрачность одновременности доступа: несколько пользователей должны иметь возможность одновременного доступа к данным, без нежелательных последствий;

- прозрачность копирования: должна существовать возможность копировать данные из файлов или из других объектов в целях повышения эффективности или обеспечения доступности незаметно для пользователей;

- прозрачность при неисправностях: пользователи или прикладные программы должны иметь возможность завершить свои задания, даже в случае неисправностей аппаратной или программной части;

- прозрачность при динамических изменениях конфигурации: система может динамически менять свою конфигурацию, в целях повышения эффективности и в зависимости от нагрузки.

22Технологии "клиент-сервер".


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

Архитектура клиент-сервер (Client-server architecture) – архитектура распределённой вычислительной системы, в которой приложение делится на клиентский и серверный процессы. Сервер владеет и распоряжается информационными ресурсами системы, а клиент может пользоваться ими.

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

Клиент – это задача, рабочая станция, пользователь. Он может сформировать запрос для сервера: считать файл, осуществить поиск записи и т.п. Клиентский процесс в архитектуре клиент-сервер – процесс, который выполняется на стороне клиента и посылает запрос серверному процессу на выполнение некоторой задачи. Обычно клиентский процесс:

управляет пользовательским интерфейсом;

контролирует вводимые пользователем данные;

распределяет запросы серверным процессам;

может выполнять бизнес-логику приложений.

Как правило, клиент и сервер территориально отделены друг от друга, и в этом случае они образуют систему распределённой обработки данных.

Для современных СУБД архитектура “клиент-сервер” фактически является стандартом. Используемые в ней прикладные программы имеют распределённый характер, т.е. часть функций приложений реализована в программе-клиенте, а другая – в программе-сервере.

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

Архитектура клиент/сервер стала сегодня темой номер один. Не многие технологии отличаются столь быстрыми темпами распространения. Если обычно их внедрение требует 14 - 17лет, то для среды клиент/сервер данный срок, возможно, будет вдвое меньше.

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

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

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

Термины "клиент" и "сервер", в сущности, обозначают роли, которые играют различные компоненты в среде распределенных вычислений. Эти компоненты необязательно должны работать на разных машинах (хотя обычно это именно так). Технология клиент/сервер - это распределение прикладной программы по двум логически различным компонентам, каждый из которых решает свои задачи. Обычно клиент посылает на сервер запросы на выполнение определенной работы. Задачей сервера является обработка подобных запросов и возврат результатов клиенту. Этот процесс чаще всего осуществляется на физически разделенных компьютерах в рамках того или иного типа физической инфраструктуры локальной сети. Обычно серверные компьютеры намного мощнее и поэтому лучше приспособлены для выполнения заданий, поступающих от других систем.

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