Сервисная ориентация - это не столько технология, сколько дизайн. Я уверен, что вы можете использовать эти технологии в SOA без каких-либо вопросов, но это всего лишь выбор реализации. Точно так же Java, .NET может быть выбором реализации для приложений.
В любом случае, возвращаясь к вашему вопросу, MongoDB является хранилищем персистентности, поэтому в SOA он будет находиться за служебным уровнем, который защитит вышестоящих пользователей от этого факта, вы могли бы позднее заменить его следующим полезный, популярный магазин персистентности, и пользователи не станут мудрее.
То же самое для OpenESB, ESB - это шаблон, который вы можете использовать для реализации определенных аспектов ориентации службы, а именно маршрутизации, публикации / подписки, преобразования сообщений и т. Д. Вы выбираете только реализацию OpenESB, так что делайте то же самое, защищая выбор реализации за стабильным интерфейсом.
Лучший способ реализовать эти интерфейсы - создать интерфейсы, ориентированные на возможности, т. Е. Сосредоточиться на том, что не на том, как.
Вот несколько практических примеров того, как построить SOA с использованием WCF, я понимаю, что .Net может не быть вашим выбором реализации, но принципы верны, так как они являются принципами SOA.
Я бы посоветовал вам прочитать статьи Thomas Erl и Roger Sessions, это даст вам твердое представление о том, что такое SOA.
Построение SOA
Шаблон проектирования SOA
Достижение целостности в SOA
Почему ваш SOA должен быть похож на VW Beetle
SOA для вашего босса
Производительность службы WCF