Поделиться через


Сценарии конвейера надстройки

Модель объектов конвейера надстройки обеспечивает гибкость взаимодействия для ведущих приложений и надстроек следующими способами:

  • Обратная совместимость. Более новые версии узлов или надстроек могут работать со своими более старыми аналогами.

  • Изоляция. Одну или несколько надстроек можно перемещать в домен приложений в ведущий процесс или в изолированный процесс.

  • Совместное использование. Надстройку можно использовать в нескольких коммуникационных конвейерах.

На следующем рисунке показан простой коммуникационный конвейер и его сегменты.

Стандартный коммуникационный конвейер:

Модель конвейера надстройки.

Обратная совместимость

Существуют два сценария, демонстрирующие обратную совместимость.

Новый узел, старые надстройки

На следующем рисунке показано, как новый узел может работать со старой надстройкой.

Коммуникационный конвейер с новым узлом и старой надстройкой

Сценарий конвейера: новое основное приложение, старые надстройки.

В данном сценарии обратной совместимости новый узел (узел v2) может работать со старой надстройкой (надстройка v1), так как его адаптер со стороны надстройки (адаптер со стороны надстройки v1->v2) преобразует типы в формат, который понимается старой надстройкой.

Новая надстройка (надстройка v2) имеет свои собственные сегменты представления и адаптера для взаимодействия с новым узлом.

Старый узел, новые надстройки

На следующем рисунке показано, как старый узел может работать с новыми надстройками.

Коммуникационный конвейер со старым узлом и новой надстройкой

Сценарий конвейера: старое основное приложение, новые надстройки.

В данном сценарии обратной совместимости новая надстройка (надстройка v2) может работать со старым узлом (узел v1), так как его адаптер со стороны надстройки (адаптер со стороны надстройки v2->v1) преобразует типы в формат, который понятен старому узлу.

Изменение уровней изоляции

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

  • Для обработки ситуаций, в которых ведущее приложение изменяется, и его новые зависимости не могут быть приспособлены под более старые надстройки. Например, это может произойти, когда ведущее приложение обновляется до новой версии приложения .NET Framework.

  • Для обеспечения надежности за счет выполнения надстройки в своем собственном процессе.

  • Создайте песочницу для надстройки. Например, ведущее приложение и надстройка имеют разные уровни доверия, как указано перечислением AddInSecurityLevel.

На следующем рисунке показан коммуникационный конвейер с двумя надстройками, одна из которых находится в изолированном процессе. На рисунке OOP указывает изолированный процесс.

Коммуникационный конвейер с изолированной надстройкой

Сценарий конвейера: уровни изоляции.

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

Общие надстройки

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

Чтобы предоставить надстройке возможность работы с ее новым узлом, следует создать новый адаптер со стороны надстройки, который выполняет преобразование из представления используемой надстройки в контракт узла.

На следующем рисунке показано, как надстройка (надстройка "A") может совместно использоваться двумя ведущими приложениями (узел "A" и узел "B").

Коммуникационный конвейер с общей надстройкой:

Сценарий конвейера: общие надстройки.

См. также

Основные понятия

Разработка конвейера