Современные информационные технологии/3.
Программное обеспечение
Парахин А.В., к.т.н.
Бородянский Ю.М.
Южный Федеральный
Университет, Россия
Информационная
система управления потоками документов
В настоящее время, в связи с тяжелыми
финансовыми условиями функционирования большинства предприятий и организаций,
актуальным вопросом является поиск возможных путей сокращения постоянных
издержек, а также способов повышения прибыли без внесения значительных
изменений в сложившиеся бизнес-процессы. Одним из таких решений является
внедрение комплексной информационной системы, оптимизирующей работу организации
по обоим направлениям. Часто подобные системы построены на основе системы
электронного документооборота (СЭД), изолированное применение которой уже само
по себе значительно сокращает временные и материальные расходы и упрощает
контроль и управление. Еще более ощутимого улучшения можно добиться, если
учитывать специфику предметной области, а не использовать готовые универсальные
решения.
При рассмотрении научно-производственных
организаций, одной из таких особенностей является наличие сложных составных
документов, в формировании которых участвует некоторая группа сотрудников,
причем жесткой последовательности передачи эскиза документа между участниками
нет, он «собирается» из составных частей. Помимо работы над своей частью составного
документа, каждый сотрудник выполняет ежедневные обязанности и задачи. В
крупных организациях одновременно создаваемых составных документов может быть
большое количество и существует необходимость оптимального распределения работ
между сотрудниками. Часто начальство поручает задачу наименее загруженному на
данный момент работнику, но при этом не учитывается возможная перспектива и
процесс формирования документа затягивается. При правильной организации труда и
распараллеливании работ можно добиться значительного ускорения всех процессов.
Встает вопрос: каким именно образом следует
распределять задания? Для ответа на него необходимо представить сложившуюся на
данный момент в организации ситуацию в виде некоторой оптимизируемой
математической модели. В описываемом случае разумнее всего использовать модель,
так называемой, задачи коммивояжера. Графически ее можно представить в виде
ориентированного графа, вершины которого соответствуют сотрудникам, а вес
направленных ребер, соединяющих вершины, характеризует количество
затрачиваемого рабочего времени сотрудником-приемником на создание своей части
некоторого документа, после того, как над ним поработал сотрудник-источник, в
условных единицах. Оптимизация заключается в том, что с помощью строгих
математических методов будет найден такой маршрут, сумма ребер при прохождении
которого, а, следовательно, и общее время формирования документа, является
минимальной. Однако, следует учитывать ограничение данной модели, заключающееся
в том, что все исследуемые маршруты являются контурами, то есть начинаются и
заканчиваются в одной и той же вершине, не проходя при этом через любую другую
дважды. Этот факт можно учесть, введя в перечень участвующих в разработке лиц,
сотрудника, который инициирует разработку (как правило, это начальник), он и
будет начальной вершиной контура.
Оптимизация данной модели представляет собой
трансвычислительную задачу, поэтому было разработано достаточно много методов,
исключающих полный перебор. Одним из наиболее эффективных в условиях большого
количества вершин является метод ветвей и границ, основанный на разбиении
множества допустимых решений на подмножества и отсечении тех из них, которые
заведомо не содержат оптимальных решений. При ручном способе расчета
потребуется большое количество вычислений при работе с матрицами, поэтому имеет
смысл поручить эту задачу компьютеру.
Реализовать данный алгоритм программно можно
различными способами, каждый из которых имеет свои плюсы и минусы, но в
конечном итоге необходимо определить следующее: интегрировать данный алгоритм в
виде модуля в некоторую более высокоорганизованную систему или использовать его
самостоятельно. Для практического применения лучше использовать первый вариант,
так как при внедрении в организацию системы электронного документооборота
некоторая программная платформа уже будет существовать, как и навыки работы с
ней у сотрудников. Соответственно, среди всего разнообразия СЭД следует
рассматривать те из них, которые позволяют наращивать свой функционал за счет
встраиваемых внешних модулей или подсистем, и, как следствие, имеют открытый
исходный код с возможностью интеграции.
В условиях ограниченности бюджета (при больших
расходах на модернизацию ее смысл теряется) в поле зрения в первую очередь
попадают либо полностью бесплатные системы, либо такие, которые предоставляют
бесплатную версию с ограниченным, но достаточным для реализуемых задач,
функционалом. В качестве более специфичного критерия можно рассматривать возможности
и простоту интеграции внешних подсистем. Одной из наиболее распространенных на
территории Российской Федерации и отвечающих вышеописанным требованиям систем
является система электронного документооборота NauDoc.
СЭД NauDoc имеет модульную
структуру с возможностью подключения/отключения готовых модулей. Функциональная
модель системы реализована в трехзвенной архитектуре: клиентское приложение,
сервер приложений и источник данных. В роли сервера приложений выступает Zope,
в роли источника данных – объектно-ориентированная база данных ZODB, в качестве
промежуточного звена между клиентом и сервером приложений может выступать
web-сервер Apache, а в роли клиентского приложения системы используется любой web-браузер,
который по защищенному каналу SSL осуществляет работу с
сервером, на котором установлена система. Все компоненты данной системы
реализованы на языке программирования Python, который также
используется при организации межмодульного взаимодействия.
Для реализации разработанного алгоритма расчета
оптимального пути следования составного документа использовался встроенный в
систему механизм сценариев. Краткая блок-схема работы алгоритма представлена на
рисунке 1:

Рисунок 1 – Блок-схема работы алгоритма
Суть сценария заключается в совершении
нескольких автоматических действий при наступлении некоторого инициирующего
события. Расширяемость системы NauDoc заключается в том, что
перечень возможных к выполнению стандартных действий может быть расширен
посредством Python-скриптов, интегрируемых в систему. Соответственно, был
написан необходимый программный код на языке Python и внедрен в систему в
виде расширенного сценария. Осталось определить, каким образом этот сценарий
будет вызываться, как будет получать входные данные и куда будет выводить
результат. Для этого были использованы реквизитные поля документа определенного
типа, то есть в системе был создан особый тип документов, используемых только
для расчета, входные данные вводятся в виде матрицы весов ребер в
соответствующие реквизитные поля, а оптимальный путь выводится в реквизитное
поле вычисляемого типа в виде последовательности вершин.
Внедрение данной системы электронного
документооборота и расширение ее функционала за счет внешнего модуля расчета
оптимального пути следования составных документов от исполнителя к исполнителю
позволило значительно уменьшить среднее время создания и увеличить скорость
прохождения документа через каждого сотрудника.
Литература:
1. В.И. Мудров «Задача о
коммивояжере», М.: «Знание», 1969 г.
2. X. Tomas «Introduction to Algorithms», М.:
«Вильямс», 2006 г.