Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Microsoft Transaction Server ( MTS ) был программным обеспечением, которое предоставляло услуги программным компонентам компонентной объектной модели (COM) , чтобы упростить создание больших распределенных приложений. Основными услугами, предоставляемыми MTS, были автоматическое управление транзакциями, управление экземплярами (или своевременная активация ) и безопасность на основе ролей. MTS считается первым крупным программным обеспечением, реализующим аспектно-ориентированное программирование . [1]

MTS впервые была предложена в пакете опций Windows NT 4.0. В Windows 2000 MTS была усовершенствована и лучше интегрирована с операционной системой и COM и была переименована в COM + . COM + добавил к функциям MTS объединение объектов , слабосвязанные события и определяемые пользователем простые транзакции (компенсирующие менеджеры ресурсов).

COM + по-прежнему входит в состав Windows Server 2003 и Windows Server 2008 , а Microsoft .NET Framework предоставляет оболочку для COM + в пространстве имен EnterpriseServices. Communication Foundation для Windows (WCF) предлагает способ вызова COM + приложения с веб - службами . Однако COM + основан на COM, а стратегическая программная архитектура Microsoft теперь - это веб-службы и .NET, а не COM. Для многих функций, предоставляемых COM +, существуют чистые альтернативы на основе .NET, и в долгосрочной перспективе вполне вероятно, что COM + будет прекращен.

Архитектура [ править ]

Базовая архитектура МТС включает:

Компоненты COM, которые работают под управлением MTS Executive, называются компонентами MTS. В COM + они называются приложениями COM +. Компоненты MTS - это внутрипроцессные библиотеки DLL . Компоненты МТС развертываются и запускаются в Управлении МТС, которое ими управляет. Как и другие компоненты COM, объект, реализующий интерфейс IClassFactory, служит объектом Factory для создания новых экземпляров этих компонентов.

MTS вставляет объект Factory Wrapper и Object Wrapper между фактическим объектом MTS и его клиентом. Это вставка оберток называется перехватом . Каждый раз, когда клиент выполняет вызов компонента MTS, оболочки (Factory и Object) перехватывают вызов и вводят в вызов свой собственный алгоритм управления экземплярами, называемый JITA (Just-In-Time Activation). Затем оболочка выполняет этот вызов в фактическом компоненте MTS. В то время перехват считался трудным из-за отсутствия расширяемых метаданных. [1]

Кроме того, на основе информации из свойств развертывания компонента в этих объектах-оболочках также выполняются логика транзакций и проверки безопасности.

Для каждого объекта, размещенного в MTS, также существует объект контекста, который реализует интерфейс IObjectContext. Объект контекста поддерживает конкретную информацию об этом объекте, такую ​​как его транзакционная информация, информация о безопасности и информация о развертывании. Методы компонента MTS вызывают объект контекста через его интерфейс IObjectContext.

MTS не создает фактический объект MTS среднего уровня, пока вызов от клиента не достигнет контейнера. Поскольку объект не работает все время, он не использует много системных ресурсов (даже несмотря на то, что оболочка и каркас объекта сохраняются).

Как только поступает вызов от клиента, процесс-оболочка MTS активирует свой алгоритм управления экземплярами, называемый JITA. Фактический объект MTS создается «как раз вовремя» для обслуживания запроса от оболочки. И когда запрос обслуживается и ответ отправляется обратно клиенту, компонент либо вызывает SetComplete () / SetAbort (), либо его транзакция завершается, либо клиент вызывает Release () для ссылки на объект, и фактический Объект МТС уничтожен. Короче говоря, MTS использует модель компонентов без сохранения состояния.

Обычно, когда клиент запрашивает услуги у типичного компонента MTS, на сервере происходит следующая последовательность:

  1. получить соединение с базой данных
  2. считывать состояние компонента либо из Менеджера общих свойств, либо из уже существующего объекта, либо из клиента
  3. выполнять бизнес-логику
  4. записать измененное состояние компонента, если оно есть, обратно в базу данных
  5. закрыть и освободить соединение с базой данных
  6. голосование по результату сделки. Компоненты MTS не совершают транзакции напрямую, а сообщают MTS о своем успехе или неудаче.

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

Ссылки [ править ]

  1. ^ a b Don Box; Крис Селлс (4 ноября 2002 г.). Essential.NET: среда CLR . Эддисон-Уэсли Профессионал. п. 206 . ISBN 978-0-201-73411-9. Проверено 4 октября 2011 года .

Внешние ссылки и ссылки [ править ]

  • Краткий обзор Microsoft Transaction Server