Продолжается подписка на наши издания! Вы не забыли подписаться?

.NET Enterprise Services и архитектура COM+ 1.5

Michael McKeown
Microsoft Corporation

Введение

COM+ 1.5 можно рассматривать как улучшенный COM+ 1.0. COM+ 1.0 привнес внутренние улучшения вроде контекстов, новой архитектуры пулов потоков и объектов, а COM+ 1.5 предоставил больше функциональных возможностей для применения в распределенных приложениях. При правильном использовании эти усовершенствования могут вылиться в улучшения производительности, надежности, масштабируемости, а также в упрощение управляемости вашего приложения.

Некоторые из этих, ныне стандартных, возможностей, ранее реализовались под COM только с помощью изощренного кода или способов администрирования. Например, компонент может быть задуман как «частный» для вашего приложения, чтобы предотвратить его создание вне этого процесса. Раньше это делалось настройками безопасности для этого компонента, но не назначением роли компонента. Другой пример – назначение псевдонимов компонентам, позволяющее использовать один и тот же бинарный код в разных приложениях на одной машине. До COM+ 1.5 это достигалось с помощью магических манипуляций с дополнительными ProgID и CLSID.

Большая часть этих концепций действительно нова и дает больше свободы архитектуре приложения. Она позволяет, например, создавать пулы приложений, представлять COM+-приложения как Web-сервисы или сервисы NT и даже использовать COM+-сервисы, не конфигурируя приложение в COM+. Несмотря на то, что COM+ – мощная и богатая возможностями штука, необходимо понимать, как правильно применять эти возможности, поскольку единственная галочка может как создать, так и разрушить приложение. Эта статья должна дать вам знания, необходимые для того, чтобы принять правильное решение по дизайну приложения.

Чтобы ограничить размер статьи, предполагается, что читатель имеет хорошее представление о концепциях MTS и COM+ 1.0.

.NET Enterprise Services и COM+

При выходе Microsoft Transaction Server (MTS) некоторые граждане смотрели на него и говорили: «Отстаньте, я не занимаюсь транзакциями». Но, несмотря на использование слова «транзакции» в названии, в MTS содержалось куда больше, чем просто поддержка транзакций для компонентов. То, что MTS поставлялся отдельно от Windows NT, только повышало его загадочность.

В отличие от своего предшественника, MTS, COM+ поставляется с операционной системой – версия 1.0 с Windows 2000, а 1.5 – с Windows XP и Windows Server 2003. (в этой статье платформа, на которой работает COM+ 1.5 будет называться Windows XP/Windows Server 2003). У тех, кто ранее не применял MTS, при встрече с такой связкой возникли вопросы – должен ли я использовать COM+? Нужно ли его использовать? И как его использовать наиболее эффективно?

После выхода Microsoft .NET Framework с его «авто-все-на-свете» - моделью программирования, основанной на аттрибутах, эти вопросы возникли опять. Разработчики и архитекторы задают вопросы, похожие на те, что задавались, когда неожиданно возник ActiveX: "Чем это отличается от COM и OLE?". Существует изначальное общее непонимание взаимоотношений между COM+ и Microsoft .NET: Как .NET вписывается в COM+? Заменяет ли оно COM+? Нужен ли еще COM+?

Ладно, расслабьтесь. :-) Все возможности и службы COM+ доступны в .NET Framework. .NET Framework не заменяет COM+, так как использует его службы для компонентов промежуточного уровня. .NET Framework предоставляет управляемому коду среду для использования COM+ так же, как другие технологии Microsoft – IIS и MSMQ, – но проще, чем это делалось раньше.

Чтобы добавить путаницы, .NET Framework предоставляет некоторую технологию, называемую Enterprise Services (классы в пространстве имен System.EnterpriseServices), которая обеспечивает хостинг управляемых объектов в среде COM+. Эти классы предлагают более простые способы программного использования служб COM+, чем имевшиеся раньше. На какую версию COM они отображаются, полностью зависит от того, где работает .NET Framework – на Windows 2000 или Windows XP/Windows Server 2003. Рисунок 1 показывает взаимоотношения этих технологий.

Рисунок 1. .NET Framework использует COM+/IIS/MSMQ для своих служб промежуточного слоя

**Полный текст статьи можно найти в печатном варианте журнала

Copyright © 1994-2016 ООО "К-Пресс"