- •Конспект лекций модуля № 1 "Введение" дисциплины "Распределенные программные системы и технологии" Тема 1. Определение и характеристики распределенных программных систем
- •1.1. Определение и задачи распределенных систем
- •1.2. Прозрачность
- •1.3. Открытость
- •1.4. Масштабируемость
- •1.5. Дополнительные свойства распределенных систем
- •1.5.1. Отказоустойчивость.
- •1.5.2. Безопаснтность.
- •1.6. Проблемы создания распределенных систем
- •Тема 2. Организация распределенных систем
- •2.1. Уровни распределенных программных систем
- •2.2. Аппаратный уровень
- •2.2.1. Классификация Флина
- •Simd(векторные компьютеры)
- •Misd(систалический массив)
- •Mimd(локальные, глобальные сети)
- •2.2.2. Классификация, основанная на процессорах и памяти (разделённой памяти)
- •2.2.3. Мультипроцессоры и мультикомпьютеры Базовые архитектуры
- •Мультипроцессоры
- •Гомогенные мультикомпьютерные системы
- •Гетерогенные мультикомпьютерные системы
- •2.3. Уровень операционных систем
- •2.3.1. Виды операционных систем
- •2.3.2 Распределенные операционные системы
- •Операционные системы для однопроцессорных компьютеров
- •Мультипроцессорные операционные системы
- •Мультикомпьютерные операционные системы
- •Системы с распределенной разделяемой памятью
- •2.3.3. Сетевые операционные системы
- •2.4. Программное обеспечение промежуточного уровня
- •2.4.1. Позиционирование программного обеспечения промежуточного уровня
- •2.4.2. Модели промежуточного уровня
- •2.4.3. Службы промежуточного уровня
- •2.4.4. Промежуточный уровень и открытость
- •Тема 3. Архитектуры распределенных программных систем
- •3.1. Протокол запрос-ответ
- •3.2. Выбор архитектуры
- •3.2.1.Виды архитектур
- •3.2.2. Архитектура клиент/сервер
- •3.2.3. Трехзвенная архитектура
- •3.2.4. Архитектура распределенных объектов.
- •Тема 4. Декомпозиция программных систем
- •4.1. Проектирование модульных систем
- •4.1.1. Основные понятия
- •4.3.2. Проектирование на основе структур данных (Data-Structure-Centered Design)
- •4.3.3. Компонентное проектирование (Component-Based Design)
- •4.1. Декомпозиция программных систем
- •4.1.1. Объектно-ориентированная декомпозиция
- •4.1.2. Статически-ориентированная декомпозиция
- •4.2. Метрики связанности модулей
- •4.2.1. Основные метрики
- •4.2.2. Главная последовательность
- •4.2.3. Расстояние от главной последовательности
- •4.3. Параллелизм программных систем
- •4.3.1 Признаки параллельных программ
- •4.3.2. Параллелизм данных (Data Parallel)
- •4.3.3. Параллелизм задач
- •4.3.3.1. Общая идея
- •4.3.3.2. Модель процесс/канал
- •4.3.3.3. Модель обмен сообщениями
- •4.3.3.3. Модель общая память
- •4.3.4. Оценки эффективности параллелизма.
1.3. Открытость
Взаимодействие компонентов РПС через заранее определенные интерфейсы предполагает наличие у нее такого свойства как открытость (openess).
Открытая распределенная система (open distributed system) - это система, предлагающая службы, вызов которых требует стандартные синтаксис и семантику.
В распределенных системах службы обычно определяются через интерфейсы (interfaces), которые часто описываются при помощи языка определения интерфейсов (Interface Definition Language, IDL). Описание интерфейса на IDL почти исключительно касается синтаксиса служб. Другими словами, оно точно отражает имена доступных функций, типы параметров, возвращаемых значений, исключительные ситуации, которые могут быть возбуждены службой и т. п. Наиболее сложно точно описать то, что делает эта служба, то есть семантику интерфейсов. На практике подобные спецификации задаются неформально, посредством естественного языка.
Будучи правильно описанным, определение интерфейса допускает возможность совместной работы произвольного процесса, нуждающегося в таком интерфейсе, с другим произвольным процессом, предоставляющим этот интерфейс. Определение интерфейса также позволяет двум независимым группам создать абсолютно разные реализации этого интерфейса для двух различных распределенных систем, которые будут работать абсолютно одинаково.
Правильное определение открытой распределенной системы самодостаточно и нейтрально.
Самодостаточность означает, что в системе имеется все необходимое для реализации интерфейса.
Нейтральность означает, что спецификация не определяет внешний вид реализации.
Самодостаточность и нейтральность необходимы для обеспечения переносимости и способности к взаимодействию.
Кроме этих свойств открытые РПС должны обладать способностью к взаимодействию, переносимостью и гибкостью
Способность к взаимодействию (interoperability) характеризует, насколько две реализации систем или компонентов от разных производителей в состоянии совместно работать, полагаясь только на то, что службы каждой из них соответствуют общему стандарту.
Переносимость (portability) характеризует то, насколько приложение, разработанное для распределенной системы А, может без изменений выполняться в распределенной системе В, реализуя те же, что и в А интерфейсы.
Гибкость (flexible) характеризует легкость конфигурирования системы, состоящей из различных компонентов, возможно от разных производителей. Не должны вызывать затруднений добавление к системе новых компонентов или замена существующих, при этом прочие компоненты, с которыми не производилось никаких действий, должны оставаться неизменными. Другими словами, открытая распределенная система должна быть расширяемой. Например, к гибкой системе должно быть относительно несложно добавить части, работающие под управлением другой операционной системы, или даже заменить всю файловую систему целиком. Насколько всем нам знакома сегодняшняя реальность, говорить о гибкости куда проще, чем ее осуществить.
В построении гибких открытых распределенных систем решающим фактором оказывается организация этих систем в виде наборов относительно небольших и легко заменяемых или адаптируемых компонентов. Это предполагает необходимость определения не только интерфейсов верхнего уровня, с которыми работают пользователи и приложения, но также и интерфейсов внутренних модулей системы и описания взаимодействия этих модулей. Однако это не всегда возможно, т.к. многие существующие системы разрабатывались для решения конкретных задач, и являются монолитными системами (закрытыми).
