Система формирования отчетных документов
REPORT DOCUMENTS GENERATION SYSTEM

Система формирования отчетных документов предназначена для ускорения формирования отчетных документов, упрощения взаимодействия с пользователем и отслеживания запущенных и выполненных операций.
Изобретение относится к области вычислительной техники, а именно, к информационным системам автоматизации управления.
В большинстве отчетных систем процесс формирования отчетных документов основан на последовательном запуске отчетов, в которой первый в очереди тот, кто первым отправил запрос. В рассматриваемой системе предусмотрена многопоточность, то есть параллельный запуск отчетных документов, за счет которого упрощается процесс получения отчетов, увеличивается продуктивность и уменьшается время формирования отчета.
В качестве прототипа выбрано изобретение «Система создания отчетных форм» (патент РФ №2598783), которая решает, в том числе, задачи формирования отчетности, визуализации основных показателей деятельности и автоматизации этапа разработки интерфейса взаимодействия с пользователем. Система включает в себя рабочие места, хранилище данных, устройство сбора данных, устройство консолидации и автоматизации, устройство отчетности и устройство оптимизации. Однако указанная система не позволяет запускать в ней несколько отчетов одновременно, блок многопоточности не засоряет очередь, а работает в параллельном режиме сразу с несколькими потоками.
В предлагаемой системе получения отчетных документов реализована параллельная работа с потоками, что позволяет пользователю работать сразу с несколькими отчетами. В отличие от прототипа, в котором организован последовательный запуск отчетов и время ожидания зависит от загруженности очереди, в рассматриваемой системе уменьшение времени ожидания получения отчетов достигается путем разделения запущенных отчетов по потокам.
Технический результат изобретения - параллельное распределение задач по запуску отчетной документации.
Поставленная задача достигается тем, что система формирования отчетных документов, включающая автоматизированные рабочие места, блок авторизации, модуль визуализации, модуль интерфейса взаимодействия с пользователем, блок взаимодействия с пользователем, библиотека компонентов, блок сбора данных, хранилище данных, модуль отчетных форм, блок библиотеки формирования отчетов, блок шаблонов, блок отчетных форм, отличающаяся тем, что согласно изобретению система дополнительно включает блок определения ролей, блок взаимодействия с модулем данных, модуль данных, библиотеку интеграции, блок многопоточного запуска, блок динамического подключения, блок сбора информации, причем модуль визуализации включает в себя модуль интерфейса взаимодействия с пользователем, библиотеку компонентов и блок взаимодействия с модулем данных, кроме того модуль интерфейса взаимодействия с пользователем включает в себя блок взаимодействия с пользователем и блок определения ролей, кроме того модуль данных включает в себя библиотеку интеграции, блок сбора данных и хранилище данных, причем библиотека интеграции состоит из блока многопоточного запуска и блока динамического подключения, кроме того модуль отчетных форм включает в себя блок библиотеки формирования отчетов, блок шаблонов и блок отчетных форм, причем автоматизированные рабочие места соединены односторонними связями с блоком взаимодействия с пользователем, блок взаимодействия с пользователем двусторонними связями соединен с блоком библиотеки компонентов, блоком авторизации и с блоком взаимодействия с модулем данных, блок взаимодействия с модулем данных двусторонними связями соединен с блоком динамического подключения и блоком сбора данных, блок сбора данных двусторонними связями соединен с хранилищем данных и блоком многопоточного запуска, хранилище данных двусторонней связью соединено с блоком динамического подключения, блок многопоточного запуска односторонней связью соединен с блоком библиотеки формирования отчетов, блок библиотеки формирования отчетов двусторонней связью соединен с блоком шаблонов, блок шаблонов двусторонней связью соединен с блоком отчетных форм, блок отчетных форм односторонней связью соединен с блоком сбора данных, с блоком сбора информации односторонними связями соединены блок авторизации, модуль визуализации, модуль данных и модуль отчетных форм, блок авторизации односторонней связью соединен с блоком определения ролей.
Данная задача решена путем использования параллельного программирования и разделения задач на потоки.
Структура изобретения показана на фиг. 1 и состоит из следующих модулей и блоков:
1. Автоматизированные рабочие места,
2. Блок авторизации,
3. Модуль визуализации,
4. Модуль интерфейса взаимодействия с пользователем,
5. Блок взаимодействия с пользователем,
6. Блок определения ролей,
7. Библиотека компонентов,
8. Блок взаимодействия с Модулем данных (МД),
9. Модуль данных (МД),
10. Блок сбора данных,
11. Хранилище данных,
12. Библиотеки интеграции,
13. Блок многопоточного запуска,
14. Блок динамического подключения,
15. Модуль отчетных форм,
16. Блок библиотеки формирования отчетов,
17. Блок шаблонов,
18. Блок отчетных форм,
19. Блок сбора информации.
АРМ 1 - автоматизированные рабочие места (компьютеры пользователей) предоставляют пользователям возможность взаимодействия с системой формирования отчетов посредством Модуля визуализации 3. В качестве АРМ может быть использован любой программно-аппаратный комплекс.
Блок авторизации 2 осуществляет проверку прав пользователя на доступ к системе и к ее отдельным ресурсам. В начале работы пользователя с системой Модуль визуализации 3 отправляет запрос Блоку взаимодействия с МД 8 для получения списка доступных ресурсов. Блок взаимодействия с МД 8 перед обработкой любого запроса обращается к Блоку авторизации 2 для подтверждения полномочий пользователя на выполнение данного запроса.
Модуль визуализации 3 обеспечивает визуальный интерфейс взаимодействия системы с пользователем, а также осуществляет взаимодействие с Модулем данных 9 в ответ на запросы пользователя. Модуль визуализации 3 реализует отправку запросов пользователя на получение доступа к ресурсам системы формирования отчетов и также отображение полученной в результате запроса информации. Модуль включает в себя: Модуль интерфейс взаимодействия с пользователем 4, Блок взаимодействия с МД 8 и Библиотеку компонентов 7.
Блок взаимодействия с пользователем 5 через Блок взаимодействия с МД 8 осуществляет построение и визуализацию элементов интерфейса пользователя. Для построения интерфейса Блок взаимодействия с пользователем 5 использует компоненты, предоставляемые Библиотекой компонентов 7. На основании конфигурационной информации, полученной от Блока взаимодействия с МД 8, Блок взаимодействия с пользователем 5 настраивает взаимодействие компонентов между собой и их реакцию на действие пользователя, а также формирование, на основании действий пользователя, запросов на получение данных от Модуля данных 9.
Блок определения ролей 6 в соответствии с полученной информации о пользователе регулирует доступность отчетов.
Библиотеки компонентов 7 предоставляет Блоку взаимодействия с пользователем 5 репозиторий компонентов для построения экранных форм.
Блок взаимодействия с Модулем данных 8 - обеспечивает передачу данных между Модулем визуализации 3 и Модулем данных 9.
Модуль данных 9 отвечает за хранение, обработку и передачу данных в иные модули системы.
Блок сбора данных 10 осуществляет выборку исходных данных из Хранилища данных 11, их связывание, аналитическую, статистическую и другую, предусмотренную для данного запроса, обработку и формирование выходных данных в формате, соответствующем запросу.
Хранилище данных И является централизованным местом хранения данных всевозможного вида, поступающих из различных источников, и обеспечивает механизмы долговременного хранения информации и доступа к ней.
Библиотеки интеграции 12 предоставляет Блоку сбора данных 10 репозиторий компонентов для анализа получаемых данных из поступивших запросов и состоит из Блока многопоточного запуска 13 и Блока динамического подключения 14.
Блок многопоточного запуска 13 основывается на модели программирования «разветвление - объединение». При одновременном запуске нескольких отчетов, когда процессу требуется добавить в работу параллелизм, Блок многопоточного запуска 13 получает данные от Блока сбора данных 10 и выполняется разветвление процесса. При этом создается группа потоков. Деление на потоки происходит программно с помощью определенных команд. Каждому потоку присваивается определенное действие. Эти потоки выполняются параллельно в рамках фрагмента этапа процесса, который называется параллельным участком. В конце параллельного участка все потоки заканчивают свою работу и снова объединяются вместе. После этого исходный или «главный» поток продолжает свою работу. Далее скомпоновав всю информацию, Блок многопоточного запуска 13 отправляет данные Модулю отчетных форм 15. Очередь не забивается и время выгрузки отчетов сокращается.
Блок динамического подключения 14 отвечает за подключение к Модулю данных 9 на основе введенной строки присоединения.
Модуль отчетных форм 15 ответственен за процесс реализации вида отчетных документов.
Блок библиотеки формирования отчетов 16 на основе предоставленных данных от Блока многопоточного запуска 13, формирует нужный репозиторий компонентов для создания отчета.
Блок шаблонов 17 является промежуточным блоком для формирования отчетных форм.
Блок отчетных форм 18 на основе полученных данных и шаблона формирует выходной результат и отправляет его Модулю визуализации 3.
Блок сбора информации 19 хранит в себе и собирает всю информацию о запущенных отчетах, обо всех пользователях, обо всех совершенных операциях.
Система функционирует следующим образом.
Пользователь, с помощью интерфейсов АРМов 1, посредством Модуля интерфейса взаимодействия с пользователем 4 выбирает нужный ему отчет и заполняет все необходимые данные. Используя Блок взаимодействия с МД 8, система отправляет введенные данные пользователем Блоку сбора данных 10. Затем Блок сбора данных 10 обращается к Хранилищу данных 11 и на основе собранных данных обращается к Блоку многопоточного запуска 13, который основываясь на полученных им данных, распределяет работу по нескольким параллельным процессам. Далее, сформировав все данные по отчетам, Блок многопоточного запуска 13 отправляет данные Модулю отчетных форм 15. Используя Блок библиотеки формирования отчетов 16 и Блока шаблонов 17, Блок отчетных форм 18 формирует отчетный документ и отправляет его Модулю визуализации 3. На протяжении всего процесса Блок сбора информации 19 сохраняет всю информацию о проделанной работе системы.
Хранение конфигурационных данных блоков программного комплекса реализовано на СУБД Oracle 9i.
Модуль визуализации реализован для выполнения в Windows Forms на Visual Studio 13.
Элементы интерфейса взаимодействия с пользователем (ввод параметров отчета, навигация по доступным ресурсам и т.д.) и их взаимодействие написано на языке программирования С#. Информация о правах доступа пользователей к отчетам и о авторизации хранится в БД.