3OS

Удаленный вызов объектов

Удаленный вызываемый объект – полноценный экземпляр класса, находящийся в изолированном от точки вызова адресном пространстве кода и данных, в которых он работает.

Удаленный вызов – механизм, набор процедур по обеспечению совмещения «точки вызова», как вызывающего адресного пространства и удаленного объекта, как вызываемого адресного пространства. Удаленный вызов обеспечивает псевдо-связь методов и данных двух совмещаемых объектов, один из которых является запрашиваемым удаленным объектом, второй «точкой вызова».

«Точка вызова» - объект, имеющий класс эквивалентный классу удаленного вызываемого объекта, но испытывающий незавершенность по методам или данным класса. «Точка вызова» изолирована собственным пространством кода и данных, в пределах которых осуществляется ее работа.

Характеристика «точки вызова» - незавершенность экземпляра класса по методам или по данным класса.

Незавершенность объекта – физическое отсутствие конструкций класса, членов (данных) или методов класса (кода).

«Точка вызова» классифицируется характеристикой, способом доступа, классом удаленного объекта и его физическим наличием в памяти.

Механизм удаленного вызова определяется характеристикой «точки вызова». При незавершенности «точки вызова» по методам – объект, запрашивающий удаленный вызов классифицируется как «тень», механизм удаленного вызова работает по схеме «много экземпляров данных, единственный экземпляр удаленных методов для работы с ними». При незавершенности по данным - объект, запрашиваемый удаленный вызов классифицируется как «иждивенец»,  механизм удаленного вызова работает по схеме «много экземпляров методов, единственный экземпляр удаленных данных для работы над ними». Схемы представлены на рисунке.

А) Осуществление схемы доступа от объектов «теней»

Б) Осуществление схемы доступа от объектов «иждивенцев»

Схемы А и Б схематичны так как не учитывают порядок выполнения удаленного вызова для запрашивающих объектов. Физическая очередность доступа обеспечивается на уровне «диспетчера потоков» планированием потоков, в которых находятся запрашивающие удаленный доступ объекты, в очередь на исполнение.

Способ доступа подразделяется на синхронный и асинхронный и транзакционный. В случае осуществления синхронного доступа исполнение потока, в котором находится «точка вызова», приостанавливается до тех пор, пока удаленный объект не завершит запрашиваемый метод или пакет методов. Асинхронный доступ предполагает возможность работы потока «точки вызова» после запроса «удаленного доступа». Понятие синхронности и асинхронность доступа применимы к механизму «теневых объектов». Понятие транзакционности введено для механизма «объектов иждивенцев», использующих данные удаленного объекта для обеспечения целостности экземпляра данных удаленного объекта.

Физическое отсутствие удаленного объекта в памяти ОС определяет возможность использования несуществующих на момент запроса «удаленного доступа» объектов, при наличии в ОС, классов и служебной информации о них. Таким образом, обеспечивается принцип динамически подключаемых библиотек (DLL) в его ОО ракурсе.

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