Описание

Архитектура платформы обеспечивает высокую гибкость в вопросах масштабирования и увеличения производительности. Таким образом, решение позволит обеспечить высокую производительность даже при значительном росте числа пользователей.

Доступ ко всем функциональным возможностям системы обеспечивается с помощью современного динамического WEB-интерфейса. Интерфейс является полностью настраиваемым. Это означает, что система имеет механизм создания и размещения элементов интерфейса, а также механизм конфигурирования стилей. Система имеет возможность подключения и использования мобильных устройств и off-line клиентов.

Система имеет графический редактор бизнес-логики: удобный редактор сущностей и форм, бизнес-процессов и отчетов. Эти механизмы позволяют вносить изменения в бизнес-логику без необходимости применения дополнительных средств и знаний программирования.

Программный продукт строится по модульному принципу. Это предоставляет гибкие возможности по подбору конфигурации в зависимости от внедряемых процессов, размера и потребностей организации. Также в решение могут быть включены модули, необходимые для решения узкоспециализированных задач. Заложена возможность подключения новых компонентов, как готовых, например, мониторинг оборудования, так и разрабатываемых в рамках платформы P1.Platform на заказ.

Производительность и масштабирование

Архитектура платформы обеспечивает высокую гибкость в вопросах масштабирования и увеличения производительности. Это позволяет масштабировать систему как горизонтально, за счет увеличения количества серверов приложений и нод СУБД, так и вертикально, за счет увеличения производительности оборудования. Таким образом, решение позволит обеспечить высокую производительность даже при значительном росте числа пользователей.

Отказоустойчивость

Заложенная системная архитектура позволяет резервировать компоненты на всех уровнях, что позволяет обеспечивать высочайшие характеристики надежности. Отказоустойчивость достигается за счет балансировки пользователей и задач, требующих высокой отзывчивости системы, а также за счет полного резервирования критически важных узлов системы.

Гибкость

Система имеет графический редактор бизнес-логики: удобный редактор сущностей и форм, бизнес-процессов и отчетов. Эти механизмы позволяют вносить изменения в бизнес-логику без необходимости применения дополнительных средств и знаний программирования.

Уровень клиентских интерфейсов

Представляет собой набор интерфейсов взаимодействия пользователей системой. Интерфейсы доступа пользователей к функциям Системы реализованы в едином стиле, с использованием общих механизмов и точек входа. Имеют адаптивную динамическую поддержку мобильных устройств.

Интерфейс

Интерфейс представляет собой WEB-интерфейс, основанный на JSF. Интерфейс является полностью настраиваемым, это означает, что система имеет механизм создания и размещения элементов интерфейса, а также механизм наложения стилей и их редактирования.

JavaServer Faces (JSF) — это фреймворк WEB-приложений, написанный на Java. Он служит для упрощения разработки пользовательских интерфейсов в Java EE-приложениях. В отличие от прочих MVC-фреймворков, которые управляются запросами, подход JSF основывается на использовании элементов интерфейса. Состояние элементов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется.

Технология JavaServer Faces включает: набор API для представления элементов пользовательского интерфейса (UI) и управления их состоянием, обработкой событий и валидацией вводимой информации, определения навигации, а также поддержку интернационализации (i18n) и доступности (accessibility).

Технология JavaServer Faces существенно расширяет существующие стандартные концепции пользовательского интерфейса (UI) и концепции WEB-уровня без привязки к конкретному языку разметки, протоколу или клиентскому устройству. Классы элементов пользовательского интерфейса, поставляемые вместе с технологией JavaServer Faces, содержат функциональность элементов, а не специфичное для клиента отображение, оставляя возможность специфичного рендеринга JSF-интерфейса на различных клиентских устройствах. Совмещая функциональность элементов интерфейса пользователя со специализированными рендерерами, появляется возможность использовать специальные теги для заданного клиентского устройства. JSF предоставляет специальный рендерер и специальную библиотеку JSP-тегов для рендеринга на HTML-клиенте.

В качестве библиотеки готовых реализаций JavaServer Faces применяется Primefaces.

При отрисовке некоторых экранных элементов подсистема использует механизмы интерактивных форм, выполненные с применением Metawidget.

Библиотека Metawidget позволяет строить интерактивные формы аналогично «Виджетам». Для построения формы достаточно ее декларативного описания.

Мобильный клиент

Представляет собой набор программных решений и интерфейсов, реализующих функционал системы для различных мобильных платформ (Android, iOS, Windows Phone).

Мобильный клиент разрабатывается с учетом требований к функционалу, который необходимо исполнять на мобильном устройстве. Интерфейс оптимизирован для упрощения работы пользователя. Мобильный клиент имеет схожий интерфейс и общие функциональные возможности на разных мобильных платформах.

Мобильный клиент оптимизирован с учетом возможной работы в условиях плохой связи, при периодическом пропадании. Может взаимодействовать с системой через интернет как посредством каналов сотовой связи EDGE, 3G, 4G, так и через Wi-Fi.

Реализует возможность использования ЭП для подписания документов на мобильном устройстве.

Off-line клиент

Off-line клиент включает набор интерфейсов и программных решений (автономное приложение и API), реализующих взаимодействие пользователя с Системой в отсутствии связи с центральным сервером и/или низком качестве связи.

Off-line клиент реализуется исходя из особенностей, требований и задач заказчика, которые необходимо решать в ситуациях отсутствия или нарушений в работе каналов связи, критичности данных, однако не нарушая требования к безопасности.

Реализация Off-line клиента возможна различными способами, в том числе:

  • «толстый клиент»
  • «локальный сервер»
  • и др.

Выбор конкретной реализации off-line клиента осуществляется на этапе проектирования конечного решения у Заказчика, в зависимости от технологических ограничений и объема функционала, необходимого при работе в режиме off-line. Платформа включает в себя функционал, позволяющий реализовать off-line клиент в различном формате.

Процессная подсистема

Подсистема автоматизированного исполнения настроенных процессов. Имеет графический интерфейс моделирования процессов. Может использовать преднастроенные процессы и подпроцессы, а также интерактивные формы, информацию НСИ и реестров и др.

Процессная подсистема является модулем ядра платформы. Позволяет осуществлять разработку процессов в соответствии с требованиями нотации BPMN 2.0. Построение процессов производится в графическом моделере. После загрузки обновленного процесса исполнение задач автоматически осуществляется в соответствии с обновлением. Настройка и исполнение процессов позволяет использовать лучшие практики применения библиотеки ITIL. Используемые компоненты позволяют строить работу в соответствовии со стандартом системы менеджмента качества серии ISO 9000.

Реализуют следующие функциональные возможности:

  • управление процессами;
  • управление интерактивными формами;
  • адаптивный WEB-интерфейс;
  • управление ролями пользователей;
  • управление статусами объектов;
  • использование отчетных форм;
  • реализацию оповещения о событиях;
  • использование различных хранилищ данных (в зависимости от решаемой задачи может использоваться различная конфигурация);
  • взаимодействие с интеграционной шиной (адаптеры и сервисы) для запуск запросов и приема ответов от внешних систем.

Подсистема ведения НСИ и информационных реестров

Служит для создания, ведения и хранения информационных и справочных материалов и реестров, а также для создания и управления сущностями и формами, включая регистрационную карточку. Имеет механизмы историчности и версионности.

Реализуют следующие функциональные возможности:

  • возможность создания справочников плоской и иерархической структуры с определенными классификационными признаками;
  • интерактивное и программное внесение данных в справочники, при этом обеспечивается их версионность;
  • возможность настройка правил редактирования справочников;
  • автоматическая синхронизация справочников в многоузловой архитектуре;
  • возможность загрузки данных в справочник из внешних систем;
  • хранение истории изменений данных по всем справочникам;
  • автоматизированная поддержка организационно-распорядительных документов и регламентов, регулирующих использование и ведение данных НСИ;
  • ролевое разграничение доступа пользователей к выполнению операций в системе;
  • возможность формирования произвольной выборки данных из справочника;
  • отслеживание истории изменения интересующих данных;
  • доступ к данным НСИ через корпоративный портал;
  • выгрузка данных справочника во внешние системы через предоставление стандартизованного сервиса доступа к НСИ.

Подсистема реализуем механизмы управления регистрационной карточкой РК, а также формой её отображения в зависимости от условий, например, статуса или типа интерфейса (специализированный вид на мобильном клиенте).

Механизм позволяют создавать новые и вносить изменения в имеющиеся формы РК без необходимости применения дополнительных средств и знаний программирования путем их настройки. Вновь созданные атрибуты автоматически добавляются в поисковые механизмы и сервисы интеграции.

Поддерживается возможность наследования типов документов и их атрибутивного состава. Имеется возможность логически связывать документы, резолюции и тп. без ограничения числа и типа связей, а также присоединения к регистрационной карточке любого количества файлов произвольного формата.

Позволяет отображать связанные документы и резолюций в виде дерева истории работы с исходным документом, а также в виде реестра связей. Система поддерживать возможность отслеживания истории изменений карточки документа.

Подсистема отчетности

Обеспечивает возможность подготовки и выпуска отчетов и выходных печатных форм. Включает в себя графический моделер отчетов и функционал настройки в выпуска форм и измерений. Позволяет настроить разграничивать доступ к отчетным формам.

Реализует возможность:

  • формирования и печать журналов, сводок и отчетов;
  • возможность настройки вида отчета;
  • экспорт отчетов в форматы MS Word и MS Excel с возможностью дальнейшего редактирования;
  • гибкой настройки выходных форм отчетов.

Подсистема администрирования

Позволяет автоматизировать работу администратора по настройке и администрированию системы. Включает в себя модуль управления ролями и разграничения прав доступа, модуль журналирования, обеспечение юридической значимости (ЭЦП), механизмы экспорта\импорта настроек и др.

Подсистема администрирования обладает множеством функциональных возможностей тонкой настройки, вплоть до уровня программного кода, обеспечивая реализацию механизмов обеспечения безопасности данных.

Подсистема администрирования позволяет:

  • управлять пользователями и ролями пользователей Системы, в том числе их учетными данными;
  • управлять организационными единицами – ВСП (внутреннее структурное подразделение), в том числе:
    • общие данные о ВСП;
    • услуги (сервисы) ВСП, в том числе варианты их предоставления;
    • штатные единицы сотрудников ВСП и их роли с правами доступа;
    • технические настройки процессов (и сервисов);
    • технические настройки использования организационной единицы;
  • управлять доступом;
  • вести и предоставлять доступ к системным журналам;
  • реализовывать различные сценарии применения ЭЦП;
  • импортировать/экспортировать настройки.

Подсистема интерактивных форм

Подсистема обеспечивает автоматизированное создание, исполнение и трансляцию интерактивных форм. Позволяет реализовать механизмы визуального конструирования форм, а также их подключение и использование в других модулях или подсистемах.

В реализации используется библиотека Metawidget, которая позволяет строить интерактивные формы аналогично «Виджетам». Для построения формы достаточно ее декларативного описания. Проектирование сущностей и форм производится механизмами конфигуратора форм в подсистеме управления НСИ и информационными реестрами. При разработке новых и внесении изменения в имеющиеся формы не требуется применения дополнительных средств и знаний программирования.

Электронное хранилище файлов

Подсистема хранения электронных образов документов и файлов (Репозитарий контента). Позволяет сохранять электронные образы документов и их описания (метаданные). Поддерживает версионность документов, а также ведет историю изменений. Позволяет реализовывать функции поиска документов и разграничения прав доступа.

В качестве репозитария контента реализуется специализированый API на Java платформе (JCR). В качестве реализации используется компонент Apache OAK.

Apache OAK – это хранилище данных, полностью поддерживающее стандарты Java Technology API (JCR, описанный в JSR 170 и 283). Поддерживает хранение структурированных и неструктурированных данных, имеет поддержку функционала полнотекстового поиска, контроля версий, транзакции и пр.

Преимущества решения с использованием OAK:

  • масштабируемость;
  • производительность;
  • стандартизованность.

JCR API используется для управления контентом системы с возможностью сохранения двоичных объектов и ассоциированных с ними метаданных. Данные в JCR представляют собой дерево, состоящее из узлов с ассоциированными с ними свойствами. Эти свойства и являются хранимыми данными, и могут хранить строки, числа, двоичные данные, изображения и тд. Узлы также могут ссылаться на другие узлы с помощью специальных ссылок.

JCR позволяет взаимодействовать с современными хранилищами содержимого, файловыми хранилищами, SQL и noSQL СУБД, реализующие механизмы поиска, версионирования, транзакции и т. д.

Хранение бинарных объектов реализовано механизмами файловой системы (FS): HDFS (распределенная файловая система). Позволяет хранить файлы любых размеров, поблочно распределённые между узлами кластера.

Хранилище данных и метаданных

Для хранения структурированной информации в Системе используется СУБД PostgreSQL. СУБД PostgreSQL – это объектно-реляционная система управления базами данных. PostgreSQL базируется на языке SQL и имеет поддержку возможностей стандартов SQL-92, SQL-99, SQL-2011. Большое количество различных информационных систем и приложений имеют нативную поддержку PostgreSQL. Позволяет накапливать большие объемы данных и производить их обработку.

Преимущества решения с использованием PostgreSQL:

  • поддержку большинством ИС;
  • поддержку языка SQL;
  • стандарты ANSI SQL-92 и SQL-99;
  • механизмы транзакций и репликаций;
  • гибкость архитектуры.

Для хранения неструктурированной информации в Платформе могут применяться различные noSQL СУБД (MongoDB и тп). Выбор реализации и решения о применении конкретного компонента происходит с учетом специфики и требований конечного решения.

СУБД MongoDB – это распределённая система управления базами данных, относящаяся к классу noSQL-систем и рассчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных. Позволяет накапливать огромные массивы данных и производить их обработку.

Преимущества решения с использованием MongoDB:

  • распределенная архитектура хранилища;
  • автоматическая репликация данных;
  • масштабируемость;

Совместное (одновременно) применение в подсистеме хранения (Электронном архиве) всех указанных компонентов позволяет соответствовать требованиям, предъявляемым к системам BigData:

  • поддержка структурированных и неструктурированных данных;
  • поддержка больших объемов данных;
  • распределенность: большое количество (вплоть до тысяч) узлов;
  • обработка данных: массивно-параллельный (распределенный) режим;
  • отказоустойчивость: данные хранятся в нескольких копиях;
  • масштабируемость: практически неограниченная.

Подсистема Электронный архив (КХД) представляет собой комплексное решение для консолидации, хранения и обработки больших объемов данных из различных систем-источников (учетных систем, транзакционных систем). КХД предоставляет оперативный доступ к данным через WEB-витрину, обеспечивая полноту, достоверность и непротиворечивость данных.

Подсистема оповещений

Реализует функционал по управлению функциями и планами оповещений, индивидуальных и групповых, в соответствии с настроенной в платформе или конечной системе моделью событий. В подсистеме оповещений применяются и настраиваются различные виду оповещений: сообщения, смс, голосовые вызовы, сообщения e-mail.

Подсистема оповещений имеет гибкий настраиваемый механизм модели событий и шаблонов уведомлений.

Имеет возможность интеграции для двустороннего взаимодействия с внешними системами оповещений, обработки звонков и call-центров. В системе уже реализована интеграция с Asterisk. Возможности интеграционной подсистемы позволяют настроить взаимодействие с любой внешней реализацией функции оповещений Заказчика.

Подсистема поиска

Подсистема поиска позволяет осуществлять поиск по любым атрибутам объекта или сущности, а также внутри документов. Имеет механизмы индексирования и построения поисковых запросов любой сложности по индексам. Имеет возможность учитывать словоформы и использовать полнотекстовый поиск.

ElasticSearch – это распределенный поисковый сервер с открытым кодом на Java для поиска и анализа данных в режиме реального времени, на базе Lucene. Предоставляет возможности полнотекстового поиска.

Обладает следующими преимуществами:

  • высокая скорость индексирования (near-realtime);
  • масштабируемость и отказоустойчивость (поддержка шардинга и репликации);
  • возможности составлять сложные запросы;
  • базируется на мощном движке Lucene;
  • широкие возможности для расширения: плагины, анализаторы, морфология, протоколы взаимодействия и тп);
  • поиск с учетом словоформ русского языка (а также других языков: английский, немецкий, испанский, французский и тд.)

Интеграционная подсистема

Реализует функционал взаимодействия системы с внешними информационными системами. Позволяет настраивать и публиковать сервисы, а также конфигурировать адаптеры для вызова внешних систем. Механизм универсальных адаптеров позволяет конфигурировать состав методов адаптера и атрибутивный состав передаваемых данных, необходимый для взаимодействия с внешними системами без внесения доработок в систему. Поддерживает возможность автоматического изменения сервисов и адаптеров при расширении атрибутивного состава карточек документов, а также номенклатуры документов. Система имеет предустановленные шаблоны адаптеров и сервисов.

Подсистема позволяет реализовать интеграция с Active Directory, порталами, 1C, ERP, ЭЦП, почтовым сервером, а также внешними системами оповещений и тп.

Состав используемых компонент

Наименование

Реализации

1

Портал/ Интерактивные панели

Модуль в P1.Platform (разработка ЛСР) построения рабочих столов и портальных страниц

2

Интерфейс

JSF, Primefaces, Metawidget

3

Электронное хранилище файлов

Apache OAK, СУБД MongoDB

4

Процессная подсистема/ подсистема правил/ подсистема принятия решений

Flowable (BPMN, CMMN, DMN)

5

Конфигуратор сущностей

Модуль в P1.Platform (разработка ЛСР)

6

Конструктор/Проигрыватель интерактивных форм

Модуль в P1.Platform (разработка ЛСР)

7

Каталог пользователей/ролевые модели/аутентификация

Picketlink (Active Directory)

8

Единый вход (SSO)

Windows: модуль интеграции с Active Directory в P1.Platform (разработка ЛСР);

Соц. сети: Socialauth;

ЕСИА: Модуль в P1.Platform (разработка ЛСР)

9

Отчетная подсистема / конвертирование файлов

Jxls (в формате Excel), XdocReport (в формате Word), LibreOffice (headless) - конвертация в другие форматы pdf, jpg, png и т.д.

10

OLAP

Mondrian, Pivot4j

11

СУБД

PostgreSQL, MongoDB

12

Модуль электронного подписания

КриптоПро JCP, КриптоПро Browser plugin

13

Индексация / Полнотекстовый поиск

ElasticSearch

14

Подсистема мониторинга

модуль в P1.Platform (разработка ЛСР)

15

Искусственный интеллект/ Машинное обучение/ Большие данные

Python, Tensorflow, Apache Spark

16

Подсистема проектирования и исполнения RPA-роботов

Automagica

17

Сервер приложений

Wildfly

18

Интеграционная подсистема

WSO2, Apache Camel, Apache Groovy, Apache velocity

19

ГИС

GeoServer, Postgis, OpenLayers, OpenStreetMap, Yandex/Google Maps API

20

Сборка и тестирование P1

Maven, Teamcity, Selenium, OWASP ZAP