Microsoft Transaction Server

редактировать

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

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

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

Архитектура

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

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

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

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

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

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

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

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

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

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

Ссылки

Внешние ссылки и ссылки

Последняя правка сделана 2021-05-30 10:14:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте