Главная страница

Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование


Скачать 1 Mb.
НазваниеУчебное пособие издано при поддержке образовательной программы Формирование
АнкорАрхитектура распределенных систем программного обеспечения
Дата13.01.2023
Размер1 Mb.
Формат файлаdocx
Имя файлаmdwrbook.docx
ТипУчебное пособие
#885216
страница9 из 36
1   ...   5   6   7   8   9   10   11   12   ...   36

Транзакционный удаленный вызов процедуры


Основная цель транзакционного монитора – поддержка выполнения распределенных транзакций. Традиционный удаленный вызов процедуры изначально был разработан для того, чтобы одна клиентская программа могла обратиться к одному серверу. Когда процесс взаимодействия усложняется (например, клиент вызывает процедуры с двух серверов, или клиент общается с сервером, который взаимодействует с базой данных), традиционный удаленный вызов неверно трактует вложенные вызовы как независимые друг от друга. Лучшим решением является сделать вызов процедуры транзакционным.





Рис.2.11.Выполнениеудаленноговызовавнутритранзакционныхскобок

транзакция,BOT,EOTоткрывающаяизакрывающаятранзакционныескобки).

Семантика транзакционного удаленного вызова процедуры (TRPC) такова, что если группа вызовов процедур внутри транзакции успешно завершается, программист имеет гарантии, что всеони завершились. Если вместо этого возникло прерывание выполнения группы вызовов (из-за

каких-либо ошибок), ни один из вызовов не выполняется (совокупный эффект будет таким, как если быни один из вызовов не выполнялся).

Таким образом, процедурные вызовы, заключенные в транзакционные скобки, рассматриваются как единое целое, и системное программное обеспечение гарантирует их атомарность (неделимость). Это достигается использованием модуля транзакционного управления или менеджера транзакций, координирующего взаимодействие между клиентами и серверами (Рис.2.11). Менеджер транзакций транзакционного монитора обладает способностью создавать транзакционный контекст, который используется на протяжении всей последовательности вставленных в скобки вызовов, сколь бы длинной она ни была.
        1. Функциональность транзакционных мониторов


Современные транзакционные мониторы – очень сложные системы, обычно их функциональность включает в себя:

          • функциональность и механизмы, необходимые для поддержки удаленных вызовов (язык IDL, серверы имен и каталогов, безопасность и аутентификация, компиляторы переходников).

          • программные абстракции для работы с TRPC: RPC,

транзакционные скобки, механизмы обратных вызовов (когда в результате возникновения некоторого события на сервере, вызывается процедура на клиентской части).

          • ведение журнальных записей, управление восстановлением,

блокировкой и т. д.

          • управление процессами, приписку приоритетов, балансировку нагрузки, репликацию, управление стартом и завершением.

          • управление сценариями для асинхронного взаимодействия.

          • инструментарий для установки, управления и мониторинга производительности компонентов системы.

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


Клиентский интерфейсный компонент транзакционного монитора содержит прикладной интерфейс, а также поддержку прямого доступа через терминал и средства аутентификации пользователей. Компонент программногопотокахранит, загружает и исполняет процедуры,

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




транзакционный монитор

клиентское приложение






программный поток





маршрутизатор

службы транзакционного монитора

менеджер транзакций
зарегистрированные программы



менеджер взаимодействия
зарегистрированные ресурсы

оболочка оболочка оболочка

ресурс


ресурс


ресурс




Рис.2.12.Базовыекомпонентытранзакционногомонитора.

Маршрутизатор ставит в соответствие операции и вызовы. Вызовы могут относиться к нижележащим ресурсам (например, базам данных) или локальным службам, предоставляемым самим транзакционным монитором. В состав маршрутизатора входит специализированная база данных, содержащая определения соответствий между именами логических ресурсов и физическими устройствами. В случае изменения конфигурации системы системный администратор должен всего лишь подправить это соответствие: клиентское приложение модифицировать не требуется, поскольку клиент знает только логические имена.

Взаимодействие с ресурсами (базами данных) осуществляется через менеджер взаимодействия, в то время, как оболочки скрывают гетерогенность различных ресурсов, связанных с транзакционным монитором. Это упрощает разработку модуля взаимодействия, поскольку

он перестает зависеть от характеристик индивидуальных ресурсов. Выполнение распределенной транзакции проходит через менеджер транзакций, исполняющий протокол 2PC и гарантирующий все транзакционные свойства процедур, исполняемых монитором.

В состав монитора включает значительное количество служб транзакционного монитора. В совокупности они обеспечивают производительность, высокую доступность, отказоустойчивость, репликацию и т. д. (Рис. 2.12).
    1. 1   ...   5   6   7   8   9   10   11   12   ...   36


написать администратору сайта