1. О системе
Система построена на основе Python-framework Flask. Язык разработки – Python v3. Система является приложением уровня framework и не является экземпляром, который можно запустить сам по себе. Оно является набором для создания конфигураций под конкретные запросы заказчика от самых простых до самых сложных.
Имеет модульную архитуктуру, включающую набор пакетов-библиотек, функционал подключения модулей для формирование необходимого функционала. Часть модулей входит в стандартную поставку (ядро системы), часть разрабатывается под нужды конкретного проекта. Функционал экземпляра определяется подключенными приложениями.
Интерфейсом конечного пользователя является web-браузер и является web-приложением. Применяется интерфейс, адаптирующийся под размеры экрана браузера, что дает возможность использовать систему на всех устройствах, имеющих web-браузер от комптьютеров до смартфонов и планшетов.
Используется реляционная база данных из списка: Oracle, PostgreSQL, MSSQL, MySQL
- Разделение на ядро и конфигурацию
Упрощает работу настройщика и снижает риски при разработке и позволяет получать обновления без переписывания конфигурации
- Автоматическая синхронизация схемы базы данных
Структура базы данных формируется ядром системы автоматически
- Возможность быстрого возврата конфигурации на любое состояние
Вся конфигурация находится в файлах и под системой контроля версий и в случае непредвиденной ситуации, ее всегда можно вернуть в любое состояние. С базой данных никаких действий осуществлять не требуется
- Горизонтальная и вертикальная масштабируемость
Вся логика перенесена на сервера приложений, которые легко масштабировать. Нагрузка на БД максимально перенесена на сервер приложений, который легко масштабируется
- Легкость переноса с теста на рабочую версию
Вся логика системы (скрипты, точная настройка оказываются 100% согласованной с конфигурацией) и обновляется на рабочую версию синхронно, потому что все это идет в составе единой ревизии системы контроля версий. После обновления, мы можем гарантировать, что ровно то, что было на тесте, будет и на рабочей версии. Нет необходимости переносить данные между таблицами тестовой и рабочей версии, Нет необходимости держать единые таблицы-справочники для рабочей и тестовой системы. Перенос сводится к обновлении ревизии в директорию рабочего сервера, применению миграций базы данных.
- Независимая тестовая среда
Тестовая система является копией рабочей версии и никак не связана с ней (даже через базу данных). Изменения на тесте (справочников и прочее) никак не затрагивает рабочую версию.
- Возможность установки бета-версии: тестовая конфигурация на рабочих данных
За счет того, что вся логика системы находится не в базе данных, а в файлах, можно развернуть сервер приложений, который подключается к рабочей базе данных
- Пул подключений к базе данных
Система может работать через пул подключений к базе данных и дополнительно имеет внутренний пул подключений. Снижает нагрузку на процессы oracle listener при частом установлении и разрыве подключений
- Встроенные менеджеры фоновых операций
Часть операций, которые требуют долгой работы (сетевое ожидание при интеграции, отправка писем, обработка загруженных файлов), можно выполнять в фоновом режиме, не задерживая работу операторов и распределять нагрузку на систему по времени, сглаживая пиковые нагрузки за счет размещения задач в очереди и выполнение их, когда есть свободные ресурсы сервера
- Совместимость с различными типами серверов
Можно запустить систему на бесплатных базах данных (например, PostgreSQL) без приобретения лицензии на коммерческие БД и в случае необходимости портировать систему с минимальными трудозатратами (логика хранится на стороне сервера приложений) на коммерческие СУБД при необходимости.
Конфигурация и набор приложений уровня ядра
- 1.1. Жизненный цикл системы
- 1.2. Возможности
- 1.2.1. Особенности системы
- 1.2.1.1. WEB-приложение
- 1.2.1.2. Поддержка нескольких баз данных
- 1.2.1.3. Язык программирования и framework
- 1.2.1.4. Стили оформления
- 1.2.1.5. Базовые требования
- 1.2.1.6. Разделение на ядро и конфигурацию
- 1.2.1.7. Синхронизация СУБД с кодом
- 1.2.1.8. Быстрое переключение версий
- 1.2.1.9. Легкость выкладывания изменений
- 1.2.1.10. Бета-версия
- 1.2.1.11. Пул подключений к базе данных
- 1.2.1.12. Менеджеры фоновых операций
- 1.2.1.13. Машинное обучение
- 1.2.1.14. Backend для мобильных приложений
- 1.2.1.15. Интеграция
- 1.2.1.16. Сигналы (аналог триггеров в базе данных)
- 1.2.1.17. Запись всех действий оператора
- 1.2.1.18. Система сбора и обработки логов
- 1.2.1.19. Профилировщик кода
- 1.2.1.20. Работа с электронной почтой
- 1.2.1.21. Отправка SMS с визуальным редактором
- 1.2.1.22. Поддержка быстрого создания приложений BPS
- 1.2.2. Производительность и масштабируемость
- 1.2.3. Простота внедрения, гибкость, кастомизация
- 1.2.4. Встроенная система отчетов
- 1.2.1. Особенности системы
- 1.3. Приложения в базовой поставке
- 1.4. Конфигурация системы