Как организовать интеграцию приложений Lotus с другими прикладными системами организации. На этот вопрос есть много ответов, одним из них, служба DECS, уже встроенная в Lotus Domino Server, но как показала практика ее мало кто использует (за 20 лет я не встречал коммерческой реализации этой службы). Самый распространенный вариант, это использование ODBC и обмен текстовыми файлами.
Я расскажу еще об одном способе использование, это Redis для интеграции и повышения производительности и гибкости приложений Domino.
Redis — хранилище в памяти по принципу ключ-значение, что дает возможность использовать его как кэш сервер. Основное его преимущество, наличие большого числа клиентов на разных языках и платформах и простора понимания принципов работы.
Алгоритм такой:
- Лотус загружает в Redis через java клиента данные необходимые для интеграции.
- Внешняя программа опрашивает Redis и перегружает информацию в нужные приложения, а при получения сигнала из внешних приложений (например статус документа) заносит ее в Redis
- Лотус с некоторой периодичностью просматривает хранилище Redis и переносит изменения в приложения Lotus.
Все довольно просто, есть возможность ускорить работу используя механизм подписки, тогда внешняя программа будет активироваться при загрузки информации Лотус моментально.
Так как Redis, это сервис в памяти, он обязательно должен располагаться на сервере Lotus Domino, только в этом случае будет достигнута максимальная производительность.
У Redis как и у Lotus Domino есть кластеризации, что делает его удобным в использовании на кластерах Domino.