Nota: Cuando me refiero a un nivel, me refiero a un nivel físico. Muchas de las preguntas en este sitio relacionadas con "niveles" se refieren a capas lógicas, que no es lo que estoy preguntando.¿Es ineficaz una arquitectura de nivel 3 (física)?
Estoy diseñando una aplicación que utiliza una arquitectura estándar de "3 capas", con capas de presentación, lógica comercial (BLL) y acceso a datos (DAL). La tecnología es WPF, C#, LINQ y SQL Server 2008. Mi pregunta se relaciona con la arquitectura física de esta aplicación.
Puedo colocar el BLL/DAL en una DLL estándar que se carga y ejecuta en la máquina del usuario, creando una arquitectura de 2 niveles: máquina cliente y servidor de base de datos. Pero no es demasiado difícil convertir el BLL/DAL en un servicio WCF que se encuentra en un servidor de aplicaciones y se llama desde la máquina del usuario. Esto me daría una arquitectura de 3 niveles: máquina cliente, servidor de aplicaciones y servidor de base de datos.
Mi pregunta es esta: ¿cuál es la ventaja de usar una arquitectura de 3 niveles? A menudo me han dicho que 3 niveles agregan escalabilidad, pero no es inmediatamente evidente para mí por qué sería esto. Y seguramente tendrá un éxito de rendimiento con los mismos datos teniendo que hacer dos saltos por cable, desde el servidor de la base de datos al servidor de la aplicación, luego desde el servidor de la aplicación al equipo del cliente.
Agradecería el asesoramiento de arquitectos y desarrolladores experimentados.