
- •Распределенные системы обработки информации. Недашковский Вячеслав Михайлович
- •Лекция 3.09.04 Литература
- •1.Язык программирования Java
- •1.1.История и предпосылки
- •1.3.Архитектура Java
- •1.3.1Именованные константы
- •1.3.2Классы и объекты
- •1.3.3Комментарии
- •Лекция 21.09.04
- •1.3.4Класс Object
- •1.3.5Класс Class
- •Синхронизация
- •Взаимодействие потоков
- •1.5.Библиотека Swing
- •1.5.2Панели
- •1.5.3Обработка событий
- •2.1.1Требования к системе
- •2.1.2Прозрачность системы
- •2.2.Общие сведения о промежуточном слое
- •2.3.Типы промежуточного слоя
- •2.4.Удаленный вызов процедур
- •Лекция 2.11.04
- •2.5.Передача параметров
- •2.6.Передача параметров по ссылке.
- •2.7.Расширение модели rpc. Асинхронный вызов.
- •3.Общие сведения об объектно-ориентированном промежуточном слое. Обращение к удаленным объектам.
- •3.1.Привязка клиента к распределенному объекту.
- •3.2.Объекты времени компиляции и объекты времени выполнения (раздел)
- •3.3.Сохранные и не резидентные объекты.
- •3.3.1Привязка клиента к объекту.
- •3.4.Реализация ссылок на объект
- •Лекция 9.11.04
- •3.4.1Идентификатор сервера. Об именовании. Имена, идентификаторы, адреса.
- •Идентификатор сервера
- •3.5.2Динамическое обращение
- •Передача параметров
- •3.5.3Сервер объектов
- •3.5.4Адаптер объекта
- •3.6.Перенос кода
- •3.6.1Модели переноса кода
- •3.8.4Реализация технологии клиент-сервер на Java (работа с сетями)
- •Лекция 30.11.04
- •3.8.5Клиентская часть
- •Объяснение в виде диаграммы последовательности
- •3.8.6Дополнительные сведения rmi.Java
- •Разница между удаленными и локальными объектами.
- •Блокировка объектов
- •Вопрос удаленных объектов
- •4.Последний раздел языка Java: интерфейс jdbc при работе с бд
- •4.1.Определение местонахождения распределенных объектов
- •Именование
- •Трейдинг
- •Лекция 7.12.04
- •4.2.Иерархические подходы в службах локализации.
- •4.2.1Кэширование указателей
- •4.2.2Масштабирование
- •4.3.Объектный трейдинг.
- •4.5.Алгоритм Крестиана
- •4.6.Алгоритм Беркли
- •4.7.Логические часы. Алгоритм Лампорта.
- •4.8.Жизненный цикл объекта
- •4.9.Миграция объектов на удаленный хост
2.1.1Требования к системе
Функциональные - поддаются локализации при реализации
Нефункциональные - относятся к качеству системы – носят глобальный характер и оказывают существенное влияние на выбор общей архитектуры системы на этапе проектирования:
Масштабируемость – способность системы адоптироваться к будущему росту нагрузки
Открытость – систему можно легко расширять и модифицировать (интеграция новых компонентов, отвечающих новым функциональным требованиям => компоненты должны иметь четко определенные интерфейсы)
Неоднородность. В распределенных системах, компоненты должны объявлять о предлагаемых услугах. Заявки могут быть синхронными/асинхронными. Клиент и сервер могут быть неоднороднымию. Причины неоднородности:
Компоненты могут приобретаться в готовом виде
При создании нового компонента, на него могут накладываться требования взаимодействия см существующими компонентами
Компоненты создаются разными разработчиками
Используются различные технологии
Разделение ресурсов
Ресурс – аппаратура, ПО, данные
Требуется определить, кому будет разрешен доступ к ресурсу => требуется вести учет пользователей
Менеджер ресурсов – компонент, предоставляющий доступ к разделяемым ресурсам
Модели взаимодействия:
Клиент-серверная (сервер предоставляет доступ к ресурсам)
Концепция распределенных объектов, предоставляющих доступ к имеющимся у них ресурсам при обращении других компонентов
Отказоустойчивость – система может продолжать работу даже в случае неисправности => избыточность => применение репликации (при отказе компонента, начинает работать его копия и обслуживание не прекращается)
2.1.2Прозрачность системы
Имеет несколько различных аспектов:
Прозрачность масштабируемости (обеспечивается 4, 5)
Прозрачность производительности (обеспечивается 4, 5)
Прозрачность отказа (обеспечивается 5, 6)
Прозрачность миграции (обеспечивается 7, 8) – перемещение компонентов незаметно для пользователей и без специальных действий со стороны разработчиков этих компонентов
Прозрачность репликации (обеспечивается 7, 8) – пользователям и разработчика не требуется знать, кто предоставляет услугу – реплика или основной компонент. Разработчики компоненты не должны учитывать возможность его репликации Реплика – копия, которая остается синхронизированной с оригиналом
Прозрачность одновременного выполнения
Прозрачность доступа – одинаковость интерфейсов для локальной и удаленной связи (интерфейс заявки на обслуживание должен быть одним и тем же для связи между компонентами одного хоста и разных хостов)
Прозрачность местонахождения – способ вызова операции не зависит от местонахождения компонента (запрашивающему обслуживание объекту не требуется знать о физическом расположении компонента)
Что бы достичь реализации, заявки на обслуживание должны подаваться одинаковым образом. Клиент не должен знать о местонахождении компонента или его реплики. Прозрачность одновременного выполнения означает, что пользователи программы не знают, что компоненты запрашивают услуги одновременно.
Несколько компонентов могут запрашивать обслуживание одновременно с сохранением его услов-ти. Пользователи и разработчики не видят, как организуется одновременно обслуживание.
Прозрачность масштабирования программист не должен знать, как достигается масштабируемость распределенной системы.
Прозрачность производительности – пользователь и программист не знают, как поддерживается хорошая производительность.
В основе балансировки нагрузки лежит реализация компонент.
Прозрачность отказа – пользователям и программистам не требуется знать, как ВС справляется с отказами.