Directum RX 4.0: Импортонезависимость, простая интеграция и ускорение разработки

20 8

Directum RX разворачивается на операционных системах Windows и Linux. Сервис интеграции позволяет объединить Directum RX с различными системами и создать единую цифровую экосистему организации. В среде разработки публикация изменений проходит «на лету», плюс появилась возможность перекрывать базовые типы документов и справочников. В статье об этих и других новинках версии Directum RX 4.0 для локальной установки.

Работа серверной части на Linux

В Directum RX уже поддерживается работа веб-клиента на операционных системах Альт Линукс, Astra Linux, которые входят в единый реестр отечественного ПО, и Ubuntu. С версии 4.0 на операционных системах Альт Линукс, Astra Linux и Ubuntu можно развернуть и серверную часть Directum RX.

Что нужно знать пользователю?

Пользователи могут работать в Directum RX с разных устройств и на разных операционных системах независимо от того, какая операционная система используется для серверной части. Для работы с клиентскими приложениями поддерживаются Linux, MacOS, Microsoft Windows. Для смартфонов и планшетов – iOS и Android.

Что нужно знать администратору?

  • полностью поддерживается работа веб-сервера и всех сервисов на Linux. При этом на Linux работает только веб-клиент, его запросы обрабатывает веб-сервер. Сервер приложений на Linux ставить не требуется, так как он используется для обработки запросов десктоп-клиента;
  • серверные компоненты Directum RX развертываются на Linux с помощью скриптов. Настройка выполняется с помощью конфигурационного файла. Для запуска и управления серверными компонентами используется программное обеспечение Docker;
  • для балансировки нагрузки и отказоустойчивости сервисов Directum RX можно развернуть обратный прокси-сервер с использованием HAProxy. Прокси-сервер перенаправляет запросы клиентов из внешней сети на один или несколько серверов, расположенных во внутренней сети. При этом для клиента это выглядит так, будто запрашиваемые ресурсы находятся непосредственно на прокси-сервере;
  • поддерживается аутентификация по паролю и внешняя аутентификация (LDAP, ЕСИА). Можно использовать сквозную аутентификацию по протоколам:
      • Kerberos. Для работы с ним используется Active Directory, а также службы каталогов, которые зависят от дистрибутива Linux. Например, можно использовать Samba4;
      • WS-Federation, SAML 2.0 и OAuth 2.0 с помощью внешнего провайдера Active Directory Federation Services (ADFS);
  • для подписания документов используются алгоритмы RSA и ГОСТ. Также поддерживается разработка своих плагинов подписания на основе шаблона из репозитория GitHub.

Для удобства изучения вся информация по администрированию Directum RX на Linux вынесена в раздел справки:

Что нужно знать разработчику?

  • среда разработки Directum RX устанавливается только на компьютер с операционной системой Microsoft Windows. Чтобы проверить разработанный код в системе на базе Linux, потребуется выделить тестовый стенд с Linux, развернуть все сервисы и проверить на нем свои доработки;
  • при переносе серверной части Directum RX c Microsoft Windows на Linux прикладной код, который вы написали, остается полностью работоспособным. Достаточно обновить прикладную разработку на сервере с Linux;
  • начиная с версии 4.0, утилита DeploymentTool может публиковать пакеты разработки в продуктивную систему, развернутую на серверах с Microsoft Windows и Linux. Для этого используются пакеты разработки, созданные по спецификации NET Standard вместо NET Framework. Новые пакеты визуально ничем не отличаются от пакетов прежних версий. Они также создаются в среде разработки с помощью экспорта. Единственное, что нужно сделать перед публикацией, – убедиться, что в конфигурационном файле утилиты для параметра USE_NET_STANDARD установлено значение True;
  • в Linux временно не поддерживается интеграция с 1С, автоматическое подписание извещений о получении документов из сервисов обмена, шаблон интеграции с Active Directory;
  • не поддерживается вызов публичных клиентских функций через утилиту DrxUtil. Чтобы обращаться к клиентским функциям, в среде разработки для функций нужно добавить атрибут Hyperlink и настроить их вызов из внешней системы;
  • не поддерживаются шаблон интеграционного решения Web API. Для объединения Directum RX с внешними системами необходимо использовать новый сервис интеграции.

Новые возможности для простой интеграции

Объединить Directum RX с другой системой можно с помощью готовых интеграционных решений. До версии 4.0, если подходящего решения не было, разработчики адаптировали под свои задачи шаблон интеграционного решения Web API. В новой версии на смену шаблону создан сервис интеграции, который поставляется сразу вместе с системой, а не как отдельное решение.

Сервис умеет получать от внешней системы HTTP-запросы по веб-протоколу OData и выполнять их. Полученный результат (ответ) преобразовывается в формат JSON и передается внешней системе.

Чтобы настроить интеграцию, разработчику достаточно в среде разработки Directum RX указать типы сущностей и функции, к которым после публикации можно будет обращаться по протоколу OData. Для этого у функций появились два специальных атрибута, а у типов сущности в редакторе добавился новый параметр.

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

Структурированные лог-файлы

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

Для удобного просмотра лог-файлов рекомендуется использовать утилиты, которые открывают их в форматированном виде: Notepad++, Visual Studio Code, LogExpert и т.п. Стандартную функциональность Notepad++ можно расширить плагином JSTool.

Кроме того, с помощью утилиты DirectumLogConverter можно сконвертировать лог-файл:

  • в простой текст – для чтения в любом текстовом редакторе;
  • в формат CSV – для обработки, например, в Microsoft Excel.

Если для анализа лог-файлов используется решение «Мониторинг системы Directum RX», то дополнительная настройка решения не требуется. Новая версия решения поддерживает структурированный формат. Если в компании используются свои инструменты мониторинга, то при переходе на Directum RX 4.0 нужно перенастроить анализ лог‑файлов на формат JSON.

Оптимизация, отказоустойчивость и стабильность работы

  • Для решения задач бизнеса ИТ-инфраструктура должна быть отказоустойчивой и масштабируемой. В версии 4.0 улучшена работа при подключении веб-сервера и сервисов к кластерам Redis и RabbitMQ в распределенной среде. Проведено нагрузочное тестирование и проверена отказоустойчивость при разворачивании кластеров. Даже если один из узлов кластера выйдет из строя, остальные продолжат функционировать.
  • Чтобы снизить нагрузку на веб-сервер, приложение Centrifugo теперь подключается сразу к сервису клиентских подключений (ClientsConnectionService), минуя веб-сервер. При входе пользователя в веб-клиент Centrifugo отправляет запрос на авторизацию сервису клиентских подключений. Для этого в параметрах сервиса ClientsConnectionService теперь задается порт, по которому он принимает соединение с приложением Centrifugo.
  • Повышена стабильность работы при открытии в предпросмотре документов форматов PDF, PPT и PPTX. Для документов этих форматов конвертация выполняется постранично: по мере прокрутки документа. Все описания файлов предпросмотра хранятся в базе данных MongoDB, которая предоставляет средства для работы с файлами и их содержимым. В требования к серверам добавлена поддержка базы данных MongoDB 4.2.

Отключение десктоп-клиента

С версии 4.0 веб-клиент стал основным, поэтому по умолчанию десктоп-клиент отключен. При попытке его запустить появится поясняющее сообщение со ссылкой на веб-клиент.

Перейти с привычного десктоп-клиента Directum RX на веб легко и без ущерба для рабочего процесса поможет цикл статей, который выйдет на Directum Club в ближайшее время. С первой статьей вы можете ознакомится уже сейчас. Чтобы не пропустить остальные, подписывайтесь на тег Переход на веб-клиент.

Изменения среды разработки

Новинки среды разработки нацелены на ускорение и упрощение разработки, а также на расширение функциональности Directum RX.

Перекрытие базовых типов сущностей

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

Предположим, в карточку договора (Contract) и дополнительного соглашения (SupAgreement) нужно добавить поле Куратор, которое позволит отслеживать ответственного по документам. Для этого на рабочем слое достаточно перекрыть базовый тип договорного документа (ContractualDocument), в его редакторе добавить свойство Куратор и разместить соответствующий контрол на форме. В итоге в карточках договоров и дополнительных соглашений появится поле Куратор, которое позволит отслеживать ответственного по документам.

Было

Стало

 

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

Благодаря перекрытию базовых типов документов и справочников:

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

Публикация изменения «на лету»

Раньше при публикации решений всегда выполнялся перезапуск сервера приложений. Рестарт занимал значительное время, поэтому иногда публикация была медленной. Чтобы ускорить цикл «изменил код – проверил», в новой версии среды разработки принцип работы изменился. Теперь, если разработчик исправил только прикладной код, строки локализации или иконки, то при публикации сервер не перезапускается.

Быстрая публикация работает только при использовании веб-клиента. Т.е. если в среде разработки на панели инструментов выбран десктоп-клиент, то публикация пройдет по старому принципу и займет немного больше времени.

Удаление вложений из заданий

В ходе выполнения задачи участники процесса могут добавить в область вложений ссылки на документы. Но иногда нужно удалить документ, ошибочно добавленный другим сотрудником. С помощью среды разработки Directum RX разработчик может включить возможность удаления ссылок на документы из групп вложений для любых своих задач.

В редакторах типов «Задание» и «Задача» для групп вложений добавлен новый параметр Разрешить удаление вложений. В задачах флажок доступен, если в область вложений добавлены группы. А в заданиях флажок отображается для групп, унаследованных от типа «Задача»:

В базовом решении Directum RX эта возможность доступна для задач на исполнение поручения. Теперь участники задачи могут удалять лишние вложения из группы «Результаты исполнения».

Контрол для множественного выбора записей в списках

Добавлен новый тип контрола для множественного выбора записей в списках:

Прочие изменения

Версия Git в программе установки обновлена на версию 2.31.1. Минимально необходимая версия осталась 2.16. Если ранее была установлена версия Git выше 2.16, например 2.17, то эта же версия и останется после обновления.

***

Подробнее с новинками можно ознакомиться в документах «Изменения Directum RX 4.0» и «Изменения Directum RX 4.0. Исправленные замечания» на сайте поддержки.

Кроме этого, следите за публикациями на Directum Club. В ближайшее время выйдут статьи о сервисе интеграции, новинках мобильных решений и легком переходе с десктоп-клиента на веб.

Артем Моисеев

бодренько так RX развивается, отлично, может так и забудем старый директум

Дмитрий Панкрашов

>> не поддерживаются шаблон интеграционного решения Web API. Для объединения Directum RX с внешними системами необходимо использовать новый сервис интеграции.

Непонятно - он ВООБЩЕ не поддерживается теперь, или не поддерживается только для Linux? Что делать, если на проекте web api всё же используется? Переписывать?

Павел Леонов

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

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

Дмитрий Панкрашов

Павел, я не сказал, что вижу минусы, это во-первых. Во-вторых, про "никто не гарантирует" и прочее - я задаю чёткий вопрос, и рассчитываю получить чёткий ответ, а это одно из двух:

  1. Шаблон интеграционного решения Web API с версии 4.0 не будет поддерживаться вообще. Все решения, выполненные с его помощью подлежат замене на новый сервис интеграции;
  2. Поддержка шаблона интеграционного решения Web API в версии 4.0 останется (с такими-то ограничениями).
Елена Черных

Дмитрий, здравствуйте. Не поддерживается только на Linux.

Если в вашей организации использовался шаблон Web API и вы планируете перевести серверную часть на Linux, то код разработки по Web API нужно перевести на сервис интеграции. Если же серверная часть системы остается на Windows, то шаблон продолжит работать, но рекомендуется заменить его на сервис интеграции.

Елена Черных

Артем, спасибо за отзыв!
К слову, чтобы было проще переходить с Directum на RX, сейчас выходит серия статей в базе знаний https://club.directum.ru/knowledge/Index/10261

Дмитрий Панкрашов

Елена, благодарю за прямой и понятный ответ!

Иван Романов

Планируется ли доработка утилиты переноса настроек под 4.0?

Авторизуйтесь, чтобы написать комментарий