Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_RSOI.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
400 Кб
Скачать
☆

2.7.Расширение модели rpc. Асинхронный вызов.

Держать блокированного клиента нет никакого смысла. Для этого используется асинхронный вызов. Поступило сообщение, управление сразу возвращается и пускается ответ, что сообщение принял.

Или когда клиент запрос передает серверу и он (ему ответ не очень нужен) и сервер неспешно может выполнить этот запрос и в асинхронном режиме вернуть результат.

Асинхронный RPC.

Рис. 2.8.

Вызов удаленной процедуры. Как только сервер его получит, он сразу же возвращает подтверждение, а клиент продолжает свое дело и когда сервер выполнит свою процедуру, он возвращает результат, клиент приостанавливается, получает подтверждение, и оба продолжают свое дело.

3.Общие сведения об объектно-ориентированном промежуточном слое. Обращение к удаленным объектам.

Надо сказать… Обращение к удаленным объектам – это право преемник, когда основательно поработали с RPC, поняли, что его можно перенести на ООП. И тут всплывает понятие распределенный объект.

Состав объекта.

Рис. 3.9.

Корректный способ обращения к данным – это только через интерфейсы объекта. Это прототипы объекта. Мы с вами говорили, что можно сделать, так чтобы в объект переадрисовывалось несколько интерфейсов. Эта идея (что есть объект и есть его интерфейс) является ключевой. Эту простую идею я вам сейчас нарисую.

Обращение к удаленным объектам.

Рис. 3.10.

Есть серверная машина, есть клиентская. Есть на клиентской машине нечто. На серверной машине есть сервер, на сервере есть клиент. Клиент содержит состояние, то есть данные, объект содержит методы. Должно быть нечто, которое упаковывает и формирует сообщение, называют заместителем, то есть на клиентской части замещает объект и клиент обращается через интерфейс как удаленная служба.

На клиентской машине формируется сообщение и передается на серверную. Часть, которая его получает, называют скелетоном. Тоже вызывается через интерфейс. Объект на сервере не знает, что к нему удаленно обращаются. И рис. 3 .10 – это обобщенная организация распределенных объектов. И мы теперь видим, что входит в понятие распределенного объекта: сам объект на с.м., интерфейсы, через которые идет обмен, скелетон и заместитель.

3.1.Привязка клиента к распределенному объекту.

Адресное пространство клиент выполняется заместителем и размещение заместителя в адресном пространстве клиента и называют привязкой к объекту.

В общем функциональность заместителя понятна. Он выполняет упаковку(маршалинг), выполняющийся при обращении, также выполняет распаковку, сообщений содержащих обращение к методам и передач результатов клиента.

И обращение к методу объекта через интерфейс. Объекту на сервере в этом сечении все равно – он не знает, кто к нему обращается. Также скелетон упаковывает результат вызова метода и заглушкой возвращается заместителю на клиенте.

Удаленный объект – это распределенный объект, состояние которого хранится на одном компьютере(т.е. не распределено).

3.2.Объекты времени компиляции и объекты времени выполнения (раздел)

  1. Объекты времени компиляции – объект является экземпляром класса. Под него выделяется место. Будем такими объектами пользоваться. Во время компиляции формируются части УО. Но ограниченность этого подхода – все делается на одном языке. Если используется несколько языков, то здесь это не всегда хорошо.

  2. Или объект создается непосредственно во время выполнения.

  1. Есть библиотека на C. Ее набор функций хотелось бы превратить в объект и работать с ними, как с методами объекта. В такой постановке один из вариантов решения – адаптера объекта, который выполняет роль оболочки реализации библиотеки и у него задача – создать видимость объекта. Этот вариант удачней решается, когда используется 2 – объект времени исполнения.

Использование библиотеки на C.

Рис. 3.11.

Заранее скомпилировать наверно можно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]