Распределенная транзакция между несколькими приложениями в Spring

В настоящее время у меня есть набор веб-приложений в стиле ERP, собранных на вершине Spring 3. Приложение развернуто в Tomcat 7.

Система разработана некоторое время назад без четко определенной архитектуры. Каждое приложение состоит из 3 частей (как подпроекты). API: определение моделей и интерфейсов, IMPL: сервисный уровень и WEB.

Текущее расположение системы, как показано ниже.

Финансовый API + IMPL включен в модуль инвентаризации для обеспечения управления транзакциями. Ранее мы пытались разделить инвентаризацию и финансы на различные веб-приложения с помощью вызовов REST, но столкнулись с проблемой управления транзакциями. В настоящее время мы занимаемся @Autowiring the Financial Impl напрямую в службы инвентаризации. Например, когда выставляется счет на продажу, финансовые операции и операции инвентаризации должны выполняться в одной транзакции.

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

Я думаю, что внедрение промежуточного программного обеспечения для обмена сообщениями, такого как HornetQ или ActiveMq, было бы лучшим вариантом, как показано ниже.

Мои вопросы:

Как я могу добиться централизованного управления транзакциями между финансами и запасами?Есть ли здесь преимущество, если я использую сервер Java EE, такой как jBoss?Если я перенесу одно из приложений в другой экземпляр jboss, работающий на другом сервере, могу ли я по-прежнему иметь централизованные транзакции?

Ответы на вопрос(0)

Ваш ответ на вопрос