Se basa en la separación de los procesos en unidades llamadas capas y es la arquitectura por defecto usados en aplicaciones JAVA.
Cada capa cumple una función especifica, como por ejemplo , podemos tener una capa para la parte visual de la aplicación y sólo tenemos en esta capa lo relacionado con ello.
Existen muchas implementaciones de esta arquitectura con diferentes cantidades de capas , según las necesidades del proyecto.