Как я могу развернуть независимые сервисы в стеке SOA? На основе Java EE
У меня есть стек Web-сервисов в Java EE, и у меня есть проблема: каждый раз, когда мне нужно изменить конкретный сервис, развернуть и перезапустить приложение, остальные тоже нужно перезапустить.
Я хотел бы знать, существует ли какая-либо архитектура (с открытым исходным кодом) для развертывания моих служб в отдельных контекстах. Я хочу создать структуру SOA.
В логическом мышлении: создайте приложение для каждого веб-сервиса. Но я действительно считаю, что существует более легкая альтернатива.
Мне нужно проверить каждый сервис (продолжительность, ввести параметры, результат, если он получил ошибку)
Что вы предлагаете?
2 ответа
Вы не предоставили много подробностей, но если у вас есть реальные сервисы (то есть независимые компоненты, которые взаимодействуют через интерфейсы), то в любом случае нет никаких оснований использовать их в одном приложении.
Более того, наличие каждой службы в своем собственном приложении позволяет вам изменять, масштабировать и т. Д. Каждый из них независимо формирует другие и дает вам дополнительную гибкость по сравнению с наличием их в одном приложении.
Не уверен, какие у вас требования к вашей среде выполнения.
Обычно вы группируете такие сервисы в приложения, если их слишком много для обработки в качестве отдельных приложений. Если у вас есть набор связанных услуг, таких как "Заказ услуг", "Финансовые услуги", "Услуги логистики" или что у вас есть.
Когда вам нужно изменить один, существует высокая вероятность того, что вам также необходимо внести изменения в связанные службы, такие как обновление схем или что-то нет. В этом случае все службы не нужно перезапускать, просто "группа" (приложение).
Для этих ситуаций существуют также специальные контейнеры, особенно для сервисов на уровне интеграции.
Я имею в виду Apache Service Mix, который развертывает сервисы SOA в виде пакетов OSGi, которые просты в обращении, отделены друг от друга.
Должна быть возможность развертывания веб-приложений, если вы немного измените конфигурацию и упаковку.