В разработке систем мы постоянно используем сервис-ориентированную архитектуру (service-oriented architecture, SOA). Такие системы имеют долгий срок службы и немалую стоимость. Важным элементом этих систем является инфраструктура SOA, которая и обеспечивает интеграцию их частей. В этой статье Антон Гриценко, Lead Java Developer в Sigma Software и тренер Sigma Software University, расскажет, как использовать микросервисы в инфраструктуре SOA для повышения ее надежности, легкости сопровождения и мобильности. А еще остановится на нюансах реализации инфраструктуры SOA с помощью микросервисов, используя Apache ServiceMix.
Цель данной статьи — показать, что современное исполнение сложных распределенных систем включает и объединяет различные архитектуры и парадигмы для того, чтобы получить больше преимуществ и избежать существенных недостатков.
Мы реализуем инфраструктуру SOA с помощью микросервисов. Эти сервисы представляют собой небольшие автономные модули без сохранения состояния, которые развертываются на сервисной шине предприятия (enterprise service bus, ESB). Таким образом, для инфраструктуры SOA мы используем ресурс-ориентированную архитектуру (resource-oriented architecture, ROA).
Согласно SOA, основными требованиями к сервисам являются свободное связывание и способность к взаимодействию. Чтобы обеспечить соблюдение этих требований, мы применяем следующие ограничения для взаимодействия между сервисами:
- Синхронная связь через веб-службы RESTful
- Асинхронная связь через корпоративные системы обмена сообщениями (EMS)
- Обмен данными только в формате JSON
У нас нет каких-либо ограничений на взаимодействие с backend или frontend-системами. Читать дальше