15 - utemov

реклама
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
РОССИЙСКИЙ
ГОСУДАРСТВЕНЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ
Филиал в г. Кирове
Кафедра математических и естественнонаучных дисциплин
РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ
Учебно-методический комплекс
для специальности
080801 Прикладная информатика (в информационной сфере)
Киров
2006
Распределенные вычисления
Учебно-методический комплекс
Составитель:
Воронова Л. И.; доктор физико-математических наук, профессор,
заведующая кафедрой программной инженерии:
Российский государственный гуманитарный университет
Программа утверждена на заседании кафедры Программной инженерии
(протокол № 9 от 16 марта 2007)
Адаптировано в соответствии с учебным планом специальность 080801 Прикладная
информатика в информационной сфере филиала РГГУ
в г. Кирове к.п.н, доцентом Осокиной Г.И.
Утверждено на заседании кафедры математических и естественнонаучных
дисциплин филиала РГГУ в г. Кирове _____________ 2007 г., протокол № _____
© Российский государственный гуманитарный университет, 2007
2
ПРЕДИСЛОВИЕ
В последнее десятилетие важное место в создании информационных систем
отводится объектным технологиям. Целый ряд таких технологий приобрел статус
стандартов де-факто (технологии CORBA, JavaBeans, .NET). Все они связаны с
разработкой и поддержкой средств архитектуры промежуточного слоя для создания
распределенных неоднородных объектных интероперабельных систем различного
функционального назначения, в том числе и ИС.
В связи с нарастающей сложностью разработки мощных территориально
распределенных информационных систем студентам необходимо иметь систематическое
представление и навыки работы с новейшими технологиями, обеспечивающими
распределенные вычисления.
Программа по дисциплине «Распределенные вычисления» предназначена для
студентов дневного и заочного отделений, обучающихся по специальности 351400 –
Прикладная информатика (в информационной сфере) и относится к блоку дисциплин
специализации. Курс читается в восьмом семестре. Программа курса включает в себя
перечень и краткое содержание рассматриваемых разделов и тем, тематические планы
лекций и лабораторных работ, перечни вопросов для промежуточного тестирования и
экзамена, списки тем курсовых работ и современных информационных технологий и
мультимедийных продуктов.
Предметом
курса
являются
парадигма
распределенных
вычислений,
распределенные (объектные) технологии, программное обеспечение среднего слоя,
особенности разработки распределенных систем.
Основное назначение данного курса - систематическое введение в идеи и методы,
используемые при разработке современных распределенных интероперабельных систем
для высокопроизводительных вычислений. В курсе более подробно рассматривается
CORBA-технология, являющаяся стандартом де-факто построения распределенных
вычислительных систем.
Для проверки усвоения содержания курса предусмотрено промежуточное
тестирование, проводимое до начала экзаменационной сессии.
Для успешного завершения обучения по курсу “Распределенные вычисления”
студенты должны овладеть теоретическим материалом в объеме программы, выполнить
лабораторный практикум, состоящий из четырех лабораторных работ, а также пройти
промежуточное тестирование, выполнив одну контрольную работу.
Итоговой формой контроля по курсу “ Распределенные вычисления” является
экзамен.
3
ПРОГРАММА КУРСА
Организационно-методический раздел
Цель курса
Целью курса является подготовка специалистов к компетентному решению задач,
связанных с использованием технологий распределенных вычислений в сложных
экономических и информационных системах.
Предметом
курса
являются
парадигма
распределенных
вычислений,
распределенные (объектные) технологии, программное обеспечение среднего слоя,
особенности разработки распределенных систем.
1.
Задачи курса
- обеспечение студентов теоретическими знаниями о парадигме и технологиях
распределенных вычислений, эволюции распределенных технологий;
- знакомство с различными архитектурами параллельных машин и методологиями
проектирования параллельных алгоритмов;
- изучение теоретических основ разработки ПО среднего слоя(middleware) и
особенностей разработки интероперабельных систем распределенных вычислений;
- знакомство с международными стандартами разработки распределенных
приложений; метамоделью распределенной системы
2.
- изучение основных положений спецификации OMG CORBA;
- формирование практических навыков разработки распределенных приложений на
основе ПО среднего слоя с использованием CORBA-технологии
3.
Связь с другими дисциплинами
Изучение
дисциплины
базируется
на
знании
естественно-научных
и
общепрофессиональных дисциплин, в том числе на материале курсов “Проектирование
информационных систем”, «Базы данных», «СУБД» и служит методологической основой
для курсов “Интеллектуальные информационные системы”, “Информационная
безопасность”, “Разработка распределенных приложений”.
4.
Требования к уровню освоения содержания дисциплины
В результате изучения курса студент
должен знать:
4
- типологию и методологию распределенных вычислений;
основы
системного
подхода
к
проектированию
интероперабельных
информационных систем распределенных вычислений;
- основные кластерные решения
- основные спецификации OMG CORBA;
должен уметь
- проектировать и реализовать распределенные приложения, системы распределенных
вычислений
В методике преподавания курса сочетаются теоретические и практические занятия.
Курс предполагает промежуточные формы контроля в виде тестирования и оценки
результатов выполнения студентами лабораторных работ.
Объем и содержание курса
1. Объем курса:
общая трудоемкость – 80 час.,
в том числе:
- лекции – 20 час,
- лабораторные работы – 16 час.
контрольные работы - 1
форма контроля - экзамен
2. Разделы курса
Раздел 1. Введение. Парадигма распределенных вычислений
Раздел 2. Кластерные решения. Параллельные алгоритмы
Раздел 3. Эволюция объектной технологии
Раздел 4. Принципы ПО среднего слоя
3. Содержание разделов и основных тем
Раздел 1. Введение. Парадигма распределенных вычислений
Тема 1. Введение. Обзор актуальных проблем и задач в компьютерной индустрии
5
Информационные технологии и экономическая инфраструктура общества. Обзор
наиболее актуальных проблем и задач в компьютерной индустрии: разработка
интегральных инструментальных сред эффективной поддержки технологии Хранилища
Данных (Data WareHouse); развитие интероперабельного промежуточного слоя и
внедрение "открытых" объектно-ориентированных систем со средствами поддержки
интероперабельных сред неоднородных информационных ресурсов; разработка и
внедрение
высокоскоростных
телекоммуникационных
технологий,
создание
масштабируемых высокопроизводительных распределенных суперкомпьютерных систем
с организацией расширенного коллективного доступа; разработка и внедрение методов и
средств обеспечения информационной безопасности.
Тема 2. Парадигма распределенных вычислений
Основные направления в развитии высокопроизводительных вычислений:
суперкомпьютерные системы, параллельные архитектуры, распределенные программные
системы.
Параллелизм как фундаментальное требование к алгоритмам и программному
обеспечению для высокопроизводительных вычислений.
Общие свойства распределенных вычислительных систем: управляемость,
производительность, масштабируемость, расширяемость, надежность, безопасность,
простота модификации.
Требования к современным приложениям распределенных корпоративных
информационных систем: пространственное разделение, структурное соответствие,
ориентация на внешнюю информацию.
6
Раздел 2. Кластерные решения. Параллельные алгоритмы
Тема 3. Суперкомпьютерные системы
Пирамида уровней кластерной системы. Логическая структура кластера. Типы
кластеров. Кластерные решения компаний IBM, HP, SGI. Суперкомпьютерные системы.
Тенденции
и
перспективы
развития
наиболее
широко
распространенных
суперкомпьютерных архитектур. TOP500.
Тема 4. Основные архитектуры параллельных компьютеров
Классификации параллельных компьютеров по типу контрольного устройства для
управления процессорами по расположению памяти в компьютере, по сети, связывающей
процессоры.
Системы ОКМД (один поток команд - много потоков данных) (SIMD), МКМД (много
потоков команд - много потоков данных) (MIMD). Основные архитектуры параллельных
компьютеров: симметричные мультипроцессорные системы с общей памятью (SMP) и
мультипроцессорные системы с распределенной памятью (MPP).
Тема 5. Параллельные алгоритмы
Зернистость или степень параллелизма алгоритма. Модель передачи сообщений
(message passing). Модель с общей памятью (shared memory). Коммуникационные пакеты
PVM (Parallel Virtual Machine) и MPI(message passing interface).
Проектирование параллельных алгоритмов. Основные этапы: декомпозиция,
коммуникации, кластеризация, распределение.
Характеристики производительности параллельного алгоритма. Ускорение и
эффективность. Закон Амдаля. Факторы, снижающие ускорение (overheads). Способы
оценки доли параллельных вычислений.
Средства
параллельного
программирования.
Специализированные
языки
программирования Concurrent C++ (CC++), Fortran M (FM). Стандартные средства
операционных
систем.
Специализированные
средства
операционных
систем.
Универсальные библиотеки параллельного программирования передачи сообщений.
Стандартизация интерфейса передачи сообщений MPI. Понятие коммуникатора.
Библиотеки параллельных программ MPI (LAM, MPICH и др).
Раздел 3. Эволюция объектной технологии
Тема 6. Распределенные вычислительные системы
7
Архитектура вычислительной системы. Модели: файлового сервера, сервера СУБД,
сервера приложений, доступ через Intra-/Internet CGI/API, доступ через Intra-/Internet через
мигрирующие программы распределенной системы. Разделение на слои: представления,
бизнес-логика, доступа к данным.
Понятие распределенной системы. Требования к современным распределенным
системам: функциональные и качественные (масштабируемость, открытость, поддержка
неоднородности, разделение ресурсов, отказоустойчивость, прозрачность).
Тема 7. Эволюция распределенных технологий. Метамодель
Эволюция
объектной
технологии
(распределенные
системы,
языки
программирования, разработка ПО). Метамодель распределенной системы (компоненты,
типы, необъектные заявки, заявки, исключения, операции, подтипы и множественное
наследование).
Особенности разработки распределенных систем с точки зрения проектировщика
(ссылки, задержки заявки, активация/деактивация, миграция, постоянное хранение,
одновременный доступ, связь, безопасность).
Объектно-ориентированные технологии разработки распределенных приложений
CORBA, RMI и DCOM. Сравнительные характеристики технологий.
Раздел 4. ПО среднего слоя(Middleware)
Тема 8. Определение и типы ПО среднего слоя
Недостатки традиционного структурного подхода к разработке больших
информационных систем. Требования к интеграции разнородных приложений в
гетерогенных компьютерных средах.
Концептуальный разрыв при использовании эталонной модели ISO/OSI и сетевого
протокола. Виды ПО среднего слоя(транзакционно-ориентированное, ориентированное на
сообщения, системы, основанные на RPC, объектно-ориентированное). Принципы
удаленного вызова процедур (RPC). Маршаллинг/демаршаллинг. Вызов метода и
объектная заявка. Стабы. Синхронизация.
Тема 9. Стандарты OMG. CORBA
Object Management Group(OMG) – история создания. Стандарты OMG.
Спецификация Common Object Request Broker Architecture (CORBA). Роль CORBA в
построении распределенной системы. Главные компоненты стандарта CORBA: объектный
8
брокер запросов (Object Request Broker); язык определения интерфейсов (Interface
Definition Language); объектный адаптер (Object adapter); репозиторий интерфейсов
(Interface Repository). Схема работы объектного брокера запросов. Основные задачи
базового объектного адаптера ВОА.
Тема 10. Язык описания интерфейсов (IDL)
Язык описания интерфейсов (IDL). Динамический интерфейс вызова (DII).
репозитарий интерфейсов (Interface Repositary). протоколы взаимодействия различных
объектных брокеров (GIOP, IIOP). Основные объектные сервисы стандарта CORBA.
Общие свойства (Common Facilities). Объекты приложения (Application Objects).
Механизмы PUSH и PULL. Использование средств Java.
ORBIX 2.0 - реализация стандарта CORBA 2.0. Определение интерфейсов. Клиенты
и серверы. Механизмы реализации IDL интерфейса. Основные средства: Interface
Repositary и Dynamic Invocation Interface, дополнительные средства: фильтры (Filters),
загрузчики (Loaders), локаторы (Locators), Smart Proxy.
9
ТЕМАТИЧЕСКИЙ ПЛАН ЗАНЯТИЙ
Аудиторных
занятий, час
Тема занятия
лекций
Раздел 1. Введение.
вычислений
Парадигма
распределенных
лаб.
работ
4
Тема 1. Введение. Обзор актуальных проблем и задач в
компьютерной индустрии
Тема 2. Парадигма распределенных вычислений
Раздел
2.
алгоритмы
Кластерные
решения.
Параллельные
4
Тема 3. Суперкомпьютерные системы
Тема 4. Основные архитектуры параллельных компьютеров
Раздел 3. Эволюция объектной технологии
6
Тема 5. Параллельные алгоритмы
4
Тема 6. Распределенные вычислительные системы
4
Тема 7. Эволюция распределенных технологий. Метамодель
Раздел 4. Принципы ПО среднего слоя
6
Тема 8. Определение и типы ПО среднего слоя
Тема 9. Стандарты OMG. CORBA
8
Тема 10. Язык описания интерфейсов (IDL)
Итого
20
10
16
СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ
Основная
1. М.Р.Когаловский Энциклопедия технологий баз данных. – М.:Финансы и статистика,
2002. -800с.
2. Дирк С., Гарбис Д, Рассел П. Корпоративные системы на основе CORBA. – М.:
Издательский дом «Вильямс», 2000 г. - 368 с.
3. А. Цимбал Технология CORBA для профессионалов (+CD-ROM). СПб.:
Издательство «Питер», 2001 г. - 624 с..
4. А.А. Цимбал, М.Л. Аншина Технологии создания распределенных систем. Для
профессионалов. – СПб.:Питер, 2003. -576с.
5. Джейсон Причард Com и Corba. Просто и доступно. – М.: Издательство: Лори, 2001
г.. - 372 с.
6. Арсеньев Б.П., Яковлев С.А. Интеграция распределенных баз данных. С-Пб.:
“Лань”, 2001.
7. Лацис А. Как построить и использовать суперкомпьютер. – М.Бестселлер.2003. –
240с.
Дополнительная
8. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления.- СПб.:БХВ-Петербург,
2004.-608с
9. Корнеев В.Д. Параллельное программирование в MPI. – Москва-Ижевск: Институт
компьютерных исследований, 2003. – 304с.
10. Дж. Сигел CORBA 3. М.:МАЛИП, 2002. – 412с.
11. Д.Кренке Теория и практика построения баз данных. – СПб.:Питер, 2003. -800с.
12. Нирва Мориссо-Леруа, Мартин К. Соломон, Джули Басу Oracle8i: Java-компонентное
программирование при помощи EJB, CORBA и JSP. Изд-во «Лори», 2002. - 484с.
13. www.top500.org
14. www.parallel.ru
15. http://ilya-evseev.narod.ru/articles/#csa
16. www.corba.org
11
СПИСОК ЛАБОРАТОРНЫХ РАБОТ
1. Моделирование работы многопроцессорной вычислительной системы при
выполнении операции перемножения матриц.
2. Установка и настройка инструментария для поддержки распределенных
вычислений: Builder C++, VisiBroker, Java 2 SDK или Java(TM)2 Runtime
Environment
3. Разработка простейшей распределенной системы на основе CORBA-технологии:
Часть 1. Создание CORBA-сервера (описание функций, выполняемых на сервере,
описание параметров обмена между приложениями, создание IDLфайлов, создание приложения сервера в среде C++ Builder).
Часть 2. Создание клиентского приложения в среде C++ Builder.
Часть 3. Инициализация связи клиента с сервером. Тестирование работы
распределенной системы в локальной сети.
12
СИСТЕМА ТЕКУЩЕГО И ИТОГОВОГО КОНТРОЛЯ
К обязательной сдаче экзамена привлекаются студенты, не набравшие
количество баллов, необходимых для получения положительной оценки (при условии
выполнения всех лабораторных работ).
Форма контроля
Срок отчетности
Оценки
Контрольная работа
6 неделя
0 -15 баллов
Отчет по 1,2 лабораторным
12 неделя
0 -10 баллов
работам
за каждую
Отчет по 3 лабораторной
работе
18 неделя
Итоговая аттестация
0 -20 баллов
0 -45 баллов
Итого
0 – 100
баллов
Для получения положительной оценки по итогам текущей успеваемости
необходимо набрать 61 балл
(при условии выполнения всех форм контроля)
В зависимости от количества набранных в течение семестра баллов
выставляются следующие экзаменационные оценки:
61-74 баллов экзамен - “удовлетворительно”
75 - 90 баллов - экзамен - “хорошо”
91 и более баллов - экзамен - “отлично”
К обязательной сдаче экзамена привлекаются студенты, не набравшие
количество баллов, необходимых для получения положительной оценки.
К сдаче экзаменов в традиционной форме также допускаются студенты,
желающие получить более высокую оценку.
13
ВОПРОСЫ ДЛЯ КОНТРОЛЬНОЙ РАБОТЫ
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Объяснить
взаимосвязь
направлений
развития
информационных
технологий и экономической инфраструктуры общества.
Дать обзор наиболее актуальных проблем и задач в компьютерной
индустрии.
Описать основные направления в развитии высокопроизводительных
вычислений
Описать общие свойства распределенных вычислительных систем.
Сформулировать требования к современным приложениям распределенных
корпоративных информационных систем
Раскрыть пирамиду уровней кластерной системы
Описать основные признаки и классы суперкомпьютерных систем
Что такое TOP500? Провести анализ 3-5 позиций.
Привести классификации параллельных компьютеров
Что такое зернистость алгоритма
Описать модель передачи сообщений (message passing)
Описать модель с общей памятью (shared memory)
Характеристики производительности параллельного алгоритма
Закон Амдаля и его следствия
Коммуникационный пакет PVM
Коммуникационный пакет MPI
Библиотеки параллельных программ
Архитектура вычислительной системы(модели/слои)
Модель файлового сервера
Модель сервера СУБД
Модель сервера приложений
Модель доступа через Intra-/Internet CGI/API
Модель доступа через Intra-/Internet через мигрирующие программы
распределенной системы)
Требования к современным распределенным системам
Описать эволюцию объектной технологии
Метамодель распределенной системы
14
ВОПРОСЫ ДЛЯ ИТОГОВОЙ АТТЕСТАЦИИ
Блок вопросов 1:
1. В чем различие между системой клиент-сервер и распределенной системой?
2. Является ли трехуровневая архитектура примером распределенной системы?
3. Почему не все системы построены как распределенные системы?
4. Каковы восемь измерений прозрачности в распределенных системах?
5. В чем различие между прозрачностью местонахождения и прозрачностью
доступа?
6. В чем различия между прозрачностью производительности и прозрачностью
масштабируемости?
7. Что такое архитектура системы?
8. Классифицируйте архитектуры.
9. Что такое распределенная система?
10. Классифицируйте требования к системам.
Блок вопросов 2:
1. Приведите основные этапы эволюции архитектур и технологий
распределенных систем.
2. Приведите уровни абстракций представления систем.
3. Что такое объект в распределенной системе?
4. Что такое объектный тип?
5. Что такое объектная заявка?
6. В чем различие между объектом и объектным типом?
7. Почему в метаобъектную модель распределенных объектов включены
необъектные типы?
8. Что такое исключение?
9. Назовите основные особенности распределенных систем с точки зрения их
разработчика.
Блок вопросов 3:
1. Каким уровням модели ISO/OSI соответствует ПО среднего слоя?
2. Перечислите виды ПО среднего слоя.
3. Поясните почему не следует использовать транспортный уровень
непосредственно.
4. Какие задачи решаются уровнем представления в ПО среднего слоя?
5. Что такое маршалинг (marshaling)?
6. В чем отличие статического от динамического маршалинга (marshaling)?
7. Назовите задачи, решаемые стабами (stub).
15
8. Что такое безопасность типов?
9. Какой вклад вносят клиентские и серверные стабы в обеспечение
безопасности типов?
10. Что такое язык определения интерфейсов (IDL)?
11. Перечислите основные этапы разработки распределенных систем.
Блок вопросов 4:
1. Назовите основные стандарты, принятые Object Management Group.
2. В чем суть стандарта MDA (Model Driven Architecture)?
3. Что такое UML (Unified Modeling Language)?
4. Опишите архитектуру управления объектами стандарта OMG/OMA.
5. Что такое брокер объектных запросов?
6. Что такое сервисы CORBA?
7. Что такое общие (горизонтальные) средства в CORBA?
8. Что такое интерфейсы предметной области CORBA?
9. Перечислите основные понятия объектной модели CORBA.
10. Что такое объект CORBA.
11. Как различается объектная модель CORBA и COM в отношении наследования
интерфейсов?
12. Определите основные элементы архитектуры CORBA.
13. Определите роль стаба в CORBA.
14. Определите роль скелетона в CORBA.
15. Что такое объектный адаптер?
16. В чем отличие статического и динамического вызовов в CORBA?
16
ПРИМЕРНЫЕ ТЕМЫ РЕФЕРАТОВ И ДОКЛАДОВ
1. CORBA и распределенные компьютерные системы
2. Интеграция CORBA 3 с Java и Интернетом
3. Ландшафт области распределенных объектов. COM и CORBA – борьба
интересов и тенденции развития
4. Компонентная модель EJB (Enterprise JavaBeans)
5. Компонентная модель CCM (CORBA Component Model
6. Компонентная модель .Net
7. XML- как составная часть технологий создания распределенных систем
8. Сервисы сообщений как основной механизм взаимодействия для
распределенных приложений
9. WEB-приложения
10. Корпоративные системы на основе CORBA
11. Интеграция с базами данных и обработка транзакций с использованием
технологии CORBA
12. Стандарты платформы CORBA
13. Большие задачи и параллельные вычисления
14. Технологии параллельного программирования
15. Как построить и использовать суперкомпьютер?
17
СПИСОК СОВРЕМЕННЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И
МУЛЬТИМЕДИЙНЫХ ПРОДУКТОВ
 Internet
 Microsoft Office XP;
 Builder C++,
 VisiBroker,
 Java 2 SDK
 Java(TM)2 Runtime Environment;
 OMG;
 CORBA;
 MPI;
 PVM;
 TOP500
 мультимедийный проектор MITSUBISHI SL2U;
18
Скачать