OpenSCADAWiki: Doc/VCA/part4/part11 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part4/part11 from 2015-07-23 12:26:28..

4.11 Архитектура

Исходя из вышеизложенных, архитектурных, соображений сформируем статическую диаграмму классов СВУ, учитывая разделение на концептуальную часть (движок) и часть индивидуальной реализации СВУ (рис. 4.11.1). В таблице 4.11 представлено описание классов диаграммы классов.


Статическая диаграмма классов. (69 Kb)
Рис.4.11.1 Статическая диаграмма классов.

Таблица 4.11. Классы СВУ

КлассОтветственностьСвязи
TSecurityПредоставляет информацию о пользователях, а также выполняет их аутентификацию в системе OpenSCADA.Используется виджетами и кадрами СВУ для проверки прав на доступ к ним.
TFunctionИспользуется для доступа к механизму пользовательского программирования при описании логики производных виджетов, а также для включения функций API объектной модели в производные виджеты.Хранит структуру параметров обвязываемых логикой в производных виджетах. Передаётся модулю, предоставляющего реализацию языка пользовательского программирования, с целью подключения механизма обработки логики программы.
TUIКорневой объект модуля подсистемы "Пользовательские интерфейсы", используемый для интеграции в ядро системы OpenSCADA.Наследуется корневыми объектами модуля концепции СВУ и модулями реализации интерфейса СВУ.
VCA::EngineКорневой объект модуля концепции/движка СВУ. Содержит контейнеры объектов движка, а также общие методы и данные.Используется интерфейсами визуализации для доступа к данным сеансов проектов и концепции в целом. Интегрирует код концепции СВУ в систему OpenSCADA.
VCA::WidgetLibОбъект библиотеки виджетов/кадров, содержит объекты библиотечных виджетов (VCA::LWidget). Состав библиотек виджетов может свободно формироваться пользователем.Содержит объекты библиотечных виджетов (VCA::LWidget).
VCA::WidgetАбстрактный объект виджета.Наследуется объектами: библиотечного виджета (VCA::LWidget), контейнерного виджета (VCA::CWidget), кадра проекта (VCA::Win) и объектами сеанса исполнения проекта (VCA::SessWin, VCA::SessWdg). Виджет-контейнер содержит функцию связанную с реализацией языка пользовательского программирования. Использует объект "OpenSCADA API TSecurity" для управления правами доступа. Использует события из менеджера событий. Обращается к менеджеру тем для получения непосредственных значений цветов шрифтов в соответствии с текущей темой.
VCA::LWidgetОбъект библиотечного виджета/кадра.Хранится в библиотеке (VCA::WidgetLib). Может содержать вложенные виджеты, в лице объектов контейнерных виджетов (VCA::CWidget).
VCA::CWidgetОбъект контейнерного виджета библиотечного виджета/кадра (VCA::LWidget). Фактически выполняет роль ссылки на библиотечный виджет.Содержится в библиотечном кадре/виджете (VCA::LWidget).
VCA::ProjectОбъект проекта пользовательского интерфейса. Содержит окна (VCA::Win) с иерархичным наименованием.Содержится в контейнере объекта концепции (VCA::Engine). Содержит объекты окон (VCA::Win) проекта.
VCA::PageОбъект страницы интерфейса ВУ. Тесно связан с кадром из библиотеки виджетов, собственно кадр и несёт в себе элементы интерфейса. Сам объект окна, в дополнении к кадру, разрешает ссылки на динамику и предоставляет механизм расслоения динамики кадра на страницы, с возможностью формирования шаблона динамики.Содержится в контейнере проекта. Наследуется от абстрактного виджета (VCA::Widget). Связывается с кадром интерфейса (VCA::LWidget) в библиотеке виджетов.
VCA::ThemeОбъект темы интерфейса визуализации. Содержит элементы темы (VCA::ThemeEl)Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит элементы темы (VCA::ThemeEl).
VCA::ThemeElОбъект элемента темы. Содержит ассоциацию имени элемента с кодом цвета и шрифта.Содержится в контейнере темы (VCA::Theme). Используется объектом виджета (VCA::Widget) для получения значений цвета и шрифта по имени элемента темы.
VCA::EventMapОбъект карты событий. Содержит объекты событий (VCA::Event).Содержится в контейнере объекта концепции (VCA::ConcVCA). Хранит описания событий (VCA::Event).
VCA::EventОбъект события, содержит ассоциацию имени объекта(события) с реальным событием.Содержится в контейнере карты событий (VCA::EventMap).
VCA::SessionОбъект сессии исполнения проекта визуализации. Открывается модулем интерфейса визуализации и использует, в дальнейшем, данные сессии для визуализации своим методом. Все вычисления интерфейсов визуализации выполяются именно в сессии.Содержится в проекте интерфейса визуализации. Содержит объекты окон сесии с данными исполнения. Используется модулями интерфейсов визуализации для отображения данных сессии.
VCA::SessPageОбъект страницы сессии. Содержит динамические данные окна проекта над которыми выполняет требуемые вычисления.Содержится в объекте сессии проекта (VCA::SessProj). Наследуется от абстрактного виджета (VCA::Widget). Использует объект страницы проекта (VCA::Page) как источник исходных параметров.
VCA::SessWdgОбъект виджета сессии. Содержит динамические данные отдельного элемента кадра над которыми выполняет требуемые вычисления. Может вкладываться один в другой в соответствии с иерархией виджетов кадра.Содержится в объекте окна сессии (VCA::SessPage) или в высшем по иерархии объекте этого типа. Наследуется от абстрактного виджета (VCA::Widget). Использует объект библиотечного (VCA::LWidget) и/или контейнерного (VCA::CWidget) виджета как источник исходных параметров. Используется модулем интерфейса визуализации в роли источника динамических данных для визуализации.
Vision, WebGUIКорневые объекты модуля интерфейса визуализации, построенные на основе библиотеки QT и Web-технологий. Предоставляют доступ к средствам исполнения и разработки интерфейсов визуализации в среде используемой технологии.Предоставляют доступ к среде исполнения и разработки. Интегрируют код интерфейса визуализации в систему OpenSCADA.
VRunTime, WebRunTimeОбъекты среды исполнения интерфейса визуализации на основе библиотеки QT и Web-технологий. Непосредственно предоставляют пользовательский интерфейс визуализации и управления.Содержаться в корневых объектах модулей визуализации. Подключаются и используют данные объекта сеанса проекта (VCA::SesProj) концепции СВУ. В соответствии со структурой сеанса содержат множество специализированных объектов непосредственного отображения.
VDevelop, WebDevelopОбъекты среды разработки интерфейса визуализации на основе библиотеки QT и Web-технологий. Предоставляют интерфейс инструмента над данными концепции для разработки интерфейсов ВУ.Содержаться в корневых объектах модулей визуализации. Подключаются к объекту корня концепции СВУ (VCA::Engine) и предоставляют графический интерфейс для управления ею. В соответствии со структурой концепции содержат множество специализированных объектов управления.

Статическая диаграмма классов (рис.4.11.1) не раскрывает всей иерархии взаимодействия объектов, основанных на абстрактном объекте VCA::Widget. Это связано с неявным наследованием данных свойств виджетов через все слои движка, а также тонкостями наследования, выстроенного путём использования данных одних виджетов в других. Для разъяснения этих особенностей изобразим исчерпывающую карту "использующего" наследования на рис 4.11.2.


file:map_inher.png
Рис.4.11.2 Карта "использующего" наследования компонентов концепции/движка

 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]