Обработка транзакций
компенсировать
недоступность имеющихся в SQL свойств псевдовложенности, применяя различные
ухищрения для построения архитектур транзакций, более соответствующих их
потребностям, чем простейшие плоские транзакции. Когда на рынке утвердится
стандарт SQL3, и начнут появляться совместимые с ним продукты, разработчики
приложений на основе SQL СУБД смогут непосредственно пользоваться
преимуществами новых моделей транзакций.
3. Encina и DCE
Монитор обработки транзакций Encina корпорации Transarc можно
рассматривать как коммерческий продукт второго поколения, однако более
развитый, отражающий новейшие достижения в этой области. Encina включает
модель вложенных транзакций и расширяет возможности среды DCE (Distributed
Computing Environment), предложенной организацией OSF (Open Software
Foundation).
Прообразом Encina был прототип системы обработки транзакций Camelot,
разработанный в университете Карнеги-Меллон в Питтсбурге. Технология,
лежащая в основе Camelot, и применяемый в этой системе язык
программирования Avalon описаны в работе Camelot and Avalon: A Distributed
Transaction Processing Facility. Camelot считается "первой реализацией
вложенных транзакций в системе обработки транзакций" (в отличие от
псевдовложенности, которую мы обсуждали в предыдущем разделе, или от
внутрисистемной вложенности, недоступной для разработчиков приложений).
Архитектура, которая отражена на рис. 6, соответствует степени
распределенности, характерной для разрабатываемых или проектируемых в
настоящее время информационных систем. Использование серверов приложений
здесь соответствует философии выделения процедур обработки данных, в
отличие от философии выделения самих данных. Хотя пользователи, имеющие
достаточные полномочия, могут непосредственно осуществлять доступ к
удаленным данным, но в данном случае цель состоит в том, чтобы полностью
передать управление данными серверам приложений.
[pic]
Рисунок 6. Открытая прикладная среда распределенной обработки транзакций.
На рис. 7 изображен типичный многоуровневый подход к распределенной
обработке транзакций, применяемый, в частности, в DCE. Монитор Encina
использует предоставляемые DCE абстрактные уровни управления ресурсами и
коммуникационных менеджеров и сам обеспечивает прямое подключение к
ресурсам и коммуникационным менеджерам, не подчиненным DCE. Модульность и
многоуровневость - черты, характерные для современных открытых систем и
корпоративных вычислительных архитектур, - находят отражение и в обработке
транзакций. Можно с уверенностью предположить, что концепции открытых
систем в дальнейшем будут еще более активно применяться в сфере обработки
транзакций.
[pic]
Рисунок 7. Многоуровневая архитектура обработки транзакций в Encina.
Одна из задач, решаемых монитором Encina, - это поддержка свойств
ACID в среде баз данных клиент-сервер при условии, что клиенты и серверы
независимо хранят записи о состоянии транзакций.
В Encina код, обеспечивающий соблюдение свойств ACID, заключен в
менеджерах ресурсов (см. рис. 7); приложения и другие программы верхнего
уровня выдают запросы на фиксацию или прерывание транзакций, которые
менеджеры транзакций реализуют на соответствующих ресурсах нижнего уровня.
Encina включает язык разработки приложений Transactional C,
содержащий набор макросов и библиотек для определения транзакций и
управления ими. Ключевое слово TRANSACTION служит для определения
транзакций верхнего уровня или вложенных. Функции, задаваемые при помощи
ключевых слов ONABORT и ONCOMMIT, описывают действия, выполняемые при
откате или, соответственно, фиксации транзакции любого уровня. Программа
может вызвать ENCINA_ABORT_ALL, чтобы вызвать прерывание всей транзакции.
Интересно было бы понаблюдать, как пойдет развитие не только
конкретного продукта Encina, но и всей области "открытой обработки
транзакций" в целом. Тенденции усиления распределенности и неоднородности,
которые направляют развитие технологий баз данных и информационного
управления, требуют определенной степени открытости всех компонентов
информационных систем (в том числе сервисов операционных систем,
безопасности, баз данных, мониторов транзакций). Хотя старые "закрытые"
продукты и аппаратные платформы, поддерживаемые ими, просуществуют еще
довольно долго, но тенденции, которые иллюстрирует рис. 8, неизбежно будут
оказывать все более значительное влияние на развитие систем обработки
транзакций.
[pic]
Рисунок 8. Факторы, влияющие на развитие коммерческих мониторов обработки
транзакций.
4. X/Open DTP
Еще один определяющий фактор развития коммерческих систем обработки
транзакций - это стандартизация. Международный комитет по стандартам (ISO)
выработал состоящий из двух частей протокол для поддержки медоперабельности
систем обработки транзакций. Две составные части этого стандарта:
. OSI-TP для сервисов обработки транзакций, 1992 г.;
. OSI-CCR для фиксации, управления и восстановления, 1990г.
Стандарты OSI определяют форматы и протоколы, но не прикладные
программные интерфейсы для стандартного протокола двухфазовой обработки
транзакций (2PC), спроектированного как надстройка над стеком
коммуникационных протоколов OSI.
Стандарт API разработан комитетом X/Open и получил название X/Open
Distributed Transaction Processing (DTP) API. X/Open DTP позволяет
менеджерам транзакций использовать комбинацию закрытых и OSI-TP-протоколов
для внутренних и межоперабельных окружений соответственно. X/Open DTP -
стандарт, находящийся в стадии начального развития и имеющий определенные
противоречия. В частности, не очень хорошо согласуются две его цели: (1)
определение среды монитора TP как стандартизированного окружения и (2)
поддержка удаленных вызовов процедур транзакций (TRPC - Transactional
Remote Procedure Calls) наряду с "равноправными" (peer-to-peer) моделями
коммуникаций (по крайней мере в настоящее время модель X/Open DTP содержит
оба подхода).
X/Open DTP поддерживает не только плоские транзакции, но также
многозвенные и вложенные (в последней из этих моделей при прерывании одной
из ветвей происходит прерывание всей транзакции в целом).
В стандартизированной распределенной среде TP для описания
взаимодействий между компонентами применяется комбинация стандартных
протоколов. Некоторые из них, например ROSE (Remote Operations Service),
относятся к общему стеку протоколов OSI; другие являются специфическими для
окружения X/Open DTP или OSI-TP. На рис. 9 показаны интерфейсы компонентов
в стандартизированной распределенной среде TP и соответствующие протоколы и
API.
[pic]
Рисунок 9. Стандартизированная среда обработки транзакций.
5. Классификация систем обработки транзакций
С появлением множества стандартизированных систем обработки
транзакций нового поколения полезным представляется проведение их
классификации с точки зрения спектра предоставляемых ими функций. Подобную
классификацию, включающую пять измерений, предложили Абрахам Лефф и Калтон
Пу из Колумбийского университета:
M - множество машин;
P - множество процессов;
H - степень неоднородности машин и программного обеспечения;
D - множество логических данных;
S - множество узлов.
Эта классификация характеризует любую систему обработки транзакций,
от простейших (P1, M1, H1, D1, S1) до более сложных многоузловых
неоднородных окружений с поддержкой разнотипных наборов данных (Pn, Mn, Hn,
Dn, Sn). В статье, написанной в 1991 г., эти авторы представили трехмерную
классификацию, которую они применили для оценки различных исследовательских
и коммерческих систем.
6. Языки транзакций
В разд. 4 была рассмотрена Encina - монитор транзакций корпорации
Transarc - который включает множество библиотек и макросов, составляющих
среду разработки Transactional C. Альтернативный способ задания директив
обработки транзакций состоит в применении специального языка. В качестве
примера рассмотрим язык InterBase Parallel Language (IPL), входящий в
состав неоднородной распределенной cреды баз данных InterBase, которую мы
обсуждали в гл. 6. IPL разработан с учетом поддержки высокой степени
параллелизма и взаимодействия между субтранзакциями, принадлежащими общей
глобальной транзакции. IPL предназначался для поддержки транзакций разных
типов (т. е. смешанных транзакций), а также как системно-независимый
декларативный язык, обеспечивающий прозрачность управления транзакциями.
Программа на IPL представляет собой блок, обрамленный ключевыми
словами program - endprogram, и включает декларации записей и описания
субтранзакций. Поскольку IPL постоянно развивается и в настоящее время в
стадии исследований находится графический интерфейс, а также объектно-
ориентированная версия этого языка, то за более полной информацией мы
отсылаем читателя к материалам проекта InterBase, который ведется в
Университете Пурдью.
Альтернативный подход к спецификации транзакций - использование
языка, ориентированного не на глобальную
| | скачать работу |
Обработка транзакций |