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


НазваОснови віддаленої взаємодії об'єктів. Net (. Net remoting) 2006 Зміст
Дата конвертації13.04.2013
Розмір445 b.
ТипПрезентации


Основи віддаленої взаємодії об'єктів .NET (.NET Remoting)

  • 2006


Зміст

  • Типи об'єктів для віддаленої взаємодії. Домени.

  • Типи marshal-by-value. Серіалізація.

  • Типи marshal-by-reference.

  • Порівняння активізації віддалених об'єктів у COM та .NET. Хост-сервери .NET.

  • Серверна активізація. Режим Singleton.

  • Серверна активізація. Режим SingleCall.

  • Клієнтська активізація.

  • Канали. Стандартні типи каналів: TcpChannel та HttpChannel.

  • Конфігурування інфраструктури .NET Remoting:

    • програмне;
    • з використанням конфігураційних файлів.


Типи об'єктів для віддаленої взаємодії (remotable-типи). Домени

  • Тип вважається типом для віддаленої взаємодії (remotable-типом) при виконанні хоча б однієї з наступних умов:

    • дані типу здатні перетинати кордони .NET Remoting;
    • можна звертатися до даних типу ззовні (з-за кордону .NET Remoting), тобто ззовні ці дані є доступними.
  • Найчастіше кордони .NET Remoting пов'язуються з процесами та доменами.

  • Домен (домен програми) можна розглядати як деякий логічний процес, при цьому код і об'єкти одного домену не мають безпосереднього доступу (тільки Remoting!) до коду й об'єктів іншого домену. На цьому ґрунтується захист: збій в одному домені не впливає на інші домени, навіть у тому ж процесі. (Зауважимо, що реальний процес здатний підтримувати одразу кілька програмних доменів).

      • (Загалом, віддалена взаємодія може розглядатись не тільки на рівні процесів чи доменів, але і для контекстів. З точки зору CLR домен може підрозділятись на окремі контексти. Контекстом гарантуються єдині обмеження на всі об'єкти у межах даного контексту. Наприклад, контекст синхронізації дозволяє виконуватись у будь-який момент максимум одному потоку.)


Категорії remotable-типів

  • Категорії remotable-типів:

    • типи, що передаються за значеннями (marshal-by-value);
    • типи, що передаються за посиланнями (marshal-by-reference).


Типи, що передаються за значеннями (marshal-by-value). Серіалізація

  • Екземпляри типів, що передаються за значеннями, перетинають кордони .NET Remoting за допомогою серіалізації.

  • Серіалізація — це процес представлення поточного стану об'єкта у вигляді послідовності даних.

  • Після серіалізації об'єкта інфраструктура .NET Remoting здатна пересилати такі дані, долаючи кордони .NET Remoting, та одержувати (після десеріалізації) точну копію первісного об'єкта в іншому домені чи процесі.

  • Тип вважається серіалізованим, якщо він описаний з атрибутом Serializable:

  • [Serializable]

  • class TheSerializableClass.

  • (Тип з атрибутом Serializable може реалізовувати інтерфейс ISerializable з метою запровадження нестандартної серіалізації).



Типи, що передаються за посиланнями (marshal-by-reference). Активізація віддалених об'єктів

  • Для типів, що передаються за посиланням (такі типи мають успадковуватися від System.MarshalByRefObject), NET Remoting передає посилання на екземпляри, а не серіалізовані копії об'єктів.

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

  • Приклад типу, що передається за посиланням (marshal-by-reference): class TheMarshalByReferenceClass : MarshalByRefObject.

  • Створення та ініціалізація об'єктів marshal-by-reference типу пов'язується з так званою активізацією.

  • У .NET Remoting підтримуються два види активізації: серверна та клієнтська.

    • Зауважимо, що типи, які передаються за значеннями (marshal-by-value), не вимагають особливого механізму активізації, тому що після десеріалізації можна одержувати "точні" копії первісних об'єктів.


Порівняння активізації віддалених об'єктів у COM та .NET. Хост-сервери .NET

  • На відміну від COM при віддаленій взаємодії у .NET клієнтський додаток сам по собі не запускає серверний додаток. Це, зокрема, означає, що при розробці серверних проектів потрібно орієнтуватись на використання програм-хостів.

  • Хостами віддаленої взаємодії можуть бути:

    • консольні (“текстові”) програми;
    • віконні програми (додатки Windows Form);
    • служби Windows;
    • процеси IIS (Internet Information Services);
    • додатки ASP.NET.


Спрощена архітектура .NET Remoting (www.msdn.microsoft.com)



Канали

  • Канали виступають транспортним механізмом при пересиланні серіалізованих об'єктів-повідомлень, долаючи кордони .NET Remoting.

  • Об'єкти-канали з інфраструктури .NET Remoting інкапсулюють задачі низького рівня, пов'язані з мережною взаємодією: відкриття мережного підключення, форматування повідомлення, запис у потік, передача даних по мережі серверній програмі з використанням якогось транспортного протоколу тощо.

  • .NET Remoting використовує два стандартних типи каналів: TcpChannel та HttpChannel, але можна створювати і власні канальні типи.



Стандартні типи каналів: TcpChannel та HttpChannel

  • Тип TcpChannel (із простору імен System.Runtime.Remoting.Channels.Tcp) використовує для серіалізації об'єктів-повідомлень за замовчуванням двійковий формат, для транспортування – протокол TCP і, взагалі кажучи, забезпечує максимальну ефективність передачі даних на основі сокетів.

  • Тип HttpChannel (із простору імен System.Runtime.Remoting.Channels.Http) використовує для серіалізації об'єктів-повідомлень за замовчуванням мережний формат SOAP , для транспортування – протокол HTTP. Цей тип каналу забезпечує відкритість даних, дозволяє використовувати для їхньої передачі Інтернет і брандмауери. (Проте при потребі підвищити ефективність передачі даних можна використати двійковий форматувальник).

  • Типи TcpChannel і HttpChannel дозволяють створювати двонапрямлені канали, зручні для підтримки не тільки прямих, але і зворотних викликів, що, наприклад, вимагається при використанні подій. Іноді можна обмежитися типами однонапрямлених каналів – клієнтських або серверних: TcpClientChannel, TcpServerChannel, HttpClientChannel, HttpServerChannel.



Серверна активізація віддалених об'єктів

  • Типи, що активізуються сервером при налагоджуванні (конфігуруванні) .NET Remoting трактуються як загальновідомі (wellknown).

  • Терміном wellknown підкреслюється, що серверна програма насамперед зобов'язана віддалений тип "опублікувати”, використовуючи загальновідомий уніфікований ідентифікатор ресурсузагальновідомий URI (Uniform Resource Identifier). Лише після публікації об'єкти такого віддаленого типу можуть бути активізовані.

  • У .NET Remoting підтримуються два режими серверної активізації: Singleton і SingleCall.



Серверна активізація віддалених об'єктів. Режим Singleton

  • Режим Singleton означає, що у будь-який момент може бути активним максимум один віддалений об'єкт, який активізується при першому звертанні до нього (не важливо яким саме клієнтом).

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



Серверна активізація віддалених об'єктів. Режим SingleCall

  • У режимі SingleCall інфраструктура .NET Remoting буде активізувати новий віддалений об'єкт серверної програми для виконання кожного окремого виклику методу.

  • Після завершення виконання окремого виклику відповідний екземпляр типу знищується (точніше, він робиться доступним для “збирача сміття”).

  • (Цей режим відповідає моделі програмування без збереження станів).



Клієнтська активізація віддалених об'єктів

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



Керування часом життя віддалених об'єктів

  • Для об'єктів з клієнтською активізацією, як і для об'єктів з серверною активацією в режимі Singleton, використовується спеціальний механізм керування часом життя, що базується на ліцензіях та спонсорах.

  • (Ключовими для такого механізму є методи та властивості інтерфейсів ILease та ISponsor).



Активізація віддалених об'єктів. Ще кілька зауважень

  • Вид активізації (серверна чи клієнтська), а також можливий режим (Singleton чи SingleCall для серверної активізації) визначаються не типом, а налаштовуванням (конфігуруванням) інфраструктури .NET Remoting. Це, зокрема, означає, що один і той самий тип може бути в одній програмі використаний (“зконфігурований”) для активізації сервером, а в іншій — для активізації клієнтом.

  • Можна використовуватися два варіанти конфігурування інфраструктури .NET Remoting: програмний і з використанням конфігураційних файлів.



Активізація віддалених об'єктів. Ще кілька зауважень (2)

  • У випадку серверної активізацієї виклик клієнтом оператора new не призводить до активізації об'єкта – у цей момент на боці клієнта створюється тільки об'єкт-проксі. Сам віддалений об'єкт буде створюватися у серверній програмі лише у відповідь на виклик деякого метода віддаленого об'єкта. Така особливість створення віддаленого об'єкта пояснює, чому об'єкт із серверною активізацією не може створюватися конструкторами з параметрами (а, отже, доводиться задовольнятися конструктором без параметрів, тобто конструктором за замовчуванням).

  • Зазначимо, що об'єкти з клієнтською активізацією створюються на сервері у момент виклику клієнтом newnew забезпечує створення як проксі, так і власне віддаленого об'єкта).



Приклад. Модуль SObj.cs із віддаленим типом Server.ServerObject







Приклад. Remoting. Серверна активізація. Режим Singleton



Приклад. Remoting. Серверна активізація. Режим SingleCall























Віддалені об'єкти з використанням IIS (Internet Information Services)

  • IIS можна використовувати в якості хоста та агента активізації віддалених об'єктів.

  • IIS, по-перше, є звичайною службою Windows і, по-друге, застосовується на більшості Web-серверів.







Додаток





Internet Information Services



Створення віртуального каталога

  • Control Panel ->Administrative Tools -> Internet Information Services



Wizard



Віртуальний каталог створено



Схожі:

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

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

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

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

Основи віддаленої взаємодії об\Net remoting. Час життя об'єктів 2006-2009 Зміст
Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються...
Основи віддаленої взаємодії об\Основи платформи. Net framework 2006-2012 Зміст

Основи віддаленої взаємодії об\Net remoting. Час життя об'єктів 2007 Зміст
Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються...
Основи віддаленої взаємодії об\Перенесення рішень із платформи. Net на платформу com 2006 Зміст

Основи віддаленої взаємодії об\Основи платформи. Net framework 2007 Зміст

Основи віддаленої взаємодії об\Основи платформи. Net framework 2006 Зміст
Розробка платформи почалася у 1998 році. Перша робоча назва Project 42, потім була назва com object Runtime чи, скорочено, cor, пізніше...

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


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