Главная » Блоги Экспертов И ИТ-Компаний » Горизонтальное масштабирование системы ЛЕТОГРАФ по времени
Начинаем публикацию статей о практике внедрения СЭД 2 года назад

Горизонтальное масштабирование системы ЛЕТОГРАФ по времени

Решения на базе системы ЛЕТОГРАФ предназначены для обработки огромных объемов данных и обслуживания очень большого числа пользователей. Для того, чтобы они оставались работоспособными, необходимо распределять нагрузку как по различным вычислительным ресурсам, так и по времени. Данная публикация посвящена вопросу масштабирования решений на платформе ЛЕТОГРАФ по времени.

Система электронного документооборота не должна заставлять пользователя ждать: пока отобразится форма, пока задача будет передана в обработку, пока будет найден документ и пр.  Отклик системы должен быть максимально быстрым вне зависимости от количества одновременно работающих пользователей или объема обрабатываемой информации. Но на самом деле лишь часть изменений данных действительно необходимо выполнять. Большое количество задач можно совершенно безболезненно для пользователей перевести из режима “реального времени” в “асинхронный режим” — т.е. выполнить их позже, в рамках отдельного процесса или в то время, когда система “не занята”. Это и есть “масштабирование системы по времени”.

Если все задачи будут решаться в синхронном режиме, то существует вероятность, что при пиковом количестве пользовательских запросов серверная часть системы не справится с их обработкой. Если все пользователи станут одновременно создавать отчеты, обрабатывать заявки, выполнять поисковые запросы и пр., это потребует очень много вычислительных ресурсов. В таком случае объем необходимых вычислительных ресурсов должен будет покрывать пиковые нагрузки — но это очень нерационально, даже расточительно, ведь в повседневном режиме нагрузки на систему гораздо ниже пиковых! И самое разумное, что можно сделать — отложить выполнение части задач на те периоды времени, когда система слабо загружена или простаивает.

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

Самый простой пример — пользователь отправляет документ на согласование. Фактически, когда пользователь нажал кнопку “отправить”, документ должен “исчезнуть” из его рабочего пространства, а также должно быть выполнено несколько дополнительных правил обработки, предусмотренных его жизненным циклом, например изменение прав доступа, установка статусов, запись в журнал и пр. Пользователь должен увидеть только то, что документ “исчез” из его рабочего пространства, остальные операции с документом можно выполнять в асинхронном режиме. Для пользователя не важно, действительно ли документ отправится в ту же секунду, или это произойдет через некоторое время.

Мы выделяем два вида асинхронных задач: системные и прикладные.

Системные задачи


В числе системных задач мы выделяем следующие:

  • Формирование и актуализация рекурсивных и зависимых индексов
  • Индексация системных журналов.
  • Актуализация “двунаправленных” ссылок (самый простой пример ссылки - исходящий документ, созданный как “ответ на входящий”: при создании карточки исходящего документа пользователь выбирает связанный с ним входящий документ, после завершения обработки карточке исходящего документа будет создана асинхронная задача по созданию обратной ссылки из карточки входящего документа на только что созданный исходящий).
  • Обработка файлов — распознавание текста, индексация, создание изображений для предварительного просмотра.
  • Формирование уведомлений по подпискам — создание почтовых или всплывающих сообщений. В СЭД ЛЕТОГРАФ каждый пользователь может быть “подписан” на получение уведомлений о наступлении событий, например, поступлении документа в папку или о внесении изменений в документ. После того, как документ отправлен на очередной этап согласования, он отображается в соответствующей папке у всех согласующих и, в зависимости от настроек системы, этим пользователям может быть отправлено уведомление о поступлении документа.


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

Другой пример — распознавание электронных образов отсканированных документов. Распознавание текста может занимать значительного количество времени. Если выполнять данную задачу в синхронном режиме, то пользователь будет вынужден ждать отклика системы, не имея возможности продолжить работу. Пока пользователь будет решать другие задачи, система распознает текст в асинхронном режиме.

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

Прикладные задачи

Перечислим прикладные задачи, выполняемые системой ЛЕТОГРАФ в асинхронном режиме:

  • Формирование отчетных форм. Перевод отчетов в асинхронный режим особенно актуален для организаций, которым требуется периодически формировать большое количество отчетов, например ежемесячная или ежеквартальная статистика. Если все пользователи в один момент начнут формировать отчеты, вычислительных ресурсов может не хватить.
  • Обработка шаблонов трансформации. Шаблон траснформации - это правило, которое выполняется при создании или сохранении документа. Например, установить статус документа, создать связанный документ, изменить один или несколько реквизитов и пр. 
  • Работа с почтовыми ящиками пользователей (получение и отправка сообщений).
  • Обработка действий в маршрутах. Например, если пользователь выбрал действие “согласовать”, то документ должен быть перемещен дальше по листу согласования, а если выбрано действие “отказать”, он должен быть возвращен исполнителю на доработку.
  • Создание периодических резолюций (задач, поручений). Если задача должна выполняться ежедневно, ежемесячно или с другим периодом, то говорят, что она “периодическая”. Для СЭД это означает, что в заданное время система должна автоматически тиражировать (т.е. создавать новую аналогичную задачу)
  • Отработка “следящих узлов” в маршрутах. Система ЛЕТОГРАФ  позволяет определять правила в маршрутах обработки документов, которые будут “следить” за состоянием документов. Например, как только превышен срок исполнения поручения по документу, данный документ должен быть перемещен в определенную папку рабочего стола. Или если сотрудник находится в отпуске, все его задачи должны быть переданы другому пользователю.
  • Выполнение фоновых служб для интеграции с внешними системами.


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

Другой пример — это обработка задач по маршрутизации. Документы в системе ЛЕТОГРАФ могут маршрутизироваться в зависимости от действий пользователя, значений атрибутов объектов (в том числе связанных с другими объеками, которых может быть очень много), прав доступа тех или иных пользователей и большого числа других факторов и условий. Для того, чтобы не заставлять пользователя ждать проверки всех возможных условий, маршрутизация также обычно выполняется в асинхронном режиме.

В системе ЛЕТОГРАФ очень часто приходится на основании значений атрибутов одного объекта создавать ряд объектов других шаблонов, связывать их между собой и с исходным объектом, запускать их по маршруту, выдавать им резолюции и т.п. Для решения таких задач в системе существует очень гибкий механизм, который позволяет декларативно описывать требуемое преобразование данных с учетом всех возможных условий и требований. Этот декларативный механизм называется шаблонной трансформацией. В рамках шаблонной трансформации описываются правила преобразования данных и условия применения этих правил — в том числе можно указывать, в каком режиме нужно решать те или иные задачи, синхронном или асинхронном.

Классический пример асинхронной службы — обработка почтовых клиентов. Пока система в асинхронном режиме проверяет состояние почтовых ящиков, получает из них новые документы и доставляет их по назначению, пользователи продолжают работу. Точно так же решается задача отправки документов в различные межведомственные системы электронного документооборота и в другие внешние системы, вроде «1С: Предприятия».

Обработка задач


Все задачи, которые выполняются в асинхронном режиме, попадают в некую “очередь” задач. Для каждого вида задачи формируется отдельная очередь. В зависимости от ресурсоемкости этих очередей пул процессов может выполняться на одном сервере, на нескольких серверах или на всем массиве серверов, доступных системе ЛЕТОГРАФ.

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

Резюме

Платформа ЛЕТОГРАФ позволяет очень гибко конфигурировать систему чтобы управлять выполнением асинхронных задач и балансировать нагрузки. За счет разделения задач на синхронные и асинхронные мы выполняем “масштабирование во времени”, не допуская перегрузок оборудования и задержек в работе пользовательского интерфейса. Мы научились выполнять параллельно и выводить в асинхронный режим максимальное количество задач, снижая нагрузку на систему до минимума.

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

Таким образом, к общей гибкости настроек, которая позволяет создать на базе платформы ЛЕТОГРАФ любую систему документооборота без кодирования, мы добавили еще и гибкость использования вычислительных ресурсов с балансировкой нагрузки. Это позволяет максимально эффективно решать прикладные задачи и удовлетворять потребности наших заказчиков.


Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.
Комментарии
Другие публикации
RU, Москва
+7 (495) 741-48-08
---

О компании

Компания ЛЕТОГРАФ занимается разработкой и внедрением одноименной системы управления документами, автоматизации бизнес-процессов и интеграции приложений. Основные направления деятельности - развитие платформы ЛЕТОГРАФ и реализация масштабных проектов внедрения.

Компания основана в 2003 и за время своего существования прошла путь от небольших проектов на 5-10 рабочих мест, позволяющих осуществлять регистрацию и поиск документов, до масштабных решений, в которых несколько тысяч пользователей в десятках и сотнях территориально-распределенных подразделений выполняют все операции по работе с документами.

О платформе ЛЕТОГРАФ

ЛЕТОГРАФ – готовое централизованное расширяемое решение для автоматизации документооборота и архива территориально-распределенных организаций. С помощью платформы ЛЕТОГРАФ могут быть решены все задачи по управлению документами: от «классического» документооборота и архива до управления корпоративным контентом (ЕСМ).

Масштабируемые отказоустойчивые решения на базе платформы ЛЕТОГРАФ устанавливаются централизованно на кластере серверов и реализуют на практике концепцию управления «большими данными». Пользователи работают с системой в интерфейсе веб-браузера и получают доступ к информации в режиме он-лайн со стационарных или мобильных устройств.

 

Система ЛЕТОГРАФ унифицирует работу со всеми электронными и бумажными документами организации (входящими, исходящими, внутренними, кадровыми, архивными, договорами, счетами, заявками и пр.), а также может быть интегрирована с корпоративными и внешними системами.

Адрес: Россия, 105066, г. Москва, ул. Бауманская, д. 6 

Контактное лицо: Александр Иванов, специалист по маркетингу


Забыл пароль?
Авторизоваться через
Зарегистрируйся сейчас!
Присоединяйся к нашему обществу для того чтобы познакомиться с новыми людьми, создать собственный блог, публиковать анонсы событий и объявления, а также участвовать в обсуждении публикаций CNews. Мы создали единое пространство для общения специалистов рынка информационных технологий и всех, кто интересуется современными технологиями. Регистрация =>