Web-приложение
Позволяет использовать его на любом устройстве и
упрощает внедрение и сопровождение системы.
Позволяет использовать его на любом устройстве и
упрощает внедрение и сопровождение системы.
Система может использовать в виде хранилища данных
База данных используется только в виде хранилища без процедурной логики, есть возможность миграции данных между типами баз данных. Вы можете выбрать PostgreSQL для старта и поменять его на Oracle в случае необходимости.
Python является языком программирования общего назначения и подходит для широкого списка задач. Занимает лидирующие позиции для обработки неструктурированных данных (т.н. BigData). Микро framework-а Flask позволяет реализовать наиболее гибкую архитектуру, не накладывая ограничений на реализацию системы.
Используется оформление Inspinia, основанное на CSS-framework Twitter Bootstrap. Позволяет разрабатывать интерфейсы, автоматически подстраивающиеся под размеры экрана браузера. Содержит в себе большую коллекцию модулей, оформленных в едином стиле.
Для работы достаточно виртуальной машины: 10Гб HDD; 1 CPU; 1Гб ОЗУ. Не требует сопутствующих лицензионных продуктов (операционная система, СУБД и так далее).
Упрощает работу настройщика и снижает риски при разработке. Всегда можно добавить внешние библиотеки и отдельные разделы самостоятельно на уровне конфигурации без вмешательства в ядро.
Структура базы данных формируется ядром системы автоматически. Нет необходимости актуализировать структуру СУБД (таблицы, колонки) вручную.
За счет того, что все настройки системы находятся в файлах под управлением репозитория, всегда можно вернуться на любую версию конфигурации при необходимости
Вся логика системы (скрипты, точная настройка 100% согласованной с конфигурацией) обновляется на рабочую версию синхронно, потому что все это идет в составе единой ревизии системы контроля версий.
После обновления мы можем гарантировать, что ровно то, что было на тесте, будет и на рабочей версии.
Нет необходимости переносить данные между таблицами тестовой и рабочей версии, нет необходимости держать единые таблицы-справочники для рабочей и тестовой системы.
Перенос сводится к обновлении ревизии в директорию рабочего сервера, применению миграций базы данных.
За счет того, что вся логика системы находится не в базе данных, а в файлах, можно развернуть сервер приложений, который подключается к рабочей базе данных.
Система может работать через пул подключений к базе данных и дополнительно имеет внутренний пул подключений.
Снижает нагрузку на процессы СУБД (особенно значимо для Oracle listener) при частом установлении и разрыве подключений.
Часть операций, которые требуют долгой работы (сетевое ожидание при интеграции, отправка писем, обработка загруженных файлов), можно выполнять в фоновом режиме, не задерживая работу операторов и распределять нагрузку на систему по времени, сглаживая пиковые нагрузки за счет размещения задач в очереди и выполнение их, когда есть свободные ресурсы сервера.
На виртуальной машине с 4 CPU и 8Гб оперативной памяти производительность составляет около 200 карточек документов в секунду.
Если этого недостаточно, можно увеличить за счет
На наш взгляд, горизональное масштабирование более предпочтительно, так как добавляет отказоустойчивости системы в целом (перераспределение нагрузки) и намного более экономично.
На «легкой» виртуальной машине устанавливается кэширующий прокси-сервер nginx, который отдает статические файлы (стили и JavaScript) и файлы, загруженные пользователем, самостоятельно.
Динамический контент (html-код и ajax-запросы) он переадресует серверам приложений, равномерно распределяя нагрузку.
Кэширующим сервером является memcached, обеспечивающий единый кэш для всех серверов uWSGI и их серверных процессов.
СУБД является частью системы, наиболее сложной для масштабирования.
Чтение делается в slave-сервера, а запись — в master.
Настраивается репликация данных в синхронном режиме (долгая запись, быстрое чтение).
Не требуется установка какого-либо дополнительного ПО, библиотек или зависимостей на компьютеры пользователей.
Не требуется каких-либо мероприятий для установки обновлений. Система работает одинаково у всех пользователей.
Можно пользоваться системой на разных операционных системах, как платных, так бесплатных.
Система доступна на любом мобильном устройстве. На встрече или в командировке Ваши данные и отчеты всегда «под рукой», их не нужно отдельно выписывать и подготавливать к встречам.
Адаптивная верстка позволяет получить комфортный доступ на любом устройстве — от компьютера до смартфона.
По шифрованному каналу https (возможно использование двусторонних ключей со стороны клиента и сервера). С системой можно работать только через браузер или WEB-сервисы. Нет прямого доступа к базе данных, который можно прослушать, и возможности декомпиляции приложения
Python — интерпретируемый язык, и вносить изменения можно моментально, без компиляции приложения. Все настройки конфигурации система хранит в виде файлов XML, которые можно обрабатывать автоматически. Вы можете развернуть систему в режиме бета-версии, когда система с новыми настройками конфигурации подключена к production базе данных вместе с stable-релизом. Это позволит выделить несколько операторов для работы в режиме проверки конфигурации и подхода (в случае, если что-то пошло не так, операторы могут перейти на stable версию и продолжить работу с теми же документами, но в конфигурации предыдущего релиза).
Мы можем выкладывать изменения с тестовой площадки после Вашей проверки на рабочую версию каждые сутки за счет того, что все, что требуется системе, есть в конфигурации. Достаточно объединить тестовую ветку репозитория и выложить ее в production. Никаких дополнительных операций не требуется.
Есть пошаговое руководство по созданию конфигураций, которое описывает:
Логика и отображение данных отделены друг от друга, что позволяет в максимально широких пределах менять карточку документа и вообще любой шаблон уровня ядра. В системе есть отображение по умолчанию, с выделенными блоками, элементами и способом их вывода. Вы можете заменить любой шаблон, переопределив в нем только некоторые блоки на любом уровне (форму документа, раздел модулей, файлов или всю страницу) наиболее подходящим образом.
Язык Python широко используется для целей машинного обучения и является одним из лидеров в этой области. Использование модуля scikit-learn
Система может играть роль backend-сервера для мобильных приложений на различных платформах
Клиенты:
Cерверы:
Различные действия в системе выпускают так называемые «сигналы», на которые можно подписаться и отреагировать каким-либо действием, например:
Предназначена для сбора различных событий с множестра разнородных систем и сервисов, их объединения, обработки, хранения, поиска
Позволяет формировать SMS по шаблонам с возможностью редактирования операторами или автоматически, а также контролировать статус доставки.
Различные операции можно вынести в отдельные потоки и выполнять на отдельных процессах или даже на отдельных серверах. Можно получать результат выполнения этих задач назад в поток, из которого была поставлена задача и отслеживать статус выполнения задач. Можно перезапускать задачи, если сейчас нет сетевого соединения. Задача будет выполнена тогда, когда соединение восстановится.
Все основные настройки системы выполняются через редактирование конфигурационных файлов
на основе произвольных параметров
Больше нет необходимости писать процедуры и регламенты по работе в системе в рамках различных процессов. Система автоматически формирует сообщения оператору на основе конфигурации настройки и говорит, что нужно делать дальше
С поддержкой веток переписки (кто на какой вопрос отвечал)
более подробно о этом рассказано в разделе «Система отчетности»
Отображение в табличном или графическом виде, скачивание в Excel
Позволяет реализовать многоуровневую детализацию данных и посмотреть, какие конкретные документы использовались для расчета каждой ячейки таблицы, перейти в карточке конкретного документа