 
        
        Системы распределенного искусственного интеллекта
Лекция 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 году. Предназначен для создания «Отпечатков» или «дайджестов» сообщения произвольной длинный.
Хеширование – преобразование входного массива данных в короткое число фиксированной длинны (которое называется хешем, или хеш-кодом) таким образом, чтобы это число было значительно короче исходных данных.
