4.12 Использование БД для хранения библиотек виджетов и проектов
Все данные концепции СВУ должны храниться в БД. Это позволит гибко распространять и использовать данные СВУ, выбирая наиболее подходящую случаю БД из списка поддерживаемых системой OpenSCADA. Проекции основных таблиц запишем таким образом :
- Libs( ID, NAME, DSCR, DB_TBL, ICO ) — Библиотеки виджетов <ID>.
ID — идентификатор;
NAME — имя;
DSCR — описание;
DB_TBL — БД с виджетами;
ICO — закодированное (Base64) изображение иконки библиотеки.
- LibWigets( ID, ICO, PARENT, PROC, PROC_PER, USER, GRP, PERMIT, ATTRS) — Виджеты <ID> библиотеки.
ID — идентификатор;
ICO — закодированное (Base64) изображение иконки виджета;
PARENT — адрес виджета основы в виде /wlb_originals/wdg_Box ;
PROC — внутренний сценарий и язык сценария виджета;
PROC_PER — периодичность вычисления сценария виджета;
USER — владелец виджета;
GRP — группа пользователей виджета;
PERMIT — права доступа к виджету;
ATTRS — перечень атрибутов виджета, модифицированных пользователем.
- LibWidgetIO( IDW, ID, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) — Рабочие атрибуты <ID> виджета <IDW>.
IDW — идентификатор виджета;
ID — идентификатор IO;
IO_VAL — значение атрибута;
SELF_FLG — внутренние флаги IO;
CFG_TMPL — шаблон элемента конфигурации, основанного на данном атрибуте;
CFG_VAL — значение элемента конфигурации (ссылка, константа ...).
- LibWidgetUserIO( IDW, ID, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) — Пользовательские атрибуты <ID> виджета <IDW>.
IDW — идентификатор виджета;
ID — идентификатор IO;
NAME — имя IO;
IO_TP — тип и главные флаги IO;
IO_VAL — значение IO;
SELF_FLG — внутренние флаги IO;
CFG_TMPL — шаблон элемента конфигурации, основанного на данном атрибуте;
CFG_VAL — значение элемента конфигурации (ссылка, константа ...).
- LibWidgetIncl( IDW, ID, PARENT, ATTRS, USER, GRP, PERMIT ) — Включенные в контейнер <IDW> виджеты <ID>.
IDW — идентификатор виджета;
ID — идентификатор экземпляра вложенного виджета;
PARENT — адрес виджета основы в виде /wlb_originals/wdg_Box ;
ATTRS — перечень атрибутов виджета, модифицированных пользователем;
USER — владелец виджета;
GRP — группа пользователей виджета;
PERMIT — права доступа к виджету.
- LibWidgetMime( ID, MIME, DATA ) — Audio, video, media и другие ресурсы виджетов библотеки.
ID — Идентификатор ресурса.
MIME — Mime тип данных ресурса (в формате – <mimeType;Size>).
DATA — Данные ресурса кодированные Base64.
- Project( ID, NAME, DSCR, DB_TBL, ICO, USER, GRP, PERMIT, PER, FLGS ) — Проекты интерфейсов визуализации <ID>.
ID — идентификатор проекта;
NAME — имя проекта;
DSCR — описание проекта;
DB_TBL — БД со страницами проекта.
ICO — закодированное (Base64) изображение иконки проекта;
USER — владелец проекта;
GRP — группа пользователей проекта;
PERMIT — права доступа к проекту;
PER — периодичность вычисления проекта;
FLGS — флаги проекта.
- ProjPage( OWNER, ID, ICO, PARENT, PROC, PROC_PER, USER, GRP, PERMIT, FLGS, ATTRS ) — Страницы <ID> содержащиеся в проекте/странице <OWNER>.
OWNER — проект/страница – владелец данной страницы (в виде – «/AGLKS/so/1/gcadr»)
ID — идентификатор страницы;
ICO — закодированное (Base64) изображение иконки страницы;
PARENT — адрес виджета основы страницы в виде /wlb_originals/wdg_Box ;
PROC — внутренний сценарий и язык сценария страницы;
PROC_PER — периодичность вычисления сценария виджета;
USER — владелец страницы;
GRP — группа пользователей страницы;
PERMIT — права доступа к странице;
FLGS — флаги страницы;
ATTRS — перечень атрибутов виджета, модифицированных пользователем.
- ProjSess( IDW, ID, IO_VAL ) — Таблица проекта <IDW> для хранения данных сеансов, исполняющих проект.
IDW — полный путь элемента проекта;
ID — атрибут элемента;
IO_VAL — значение атрибута.
- ProjPageIO( IDW, ID, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) — Рабочие атрибуты страниц. Структура фактически совпадает с таблицей LibWidgetIO.
- ProjPageUserIO( IDW, ID, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL ) — Пользовательские атрибуты страниц. Структура фактически совпадает с таблицей LibWidgetUserIO.
- ProjPageWIncl( IDW, ID, PARENT, ATTRS, USER, GRP, PERMIT ) — Включенные на страницы виджеты. Структура фактически совпадает с таблицей LibWidgetIncl.