18.11.2010 6356

Распределенная обработка информации в системах «клиент-сервер»

 

Согласно определению, в распределенной системе процессы распределены по разным ЭВМ сети. Распределенная обработка информации подразумевает, что по разным ЭВМ сети распределяются не просто любые не связанные друг с другом процессы, а процессы одной прикладной программы, то есть процессы, совместно выполняющие одну общую задачу. Для лучшего понимания механизмов распределенной обработки информации путем её декомпозиции на отдельные легко обозримые компоненты, существует модель «клиент-сервер». В базовой модели «клиент-сервер» все процессы в распределенных системах делятся на две возможно перекрывающиеся группы:

1. Сервер. Сервер - это процесс, реализующий некоторую сетевую службу. Существует второе определение сервера, как ЭВМ, осуществляющая управление доступом к ресурсам сети. Эти два определения не противоречат друг другу, а первое определение является даже более общим. С точки зрения первого определения, второе определение можно перефразировать, как ЭВМ, на которой работает процесс, реализующий сетевую службу предоставления доступа к ресурсам сети;

2. Клиент. Клиент - это процесс, запрашивающий службы у серверов. Взаимодействие клиента и сервера осуществляется в режиме «запрос-ответ».

Прикладные программы типа «клиент-сервер» принято делить на три логических уровня:

1. Уровень пользовательского интерфейса - обычно реализуется на рабочих станциях (клиентских ЭВМ). Этот уровень содержит средства взаимодействия (интерфейса) пользователя и прикладной программы.

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

3. Уровень данных - содержит программы обеспечения доступа к данным и их сохранности. Обычно уровень данных реализуется на серверах.

Прикладная программа может физически делиться на две, три или более частей и выполняться, соответственно, на двух (физически двухзвенная архитектура), трех (физически трехзвенная архитектура) или более (многопоточная технология) ЭВМ одновременно. Физическое разделение прикладной программы по двум ЭВМ (физически двухзвенная архитектура) -рабочей станции и серверной ЭВМ, может производиться в пяти вариантах.

Физически двухзвенная архитектура

 

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

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

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

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

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

Адаптер объектов контролирует один или несколько объектов. Поскольку сервер должен поддерживать объекты с различной политикой активизации, на одном сервере могут работать несколько адаптеров объектов.