Кажется, что в вопросе есть некоторое смешение терминов. Во-первых, SOA - это не просто создание сервисов (в данном случае веб-сервисов) для предоставления данных. Это довольно сложная архитектурная концепция (в соответствии с DDD, MVC и т. Д.), Которая включает в себя превращение вашего приложения в серию сервис-ориентированных уровней, на которых выполняются и обслуживаются запросы. Таким образом, вместо того, чтобы иметь большие графы объектов, поддерживающие набор бизнес-процессов, вы получаете набор относительно элементарных команд, которые приводят к довольно прямолинейному взаимодействию с вашей общей моделью. Одним из больших преимуществ этой архитектуры является то, что она достаточно хорошо масштабируется. Вместо того, чтобы постоянно пересматривать свою модель и вводить новые команды / рабочие процессы, вы можете создавать новые наборы сервисов.
Все, что было сказано, сервисные звонки довольно дешево. Подумайте о стоимости звонка в сервис (1к? 2к? Меньше?) По сравнению с полным постбэком или запросом веб-страницы (70к? 100 + к?). Если вам требуется полная публикация и перенаправление для каждой команды на странице, вы рассчитываете на довольно высокую стоимость с точки зрения пропускной способности и производительности , если ожидаете много трафика. Системы, созданные такими компаниями, как поскольку Yahoo и Google извлекают огромную выгоду, разбивая задачи на ряд команд, которые выполняются асинхронно после , страница загружается для сокращения ожидаемого времени ожидания и общего сетевого трафика.
Большой ключ здесь заключается в том, что эти сервисные вызовы выполняются асинхронно. Таким образом, с точки зрения пользователя, очень мало времени уходит на ожидание загрузки страницы. Так что, как вы видите здесь в StackOverflow, вы можете продолжить сканирование текста вопроса, пока ваше голосование обрабатывается в фоновом режиме.
Это правильный путь? Это зависит от вас. Если то, что у вас работает, придерживайтесь этого. Если стоит потратить время и силы на внедрение более сложного решения, потому что существует активная и ощутимая деградация производительности, вызванная вашей текущей архитектурой, то, возможно, вам следует подумать об изменении.