
Системы распределенного искусственного интеллекта
Лекция 1
Распределенные системы
Распределенная система – набор независимых компьютеров, представляющихся пользователю единой системой (по Таненбауму).
Распределенная система – децентрализованная сеть, состоящая из множества объединенных компьютеров, представляющихся пользователю единым, большим, доступным множеством распределенных аппаратных ресурсов, программного обеспечения и данных. (Microsoft)
Используемое сокращение DS – Distributed System
Ресурсов одного компьютера не всегда достаточно
Сложные вычислительные задачи
Химические расчеты (Наиболее используемый ресурс - CPU)
Физические расчеты (Наиболее используемый ресурс - CPU)
Большие базы данных (Наиболее используемый ресурс - CPU, Memory)
Кеширование больших объемов данных (Наиболее используемый ресурс - Memory)
Файловый хостинг (Наиболее используемый ресурс - HDD, Network)\
«Мы делили апельсин, много нас, а он один» © Русское народное. Т.е. имеется ввиду, что одной машины недостаточно (Гы мой любимый стишок)
Повышение:
Скорости обслуживания
Скорости доступа
Безопасности
Характеристики DS (распределенных систем, если еще не запомнил)
Прозрачность, подразумевает, что пользователь не должен заморачиваться архитектурой этой системы (он не должен задавать себе вопрос о том, сколько компьютеров на него работает, как они работают, как они организованны, сколько из них живых, а сколько сломалось). Определение: Свойство распределенной системы, обеспечивающее скрытие факта распределения ресурсов и процессов по множеству компьютеров.
Виды прозрачности:
Доступа
Access transparency - Скрывается разница в представлении данных и доступе к ресурсам. Пользователю не важно, какая ФС используется для хранения прайса, какой порядок байт используется.
Местоположения
Location transparency – скрывается местоположение ресурса (где именно в системе расположен требуемый ресурс). Пользователь не знает, где физически расположен ресурс
Переноса
Migration transparency – смена местоположения ресурса не влияет на доступ к нему.
Смены местоположения
Relocation transparency – смена местоположения ресурсов в процессе их использования не влияет на доступ к ним. Пользователь не знает, был ли ресурс перемещен в процессе работы (например мобильная связь, которой мы ежедневно пользуемся)
Репликации
Replication transparency – скрывается факт наличия нескольких копий ресурса. Если не глазеть по сторонам, вы не знаете что у вас только копия меню. Master-master DB replication.
Параллельного доступа
Concurrency transparency – скрывается факт возможного совместного использования ресурса несколькими конкурирующими пользователями. Пользователи не знают, что одновременно работают с одной базой данных (каждый думает, что он один ею пользуется)
Отказов
Failure transparency – Скрывается факт отказа и восстановления ресурса.
Степень прозрачности
Не всегда желательно полностью скрывать распределенность системы
Необходимо учитывать фактор быстродействия
Пример:
Пользователь может выбрать другое зеркало, если одно из зеркал работает медленно (не нужна прозрачность репликации)
Пользователь может учесть особенности построения своей сети и географическое положение (не нужна прозрачность местоположения).
Открытость, подразумевает, что она должна взаимодействовать с другими машинами без всяких там проблем. Если система будет открытой то ей будет легче взаимодействовать с другими системами и сервисами.
Система предполагает службы соответствующие определенным правилам
Правила задают синтаксис и семантику служб
Службы определяются через интерфейсы, например используя Interface Definition Language (IDL)
Семантика интерфейса определяет, что делает служба.
Способность к взаимодействию (interoperability) компонентов различных производителей.
Переносимость (Portability)
Определение правил и механизмов.
Масштабируемость, бывает по размеру, и еще есть географическое масштабирование (т.е. взаимодействие машин на разных континентах), административное масштабирование (необходимо распределять права доступа, все дела).
Типы масштабируемости:
По размеру (легкость добавления новых ресурсов и пользователей)
Проблемы:
Проблема
Пример
Централизованные службы
Одни сервер для всех пользователей
Централизованные данные
Единый телефонный справочник
Централизованные алгоритмы
Маршрутизация на основе полной информации
Географическое масштабирование
Проблемы:
При использовании синхронизации связи – длительное время ожидания пользователя
Ненадежность связи в глобальных сетях
Проблема определения местонахождения служб
Административное масштабирование
Устойчивость к сбоям
Легкость доступа к ресурсам
Лекция 2
Технологии Масштабирования
Решение
Сокрытие времени ожидания ответа
Использование асинхронных запросов
Пользовательский интерфейс не блокируется во время ожидания данных
Пользователь не теряет возможности работы с имеющимися данными до загрузки новых
Результат: пользователя не беспокоит задержка при загрузке данных
Упреждающая выборка
Data Prefetch. Если пользователь, запросивший данные А с высокой вероятностью запросит данные В, то загрузку данных В можно производить до реального запроса пользователем этих данных.
Пример: Mozzila Firefox – после загрузки страницы может осуществлсять упреждающюю загрузку последующих страниц.
What Link Perfecting? Link prefetching is a browser mechanism, which utilizes browser idle time to download or prefetch documents that the user might visit in the near time.
Разделение логики
Пример: система залогинивания.
Распределение
Разбиение данных на отдельные фрагменты с последующим размещением отельных фрагментов на разных серверах.
Репликация
Replication. Дублирование данных на несколько серверов с целью повышения доступности и производительности.
Преимуцества:
Повышение доступности данных
Повышение быстродействия системы
Снижение задержек (использование географически близкой копи)
Недостатки
Сложность обеспечения непротиворечивости даннхы
Построение распределенных систем.
Аппаратные концепции
Различные базовые организации процессоров и памяти распределенных компьютерных систем
Мультипроцессоры (1)
Мультипроцессорная система с шинной архитектурой
Мультипроцессоры (2)
а) коммутирующая решетка
б) коммутирующая омега-сеть
Гомогенные мультикомпьютерные системы
а) решетка
б) гиперкуб
Описание распр. и сетевых ОС и средств промежуточного уровня
Система |
Описание |
Основное назначение |
DOS |
Сильно связанные ОС для мультипроцессоров и гомогенных мультикомпьютерных систем |
Сокрытие и управление аппаратным обеспечением |
NOS |
Слабо связанная ОС для гетерогенных мультикомпьютерных систем |
Предоставление локальных служб удаленным клиентам |
Middleware |
Дополнительный слой поверх NOS реализующий службы общего назначения |
Обеспечение прозрачности распределения |
Однопроцессорная ОС
Мультикомпьютерная ОС (1)
Мультикомпьютерная ОС (2)
Блокировка и буферизация сообщений
Мультикомпьютерная ОС (3)
Точка синхронизации |
Буфер отправителя |
Гарантия надежной связи |
Блокировка отправителя до опустошения буфера |
Да |
Нет необходимости |
Блокировка отправителя до отправки сообщения |
Нет |
Нет необходимости |
Блокировка отправителя до приема сообщения |
Нет |
Необходима |
Блокировка отправителя до обработки сообщения |
Нет |
Необходима |
Лекция 3
Системы с распределенной памятью
а) Распределение страниц адресного пространства
b) обращение CPU1 к странице 10
с) использование репликации если страница 10 только для чтения.
Системы с разделяемой распределенной памятью (2)
Ошибочное разделение
Сетевые ОС
Общая структура сетевой ОС
Позиционирование ПО промежуточного уровня
Общая структура распределенной системы с программным обеспечением промежуточного уровня.
Это все как-то упаковывается, передается, распаковывается
Промежуточный уровень и открытость
В открытых DS одинаковыми должны быть как протоколы используемые ПО ПУ так и интерфейсы предоставляемые приложениям
Сравнение систем
характеристика |
Распределенные ОС |
Сетевые ОС |
DS пром. Ур-ня |
|
Мультипр. |
Мультикомп. |
|||
Степень прозрачности |
Оч.Высокая |
Высокая |
Низкая |
Высокая |
Идентичность ОС на всех узлах |
+ |
+ |
- |
- |
Число копий ОС |
1 |
N |
N |
N |
Коммуникации на основе |
Разделяемая память |
сообщения |
Файлы |
В завис. От модели |
Управление ресурсами |
Глобальное централ-е |
Глобальное, распред-ное |
На каждом узле |
На каждом узле |
Масштабируемость |
Отсутствует |
Умеренная |
Да |
Различная |
Открытость |
Закрытая |
Закрытая |
Открытая |
Открытая |
Взаимодействие клиент-сервер
Уровни обработки
Варианты архитектуры клиент-сервер
Многозвенная архитектура
Горизонтальное распределение
Возможные причины неработоспособности примера
Строка запуска клиента
java -Djava.rmi.server.codebase="file:///d:/lab2_client.jar" -cp " compute.jar;client.jar" client.ComputePi 20
Файл rmi.policy
grant {
permission java.net.SocketPermission "*:1024-65535", "connect, accept";
permission java.io.FilePermission "-", "read";
permission java.net.SocketPermission "*:80", "connect";
};
Выделенную черточку заменить на следующее grant {permission java.securuti.AllPermisson;)
Что такое MD5
MD5 (Message Digest 5) – алгоритм хеширования разработанный проффесором Рональдом Л. Риверстом в 1991 году. Предназначен для создания «Отпечатков» или «дайджестов» сообщения произвольной длинный.
Хеширование – преобразование входного массива данных в короткое число фиксированной длинны (которое называется хешем, или хеш-кодом) таким образом, чтобы это число было значительно короче исходных данных.