СОВРЕМЕННЫЕ МЕТОДЫ РАСПРЕДЕЛЁННЫХ ВЫЧИСЛЕНИЙ Курс лекций Ковалёв С.П., 2009 Постановка задачи о глобальной интеграции информационных ресурсов Тема 1 Примеры глобальных распределённых приложений • Военно-промышленный комплекс – Имитационное моделирование военных действий (HLA) – Удаленное управление военной техникой («война роботов») • Экономика – Глобальные цепи поставки – Сети распределения ресурсов (энергетика, финансы) – Маркетинг в глобальной информационной сети • Наука – – – – Международные исследовательские проекты (LHC) Прогнозирование погоды Расшифровка генома Общемировые виртуальные библиотеки • Социум – Глобальные социальные сети – Мониторинг местонахождения человека («Большой Брат») Характеристики масштаба систем • • • • • Большое количество компонентов (104-108 ед.) Географическая протяжённость объектов (102-104 км) Высокая частота изменений состояния объектов (10-5-10-6 с) Техническая неоднородность компонентов (102 наименований) Административная и политическая разобщённость (102 организаций) Особенности разработки крупномасштабных систем • Крупномасштабная технологическая инфраструктура – – – – Вычислительные кластеры и Grid-системы Анализ больших массивов данных (OLAP) Управление глобальными потоками данных реального времени Переход на IPv6 • Технологии комплексирования разнородных компонентов – Контрактный подход к проектированию многократно используемых компонентов – Универсальные платформы исполнения байт-кода (Java, .Net) – «Тонкие» клиенты (Web-интерфейс) – Администрирование на основе универсальных политик – Проектирование метаданных и онтологий предметных областей (Semantic Web/Grid) Особенности разработки крупномасштабных систем (продолжение) • Технологии повышения уровня адаптивности систем – – – – – – Автоматический мониторинг состояния окружения Автоматическое реагирование на изменения в окружении Автоматическое восстановление после сбоев Автоматизированное сопровождение Адаптивный инкрементальный технологический цикл создания систем Разработка программных агентов • Модельно-управляемая разработка (model-driven development) – Автоматическая генерация программного кода по формальным моделям – Формализация нефункциональных требований – Интеграция разнородных архитектурных разрезов (структурный, объектный, аспектный) – Соответствие шаблонам анализа и проектирования – Разработка горизонтальных метамоделей, параметризованных формальной моделью предметной области Математические основы инженерии распределённых систем Тема 2 Коммуникационное время • Сценарий выполнения системы – множество T состояний либо событий Система составляется из взаимодействующих последовательных процессов Частичный порядок t t', где t, t' T: • • (1) (2) (3) t и t' - последовательные шаги выполнения одного процесса, либо имеет место акт передачи данных с источником t и назначением t', либо между t и t' имеется конечная цепь шагов вида (1) или (2). Выполнение системы – гомоморфизм : T |R Развертывание системы – отображение c : |T| C, где C – множество компонентов Подсистемы • • • – – – Параллельные (не взаимодействующие) Последовательные (линейно упорядоченные) Асинхронные (отделимые) Шаблоны проектирования распределённых систем • Клиент-сервер: С = {c, s} t: c(t) = s t', t": (c(t') = c(t") = c) & t [t', t"] (интервальное замыкание сценария клиента включает сценарий сервера) • Многослойная архитектура: С= t, t': t < t' (n: n [c(t), c(t')] (u: u [t, t'] & c(u) = n)) (отображение c непрерывно в интервальной топологии) • Параллельное выполнение: С произвольно t, t': ¬c(t) = c(t') ¬t < t' & ¬t' < t (сценарий каждого компонента является объединением компонент связности) Принципы компонентного проектирования • • Явное описание семантики состояний/событий Основные понятия: – – – – • Компоненты (components) Связки (connectors) Конфигурации (configurations) Ограничения (constraints) Глубокая детализация процесса взаимодействия G.port1 G.role1 G.glue G.role2 G.port2 ----------------------------------------------------------------------С1.port | С2.port | С1.role | С2.role компонент С1 взаимодействует с С2 посредством связки G Языки описания архитектуры • Wright – – • Концептуальное обогащение CSP Формализация систем распределённого имитационного моделирования (стандарт HLA) Rapide – – • Глубоко формализованная семантика событий Верификация обработки транзакций CHAM – – – • Представление динамики как отклонения от равновесного состояния Аналог законов ле Шателье химического равновесия Моделирование многокомпонентных систем, подчиняющихся статистическим законам устойчивости xADL – – XML-описания структурных и поведенческих атрибутов Интеграция моделей компонентов, описанных на различных языках Анализ эффективности распределённых систем Тема 3 Квалиметрические модели программных систем • Показатели эффективности программных изделий (ISO-9126) – Характер изменения во времени – Характер изменения ресурсов • Квалиметрическое моделирование – определение значений показателей эффективности на этапе проектирования • Квалиметрическая модель – зависимость значений показателей эффективности от параметров окружения • Пример: Методы оценки эффективности • Аналитические методы – Составление и решение уравнений динамики – Проблема: отсутствие аналитической теории динамики программных систем в своем окружении • Эмпирические методы – Измерение поведения копий, воспроизводящих оригиналы в малом масштабе – Проблема: отсутствие теории подобия для программных систем • Статистические методы – Оценки средних значений показателей, полученных в большом числе испытаний – Проблема: «плохие» статистические характеристики поведения программных систем (фрактальное распределение с бесконечной дисперсией) Анализ зависимостей • Представление сценария поведения системы графом, оснащенным значениями сложности вершин/дуг • Описание системы как класса сценариев – Помеченные структуры событий – Сети Петри • Выявление зависимостей по элементам данных – Информационная зависимость: out in – Прочие зависимости: in in, out out, in out • Выделение взаимно независимых подсценариев (распараллеливание) • Построение критических путей в графах сценариев • Вычисление длительности выполнения шагов (построение гомоморфизма выполнения : T |R) Моделирование вычислений • Отображение вычислительных задач на архитектуру вычислительных средств • Редукция бесконечных информационных объектов (таких как множества чисел) на конечные множества доступных ресурсов – Арифметика целых чисел по модулю 2n – Арифметика с переполнением – IEEE-754 • Представление вычислительных операций формулами алгебры логики – Двузначная логика (двоичная арифметика) – Многозначная логика • Оценка сложности формул по длине (количеству базисных операций) • Оптимизация формул алгебры логики Статистические методы теории очередей • Вероятностная модель обмена данными • Представление функционирования системы совокупностью последовательных стохастических потоков запросов между компонентами • Статистические показатели – – – – – скорость потока запросов w – количество ожидающих запросов Tw – время ожидания запроса Ts – время обработки запроса • Производные показатели – = Ts – коэффициент загрузки – Tr = Tw + Ts – время жизни запроса – r = Tr – коэффициент использования (формула Литтла) Статистические методы теории очередей (продолжение) • Пуассоновское распределение входных запросов: – Pr[N(t) = k] = ((t)k/k!)e-t – r = /(1 – ) • Пример: Если = 1/3, Ts = 0,6, то Tr = Ts/(1 – ) = Ts/(1 – Ts) = 0,75 • Если входные потоки запросов распределены по Пуассону, то все потоки в системе будут распределены по Пуассону (теорема Джексона) • На практике потоки данных в сетях имеют фрактальное распределение – a–Hx(at) статистически подобно x(t), где H – параметр Хёрста – r = 1/(2(1 – H))/(1 – )H/(1 – H) – совпадает с Пуассоновским случаем при H = ½, но значительно больше при H 1 Интеграция данных Тема 4 Семантическая иерархия данных Уровень Формат семантической иерархии Представление Управление Пример языка доступа Данные (data) Поток байтов Значение переменной Файл Регулярные выражения Информация (information) Типизированная структура Схема данных База данных SQL Знания (knowledge) Правило вывода Онтология Экспертная система Prolog Шаблоны интеграции распределённых хранилищ данных • Склад (warehouse) – – – – Репликация в единое хранилище Пример: учетная система регионального масштаба Достоинства: непосредственный доступ Недостатки: большой объем, задержка актуализации • Федерация (federation) – – – – Общий интерфейс доступа (медиатор) к разнородным базам Пример: распределённая электронная библиотека Достоинства: отсутствие копий, актуальность Недостатки: высокий уровень готовности каждой базы • Семантическая интеграция (semantic integration) – Унификация данных согласно онтологии предметной области – Пример: глобальный атлас наук о Земле • Интеграция, основанная на модели (model-based integration) – Доступ к данным в соответствие с моделью рабочих процессов по их сбору и обработке – Пример: European datagrid (ЦЕРН) Метаданные • Структурированное описание структуры – – – – – Схема данных (диаграмма «сущность–связь») XML схема (ранее DTD) Аннотация документа Список прав доступа (ACL) Язык описания интерфейса программного доступа (IDL, WSDL) • Стандарт Dublin core – – – – – – – – – – – Участник [процесса создания] (contributor) Область (coverage) Создатель (creator) Дата (date) Описание (description) Формат (format) Идентификатор (identifier) Язык (language) Издатель (publisher) Ссылка (relation) Права (rights) Semantic Web • XML • RDF – – – – – Язык описания метаданных web-ресурсов Базовая единица языка – ресурс (URI) Основная конструкция – тройка <субъект, объект, предикат> Тройка также является ресурсом Правила вывода троек задаются схемой (RDF Schema) • OWL – Формальное описание онтологий предметных областей (онтология – совокупность терминов и отношений, вытекающих из определений) – – – – – – Обогащение языка RDF понятиями первого порядка Классы, свойства, отношения Встроенные типы данных (число, строка и т.д.) Перечислимые классы Свойства отношений (функциональность, транзитивность и т.д.) Дедуктивный вывод свойств (дескриптивная логика) Организация совместной работы ресурсов Тема 5 Рабочие процессы • Организация программных, человеческих и других ресурсов для выполнения общей функции • Структурная модель: преобразование входных данных (input) в выходные (output) под управлением (control) при помощи механизма (mechanism) • Событийная модель: асинхронный поток событий между обработчиками • Формальная модель: сеть Петри определенного вида – Наличие завершающего состояния – Все переходы достижимы Управление ресурсами предприятия (АСУП) • Цепь поставки (business-to-business) – – – – Планирование Склад Логистика Отбор поставщиков • Взаимодействие с клиентами – – – – Маркетинг Продажи Обслуживание Настройка • Управление производством – Предметно-ориентированные функции (MES) • Администрирование – – – – Финансы Юридическая поддержка Кадры Поддержка принятия управленческих решений Шаблоны проектирования рабочих процессов • Основные шаблоны – – – – – Последовательность Распараллеливание Синхронизация Исключающий выбор Схождение • Дополнительные шаблоны – – – – – Множественный выбор Синхронизирующее схождение Множественное схождение Дискриминатор Объединение «N из M» • Структурные шаблоны – Цикл – Завершение процесса • Прочие шаблоны – Клонирование действия – Интерливинг – Отмена Языки управления рабочими процессами Язык Разработчик Формат Поддержка подпроцессов Поддержка Описание доп. сценариев шаблонов выполнения SADT SofTech Диаграммный Вложенность блоков Нет Невозможно COSA Transflow Диаграммный, текстовый Привязка произвольного графа Есть Возможно XPDL WfMC XML Привязка произвольного графа Частично Невозможно BPEL IBM + Microsoft XML, диаграммный Вложенность блоков Частично Возможно Интеграция ресурсов реального времени Тема 6 Реализация требований реального времени • Время реакции на запрос не должно превышать установленного порога • Виды требований реального времени – Мягкое: нарушение приводит к ухудшению удобства – Жёсткое: нарушение равносильно отказу • Шкала ограничений реального времени – Системы управления (физические процессы): 10-8-10-3 с – Мультимедиа (биологические процессы): 10-3-10-1 с – Информационный обмен (когнитивные процессы): 10-1-102 с • Архитектура систем реального времени – Циклическая обработка входящих запросов – Реактивная модель: запрос обработка воздействие – Периодическая модель: тик_таймера сбор обработка воздействие Распределённые системы реального времени • (Почти) автономные узлы реального времени, соединённые сетью (возможно, также реального времени) • Количество узлов может быть ограничено пропускной способностью сети • Примеры – Встроенная система управления автомобилем – SCADA • Интерфейсы узлов – Интерфейс реального времени (к внешнему миру) – Интерфейс интеграции (к другим узлам) – Интерфейс конфигурирования (к управляющему воздействию) • Часто требуется единое астрономическое время на всех узлах (СОЕВ) Измерительные сети • Стандарт IEEE-1451 (1997 г.) • Базовый уровень крупномасштабных распределённых информационно-измерительных систем • Измерительные устройства обладают «интеллектом» (Smart Transducers) • Память устройства и набор его конфигурационных параметров имеют фиксированный формат доступа (Transducer Electronic Data Sheet) • Программные узлы (Network Capable Application Processors) объединяются с устройствами и между собой в произвольные графы • Взаимодействие программных узлов происходит согласно шаблонам «клиент-сервер» или «издатель-подписчик» • Архитектура NCAP: – Драйвера (Transducer Interface Modules) – Модули управления драйверами (Transducer blocks) – Модули обработки (Function blocks) Верификация требований реального времени • Тестирование – – – – Функциональное Покрывающее Имитационное Нагрузочное • Проверка условий корректности во время исполнения • Аудит процесса разработки (ISO-9001) • Структурный анализ (определение длительности наихудшего сценария) – Анализ зависимостей – Имитационное моделирование • Формальные методы (временная модальная логика) • Компьютерный анализ (model checking) Синхронный подход • Моделирование систем реального времени следующего вида: – Дискретное время – Конечные вычислительные процедуры в фиксированной конечной памяти – Детерминированная конкуренция • Язык Lustre – Моделирование потоковой обработки данных – Периодическая модель архитектуры – Переменные – типизированные потоки (бесконечные последовательности значений на различных шагах выполнения системы) a = <a0, a1, …> – Каждое значение определяется в точности один раз явным вычислением – Пример – счетчик шагов: nat = pre(nat) + 1, где pre(<a0, a1, …>) = <nil, a0, a1, …> Синхронный подход (продолжение) • Язык Esterel – Моделирование многопроцессной обработки – Реактивная модель архитектуры – Вычисление делится на параллельные потоки: T1 || T2 – Потоки синхронизируются сигналами: await S; emit S – Выполнение потоков управляется сигналами: suspend <motion> when Stop – Время – периодический сигнал • Язык Signal – Объединение возможностей Lustre и Esterel Агентные и автономные системы Тема 7 Требования к программным агентам • Стандарты FIPA (Foundation for Intellectual Physical Agents) • Требования – – – – – – Способность действовать для достижения заданной цели Способность к обучению Способность к рассуждению Автономность (самодостаточность) Коммуникативность Коллаборативность (назначение ролей и соблюдение ролевых ограничений) – Мобильность (миграция по аппаратным узлам) • Классы приложений – Информационные агенты: адаптивный поиск, электронный секретарь – Интерфейсные агенты: адаптация интерфейса под предпочтения индивидуальных пользователей – Мониторинговые агенты: антивирусное ПО Мультиагентные системы • Интеграция на основе коллаборативности • Технологическая платформа поддержки агентов – – – – Создание агентов Удаление Ведение списка Поиск • Взаимодействие путем обмена сообщениями – – – – – – Цель сообщения Отправитель Получатель Онтология предметной области сообщения Метаданные (ср. Dublin Core) Содержимое сообщение • Язык взаимодействия агентов – Пример сообщения: INFORM, catalog@http://lib.ru, ivanov@http://mail.ru, literature, Prolog, author(Dostoyevsky, Idiot) Принципы организации агентов • Цели сообщений – – – – – – – – – INFORM (сообщение об истинности утверждения) QUERY-IF (запрос об истинности утверждения) QUERY-REF (запрос на получение ресурса) CFP (запрос на получение предложений) PROPOSE (предложение) ACCEPT-PROPOSAL (принятие предложения) REJECT-PROPOSAL (отклонение предложения) REQUEST (запрос на выполнение действия) SUBSCRIBE (подписка на источник информации) • Ассоциативные агенты – Логический вывод по внутренней модели мира – Ограничение по мощности машины вывода • Реактивные агенты – Реакция на внешние источники – Ограничение по многообразию сценариев реагирования • Гибридные агенты – Комбинация ассоциативных и реактивных агентов Автономные вычисления • Цель: нивелировать выход уровня сложности программных систем за рамки когнитивных возможностей человека • Разработчик: IBM, 2000 • Подход: децентрализация функций между реактивными компонентами • Рабочий цикл: автоматический непрерывный мониторинг и регулирование параметров качества • Класс систем: гибридная агентная система • Приложение: автоматизация рутинной работы по эксплуатации программных систем • Реализация: Autonomic Computing Tool Kit • Архитектура – Ресурс + менеджер – Интерфейс ресурса: сенсоры и эффекторы – Рабочий цикл менеджера: Мониторинг анализ планирование воздействие Автономные вычисления (продолжение) • Уровни автономности (autonomy maturity model) – – – – – Базовый: ручная эксплуатация Контролируемый: автоматизация сбора данных Прогностический: + автоматизация анализа Адаптивный: + автоматизация воздействия Автономный: полная автоматизация эксплуатационного цикла Пользовательский интерфейс распределённых систем Тема 8 Принципы организации единой точки доступа • Требования к порталам – Интегрированная точка доступа пользователей к распределённым разнородным ресурсам – Однократная аутентификация для входа во все ресурсы (single sign-on) – Эффективность: мягкое реальное время – Удобство: пользовательский интерфейс стиля Web – Сопровождаемость: масштабируемость по составу доступных ресурсов • Функции порталов – – – – – – – Управление внешним видом Управление содержанием Управление пользователями Поиск ресурсов Ведение каталога ресурсов Интеграция приложений Карта распределения ресурсов • Классы задач – Виртуальные сообщества (социальные сети) – Корпоративный документ (электронная Россия) – Высокопроизводительные вычисления (научные проекты) Архитектура портала • Логическая архитектура: 3-слойная (3 layers) – Интегрируемые ресурсы – Модули формирования и обработки видеокадров – Пользовательский интерфейс • Физическая архитектура: 3-опорная (3 tiers) – Узлы развёртывания интегрируемых ресурсов – Сервер портала – Пользовательские рабочие станции • Шаблон «Model-View-Controller» – – – – Модель: управление визуализацией Представление: пользовательский интерфейс Контроллер: передача пользовательского ввода в модель «2½»-слойная архитектура • Прочие шаблоны – Request Processor – Application Controller Технологические подходы к созданию порталов • Контейнерный подход: портал как контейнер презентационных компонентов, опосредующих интегрируемые ресурсы • Обработка каждого пользовательского запроса по отдельности • Функции контейнера – Предварительное резервирование системного окружения (например, пул соединений с БД) – Управление жизненным циклом компонентов – Управление транзакциями – Авторизация и аутентификация • Реализация: J2EE (EJB-компоненты + Web-компоненты) • Примеры – IBM WebSphere – BEA WebLogic • Недостатки – Постоянная готовность к пиковой нагрузке – Высокая стоимость «пустого» портала Технологические подходы к созданию порталов (продолжение) • Канальный подход: портал как система сбора и маршрутизации цифровых сущностей • Документо-ориентированное управление видеокадрами и пакетами пользовательского ввода на базе SemanticWeb • Обработка целостных сценариев взаимодействия пользователей с ресурсами • Логические каналы с потоковой обработкой – – – – – Мультиплексирование Демультиплексирование Маршрутизация в зависимости от содержания Перевод (например, на различные языки) Журналирование • Аналогия: сеть с коммутацией каналов (контейнерный подход – сеть с коммутацией пакетов) • Адаптивное использование системного окружения • Гибкий технологический процесс создания портала Защита информации в распределённых системах Тема 9 Моделирование защиты информации • Виды моделей – – – – Модель угроз Модель защит Матрица контроля доступа Карта доверенных узлов • Механизмы защиты – – – – – Шифрование Идентификация Аутентификация Авторизация Аудит Технологические подходы к обеспечению защиты • Операционные системы и СУБД: управление пользователями – Пароли – Цифровые сертификаты (x.509) • Сети: шифрование во время передачи – Secure Socket Layer – IPSec – Secure/Multipurpose Internet Mail Extensions • Среды исполнения приложений: «песочница» (sandbox) • Защищённые участки сети: межсетевой экран (firewall) – – – – – Разрешение установления сессий по адресам и протоколам Фильтрация опасных запросов Трансляция сетевых адресов Ограничение пропускной способности низкоприоритетных сессий Журналирование и анализ сессий Средства управления защитой • Цифровой сертификат – публичный ключ субъекта, заверенный электронной подписью независимого доверенного центра • Доверенная группа субъектов – группа получателей приватного ключа, расширяемая только при условия консенсуса всех участников • Делегирование привилегий – предоставление внешним сущностям прокси-разрешения, содержащего привилегии субъекта (полные или частичные) • Безопасное управление данными защиты – Secure Association Context Management (Generic Security Service API) Примеры средств комплексной защиты распределённых систем • Kerberos – Генерация идентификатора права доступа субъекта (ticket) на каждую сессию – Генерация сессионного приватного ключа по идентификатору • SESAME (Secure European System for Application in a Multi-vendor Environment) – Сервер аутентификации: хранение приватных ключей в специализированной БД (Security Management Information Base) – Сервер атрибутов привилегий: выдача сертификатов атрибутов привилегий – Сервер распространения ключей (опциональный): выдача сессионных приватных ключей – Клиент доступа к аутентификации и привилегиям: программное обеспечение для клиентов • SET (Secure Electronic Transactions) – Раздельное шифрование содержательных и платежных данных заказов в системах электронной коммерции Технологии Grid Тема 10 Организация Grid-систем • Технология Grid: интегрированная технология разработки многоаспектных крупномасштабных динамических распределённых систем «под ключ» • Класс решаемых задач: однородная обработка однородных потоков информации • Пример: переборные (brute-force) вычислительные алгоритмы • Принцип работы Grid-системы: бесконечное клонирование небольшого числа функциональных компонентов, динамически развёртываемых на изменяющейся неоднородной аппаратной инфраструктуре, связанной глобальной сетью • Управление: непрерывный процесс принятия решений о динамическом развёртывании исходя из потребностей задачи и возможностей аппаратного уровня в целях максимизации эффективности Условия динамического развёртывания • Поддержка большого количества компонентов – При 106 ресурсов даже ведение каталога требует высокопроизводительной распределённой СУБД • Поддержка географически распределённых компонентов – Глобальная сеть не может обеспечить коммуникации в реальном времени • Поддержка высокой частоты изменений состояния объектов – При 106 ресурсов с коэффициентом готовности 99% 104 ресурсов не функционируют в любой момент времени • Поддержка технически неоднородных узлов – Универсальная платформа исполнения машинно-независимого байт-кода так и не создана (конкурирующие платформы – Java и .Net) • Поддержка административной разобщённости – Политики доступа могут противоречить функциональным требованиям Классификация Grid-систем Класс Grid-систем Подход к решению задач Пример задачи Пример Gridсистемы Вычислительные Расширение аппаратной базы вместо оптимизации алгоритмов (P = NP ?) Расшифровка генома CEPAR Ориентированные на данные Сбор и фильтрация больших массивов данных Обработка экспериментов в физике высоких энергий European Datagrid Коммуникационные Управление сложными интенсивными потоками данных Международные мультимедиаконференции Access Grid Вертикально интегрированные Автоматизация исследования Разработка целой предметной области алгоритмов анализа данных Data Mining Grid Этапы развития Grid-технологий • Первая демонстрация – I-WAY (1995 г.) – Конференция SuperComputing-95 – Развёртывание вычислительной задачи из области ядерной физики на 17 узлов • «Домашние» Grid-системы с добровольным подключением – Распознавание структуры белков (Folding@Home) – Поиск радиосигналов внеземных цивилизаций (SETI@Home) – Расшифровка RSA-64 (2002 г., более 300 тыс. рабочих станций) • Интеграция аппаратных ресурсов – Платформа Globus Toolkit v2 – Система Condor • Сервисная архитектура – Open Grid Service Architecture • Адаптивные и автономные Grid-системы – Semantic Grid – Самоконфигурирование и самовосстановление Проектирование Grid-систем Тема 11 Архитектура Grid-систем • Аппаратный уровень (fabric) – Высокопроизводительные компьютеры – Мощные хранилища данных – Высокоскоростные сети передачи данных • Уровень связи (connectivity) – Универсальные сетевые протоколы (TCP/IP) – Средства однократной аутентификации (сертификаты x.509) • Уровень ресурсов (resource) – Метаданные ресурсов – Мониторинг загрузки узлов – Средства автоматического развёртывания приложений • Уровень интеграции (collective) – Динамический поиск ресурсов – Составление и выполнение расписаний работы ресурсов – Портал пользователя Grid-системы • Уровень приложений (applications) – Среды решения задач (problem solving environments) Формальный подход к проектированию Gridсистем • Абстрактные машины состояний – Состояния – многосортные алгебры – Переходы – изменения значений функций, состава основного множества • Основные сорта алгебраического представления Grid-систем – – – – – Приложения: App Процессы: Proc Ресурсы: Res Узлы: N Bool = {true, false} • Основные функции – Потребность процесса в ресурсе: req : Proc Res Bool – Использование ресурса процессом: uses : Proc Res Bool – Отображение процесса на узел: map : Proc N – Принадлежность ресурса узлу: BelongsTo : Res N Bool Спецификация алгоритма динамического развёртывания • Алгоритм статического развёртывания if (p Proc, r Res): req(p, r) & BelongsTo(r, map(r)) then uses(p, r) := true req(p, r) := false • Абстракция ресурса – Атрибуты ресурсов и узлов: сорт Attr – Функция вычисления атрибута: attr : Res + N Attr – Функция проверки совместимости: compat : Attr Attr Bool – Разделение абстрактных и физических ресурсов: Res = ARes + PRes – Функция отображения абстрактных ресурсов: mapres : Proc ARes PRes if (p Proc, ar ARes): req(p, ar) & mapres(p, ar) = undef then choose r PRes: compat(attr(ar), attr(r)) mapres(p, ar) := r Спецификация алгоритма динамического развёртывания (продолжение) • Абстракция пользователя – Пользователи: сорт U – Функция определения пользователя процесса: user : Proc U – Функция аутентификации: CanLogin : U N Bool – Функция авторизации: CanUse : U Res Bool – Функция выбора пользователя по умолчанию: handler : PRes Proc – Функция отображения пользователей: usermap : Proc PRes U let r = mapres(p, ar) if (p Proc, ar ARes): req(p, ar) & r != undef & CanUse(user(p), r) then if handler(r) = undef then choose u U: (n N) BelongsTo(r, n) CanLogin(u, n) usermap(p, r) := u else usermap(p, r) := user(handler(r)) Спецификация алгоритма динамического развёртывания (продолжение) • Алгоритм динамического развёртывания if (p Proc, ar ARes): req(p, ar) & usermap(p, mapres(p, ar)) != undef then uses(p, mapres(p, ar)) := true req(p, ar) := false • Обогащение модели – Жизненный цикл процесса: сорт LC = {starting, waiting, running, terminated}, функция status : Proc LC – Межпроцессные коммуникации: сорт сообщений M, атрибуты from, to : M Proc и т.д. Реализация Grid-систем Тема 12 Технологические подходы к созданию Gridсистем • Основные аспекты Grid-систем – – – – – Переносимость Обнаружение компонентов Производительность Устойчивость к сбоям Защита от несанкционированного доступа • Механизмы реализации Grid-систем – – – – – – – Разделяемое состояние (Linda) Обмен сообщениями (MPICH-G2) Удалённый вызов процедур (GridRPC) Точечные взаимодействия (JXTA) Распределённые объекты (CORBA) Web-службы (Globus Toolkit v3) Управление рабочими процессами (BPEL) Платформа Globus Toolkit • Управление ресурсами – – – – Grid Resource Information Protocol Grid Resource Registration Protocol Monitoring and Discovery Services (LDAP) Grid Resource Access and Management (GRAM) • Защита от несанкционированного доступа – Grid Security Infrastructure (x.509) • Передача больших массивов данных – GridFTP – Globus Replica Management Дополнительные средства • Поддержка Grid-систем, ориентированных на данные – Grid Data Management Pilot – Global Access to Secondary Storage – Storage Resource Broker + Metadata Catalog • Порталы пользователей Grid-систем – Grid Portal Development Kit – GridPort • Мониторинг загрузки узлов и каналов – Grid Monitoring Architecture – NetLogger • Управление пакетными заданиями – Portable Batch Scheduler • Адаптивное управление ресурсами – Agent-based Resource Management for Grid Computing – G-commerce Открытая архитектура Grid-служб • Инкапсуляция ресурсов и процессов в службы (services) • Реализация брокера ресурсов как организатора совместной работы служб (services orchestrator) • Поддержка метаданных динамических служб с состояниями (модификация WSDL) • Интерфейс GridService – FindServiceData() – SetTerminationTime() – Destroy() • Интерфейс создания служб Factory – CreateService() • Интерфейсы поддержки уведомлений – NotificationSource – NotificationSink • Идентификация и адресация служб – GridServiceHandle – GridServiceReference – FindByHandle() Комплексирование крупномасштабных распределённых систем Тема 13 Принципы комплексирования программных систем • Комплексирование компонентов – неразрушающая адаптация к совместному функционированию • Ключевой фактор многократного использования компонентов • Критерии оптимальности – Минимизация межкомпонентных связей – Максимизация внутрикомпонентных связей • Подходы к комплексированию – Статическое: редактирование связей (link) – Динамическое: подгрузка библиотек, взаимодействие • Математическая база – Теория категорий (система – копредел диаграммы, состоящей из компонентов и межкомпонентных связей) – Мереология (математическая теория отношения «часть-целое») Принципы комплексирования программных систем (продолжение) Техника комплексирования Пример (ООП) Встраивание компонента Пример (распределённые системы) Единица Тип шаблона многократного использования Действие Оператор EJB new Массив данных Создающие шаблоны Изменение целого Подстановка Наследование Webпрокси Библиотека Поведенческие Изменение шаблоны части Взаимодействие Вызов метода MOM Приложение Структурные шаблоны Склеивание Аспектно-ориентированный подход • Разделение классов задач (concerns), пересекающих границы единиц модульной архитектуры • Разработчики: Kiczales и др., 1997 • Примеры аспектов – Защита информации – Пользовательский интерфейс – Нефункциональные характеристики качества по ISO-9126 • Выделение точек соединения (join points) • Подходы к композиции аспектов (weaving – сплетение) – Статическая: генерация исходного кода приложения по исходным кодам аспектов и спецификациям точек соединения – Динамическое: проверка предикатов, идентифицирующих точки соединения, во время исполнения и динамическая подгрузка присоединяемых аспектов • Пример технологии АОП: AspectJ • АОП в распределённых системах – Аспекты – интегрируемые ресурсы – Сплетение – интеграция Аспектная декомпозиция распределённых систем технологического управления • Информационная модель (онтология предметной области объекта управления) • Интерфейс к слою реального времени (IEEE-1451) • Математическое обеспечение (Grid) • Мониторинг объекта и системы (автономные вычисления) • Пользовательский интерфейс (портал) • Информационный обмен (электронный документооборот) • Модель защиты (однократная аутентификация) • Метрологическая аттестация измерительного слоя: = model + method + tool + conditions + user Технологический процесс разработки крупномасштабных распределённых систем Тема 14 Инженерия предметной области • Ведение множества проектов, объединённых общей целевой задачей и общим технологическим подходом – Покрытие маркетинговой ниши (линейка продуктов) – Комплексирование крупномасштабной системы • Технологический цикл инженерии предметной области (domain) – – – – Идентификация предметной области Моделирование предметной области Проектирование предметной области Реализация предметной области • Технологический цикл инженерии приложений (applications) – разработка частных приложений Инженерные принципы разработки • Выполнение требований открытости компонентов и протоколов (неограниченное масштабирование) • Привлечение специализированных средств и технологий моделирования, программирования и комплексирования систем (неограниченное распределение) • Ведение гибкого технологического цикла разработки (неограниченная динамичность) • Обеспечение высокой степени переносимости программных компонентов (неограниченное развёртывание) • Применение стандартных форматов представления данных и протоколов информационного обмена (неограниченная коллаборативность) Особенности моделирования • Объединённая фаза анализа и проектирования • Результаты – Техническое задание – Технический проект – Рабочая документация • • • • • • • Построение онтологии предметной области Формализация модели качества Извлечение схемы БД из понятий предметной области Моделирование рабочих процессов Выбор открытых коммуникационных протоколов Выявление точек изменения системы Многомерная декомпозиция – Организационная – Архитектурная – Аспектная Особенности реализации и эксплуатации • Принципы реализации – Максимизация степени многократного использования компонентов – «Обёртывание» унаследованных приложений – Задействование готовых компонентов (лучше всего с открытым исходным кодом) – Применение разнородных программных технологий по необходимости • Принципы эксплуатации – – – – Мониторинг: сбор событий, диагностика компонентов во время выполнения Анализ: фиксация и предсказание сбоев Планирование: определение действий по восстановлению после сбоев Воздействие: восстановление после сбоев • Характеристики качества (ISO-9126) – – – – – – Функциональные возможности Надежность Практичность Эффективность Сопровождаемость Мобильность (переносимость) Список основной литературы • Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. • Ковалёв С.П. Архитектура времени в распределенных информационных системах // Вычислительные технологии. Т. 7, №6, 2002. С. 38–53. • Столлингс В. Современные компьютерные сети. 2-е изд. СПб.: Питер, 2003. • Таненбаум Э., ван Стеен М. Распределенные системы. Принципы и парадигмы. СПб.: Питер, 2003. • Sotomayor B. The Globus Toolkit 3 programmer's tutorial. The Globus Alliance, 2004.