
- •Распределенные системы обработки информации. Недашковский Вячеслав Михайлович
- •Лекция 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.Миграция объектов на удаленный хост
Трейдинг
позволяет клиентам определять местонахождения объекта в сервере исходя из предоставляемых объектами-серверами функций и требуемого качества обслуживания, то есть клиенты могут находить объекты-серверы, имена которых им не известны, у них есть только желание, чтобы те объекты 0среверы обладали функциональностью с требуемым качеством.
Нужно связывать объект с определенным именем – некоторая последовательность идентификаторов и она может быть разрешена в ссылку на объект.
Продолжение проги с футбольными командами
Надо объект зарегистрировать на сервере именований с использованием официального названия команды. А дальше посылаем имя команды и получаем ссылку на эту команду.
Соответствие с между именем и ссылкой – связывание имен. Поиск конкретного связывания – потеря эффективности. Решение этой проблемы – декомпозиция: разбиение пространства на отдельные подпространства. Здесь используется иерархическое разбиение. Отдельное пространство имен – контекст именования.
Связывание имен.
Рис. 4.20.
Есть корневое пространство – в него входят все остальные контексты. Поиск именования, т. е. конкретной ссылки по имени – обход контекстов. И если эти контексты расположены на разных компах, это издержки при пересылке. Здесь нужен разумный (эффективный) алгоритм перемещения по контекстам.
С позиции обеспечения эффективности поиска по именам вводится понятие: составные имена. Использование составных имен уменьшает пространство поиска.
Составное имя – это последовательность простых имен, задающих путь к объекту через ряд контекстов именования. Каждый сервер именования должен поддерживать 3 базовые операции:
Операция связывания, которая создает новое связывание для объекта. То есть это эта операция обеспечивает связывание имени и объекта.
Операция разрешения: возвращает объектную ссылку для определенного имени, переданного службе в качестве параметра.
Операция просмотра: выводит список связываний, которые есть в службе в контексте.
Перепад команд.
Рис. 4.21.
Перепад команд: Англия – Германия. Команды дописать самим.
Составное имя: (“UEFA”, “England”, “Prmier”).
Теперь нас интересует размещение мобильной сущности, то есть, те которые гуляют по распределенной сети. Содержание контекста имен:
-адреса
-идентификаторы
-имена, которые для восприятия человеком
В целях реализации пространства имен удобно разбить на 3 уровня:
глобальные
административные
управленческие
Имена 1 и 2 изменяются не часто, то есть их содержимое относительно постоянно, то можно воспользоваться кэшированием путей. Это добавляет эффективности. А в 3 есть динамика смены имен, связей, перемещение объектов и кэширование уже не эффективно. И здесь имена связывают с идентификаторами. А идентификаторы привязаны к ресурсу. А второй механизм – связь идентификатор: адрес. Это служба локализации.
Место службы локализации.
Рис. 4.22.
Лекция 7.12.04
Есть объект в каком-то адресном пространстве. Он может перемещаться по адресным пространствам: оставляет заместитель, а в новом АП формируется ссылка на объект. Такая схема в общем-то прозрачна для клиента: он не знает, что происходили перемещения. При получении запроса ответ может пойти по прямой схеме, так как известен путь и кто запросил сервис этого удаленного объекта.
Перемещение сущности.
Рис. 4.23.
Есть «Но» в этой схеме. Завис процесс в цепочке – цепочка оборвалась: добраться к удаленному объекту больше невозможно. Бороться с этим можно с помощью базовой точки.
Та машина, на которой сначала создавался объект, назовем базовой точкой. Обеспечим, чтобы эта машина всегда имела информацию о текущем местоположении созданного ею объекта. Тогда прослеживается следующая схема: если не удается по цепочке указателей добраться до объекта, то есть какой-то промежуточный процесс завис, то происходит обращение к базовой точке. Нужно только позаботится о том, чтобы БТ этот адрес не утеряла.