Сегодня на рынке программного обеспечения предлагается значительное число систем по обеспечению электронного документооборота. Любая из них обладает тем или иным функционалом, разными технологическими особенностями и структурными построениями. Таким образом, совокупность перечисленных параметров определяет используемость каждой из систем в организациях и на предприятиях. После проведения анализа разных систем документооборота (Directum (Directum), DocsVision (DocsVision), Globus Professional (Проминфосистемы), PayDox (Paybot), 1С:Документооборот (1С), Босс-референт (БОСС — Референт, ГК АйТи), ДЕЛО (ЭОС), ЕВФРАТ (Cognitive Technologies), МОТИВ (Мотив)) был сделан вывод о том, что наиболее используемой можно считать систему ЕВФРАТ [4].
ЕВФРАТ — это система электронного документооборота, которая позволяет строить систему управления документами организации и бизнес-процессами. Она содержит в себе полный инструментарий для полноценной электронной организации документооборота каждой компании, независимо от формы собственности и численности. Система электронного документооборота рассчитана на работу как абсолютно небольшого отдела (канцелярия или локальная организация в целом) так и рассчитана на территориально распределенной организации со запутанной схемой информационных потоков.
Система электронного документооборота ЕВФРАТ дает возможность полностью оптимизировать и воспроизвести процессы обработки задач и документов в организации за счет гибкости механизмов по проектированию маршрутов, она так же поддерживает технологию workflow, которая дает следующие преимущества:
- формирование последовательных и параллельных подпоручений, поручений соисполнителям;
- разработка стандартных маршрутов перемещения документов [5].
Система ЕВФРАТ имеет клиент — серверную архитектуру. Благодаря HTTP-серверу и модулю АРМ «Руководитель» доступ к системе может осуществляться через Интернет. Наличие подсистемы обмена документами позволяет организовать территориально-распределённую работу. В качестве базы данных используется СУБД собственной разработки — НИКА, которая поставляется вместе с продуктом. Особенности архитектуры системы и применяемые механизмы позволяют добиться эффективной работы и оптимальной производительности системы электронного документооборота.
Рис. 1. Архитектура системы ЕВФРАТ
Существует способ по значительному увеличению производительности системы, которое возможно реализовать в рассмотренной АСУД, — это многопоточность. Многопоточность позволяет увеличить количество операций, работы с данными за определенное время. Важно учитывать тот факт, что эффективность зависит от применяемого приложения и его работы уже на многоядерном процессоре. Чтобы приложение смогло одновременно использовать несколько ядер процессора, оно обязано распараллеливать выполнение задач, иначе, когда программный код предполагает только лишь последовательное выполнение задач, пользы от многоядерности ЭВМ не будет.
Распределенная система представляет собой совокупность взаимодействующих объектов, имеющих определенное состояния. Главным различием межу распределенными (многозвенными) системами и классическими клиент-серверными приложениями представляется то, что в самом начале проводимых транзакций в принципе неизвестно, какое количество объектов, статус которых нужно восстановить по стандартным правилам транзакций или сохранять, принимают в данной, конкретной, транзакции участие. Клиент, высылающий запрос серверному объекту, как правило не имеет представления, какую конкретной цепочку вызовов, и к каким же объектам, породит данный уникальный запрос. О цепочке вызовов, в целом, объекты, участвующие в ней, не имеют ни малейшего представления.
Предлагается механизм организации обработки транзакций в нескольких потоках одновременно на многопроцессорных архитектурах, что позволит улучшить производительность системы, также при этом предлагается удобный механизм реализации серверной части СЭДО «ЕВФРАТ» — с применением специальной для АСУ документами объектно-ориентированной надстройки xNika [3] над системами по управлению БД. Рассмотрим предлагаемый алгоритм (рис.2).
Сервер приложений автоматической системы управления данных, базируется на наборе библиотек, которые выполняют роль объектно-ориентированной среды исполнения, которая осуществляет над средой хранения объекты системы документооборота — это, например, файлы, документы, вспомогательная инфраструктура, которая включает подсистемы обработки событий, кэширования и т. д. [2] В данной среде предполагается синтез соединений и блоков управления рабочими потоками, на основании которых реализуется подсистема по управлению транзакциями.
Функциональность части по управлению рабочими потоками состоит в управлении параллельном обрабатывании запросов — элемент работы. Элемент работы — это конструкт, который содержит параметры процесса и реализующий интерфейс с методами, которые вызываются для выполнения задач. Рабочий поток — это объект, который содержит очередность элементов работы и реализующий исполнение их в рамках конкретного потока. Блок осуществляет пул рабочих потоков, в них параллельно и выполняется фактическая вся деятельность. Компоненты работы помещаются, в зависимости от конкретной необходимости, как в определенных рабочий поток, так и в тех потоках, которые выбираются на основе его текущего уровня занятости и состояния его очередей — преимущество получают простаивающие потоки или потоки, которые имеют самую короткую очередь [1]. Рабочие потоки постоянно работают над своими очередями, в интервалах, через определенный период, они вызывают процесс обработки событий простоя и о реализации каждого процесса работы делается соответственное уведомление. Число рабочих потоков, работающих одновременно, настраивается во время инициализации пула, отталкиваясь от характеристик ЭВМ. Следует учитывать, что, если установить количество рабочих потоков больше чем число процессоров на ЭВМ, это скорее всего приведет к значительному снижению производительности.
Рис. 2. Схема работы подсистемы
Блок по контролю соединениями, при возникновении необходимости, создает соединения со средой хранения в рабочих потоках. Для каждого конкретного потока существует только свой набор соединений. Они используются в том потоке, в котором они были созданы. Соединение помечается как занятое, когда оно создано и используется, как только оно освобождается — соответственно помечается.
В среде выполнения транзакция — это ничто иное как объект, который занимается управлением ресурсами, которые используются в процессе согласования для изменения данных. Один из таких ресурсов — это рабочий поток, выделяемый для каждой транзакции и затем закрепляемый за ней. Допускается отведение одного рабочего потока для нескольких транзакций, при условии, что все выполняемые действия, в рамках конкретной транзакции, будут выполнены в одном рабочем потоке. Соединение с хранилищем xNika и временные файлы, это другие ресурсы, которые были загружены или запрошены в процессе транзакции. Что бы обеспечить возможность обработки нескольких транзакций одновременно, подсистема для управления транзакциями применяет пул подключений таким образом, что любая открытая транзакция может использовать только свой экземпляр подключения. Это, прежде всего, необходимо с той целью, чтобы кэш хранилища xNika оставался независимым в каждом изменении и транзакции, вносимые в процессе обработки в кэш одной транзакции, не препятствовали работе остальных транзакций. По окончанию работы транзакции соответствующего ей соединения вызывается фиксация, затем происходит освобождение КЭШа, соединение получает статус свободного и может быть использовано следующими транзакциями.
Для исключения возможности «зависания» незавершенных и открытых транзакций следует задавать максимально возможный срок простоя транзакций — это время, в процессе которого разрешается отсутствие какой-либо работы в ее рамках. По истечении отведенного времени транзакция должна быть принудительно завершена: откат.
Можно сделать следующий вывод — предложенная схема позволит любой транзакции обладать своей очередью элементов работы. Транзакции из этой очереди по очереди попадают в пул конкретного потока, который фиксирован за транзакцией. По завершению выполнения очередной транзакции, исключение составляют случаи, когда транзакция неудачно пыталась осуществить блокировку ресурсов, совершается перенос следующего в очереди ее потока элемента работы транзакции для выполнения. В противном случае, в случае неудачной попытки по блокировке, блокирующий элемент будет заново поставлен в очередь рабочего потока. Если во время выполнения задания, возникла ошибка, транзакция принудительно откатывается от выполнения и генерируется исключение. Также происходит автоматический откат при превышении лимита работы транзакцией в 1 час. Все операции, которые производила транзакция, в том числе фиксацию, освобождение ресурсов и откат, происходят в выделенном ей рабочем пуле.
Таким образом, в статье рассмотрены основные компоненты системы электронного документооборота ЕВФРАТ. Предложен механизм организации обработки транзакций в нескольких потоках одновременно на многопроцессорных архитектурах, что позволит улучшить производительность системы, при этом предлагается использование механизма программирования серверной части СЭДО «ЕВФРАТ» — с применением специальной для АСУ документами объектно-ориентированной надстройки xNika над системами по управлению БД.
Литература:
1. Богданов А. С., Емельянов Н. Е., Ерохин В. И., Скорняков В. А., Романов Б. Л. НИКА-технология построения информационных систем — Организационное управление и искусственный интеллект // Сб. трудов ИСА РАН. Под ред. члена-корр. РАН Арлазарова В. Л. и д. т.н. проф. Емельянова Н. Е. — М.: Едиториал УРСС, 2003. С. 56–57
2. Даниленко А. Ю., Подрабинович А. А., Сургучев В. А., Хлюстов К. В. Электронный документооборот по технологии клиент-сервер // Издательство Юрйт; ИД Юрайт. 2004. С. 201
3. Емельянов Н. Е., Ерохин В. И. Особенности систем, создаваемых на основе НИКА // Технологии. 2013. С. 215
4. Обзор систем электронного документооборота. http://www.ixbt.com/soft/sed.shtml
5. Возможности СЭД ЕВФРАТ. http://www.evfrat.ru/about/opportunities/