мониторных транзакционных службах. Кроме того,
мониторных транзакционных службах. Кроме того, OTS предполагает
возможность поддержки восстанавливаемых вложенных транзакций
(если угодно, в неоднородной среде) с полным следованиям
принципам ACID (Atomicy, Consistency, Isolation, Durability) и
двухфазным протоколам фиксации.
Эффективность обработки транзакций частично связана с наличием
хорошего управления параллельным выполнением транзакций. Для этих
целей CORBA содержит отдельную спецификацию, называемую CCS
(Concurrency Control Service). Определен набор возможных
блокировок, от традиционных блокировок по чтению и записи и
заканчивая условными блокировками (intention locks). Изменяемые
блокировки (upgrade locks) позволяют программистам избегать
синхронизационных тупиков (такие блокировки могут быть как
транзакционными, так и нетранзакционными).
Работа OTS делится между клиентами и серверами. Клиенты
запрашивают транзакционные услуги, которые выполняются серверами
транзакций. В OTS определены четыре важных интерфейса: Current,
Coordinator, Resource и SubtransactionAwareResource. Интерфейс
Current позволяет программисту установить контекст транзакции; по
мере создания и уничтожения объектов в пределах жизни транзакции
контекст связывается с каждым из объектов, что позволяет брокеру
объектных заявок передавать заявки от сервисов клиента серверам,
управляющим ресурсами. Когда ORB получает ответ от
объекта-сервера, он поддерживает контекст заявки и может вернуть
данные исходному клиенту. Интерфейс Resource относится к
объектам, поддерживающим протокол двухфазной фиксации. В
транзакции может участвовать несколько объектов с интерфейсом
Resource, но каждый Resource голосует по поводу своей возможности
выполнить полученную им заявку. Если хотя бы один объект
Resource голосует против, транзакция откатывается или
затормаживается в зависимости от кода, указанного в сообщении
клиента. Для повышения эффективности в средах с одним объектом
Resource в интерфейсе Current имеется возможность использовать
Содержание Назад Вперед