Com+ Services без концепций компонентов
COM+ 1.5 представляет возможность использования служб COM+ без компонентов. Это значительно снижает затраты на производительность при использовании служб COM+ из среды, которая не использует компоненты, а также устраняет сложность использования этих служб. Начиная с IIS 6.0, IIS и ASP используют преимущества использования служб COM+ без компонентов.
Службы COM+ изначально предназначены для использования с компонентами COM+. Однако некоторые среды программирования не основаны на компонентах и поэтому требуют значительных затрат на использование служб COM+. Например, до выпуска COM+ 1.5 службы IIS должны были создавать объекты схима исключительно для использования служб транзакций COM+ на страницах ASP. Затраты на производительность, поступающие от создания этих объектов, включают хранение данных конфигурации как в метабазе IIS, так и в базе данных регистрации COM+ (RegDB), а также дополнительную связь между метабазой IIS и COM+ RegDB, необходимой для эффективного управления данными конфигурации.
Если служба IIS должна была использовать вторую службу COM+, например синхронизацию, она должна была создать совершенно другой объект схима для этого. Чтобы использовать как транзакции COM+, так и синхронизацию, потребуется третий тип объекта shim. Сложность этого подхода масштабируется как O(n2), что делает реализацию новых служб чрезвычайно сложной.
При внедрении служб COM+ без компонентов необходимые службы настраиваются с помощью объекта, созданного из класса. Класс CServiceConfig реализует интерфейсы, необходимые для настройки различных служб, обеспечивая гибкость поддержки нескольких служб одновременно и возможность поддерживать новые службы в будущем.
Затем настроенные службы можно использовать с помощью двух разных механизмов: их можно использовать с помощью функции CoCreateActivity, которая применяет службы ко всем работам, отправленным с помощью действия, созданного функцией, и их также можно использовать путем внедрения работы, которая использует службы между вызовами функций CoEnterServiceDomain и CoLeaveServiceDomain. Ни одна из этих функций не требует создания новых компонентов, чтобы иметь возможность использовать службы COM+; требуется только объект CServiceConfig .
См. также