Какую часть вы считаете неправильной? Часть, в которую вы попали в веб-службу, или часть, в которую вы попали напрямую в базу данных?
SOA - это скорее руководство по разработке API, а не методология разработки. Это нелегко реализовать, но награда за повторное использование часто того стоит.
См. Сервис-ориентированная архитектура расширяет видение веб-сервисов или любой технической книги по SOA. Простая упаковка вызовов функций веб-вызовом не делает ее сервис-ориентированной архитектурой. Идея SOA заключается в создании сервисов многократного использования, а затем вы предоставляете сервисы более высокого уровня (например, веб-сайт) путем компоновки или организации базовых сервисов низкого уровня. На очень низком уровне вы должны сосредоточиться на таких вещах, как безгражданство, слабая связь и детализация. Современные фреймворки, такие как WCF от Microsoft, поддерживают параллельные протоколы, такие как SOAP, REST и более быстрый двоичный код.
Если ваше приложение предназначено для работы через Интернет, вам следует помнить о задержках в сети. В традиционном клиент-серверном приложении, которое развернуто в локальной сети, поскольку задержка составляет менее 10 мсек, вы можете обращаться к базе данных каждый раз, когда вам нужны данные, не прерывая работу пользователя. Тем не менее, в Интернете весьма часто иметь задержку 200 мсек, если вы пересекаете прокси или океаны. Если вы попали в базу данных 100 раз, это добавит до 20 секунд паузы. В SOA вы пытаетесь упаковать все это в один документ и обмениваться документом взад и вперед, подобно тому, как налог подается с использованием формы 1040, если вы живете в США.
Вы можете сказать, что проблема с задержкой не имеет значения, поскольку веб-служба используется только уровнем вашего веб-приложения. Но вы можете запустить веб-сервис из браузера, используя AJAX для перезагрузки данных, что должно сократить время отклика пользователя.