Ответ на это, как всегда, «это зависит ...», позвольте мне объяснить, что я имею в виду.
Вызов другой службы в SOA - это, конечно, вполне приемлемая вещь, в основе SOA - возможность создавать новые вещи из существующих служб.
Более важной частью является то, как вы вызываете сервисы, рассмотрим систему SOA, где несколько сервисов взаимодействуют в цепочке вызовов, каждый из которых привлекает другой в транзакционную область. Подобные действия без тщательного планирования окажут огромное влияние на производительность вашей системы. Та же цепочка вызовов, разработанная с использованием хорошо разделенных сервисов, которые распределены по правильной единице работы, страдает меньше.
Рассмотрим надежность системы: в типичной архитектуре один сервис имеет тенденцию становиться более популярным, чем другие, и появляется множество других сервисов, вызывающих его. Отказ этой одной службы приводит к выходу из строя всей системы из-за того, что все другие службы зависят от вызова этой одной службы.
Рассмотрите разницу между синхронными и асинхронными вызовами, когда вы используете что? Это влияние каждого?
Как вы проектируете и разделяете сервисы, чтобы ограничить стоимость пересечения границы сервиса при каждом вызове?
Множество вопросов, но если вы посмотрите вокруг, есть много мест, где можно найти ответы, я предлагаю начать с них.
Я бы посоветовал вам прочитать статьи Thomas Erl и Roger Sessions, это даст вам твердое представление о том, что такое SOA.
Построение SOA
Шаблон проектирования SOA
Достижение целостности в SOA
Почему ваша SOA должна быть похожа на VW Beetle
SOA для вашего босса
Производительность службы WCF