- •Распределенные системы обработки информации. Недашковский Вячеслав Михайлович
- •Лекция 3.09.04 Литература
- •1.Язык программирования Java
- •1.1.История и предпосылки
- •1.3.Архитектура Java
- •1.3.4Класс Object
- •1.3.5Класс Class
- •1.3.1Именованные константы
- •1.3.2Классы и объекты
- •1.3.3Комментарии
- •Лекция 21.09.04
- •Синхронизация
- •Взаимодействие потоков
- •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.7.Расширение модели rpc. Асинхронный вызов.
Держать блокированного клиента нет никакого смысла. Для этого используется асинхронный вызов. Поступило сообщение, управление сразу возвращается и пускается ответ, что сообщение принял.
Или когда клиент запрос передает серверу и он (ему ответ не очень нужен) и сервер неспешно может выполнить этот запрос и в асинхронном режиме вернуть результат.
Асинхронный RPC.
Рис. 2.8.
Вызов удаленной процедуры. Как только сервер его получит, он сразу же возвращает подтверждение, а клиент продолжает свое дело и когда сервер выполнит свою процедуру, он возвращает результат, клиент приостанавливается, получает подтверждение, и оба продолжают свое дело.
3.Общие сведения об объектно-ориентированном промежуточном слое. Обращение к удаленным объектам.
Надо сказать… Обращение к удаленным объектам – это право преемник, когда основательно поработали с RPC, поняли, что его можно перенести на ООП. И тут всплывает понятие распределенный объект.
Состав объекта.
Рис. 3.9.
Корректный способ обращения к данным – это только через интерфейсы объекта. Это прототипы объекта. Мы с вами говорили, что можно сделать, так чтобы в объект переадрисовывалось несколько интерфейсов. Эта идея (что есть объект и есть его интерфейс) является ключевой. Эту простую идею я вам сейчас нарисую.
Обращение к удаленным объектам.
Рис. 3.10.
Есть серверная машина, есть клиентская. Есть на клиентской машине нечто. На серверной машине есть сервер, на сервере есть клиент. Клиент содержит состояние, то есть данные, объект содержит методы. Должно быть нечто, которое упаковывает и формирует сообщение, называют заместителем, то есть на клиентской части замещает объект и клиент обращается через интерфейс как удаленная служба.
На клиентской машине формируется сообщение и передается на серверную. Часть, которая его получает, называют скелетоном. Тоже вызывается через интерфейс. Объект на сервере не знает, что к нему удаленно обращаются. И рис. 3 .10 – это обобщенная организация распределенных объектов. И мы теперь видим, что входит в понятие распределенного объекта: сам объект на с.м., интерфейсы, через которые идет обмен, скелетон и заместитель.
3.1.Привязка клиента к распределенному объекту.
Адресное пространство клиент выполняется заместителем и размещение заместителя в адресном пространстве клиента и называют привязкой к объекту.
В общем функциональность заместителя понятна. Он выполняет упаковку(маршалинг), выполняющийся при обращении, также выполняет распаковку, сообщений содержащих обращение к методам и передач результатов клиента.
И обращение к методу объекта через интерфейс. Объекту на сервере в этом сечении все равно – он не знает, кто к нему обращается. Также скелетон упаковывает результат вызова метода и заглушкой возвращается заместителю на клиенте.
Удаленный объект – это распределенный объект, состояние которого хранится на одном компьютере(т.е. не распределено).
3.2.Объекты времени компиляции и объекты времени выполнения (раздел)
Объекты времени компиляции – объект является экземпляром класса. Под него выделяется место. Будем такими объектами пользоваться. Во время компиляции формируются части УО. Но ограниченность этого подхода – все делается на одном языке. Если используется несколько языков, то здесь это не всегда хорошо.
Или объект создается непосредственно во время выполнения.
Есть библиотека на C. Ее набор функций хотелось бы превратить в объект и работать с ними, как с методами объекта. В такой постановке один из вариантов решения – адаптера объекта, который выполняет роль оболочки реализации библиотеки и у него задача – создать видимость объекта. Этот вариант удачней решается, когда используется 2 – объект времени исполнения.
Использование библиотеки на C.
Рис. 3.11.
Заранее скомпилировать наверно можно.
