Я работаю над первоначальной архитектурой для решения, для которого предыдущий консультант рекомендовал подход SOA. Из чтения книги (книг) Erl и применения предыдущей работы со службами (и хороших шаблонов проектирования в целом), я вижу преимущества такого подхода. Однако у этой конкретной группы в настоящее время нет традиционных потребностей для реализации веб-сервисов - нет внешних потребителей и нет интеграции с другими приложениями.
Что мне интересно, так это то, есть ли какие-то преимущества в использовании веб-сервисов, строго придерживаясь SOA, которые мы не могли получить от простой реализации объектов, которые «готовы к обслуживанию»?
Чтобы объяснить, пример. Допустим, вы реализуете сущность «Персона» как сервис. Вы должны реализовать:
1. Бизнес-объект / логика
2. Переводчик в сервисную структуру данных
3. Переводчик из сервисной структуры данных
4. WSDL
5. Сервисная структура данных (XML / JSON / и т. Д.)
6. Утверждения
Теперь, с другой стороны, если вы не пользуетесь сервисом, вам нужно только реализовать # 1 и убедиться, что другой код обращается к нему через свободную ссылку (используя внедрение зависимостей или оболочку и т. Д.). ). Затем, если позже станет очевидно, что служба нужна, вы можете просто указать ссылку вместо нее на указанную выше логику # 2 / # 3 в объекте-оболочке (чтобы все объекты вызывающей стороны не нуждались в обновлении), и реализовать такое же количество объекты без штрафа в зависимости от объема разработки, которую вы должны выполнить - не нужно создавать никаких дополнительных объектов или кода, в отличие от выполнения всего этого заранее.
Таким образом, если объем работы, который должен быть выполнен, является одинаковым, независимо от того, был ли сервис реализован изначально или по мере необходимости, и в настоящее время нет необходимости во внешнем доступе через сервис, есть ли основания для его первоначального внедрения? как сервис просто придерживаться SOA?