Net remoting. Час життя об'єктів 2007 Зміст


НазваNet remoting. Час життя об'єктів 2007 Зміст
Дата конвертації19.07.2013
Розмір445 b.
ТипПрезентации


.NET Remoting. Час життя об'єктів

  • 2007


Зміст

  • Управління часом життя об'єктів. Загальні положення.

  • Ліцензії. Доступ до ліцензії об'єкта.

  • Управління часом життя та config-файли.

  • Диспетчери (менеджери) ліцензій.

  • Спонсори ліцензій.



Управління часом життя об'єктів. Загальні положення

  • У .NET Remoting підтримуються два види активізації об'єктів: серверна (об'єкти з серверною активізацією SAO) та клієнтська (об'єкти з клієнтською активізацією CAO). До того ж є два режими серверної активізації: Singleton і SingleCall.

  • Управління часом життя об'єктів:

    • CAO;
    • SAO Singleton;
    • SAO SingleCall. (Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються – позначаються для вилучення "збирачем сміття”. Отже, підкреслимо, що на такі об'єкти – на об'єкти SAO SingleCall викладені далі принципи управління часом життя не розповсюджуються).
  • Загалом керування часом життя об'єктів ґрунтується на поняттях ліцензій, спонсорів та диспетчерів ліцензій.



Ліцензії

  • При активізації віддаленого об'єкта CLR отримує (і передає диспетчеру для реєстрації) дані стосовно ліцензії цього об'єкта. Такі дані надаються методом InitializeLifetimeService і визначають початкові умови стосовно життєдіяльності об'єкта (зазначений метод може перевизначатись у конкретному серверному класі, що успадковується від System.MarshalByRefObject ).

  • Особливості існування remotable-об'єктів (їх ліцензії) визначаються реалізацією “ліцензійного” інтерфейсу ILease. Інтерфейс ILease (з простору імен SystemRuntime.Remoting.Lifetime) має кілька властивостей, які дозволяють “управляти” часом життя об'єктів.



Основні властивості (properties) інтерфейсу ILease





Перевизначення метода InitializeLifetimeService. Приклад. Виконання програм



Перевизначення метода InitializeLifetimeService. Приклад. Виконання програм



Перевизначення метода InitializeLifetimeService. Об'єкти з необмеженим терміном ліцензії



Перевизначення метода InitializeLifetimeService. Об'єкти з необмеженим терміном ліцензії - 2



Управління часом життя. Config-файли

  • Окрім перевизначення метода MarshalByRefObject.InitializeLifetimeService існує ще одна можливість встановлення початкових умов життєдіяльності об'єктів, а саме використовуючи файли конфігурації (config). Умови існування об'єктів задаються атрибутами елемента <lifetime>.

  • Зауваження. Початкові умови існування, що задаються таким чином, стосуються всіх об'єктів для всіх remotable-класів (!) у серверному процесі.

  • Приклад. Файл Host.exe.config (він, звичайно, повинен бути зареєстрований, використовуючи RemotingConfiguration.Configure):

  • . . .

  • . . .

  • . . .



Доступ до ліцензії об'єкта та управління його часом життя

  • У серверній програмі: метод (серверного об'єкта) GetLifetimeService (успадковується від MarshalByRefObject) дозволяє отримати посилання на інтерфейс ILease . Далі, наприклад, можна викликати ILease.CurrentLeaseTime (для перевірки часу, що залишився) та ILease.Renew (для продовження терміну існування).

  • У клієнтській програмі : (статичний) метод RemotingServices.GetLifetimeService також дозволяє отримати посилання на інтерфейс ILease. Далі так само можна викликати ILease.CurrentLeaseTime, ILease.Renew.



Диспетчери (менеджери) ліцензій. Спонсори ліцензій

  • При активізації віддаленого об'єкту CLR отримує (і передає диспетчеру для реєстрації) дані стосовно ліцензії цього об'єкта.

  • Диспетчер ліцензій (lease manager) є у кожнім домені. Він періодично (за замовчуванням кожні 10 секунд) перевіряє зареєстровані об'єктні ліцензії, чи не завершився їх термін. (Періодичність опитування ліцензій можна змінити:

  • LifetimeServices.LeaseManagerPollTime = System.TimeSpan.FromMinutes(1);)

  • При завершенні терміну ліцензії об'єкт усе ж має можливість продовжити час свого існування за наявності спонсорів, зареєстрованих у ліцензіях.

  • В інтерфейсі ILease визначені методи Register та Unregister для реєстрації (відповідно де- реєстрації) спонсорів.



Спонсори

  • Спонсори – це об'єкти, що реалізують інтерфейс System.Runtime.Remoting.Lifetime.ISponsor.

  • Інтервал часу, на який спонсор продовжує ліцензію, задається властивістю ISponsor.RenewalTime.

  • Спонсори можуть бути зареєстровані як серверною, так і клієнтською програмами, використовуючи доступ до ліцензії.

  • Властивість ILease.SponsorshipTimeout визначає час очікуванні відповіді спонсора (виклику Renewal). (Нагадаємо, що спонсор може бути на іншій машині).

  • Є “готовий” клас-спонсор ClientSponsor (див. додаток) у просторі імен System.Runtime.Remoting.Lifetime.



Спонсори. Приклад (1/3)



Спонсори. Приклад (2/3)



Спонсори. Приклад (3/3)



Спонсори. Приклад. Виконання



Додаток



Основні властивості інтерфейсу ILease



Інтерфейс ILease



Інтерфейс ISponsor



Клас ClientSponsor



Managing the Lifetime of Remote .NET Objects with Leasing and Sponsorship (msdn.microsoft.com)

  • To configure global defaults programmatically, use the static properties of the LifetimeServices class defined in the System.Runtime.Remoting.Lifetime namespace:

  • You typically use these properties in the Main method of your host (the application assembly hosting the remote objects) as shown in the following code snippet:



ILease.CurrentState

  • CurrentState is read-only property of the ILease interface. CurrentState is of the enum type LeaseState:



Схожі:

Net remoting. Час життя об\Основи віддаленої взаємодії об'єктів. Net (. Net remoting) 2007 Зміст

Net remoting. Час життя об\Основи віддаленої взаємодії об'єктів. Net (. Net remoting) 2008 Зміст

Net remoting. Час життя об\Основи віддаленої взаємодії об'єктів. Net (. Net remoting) 2009 Зміст

Net remoting. Час життя об\Основи віддаленої взаємодії об'єктів. Net (. Net remoting) 2006-2009 Зміст

Net remoting. Час життя об\Net remoting. Час життя об'єктів 2006-2009 Зміст
Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються...
Net remoting. Час життя об\Основи віддаленої взаємодії об'єктів. Net (. Net remoting) 2006 Зміст
На цьому ґрунтується захист: збій в одному домені не впливає на інші домени, навіть у тому ж процесі. Зауважимо, що реальний процес...
Net remoting. Час життя об\Основи платформи. Net framework 2007 Зміст

Net remoting. Час життя об\Стандартні угоди com. Створення com-об’єктів 2007 Зміст

Net remoting. Час життя об\Технологія Java Remote Method Invocation (Java rmi) 2007 Зміст
Проблема отримання посилань на віддалені об'єкти (проблема отримання "найпершого" посилання на один із віддалених об'єктів)
Net remoting. Час життя об\Технологія Java Remote Method Invocation (Java rmi) 2007-2008 Зміст
Проблема отримання посилань на віддалені об'єкти (проблема отримання "найпершого" посилання на один із віддалених об'єктів)

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка