- •109 Оглавление
- •Предисловие
- •Введение
- •Основные принципы организации распределенной обработки информации
- •1.2. Логические слои прикладного программного обеспечения
- •1.3. Варианты архитектурного построения систем
- •Контрольные вопросы и задания
- •Обзор механизмов реализации распределенной обработки информации
- •2.1. Распределенная обработка информации
- •2.2. Объектно-ориентированный подход
- •2.3. Реализация распределенной обработки информации
- •2.5. Распределенная обработка информации
- •2.6. Архитектура серверов приложений
- •Контрольные вопросы и задания
- •3. Организация распределенной обработки информации на основе Web-технологий
- •3.1. Особенности интеграции приложений
- •3.2. Общая характеристика и архитектура сетевых служб
- •3.3. Механизм взаимодействия сетевых служб
- •3.4. Язык описания сетевых служб wsdl
- •3.5. Проблемы регистрации сетевых служб
- •3.6. Координация работы сетевых служб
- •3.7. Транзакции в сетевых службах
- •3.8. Композиция сетевых служб
- •Контрольные вопросы и задания
- •4. Концепции Grid-технологии
- •4.1. Основные понятия метакомпьютинга
- •4.2. Архитектура протоколов Grid
- •4.3. Практическая реализация архитектуры Grid-протоколов
- •Контрольные вопросы и задания
- •Заключение
Основные принципы организации распределенной обработки информации
Требуемые свойства систем
распределенной обработки информации
Для достижения целей реальной и эффективной распределенной обработки информации вычислительные системы должны обладать рядом важнейших свойств (атрибутов), основными из которых являются прозрачность, открытость, переносимость приложений, гибкость, масштабируемость, безопасность.
Под прозрачностью (transparency) понимают «незаметность» для пользователя внутренней работы системы, что достигается путем сокрытия от пользователя аспектов организации и реализации распределенной обработки информации. Пользователи распределенной системы должны обладать доступом к ресурсам, не задаваясь вопросами о взаимодействии между процессами, о физическом месте размещения ресурсов, о том, какой именно процесс обслуживает тот или иной запрос пользователя.
В «Эталонной модели распределенной обработки информации в открытой системе» Международной организации по стандартизации ISO (International Standardization Organization) определены восемь «типов прозрачности», обеспечиваемых в распределенной системе, а именно:
1) Прозрачность доступа (access transparency) скрывает от пользователя детали реализации сетевых протоколов, обеспечивающих связь между удаленными компьютерами. Кроме того, она также предоставляет универсальные средства доступа к данным, хранимым в различных форматах по всей системе;
2) Прозрачность местоположения (location transparency) основана на прозрачности доступа и предназначена для сокрытия физического местоположения ресурсов в распределенной системе от клиента, желающего ими воспользоваться. Распределенная система, в которой реализована прозрачность местоположения, предоставляет доступ к удаленным файлам так, как если бы они являлись локальными;
3) Прозрачность сбоев (failure transparency) представляет собой метод обеспечения отказоустойчивости в распределенных системах. В случае выхода из строя какого-то ресурса либо компьютера сети пользователи сети могут заметить лишь некоторое снижение быстродействия. Прозрачность сбоев обычно реализуется путем репликации (replication) ресурсов либо создания контрольных точек восстановления. При применении репликации система обеспечивает дублирование ресурсов, выполняющих одни и те же функции. Даже если из строя выйдут все копии, кроме одной, распределенная система продолжит свое функционирование. Система, в которой используются контрольные точки, периодически выполняет сохранение информации о состоянии объектов (например, процессов), по которым они могут быть восстановлены, если сбой в распределенной системе приведет к потере этих объектов;
4) Прозрачность репликации (replication transparency) позволяет скрыть от пользователя факт существования нескольких копий того или иного ресурса, доступного в системе. В такой системе доступ к группе реплицированных ресурсов осуществляется аналогично тому, как если бы доступным являлся один-единственный ресурс;
5) Прозрачность постоянства (persistence transparency) скрывает от пользователя информацию о месте хранения ресурса (будь то ОЗУ или дисковый накопитель);
6) Прозрачность транзакций (transaction transparency) позволяет системе добиваться непротиворечивости, скрывая выполнение согласования в группе ресурсов. Транзакции включают запросы к службам (например, доступ к файлам и вызов функций), позволяющие менять состояние системы. Следовательно, транзакции часто требуют создания контрольных точек либо выполнения репликации в целях обеспечения реализации других задач в распределенных системах. Прозрачность транзакций позволяет скрывать от пользователя детали реализации этих служб;
7) Прозрачность миграции (migration transparency);
8) Прозрачность изменения местоположения (relocation transpa-rency).
Прозрачность миграции и прозрачность изменения местоположения скрывают от пользователя все перемещения компонентов системы. Прозрачность миграции маскирует перемещения объекта с одного места в другое в распределенной системе, например, перемещение файла с одного сервера на другой. Прозрачность изменения местоположения маскирует перемещения одного объекта по отношению к другим объектам, с которыми он поддерживает связь.
Под открытостью понимают использование синтаксических и семантических правил, основанных на стандартах. Правильный интерфейс обеспечивает возможность правильной совместной работы одного произвольного процесса, нуждающегося в интерфейсе, с другим произвольным процессом, представляющим интерфейс.
Переносимость приложений характеризует возможность приложения, выполненного для одной системы, работать в составе другой системы.
Гибкость характеризует легкость конфигурирования системы при изменении состава компонентов.
Масштабируемость, или расширяемость (scalability), означает способность распределенной системы увеличиваться в масштабах (возможность подключения к системе дополнительных компонентов) без влияния на работу существующих приложений и пользователей. Масштабируемость рассматривается по отношению к размеру (подключение дополнительных пользователей и ресурсов), к географическому положению (пространственное расположение пользователей и ресурсов), к административному устройству (управление в административно независимых организациях). Проблемы масштабируемости обычно связаны с «узкими» местами по обслуживанию (один сервер для множества клиентов), по данным (один файл с общей информацией), по алгоритмам (централизованный алгоритм и перегрузка коммуникационной сети).
Применение децентрализованных алгоритмов придает распределенной системе следующие характерные черты:
• никто не обладает полной информацией о системе;
• решения принимаются на основе локальной информации;
• сбой в одном месте не вызывает нарушения работы алгоритма;
• существования единого времени не требуется.
Требование масштабируемости является существенным препятствием на пути распространения систем, реализованных на базе локальных сетей, на уровень сетей глобальных.
Безопасность распределенных систем связана с обеспечением защиты ресурсов от атак со стороны враждебно настроенных пользователей. С целью повышения безопасности распределенные системы должны использовать защищенные каналы передачи данных, разрешать доступ к ресурсам только для авторизованных пользователей и допускать чтение передаваемых по сети данных только получателем.