Разработка распределенных приложений в Microsoft.NET Framework


Использование удаленных объектов - часть 2


 Использование удаленных объектов

Рис. 2.3.  Использование удаленных объектов

Как и удаленный вызов процедур, вызов метода удаленного объекта может быть как синхронным, так и асинхронным. Существует две особенности при использовании удаленных объектов, не встречавшихся в удаленном вызове процедур. Во-первых, если на момент формирования концепции удаленного вызова процедур исключения (exceptions) еще не поддерживались распространенными языками и не использовались, то в дальнейшем они стали методом информирования вызывающей стороны о встреченных вызываемой стороной проблемах. Таким образом, в системах, использующих удаленные объекты, сериализации подвержены как параметры метода и его результат, так и выбрасываемые при выполнении удаленного метода исключения. Во-вторых, в качестве параметра или результата методов могут тоже передаваться ссылки на удаленный объект (рис. 2.4), если вызывающий удаленный метод клиент также может является сервером RMI.

 Передача удаленному методу ссылки на объект, маршализируемый по ссылке

Рис. 2.4.  Передача удаленному методу ссылки на объект, маршализируемый по ссылке

При использовании удаленных объектов проблемными являются вопросы о времени их жизни:

  • в какой момент времени создается экземпляр удаленного объекта;
  • в течение какого промежутка времени он существует.

Для описания жизненного цикла в системах с удаленными объектами используются два дополнительных понятия:

  • активация объекта: процесс перевода созданного объекта в состояние обслуживания удаленного вызова, то есть связывания его с каркасом и посредником.
  • деактивация объекта: процесс перевода объекта в неиспользуемое состояние.

Выделяют три модели использования удаленных объектов – модель единственного вызова (singlecall), модель единственного экземпляра (singleton), а так же модель активации объектов по запросу клиента (client activation). Первых две модели так же иногда называют моделями серверной активации (server activation), хотя, строго говоря, активация всегда происходит на сервере после какого-либо запроса от клиента.




Начало  Назад  Вперед