Архитектура Microsoft Windows для разработчиков



Занятие 8.

Microsoft Transaction Server

(Продолжительность занятия 15 минут)

Microsoft Transaction Server (MTS) — приложение обработки транзакций для создания, развертывания и управления высокопроизводительными, масштабируемыми и устойчивыми серверными приложениями уровня предприятия для работы в интрасети и Интернете.

MTS можно использовать для построения масштабируемых серверных приложений из ActiveX-компонентов. Он позволяет сосредоточиться на решении проблем бизнеса, а не на разработке инфраструктуры приложений. Это занятие посвящено компонентам MTS, транзакциям и вызову компонентов MTS.

 
Изучив материал этого занятия, Вы сможете:

  • описать компоненты MTS;
  • описать транзакцию;
  • объяснить, как вызывать компоненты MTS.

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

Программы на базе MTS строятся из наборов ActiveX-компонентов, реализующих бизнес-функции. Эти компоненты разрабатываются так же, как для одного пользователя. Благодаря их установке и выполнению в среде Transaction Server, серверное приложение автоматически масштабируется для поддержки множества параллельно обращающихся клиентов, обеспечивая высокую производительность и надежность.

Средства Transaction Server позволяют конструировать приложения, которые защитят Вас от сложностей разработки инфраструктуры, позволяя сосредоточиться на программировании конкретных функций и тем самым снижая стоимость и время разработки приложений для интрасети и Интернета.

Компоненты приложения

Компоненты приложения MTS моделируются на основе бизнес-правил. Они реализуются как внутрипроцессные СОМ-серверы (библиотеки динамической загрузки). Мы подробно обсудим СОМ в главе 5. Создают их с использованием Visual Basic, Visual C++, Visual J++ или любого другого ActiveX-совместимого средства разработки.

Компоненты, выполняющиеся в среде Transaction Server, используют модель транзакций, поэтому приложения можно программировать так, как будто они работают изолированно. Transaction Server берет на себя заботу о параллельном выполнении компонентов, распределении ресурсов между ними, защите, управлении контекстом и т. д. Система транзакций, работая согласованно с серверами баз данных и другими диспетчерами ресурсов, обеспечивает целостность, непротиворечивость, изолированность и завершенность транзакций.

Транзакции

Transaction Server упрощает задачу разработки компонентных приложений за счет модели транзакции. Она предохраняет приложения от проблем, связанных с одновременным обновлением данных или сбоями системы. Вот каковы свойства транзакции.

  • Целостность (atomicity) — все обновления, заданные транзакцией, завершаются полностью либо в случае сбоя отменяются, и контекст приобретает первоначальный вид.
  • Непротиворечивость (consistency) — при транзакции состояние системы преобразуется корректно, без изменения констант состояния.
  • Изолированность (isolation) — параллельные транзакции изолированы от частичных и незавершенных результатов друг друга, что гарантирует непротиворечивость состояния приложения. Менеджеры ресурсов с помощью протоколов синхронизации на основе транзакций изолируют результаты незавершенной работы активных транзакций.
  • Завершенность (durability) — завершенная модификация ресурса (например, записи базы данных) сохраняется при сбоях соединений, процессов и системы. Журнал транзакций позволяет восстановить завершенное состояние даже после сбоя дисковых носителей.

Промежуточные состояния транзакции невидимы за ее пределами. Если транзакция завершилась неудачно, она отменяется целиком. Это позволяет разрабатывать компоненты приложения так, как будто транзакции выполняются последовательно и независимо друг от друга.

Компонент приложения можно объявить транзакционным, и в этом случае Transaction Server свяжет транзакции с объектами компонента. При выполнении методов такого объекта соответствующие сервисы менеджеров ресурсов реализуются как транзакции. В эту модель можно включить операции, выполняемые для других объектов Transaction Server, а действия нескольких объектов объединить в одну неделимую транзакцию.

Вызов компонентов MTS

Компоненты MTS и клиенты могут находится на разных компьютерах. Для вызова клиентом компонента MTS применяется специальная реализация СОМ — модель распределенного многокомпонентного объекта (Distributed СОМ, DCOM), HTTP или удаленная автоматизация (рис. 3.7). Для выполнения компонента на клиентском компьютере на нем необходимо установить MTS.

3-15.jpg

Рис. 3.7 Вызов компонента MTS

Вызов компонентов MTS средствами DCOM

DCOM — стандартный транспорт для вызова компонентов MTS. Чтобы разрешить DCOM-вызовы компонентов MTS, нужно настроить следующие параметры.

  • Реестр клиента — самый простой способ настройки клиентского приложения для вызова удаленного компонента MTS заключается в применении утилиты установки клиента, которая автоматически настраивает параметры реестра.
  • Параметры защиты DCOM — возможно потребуется настроить уровни персонификации и аутентификации как для клиента, так и для сервера (по умолчанию MTS использует значения Identify и Connect соответственно). Значения по умолчанию не рекомендуется изменять при помощи утилиты конфигурации DCOM (DCOMCNFG) — необходимые изменения должны быть сделаны на уровне пакета с помощью MTS Explorer.

Если Вы планируете пользоваться MTS на клиентах под управлением Microsoft Windows 95, установите DCOM для Windows 95.

 
Примечание DCOM для Windows 95 (версия 1.1) можно загрузить с Web-узла Microsoft. Информацию о поддержке DCOM для Windows 95 Вы найдете на узле www.microsoft.com/oledev.

Вызов компонентов MTS средствами удаленной автоматизации

Удаленная автоматизация появилась в Visual Basic 4.0 еще до DCOM; она полезна для 16-разрядных клиентов, поскольку DCOM работает только с 32-разрядными клиентами. Для применения удаленной автоматизации на сервере, где установлены компоненты MTS, должен быть запущен диспетчер удаленной автоматизации (RACMAN). Подробности — в документации по Visual Basic.

Примечание При использовании удаленной автоматизацией средства защиты MTS недоступны, поскольку все вызовы осуществляются от имени RACMAN. Последний не выполняет персонификацию при вызове компонентов на сервере, и поэтому определить фактического клиента невозможно.

Резюме

Transaction Server можно использовать для построения масштабируемых серверных приложений из ActiveX-компонентов. Компоненты приложения MTS реализуются как внутрипроцессные СОМ-серверы (библиотеки динамической загрузки). Для их создания можно использовать Visual Basic, Visual C++, Visual J++ или любое другое ActiveX-совместимое средство разработки.

Transaction Server упрощает построение компонентных приложений посредством модели транзакций. Он предохраняет приложения от проблем, связанных с одновременным обновлением данных или сбоями системы.

Стандартным транспортом для вызова компонентов MTS является специальная реализация СОМ — DCOM. Чтобы разрешить DCOM-вызовы компонентов MTS, нужно настроить реестр клиента и параметры защиты DCOM.