BC/NW 2006, №2 (9) :11.3

 

РЕАЛИЗАЦИЯ МОДЕЛИ UDE НА БАЗЕ ACE RTCORBA

 

Р.А. Рыбаков

 

(Москва, Московский энергетический институт (технический университет), Россия)

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

Для поддержки решений CORBA, функционирующих в реальном масштабе времени, был разработан набор расширений, объединенных под общим названием RTCORBA (Real-time CORBA). Данные расширения основаны на спецификации CORBA 2.2 и используют механизм обмена сообщениями, отложенный синхронный, асинхронный и однонаправленный вызов методов, что во многом определяет специфику разработки распределенных приложений с использованием RTCORBA [1].

В отличие от стандартных решений, системы реального времени в большей мере ориентированы на асинхронный способ взаимодействия, что существенно усложняет процесс их разработки. Для организации асинхронного взаимодействия в среде CORBA была создана модель CORBA-UDE, адаптирующая принципы автоматно-ориентированного программирования к технологии CORBA. В работе рассматриваются вопросы расширения модели CORBA-UDE для использования возможностей RTCORBA.

 

В число наиболее известных решений, поддерживающих стандарт RTCORBA, входит ACE ORB (TAO). Данное решение получило широкое применение в различных областях [2], таких как телекоммуникации, авиа и оборонная промышленность, наука, финансы, системы управления, медицина и т.д. В основе TAO лежит так называемая адаптивная коммуникационная среда (ACEAdaptive Communication Environment), в задачи которой входит организация взаимодействия между процессами, управление разделяемой памятью, доставка сообщений и событий, динамическое конфигурирование распределенных служб, а также совместное выполнение и синхронизация процессов. Текущая версия TAO поддерживает все основные элементы стандарта RTCORBA 1.0 и содержит набор дополнительных компонентов для настройки параметров коммуникационной среды.

Поскольку ACE ORB (TAO) входит в число наиболее известных решений, поддерживающих стандарт RTCORBA 1.0, оно было принято за основу для реализации новой расширенной модели, получившей название RTCORBA-UDE. Целью разработки данной модели являлась адаптация принципов автоматно-ориентированного программирования к системам реального времени и создание гибкой системы отображения приоритетов на основе стандарта RTCORBA 1.0.

Важная особенность модели RTCORBA-UDE (рис. 1) – преемственность по отношению к предыдущей модификации. Большинство функций, описанных в стандарте RTCORBA 1.0, может быть реализовано в рамках базовой модели UDE, и, следовательно, данная модель может быть использована как для создания классических распределенных приложений, так и для создания распределенных приложений, работающих в реальном масштабе времени.

 

Рис. 1. Архитектура решений RTCORBA-UDE.

 

Как и в базовой модификации, в модели RTCORBA-UDE для организации процесса асинхронного взаимодействия используется механизм вызова распределенных процедур (DPC) [3]. Данный механизм позволяет учесть специфику запросов, исполняемых в системах реального времени, посредством дополнительных параметров, включенных в состав UDE-сообщения.

Для организации вычислений, критичных ко времени выполнения, в стандарте RTCORBA предусмотрены две основных модели: CPP (Client-Propagated Priority) и SDP (Server-Declared Priority). Модель CPP дает возможность клиенту определять приоритет запроса, в то время как в модели SDP приоритет выполнения запроса задается на стороне сервера. При этом существуют ситуации, в которых для реализации функций отдельного объекта требуется совместное использование данных моделей. Стандарт RTCORBA 1.0 не предусматривает такой возможности, фиксируя способ отображения приоритетов на этапе создания объекта [1]. Более того, при использовании модели CPP приоритет выполнения запросов напрямую зависит от приоритета потока, в котором производится вызов удаленного метода, что создает дополнительные трудности при использовании асинхронной модели взаимодействия.

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

 

Рис. 2. Механизм выполнения запросов в модели RTCORBA-UDE.

 

UDE-объекты клиента и сервера выполняются в собственных изолированных потоках с приоритетами P1 и P2 соответственно. При формировании запроса наряду с другими параметрами указывается значение приоритета выполнения запроса.

Если указанное значение приоритета (Pc) отлично от «нуля», то механизм выполнения запроса будет выглядеть следующим образом: перед отправкой запрос помещается в очередь объекта UDECoDispatcher, исполняющегося в потоке с приоритетом Pc. После этого осуществляется доставка сообщения с использованием модели CPP, обеспечивающей корректное отображение приоритета Pc при вызове удаленной процедуры.

Если же указанное значение приоритета (Pc) равно «нулю», то при выполнении запроса будет использоваться приоритет Pm, назначенный соответствующей DPC-процедуре во время инициализации сервера. При этом доставка сообщения удаленной стороне производится с использованием приоритета P1, а его последующая обработка – с использованием приоритета Pm. Подобный эффект достигается за счет использования механизма SDP, осуществляющего доставку сообщений через вспомогательные объекты класса CORBA UDECoDispatcher, зарегистрированные в RTPOA с различными значениями приоритетов.

Также для создания более предсказуемых решений в модели RTCORBA-UDE служба событий UDE интегрирована с соответствующей службой RTCORBA, что дает возможность получать уведомления о критичных событиях в формате UDE-сообщений в пределах фиксированного промежутка времени.

 

         Представленная в работе модель RTCORBA-UDE предназначена для создания распределенных систем реального времени с использованием принципов автоматно-ориентированного программирования. Набор механизмов, реализованных в рамках данной модели, существенно расширяет возможности стандарта RTCORBA 1.0 за счет введения более гибкой системы отображения приоритетов и интеграции внутренних служб UDE с соответствующими службами RTCORBA.

ЛИТЕРАТУРА

1.     Real-time CORBA Specification. Version 1.2. Formal/05-01-04, 2005. – 107 p. http://www.omg.org/cgi-bin/apps/doc?formal/05-01-04.pdf

2.     Schmidt D.C., Levine D.L., Mungee S. The Design of the TAO Real-Time Object Request Broker // Dept. of Computer Science, Washington University, St. Louis, MO 63130, 1999. – 46 p.

3.     Рыбаков Р.А. Разработка модели взаимодействия объектов в распределенной среде // Радиоэлектроника, электротехника и энергетика // Двенадцатая Междунар. науч.-течн. конф. студентов и аспирантов: Тез. докл. В 3-х т. – М.: МЭИ, 2006. Т. 1. – с. 427-428.