Знакомство с Microsoft Transaction Server
Закрепление материала
1. Предположим, вновь созданный банк Woodgrove Bank планирует производить операции в 16-ти отделениях. Каждое отделение хранит информацию о счетах в своей базе данных Microsoft SQL Server. Управляющий банком нанял группу программистов для разработки ПО синхронизации транзакций между всеми 16-ю базами данных, а Вас — в качестве консультанта для наблюдения за работой программистов. Вы хотите убедить управляющего использовать Microsoft Transaction Server. Какие доводы Вы приведете?
Microsoft Transaction Server обеспечивает синхронизацию транзакций между базами данных, что позволяет значительно снизить затраты времени на разработку, тестирование и отладку кода.
Microsoft Transaction Server обеспечивает целостность транзакций, тем самым гарантируя, что транзакция никогда не будет находиться в неизвестном состоянии.
Microsoft Transaction Server поддерживает технологию ActiveX, что обеспечивает возможность разработки приложений средствами Microsoft Visual Basic, Microsoft Visual C++ и Visual J++.
Microsoft Transaction Server управляет низкоуровневыми ресурсами системы, как то потоками и файловым обменом, освобождая разработчика от необходимости заботиться о решении этих вопросов.
2. Назовите три уровня трехуровневой' модели приложения и опишите функции каждого из них.
Пользовательские сервисы — клиентское приложение, в основном реализующее фун1фии графического пользовательского интерфейса (например, Web-обозреватель). Функции подключения к базе данных и обработки данных выполняют сервисы среднего звена. Этот подход ускоряет работу пользователей, но увеличивает сетевой трафик при разнесении компонентов системы по разным компьютерам.
Компоненты бизнес-логики и данных — компоненты среднего уровня реализуют правила обработки данных и логику приложения. Последняя состоит из алгоритмов бизнес-операций и например, законодательных ограничений. Правила работы с данными предназначены для обеспечения целостности структур данных одной или нескольких БД (например, расположенных на сервере, дабы упростить совместное использование ресурсов). Сервисы среднего уровня применяются и для принудительного обеспечения соблюдения бизнес-правил и правил работы с данными. Поскольку они не “привязаны” к конкретному клиенту, их можно использовать в любых приложениях.
Сервисы доступа к данным — это уровень доступа к системе управления базой данных. К нему могут обращаться сервисы среднего уровня и, при необходимости пользовательские сервисы. Этот слой не обеспечивает прямого подключения к базе данных — напротив, он состоит из компонентов доступа к данным, призванных облегчить совместное использование ресурсов и конфигурирование клиентов без установки библиотек или драйверов на каждый клиентский компьютер.
3. Предположим, один из членов правления банка Woodgrove Bank все еще сомневается в необходимости использования Microsoft Transaction Server. Он хочет, чтобы Вы провели на следующем заседании правления банка презентацию, на которой рассказали о преимуществах Microsoft Transaction Server. Он попросил Вас на этой презентации привести пример некорректной транзакции, заканчивающейся отказом. Какой пример Вы приведете?
В примере важно отразить все компоненты, участвующие в транзакции. Для банковской транзакции подойдет следующий пример.
Клиент с помощью Web-обозревателя подключается к Web-узлу банка. На этой стадии используются следующие компоненты: клиент, сеть и приемник запросов (в этом качестве выступает соответствующий компонент Microsoft Transaction Server).
В течение нескольких минут после первого запроса еще 100 пользователей точно также подключаются к Web-узлу банка. Для обработки их запросов Microsoft Transaction Server использует следующие компоненты: приемник и диспетчеры очереди, соединений, контекста и защиты.
Приемник управляет входящими соединениями. Диспетчер очереди отвечает за очередность обслуживания запросов. Диспетчер соединений отслеживает работу каждого клиента. Диспетчер контекста регистрирует клиентов. Диспетчер защиты предотвращает несанкционированный доступ клиентов к данным и приложениям,
Пользователь переводит деньги с одного счета на другой, так что операция затрагивает несколько бах данных. Для выполнения транзакции Microsoft Transaction Server привлекает пул потоков, процедуры бизнес-логики, диспетчер конфигурации, диспетчер подключения к БД, компоненты диспетчера синхронизации и собственно данные.
Пул потоков организует потоки, необходимые для выполнения клиентской операции. Процедуры бизнес-логики выполняют дебитные, кредитные и трансферные функции. Диспетчер синхронизации координирует транзакцию между базами данных. Диспетчер конфигурации управляет потоками пула и другими ресурсами. Диспетчер подключения к БД выполняет необходимые подключения к конкретным базам данных.
В качестве примера экстренной ситуации возможен следующий: соединения между SQL-серверами разрываются до завершения транзакции. В этом случае диспетчер синхронизации регистрирует незавершенную транзакцию и восстанавливает исходное состояние контекста.