Это действительно все, что связано с сервис-ориентированной архитектурой - что-то, что было распространено некоторое время и очень популярно.
Идея состоит в том, что отдельные операции отделены друг от друга, поэтому их можно повторно использовать и изменять без перекомпиляции приложений, которые их используют. Вместо того, чтобы фрагмент кода в DLL изменялся и копировался повсеместно, можно развернуть службу, представляющую собой единую точку доступа для определенного фрагмента обработки или источника информации.
Скажем, у вас был компонент проверки кредитной карты. Вы можете написать этот код и скомпилировать его в DLL и начать включать его во все ваши приложения. Ничего плохого в этом нет, если только вы не заметите ошибку или правила проверки CC изменятся. Или, может быть, вы хотите обновить его, чтобы проверить его в черном списке. Вы не можете делать ничего из этого, не перекомпилировав приложения, которые его используют.
Если проверка вашей кредитной карты отображается как услуга, вы можете внести изменения и развернуть ее в одном месте. При условии, что подпись одинакова (те же параметры и ответ), приложения даже не должны знать, что она изменилась.
Другое преимущество использования сервисов перед компонентами заключается в том, что сервисы могут быть размещены где угодно. Они могут быть на локальном сервере или на другом конце света.
Сказав это, как и все, вы должны решать архитектуру в каждом конкретном случае. Хотя проверка кредитной карты была хорошим примером того, когда служба полезна, предоставление услуги для визуализации элементов управления HTML не имеет особого смысла.