Хотя # 1 (по умолчанию не # 2), как правило, правильный подход (предоставьте только данные, необходимые для слоя представления и обработайте всю разметку там), будьте осторожны с частью web сервис в вашем дизайне.
Данные должны предоставляться только как веб-служба (SOAP / WSDL, REST), если они предназначены для удаленного использования (некоторые архитекторы SOA могут с этим поспорить, но я думаю, что это выходит за рамки на этот вопрос), в противном случае вы, вероятно, делаете слишком много и чрезмерно проектируете свой формат запроса и ответа. Используйте то, что имеет смысл для вашего приложения - платформа Ajax, которая облегчает взаимодействие клиент / сервер и абстрагирует основной формат связи, может быть большой помощью. Важная вещь заключается в том, чтобы красиво инкапсулировать код, который извлекает данные, которые вы хотите (вы можете назвать это сервисом, но, скорее всего, это будет просто хорошо написанный класс помощника), чтобы его можно было повторно использовать, а затем выставлять эти данные в любом месте. способ имеет наибольшее значение для данного приложения.