Сервер транзакций Microsoft - Microsoft Transaction Server

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

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

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

Архитектура

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

Компоненты COM, которые работают под управлением MTS Executive, называются компонентами MTS. В COM + они называются приложениями COM +. Компоненты МТС в процессе 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. ^ а б Дон Бокс; Крис Селлс (4 ноября 2002 г.). Essential.NET: среда CLR. Эддисон-Уэсли Профессионал. п.206. ISBN  978-0-201-73411-9. Получено 4 октября 2011.

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