Similar presentations:
Live Universal Interface (LUI), средство коллективной разработки web-приложений и интерфейса пользователя прикладных систем
1.
Live Universal Interface (LUI)средство коллективной разработки
WEB-приложений и интерфейса пользователя
прикладных систем
для Postgres
Абдрахимов Рустам
Любушкин Александр
2.
Live Universal InterfaceНазначение
Инструмент создания информационных систем с
унифицированным WEB-интерфейсом пользователя
Декларативный подход
• Основан на принципе поддержки актуальности значений
взаимозависимых Свойств
• Для разработки приложений достаточно знания SQL
Коллективная разработка с поддержкой DevOps
• Все компоненты в единой БД и доступны одновременно всем
разработчикам
• Модификации без остановки промышленной системы
Поддержка всех браузеров, Android, iOS
• Среда разработки и готовое приложение в браузере
• Разработка в облаке и готовое приложение в облаке
Что
Как
3.
Live Universal InterfaceГоссектор
Область применения
Бизнес
• Внутренние системы министерств,
ведомств и учреждений
• Внутренние корпоративные системы
• Порталы для граждан и ЮЛ
• Системы управления предприятием и
производством
• Учётные и расчётные системы с
большим объёмом данных
• Деловые личные кабинеты
• Производители прикладного ПО
4.
Live Universal InterfaceТипы экранных форм:
-
Бланк
-
Список
-
Древовидный список
Концепция
5.
Live Universal InterfaceТаблица BOOKS
TITLE
AUTHOR
Детство
Максим Горький
Детство
Лев Толстой
Юность
Лев Толстой
Кавказский пленник
Лев Толстой
Кавказский пленник
Александр Пушкин
Метель
Александр Пушкин
Метель
Владимир Сорокин
Метель
Лев Толстой
Выстрел
Александр Пушкин
Выстрел
Анатолий Рыбаков
Бланк
Декларативное программирование
Разработка на LUI
Код поля: TITLE
Подпись: Название
Варианты для выбора: select distinct TITLE from books where AUTHOR = '{AUTHOR}' or '{AUTHOR}' = ''
Автокоррекция: {select case count(*) when 0 then '' when 1 then max(TITLE) else '{TITLE}' end
from books where AUTHOR = '{AUTHOR}'}
Код поля: AUTHOR
Подпись: Автор
Варианты для выбора : select distinct AUTHOR from books where TITLE = '{TITLE}' or '{TITLE}' = ''
Автокоррекция: {select case count(*) when 0 then '' when 1 then max(AUTHOR) else '{AUTHOR}' end
from books where TITLE = '{TITLE}'}
Традиционная разработка
Код поля: TITLE
Подпись: Название
Варианты для выбора: Select Distinct TITLE from books
Обработка события: Когда поле TITLE изменяется:
Если изменение производит пользователь Если старое значение не равно новому значению Автор = пусто; Варианты для выбора = пусто.
Курсор по запросу (select AUTHOR from books where TITLE=:NEW.TITLE)
Если Автор пусто - Автор = Курсор.AUTHOR
а если Автор не пусто - Автор = не определён
Пополнить Варианты для выбора AUTHOR значением Курсор.AUTHOR
Если Автор определён –
Установить значение поля AUTHOR = Автор
Код поля: AUTHOR
Подпись: Автор
Варианты для выбора: select distinct AUTHOR from books
Обработка события: Когда поле AUTHOR изменяется:
Если изменение производит пользователь Если старое значение не равно новому значению Название = пусто; Варианты для выбора = пусто.
Курсор по запросу (select TITLE from books where AUTHOR=:NEW.AUTHOR)
Если Название пусто - Название = Курсор.TITLE
а если Название не пусто - Название = не определено
Пополнить Варианты для выбора TITLE значением Курсор.TITLE
Если Название определено Установить значение поля TITLE = Название
6.
Принципиальная схемаLive Universal Interface
LUI
Встроенный Web-сервер
• Выполнение приложений
Редактор стилей
• Интеграция с внешними системами
Браузер
Сервер
визуализации
xml
Сервер
приложений
jdbc
Postgres
jdbc
http
Хранение
моделей
экранных
форм
СУБД Приложений
Postgres
Oracle
MySQL
...
7.
Live Universal InterfaceЗона выделения строк для групповых действий
Качества приложений, созданных в LUI
Списки (Grid)
Область заголовка
Tool bar
Области
переполнения
Поле с длинным
текстом в области
переполнения
Фикс.группа. Вне
горизонтальной
проурутки
Строка с итогами
8.
Live Universal InterfaceКачества приложений, созданных в LUI
QBE (Query by Example)
Режим запроса
Критерии в строке собираются по “AND”
Cтроки критериев собираются по “OR”:
where
1 USERNAME = 'lui' and CLIENT_ADDR like '172.%' and
BACKEND_START > to_timestamp('11.01.2019 13:35', 'dd.mm.yyyy hh24:mi:ss.ms')
2 or CHANGES>0
3 or USERNAME like '%common' and STATE like 'idle%' and QUERY like 'select%'
9.
Live Universal InterfaceКачества приложений, созданных в LUI
Сортировки
Ввод сортировок
(ЛКМ в заголовке столбца)
Индикация сортировок
SQL:
…
order by
BACKEND_START desc,
CLIENT_ADDR" asc
10.
Live Universal InterfaceКачества приложений, созданных в LUI
Управление отображением столбцов
(ПКМ в заголовке столбца)
Включение/Отключение
видимости столбца
Изменение порядка
столбцов и перемещение
между группами
11.
Live Universal InterfaceАдаптация форм под нужды
пользователя
В пользовательской
конфигурации сохраняются:
а). Критерии отбора данных
б). Порядок сортировки
Качества приложений, созданных в LUI
Изменения, сделанные пользователем, сохраняются как
атрибуты пользовательской конфигурации и
применяются при последующих запусках этой формы
пользователем.
12.
Live Universal InterfaceКачества приложений, созданных в LUI
Действия, запрограммированные
разработчиком в формах, могут:
• Вызывать другие формы
• Выполнять программы на SQL и др.
языках
• Выполнять команды ОС
• Открывать URL
Уровни действий в списках:
• Уровня списка в целом
• Уровня строки
• Уровня группы выделенных строк
• Уровня ячейки
Способы запуска действий (программ) в списках:
-
Кнопка в панели инструментов
-
Локальное меню строки/ячейки
-
Системное меню
-
Меню столбца
-
Кнопка в “подвале” списка
-
Автоматически
-
-
Позволяет организовать
формы в виде master-detail
Ежесекундно (например для автообновления данных в списке)
13.
Live Universal InterfaceСообщения и предупреждения,
Обработка ошибок и исключений:
• Типы сообщений: Error, Warning, Info
• Обработка на сервере приложений
• Обработка в СУБД
• Перехват сообщений о нарушении
ограничений
Качества приложений, созданных в LUI
ShowMessage:<код_сообщения>;p1:<параметр1>;p2:<параметр2>;...
begin
Execute lui_r_show_message(‘<код сообщения>,<p1>,….<pn>);
end;
14.
Live Universal InterfaceКачества приложений, созданных в LUI
Поддержка национальных языков
• Количество языков не ограничено
• Выбор одного из языков, поддерживаемых
приложением, выполняется при входе в
приложение
• Имеется специальный тип данных –
“многоязычный текст”
• Одно поле “название” в
многоязычном
приложении
автоматически
распадается на подполя
по числу языков
15.
Live Universal InterfaceКонтроль вводимых данных
Контроль произвольных данных на
корректность
Качества приложений, созданных в LUI
16.
Live Universal InterfaceКачества приложений, созданных в LUI
Дополнение приложений средствами администрирования
• Группы пользователей “по умолчанию”
• Типы объектов прав
• Разграничение доступа к объектам
17.
Live Universal InterfaceКачества приложений, созданных в LUI
Соединения с БД
• Одно приложение – несколько БД.
Например:
- Запрос списка (БД1) – Действия (БД2)
- Мастер (БД1) – Деталь (БД2)
• Управление транзакциями.
Возможны 2 режима и их комбинации:
- «Короткие» транзакции (autocommit) для
приложений массового обслуживания
- «Длинные» транзакции (commit
программный) для особых приложений
(wizard, jobs)
• Блокировки строк списков при
попытках одновременного
редактирования
…
18.
Live Universal InterfaceКачества приложений, созданных в LUI
Дополнение приложений средствами
управления сеансами
19.
Live Universal InterfaceГруппировка данных в списках
Качества приложений, созданных в LUI
20.
Live Universal InterfaceКачества приложений, созданных в LUI
Группировка данных в списках
Кнопки добавления столбцов :
• в критерии для группировки
• в агрегируемые данные
Критерии для
агрегирования
Настройка
отображения
диаграмм
Перечень столбцов
списка
Агрегируемые
данные и функции
группировки
21.
Live Universal InterfaceКачества приложений, созданных в LUI
Группировка данных в списках
Результат группировки
Запуск диаграмм
Интерактивная деловая графика
Критерий запроса
Клик на столбец
22.
Live Universal InterfaceГруппировка данных в списках
Интерактивные 3D-диаграммы
Качества приложений, созданных в LUI
23.
Live Universal InterfaceЭкспорт данных
Качества приложений, созданных в LUI
24.
Live Universal InterfaceКачества приложений, созданных в LUI
Привязка файлов к экземплярам прикладных данных
25.
Live Universal InterfaceЭргономичная подсветка данных
Качества приложений, созданных в LUI
26.
Live Universal InterfaceКачества приложений, созданных в LUI
Редактор форматированного текста в поле экранной формы
27.
Live Universal InterfaceКачества приложений, созданных в LUI
Альтернативный “не оконный” режим работы интерфейса
28.
Live Universal InterfaceКачества среды разработки
Доступность
Среда разработки – это тоже одно из приложений LUI, и оно так же доступно через WEB.
Среда разработки создана с помощью самой среды разработки.
29.
Live Universal InterfaceКачества среды разработки
Типы данных
• Поддержка основных типов данных PostgreSQL
Типы данных, которые
поддерживаются в LUI по
умолчанию
30.
Live Universal InterfaceКачества среды разработки
Типы данных
• Поддержка основных типов данных PostgreSQL
Матрица возможных
преобразований
(СУБД<->LUI)
Настройка
преобразований
31.
Live Universal InterfaceКачества среды разработки
Типы данных
• Поддержка основных типов данных PostgreSQL
Настройка операторов
языка запросов для
конечного пользователя
32.
Live Universal InterfaceКачества среды разработки
Типы данных
• Поддержка основных типов данных PostgreSQL
Ссылка на программу
проверки и помощи ввода
данных
Настройка раскраски
данных в поле
Пример ввода диапазона дат
Настройка шаблонов полей форм
для типов данных
33.
Live Universal InterfaceПодсветка программного кода
Качества среды разработки
34.
Live Universal InterfaceБыстрое создание элементов формы
Качества среды разработки
35.
Live Universal InterfaceКоллективная разработка
Все данные, изменяемые
разработчиками, хранятся в БД
Приложение, и даже форма, могут
разрабатываться несколькими
разработчиками одновременно
Роли:
Архитектор (может создавать
прикладные системы)
Разработчик (может участвовать
в разработке одной или более
систем)
Качества среды разработки
36.
Live Universal InterfaceУправление версиями форм.
Режимы Version Control:
1.
Не используется
2.
Одна форма – один разработчик
3.
Одна форма – несколько
разработчиков (по приглашению)
История версий
Сохранение версии
Восстановление версии
Изучение старой версии
Качества среды разработки
37.
Live Universal InterfaceКачества среды разработки
Выпуск изменений:
1. Генерация
микроизменений
2. Генерация формы
Генерация скрипта для всех отмеченных форм
3. Массовая
генерация форм
38.
Live Universal InterfaceСредства отладки
Режим отладки:
Включаем режим отладки
Выполняем исследуемые действия
Открываем список событий
Упрощает поиск ошибок
и общение Заказчика
со службой поддержки
39.
Live Universal InterfaceСредства отладки
Дамп области памяти приложения
Вызывается из системного меню
Отображает все свойства
всех элементов
всех запущенных форм
Отображает текущие
значения, зависимости и
статистику вычислений
40.
Live Universal InterfaceРедактор стилей
Внешний вид элементов интерфейса можно изменить под свой стиль
41.
Live Universal InterfaceПочему мы это применяем
Порог вхождения
Java, html, css, xml, C, C++, SQL
Доступность
IDE на локальных АРМ, WWW
Коллективность
Файлы на АРМ разработчика, Всё в одной БД, Version Control
DevOps
Компиляция, Сборка, Разворачивание, Остановка системы,
Применение релиза, Быстрый выпуск и применение версий
Средства отладки
Остановка системы, Перевод в режим отладки, Моделирование
проблемы на тестовой системе, On-line просмотр всех
выполняемых операций, Исправление «на лету»
Качество приложений
QBE, Транзакции, MuitiConnect, Настройка под пользователя,
Деловая Графика, Управление правами на элементы форм…
Программирование, программирование, программирование
Расширяемость функций
Переработка идеологии и архитектуры
Модульность, Plug-in, Интеграция
Масштабируемость
Общий сервер-гигант, Масштабирование на трёх уровнях:
База данных, Сервер приложений, Сервер отображений
42.
Live Universal Interface1.
Направления развития
Code assistant (помощник разработчика).
Формирование подсказок для языков
SQL: Объекты схем, столбцы, параметры, ключевые слова
JS: Ключевые слова
LUI: Функции, параметры, операторы
2.
Мастер создания форм
3.
Новые типы диаграмм
4.
Список
Бланк
Календарь
Матрица
Гео диаграммы
Графики в реальном времени
Средство разработки отчётов
XML/XSLT
Шаблоны в Open Office
Tables
Views
Functions
43.
Скачать текущую версию LUI можно на сайте:lui.fors.ru
КОНТАКТЫ
129272, Москва, Трифоновский тупик, дом 14к2
+7 (495) 913-75-75
[email protected]
http://lui.fors.ru
http://demo.fastcom.fors.ru:8083/demo/