Интеграция Lotus и Redis


Как организовать интеграцию приложений Lotus с другими прикладными системами организации. На этот вопрос есть много ответов, одним из них, служба DECS, уже встроенная в Lotus Domino Server, но как показала практика ее мало кто использует (за 20 лет я не встречал коммерческой реализации этой службы). Самый распространенный вариант, это использование ODBC и обмен текстовыми файлами.

Я расскажу еще об одном способе использование, это Redis для интеграции и повышения производительности и гибкости приложений Domino.

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

Алгоритм такой:

  1. Лотус загружает в Redis через java клиента данные необходимые для интеграции.
  2. Внешняя программа опрашивает Redis и перегружает информацию в нужные приложения, а при получения сигнала из внешних приложений (например статус документа) заносит ее в Redis
  3. Лотус с некоторой периодичностью просматривает хранилище Redis и переносит изменения в приложения Lotus.

Все довольно просто, есть возможность ускорить работу используя механизм подписки, тогда внешняя программа будет активироваться при загрузки информации Лотус моментально.

Так как Redis, это сервис в памяти, он обязательно должен располагаться на сервере Lotus Domino, только в этом случае будет достигнута максимальная производительность.

У Redis как и у Lotus Domino есть кластеризации, что делает его удобным в использовании на кластерах Domino.