Варианты активизации для 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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Группа активизации ILE
Группа активизации ILE Группа активизации содержит целиком или только ссылки на некоторые компоненты со странными, на первый взгляд, именами и аббревиатурами. Давайте сначала разберемся, что это за компоненты.Блок управления активизацией программы PACB (Program Activation Control Block)
Процессы, задачи, задания, группы активизации и потоки
Процессы, задачи, задания, группы активизации и потоки Как уже упоминалось, первоначально в AS/400 было определено три уровня работы. Самый низкий уровень, под MI, — задача. Процесс «живет» на уровне MI и построен на структуре задач SLIC. Поверх модели процессов MI OS/400 в качестве
2.4.3. Варианты загрузки
2.4.3. Варианты загрузки Итак, на мой взгляд, выбор варианта загрузки производится следующим образом: • Если у вас установлена Windows NT или Windows 2000, то используйте NT Loader. • Если у вас стоит Windows 95 или Windows 98 на FAT16, и вы не хотите ставить программу-загрузчик из другой ОС или от
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 обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя
Варианты явного преобразования для типа Square
Варианты явного преобразования для типа Square Теперь вы можете явно превращать прямоугольники в квадраты, но рассмотрим еще несколько вариантов явного преобразования. Поскольку у квадрата стороны равны, можно явно преобразовать System.Int32 в Square (длина стороны квадрата будет
Варианты конфигурации WKO-типа: синглеты и объекты одиночного вызова
Варианты конфигурации WKO-типа: синглеты и объекты одиночного вызова Наконец, еще одна проблема выбора для MBR-типов в проекте .NET связана с тем, как сервер должен обрабатывать множественные обращения к WKO-типу. С САО-типами эта проблема не возникает, поскольку для них всегда
Снова о режиме активизации WKO-типов
Снова о режиме активизации WKO-типов Напомним, что WKO-типы можно настроить для работы либо в режиме синглета, либо в режиме объекта одиночного вызова. В настоящее время ваше серверное приложение регистрирует WKO-тип с использованием семантики активизации синглета.//
Особенности активизации
Особенности активизации Разработка словарей, как и любого программного продукта, – трудоемкий процесс. Не секрет, что пиратское копирование программ наносит разработчикам огромный ущерб, поэтому создатели стараются противостоять нелегальному копированию их
Варианты воспроизведения
Варианты воспроизведения Рассмотрим некоторые полезные особенности вывода воспроизводимого Проигрывателем изображения.Полноэкранный режим. Помимо использования окна предварительного просмотра Проигрывателя, изображение можно воспроизводить в полноэкранном
Варианты будущего
Варианты будущего Автор: Киви БердВ знаменитом спилберговском фильме «Особое мнение», где тщательно и со множеством технических подробностей обрисовано мрачноватое будущее человечества, были интересные детали, на которые мало кто обратил внимание. Всем, скажем,
13.8. Variations (Варианты)
13.8. Variations (Варианты) С помощью этой команды можно настраивать насыщенность, освещенность, а также цвета изображения (рис. 13.10). Кроме того, можно выбрать область воздействия (тени, средние тона и др.). Чтобы узнать, как будет выглядеть изображение после применения настройки,
Улучшенные варианты
Улучшенные варианты Описанный механизм включает большинство случаев и достаточен для целей описания нашей книги. На практике полезны некоторые уточнения:[x]. Некоторые внешние программные элементы могут быть макросами. Они имеют вид подпрограмм в ОО-мире, но любой их
5.2. Варианты подключения
5.2. Варианты подключения Итак, мы разобрались, что такое Интернет, теперь нужно к нему подключиться. Подключением пользователей ко Всемирной компьютерной сети занимаются специальные компании — провайдеры. За определенную плату (увы, и в виртуальном мире коммунизм еще не