Варианты активизации для MBR-типа: WKO и CAO

Варианты активизации для MBR-типа: WKO и CAO

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

Причина такого, казалось бы. странного поведение связана с оптимизацией. Точнее, каждый MBR-тип можно настроить на активизацию с использованием одного из двух следующих подходов:

• как общеизвестный объект (Well-Known Object – WKO);

• как объект, активируемый клиентом (Client Activated Object – CAO).

Замечание. Потенциальным источником недоразумений здесь является то, что в литературе, посвященной .NET, вместо акронима WKO также используют SAO (Server Activated Object – объект, активизируемый сервером). Акроним SAO встречается в целом ряде статей и книг, связанных с .NET. В этой главе, в соответствии с современной терминологией, будет использоваться аббревиатура WKO.

WKO-объекты – это MBR-типы, цикл существования которых подконтролен непосредственно домену приложения сервера. Приложение клиента активизирует удаленный тип, используя понятное общеизвестное строковое имя (отсюда и возник термин WKO). Домен приложения сервера размещает WKO-типы тогда, когда клиент выполняет первый вызов метода данного объекта (через прозрачный агент), а не тогда, когда программный код клиента использует ключевое слово new или когда вызов происходит через статический метод Activator.GetObject(), например:

// Получение агента для удаленного объекта.

// Эта строка не приводит к немедленному создании WKO-типа!

object remoteObj = Activator.GetObject(/* параметры… */);

// Вызов метода удаленного WKO-типа. Это приводит к созданию

// WKO-объекта и вызову метода ReturnMessage().

RemoteMessageObject simple = (RemoteMessageObject)remoteObj;

Console. WriteLine("Сервер отвечает: {0}", simple.ReturnMуssage());

В чем здесь здравый смысл? При таком подходе простое предложение создать объект не ведет к немедленному пику сетевого обмена данными. Другим следствием является то, что WKO-типы могут создаваться только с помощью конструктора, заданного по умолчанию. Это разумно, поскольку конструктор удаленного типа используется только тогда, когда клиент выполняет вызов члена. Так что среда выполнения не имеет никакого иного варианта выбора, кроме вызова конструктора, заданного типом по умолчанию.

Замечание. Всегда помните о том, что любой WKD-тип должен иметь конструктор, заданный по умолчанию!

Если вы хотите разрешить клиенту создавать удаленные MBR-объекты с помощью пользовательского конструктора, сервер должен сконфигурировать соответствующий объект, как САО-объект. Цикл существования САО-объектов контролируется доменом приложения клиента. При доступе к САО-типу соответствующий обмен данными с сервером происходит уже при использовании клиентом ключевого слова new (с любым конструктором типа) или типа Activator.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Варианты будущего

Из книги Журнал «Компьютерра» № 20 от 29 мая 2007 года автора Журнал «Компьютерра»

Варианты будущего Автор: Киви БердВ знаменитом спилберговском фильме «Особое мнение», где тщательно и со множеством технических подробностей обрисовано мрачноватое будущее человечества, были интересные детали, на которые мало кто обратил внимание. Всем, скажем,


2.4.3. Варианты загрузки

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

2.4.3. Варианты загрузки Итак, на мой взгляд, выбор варианта загрузки производится следующим образом: • Если у вас установлена Windows NT или Windows 2000, то используйте NT Loader. • Если у вас стоит Windows 95 или Windows 98 на FAT16, и вы не хотите ставить программу-загрузчик из другой ОС или от


Варианты явного преобразования для типа Square

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Варианты явного преобразования для типа Square Теперь вы можете явно превращать прямоугольники в квадраты, но рассмотрим еще несколько вариантов явного преобразования. Поскольку у квадрата стороны равны, можно явно преобразовать System.Int32 в Square (длина стороны квадрата будет


Варианты конфигурации WKO-типа: синглеты и объекты одиночного вызова

Из книги Эффективное делопроизводство автора Пташинский Владимир Сергеевич

Варианты конфигурации WKO-типа: синглеты и объекты одиночного вызова Наконец, еще одна проблема выбора для MBR-типов в проекте .NET связана с тем, как сервер должен обрабатывать множественные обращения к WKO-типу. С САО-типами эта проблема не возникает, поскольку для них всегда


Снова о режиме активизации WKO-типов

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

Снова о режиме активизации WKO-типов Напомним, что WKO-типы можно настроить для работы либо в режиме синглета, либо в режиме объекта одиночного вызова. В настоящее время ваше серверное приложение регистрирует WKO-тип с использованием семантики активизации синглета.//


Особенности активизации

Из книги Основы AS/400 автора Солтис Фрэнк

Особенности активизации Разработка словарей, как и любого программного продукта, – трудоемкий процесс. Не секрет, что пиратское копирование программ наносит разработчикам огромный ущерб, поэтому создатели стараются противостоять нелегальному копированию их


Варианты воспроизведения

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Варианты воспроизведения Рассмотрим некоторые полезные особенности вывода воспроизводимого Проигрывателем изображения.Полноэкранный режим. Помимо использования окна предварительного просмотра Проигрывателя, изображение можно воспроизводить в полноэкранном


Группа активизации ILE

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Группа активизации ILE Группа активизации содержит целиком или только ссылки на некоторые компоненты со странными, на первый взгляд, именами и аббревиатурами. Давайте сначала разберемся, что это за компоненты.Блок управления активизацией программы PACB (Program Activation Control Block)


Процессы, задачи, задания, группы активизации и потоки

Из книги VBA для чайников автора Каммингс Стив

Процессы, задачи, задания, группы активизации и потоки Как уже упоминалось, первоначально в AS/400 было определено три уровня работы. Самый низкий уровень, под MI, — задача. Процесс «живет» на уровне MI и построен на структуре задач SLIC. Поверх модели процессов MI OS/400 в качестве


Улучшенные варианты

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

Улучшенные варианты Описанный механизм включает большинство случаев и достаточен для целей описания нашей книги. На практике полезны некоторые уточнения:[x]. Некоторые внешние программные элементы могут быть макросами. Они имеют вид подпрограмм в ОО-мире, но любой их


6.16 Варианты

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

6.16 Варианты Для одного или нескольких дополнительных вариантов доступно 40 специальных октетов в заголовке IP. Варианты датаграмм выбираются отсылающими их приложениями. Применяются они крайне редко. Список вариантов включает:? Strict Source Route (Точный маршрут от


14.9.3 Варианты TFTP

Из книги автора

14.9.3 Варианты TFTP Улучшенный вариант TFTP разрешает согласование параметров через предварительные запросы чтения и записи. Его основная цель — позволить клиенту и серверу согласовывать между собой размер блока, когда он больше 512 байт (для увеличения эффективности


22.7.5 Варианты Destination

Из книги автора

22.7.5 Варианты Destination Заголовок Destination Option (варианты точки назначения) обеспечивает сведения о точке (точках) назначения для многоадресной рассылки. В настоящее время для этого заголовка не специфицировано никаких вариантов, кроме полей заполнения. Формат заголовка


Отличия процедур типа Function от процедур типа Sub

Из книги автора

Отличия процедур типа Function от процедур типа Sub Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя


5.2. Варианты подключения

Из книги автора

5.2. Варианты подключения Итак, мы разобрались, что такое Интернет, теперь нужно к нему подключиться. Подключением пользователей ко Всемирной компьютерной сети занимаются специальные компании — провайдеры. За определенную плату (увы, и в виртуальном мире коммунизм еще не


13.8. Variations (Варианты)

Из книги автора

13.8. Variations (Варианты) С помощью этой команды можно настраивать насыщенность, освещенность, а также цвета изображения (рис. 13.10). Кроме того, можно выбрать область воздействия (тени, средние тона и др.). Чтобы узнать, как будет выглядеть изображение после применения настройки,