¿Qué es la arquitectura de tres niveles?

Vista aérea de Tokio al atardecer

¿Qué es la arquitectura de tres niveles?

La arquitectura de tres capas es una arquitectura de aplicaciones de software bien establecida que organiza las aplicaciones en tres capas lógicas y físicas: la capa de presentación, o interfaz de usuario; la capa de aplicación, donde se procesan los datos; y la capa de datos, donde se almacenan y gestionan los datos de la aplicación.

El principal beneficio de la arquitectura de tres niveles es que, dado que cada nivel se ejecuta en su propia infraestructura, cada nivel puede ser desarrollado simultáneamente por un equipo de desarrollo independiente. Y puede actualizarse o escalarse según sea necesario sin afectar a los otros niveles.

Durante décadas, la arquitectura de tres niveles fue la predominante en las aplicaciones cliente-servidor. Hoy en día, la mayoría de las aplicaciones de tres niveles son objetivos de modernización que utilizan tecnologías nativas de la nube, como contenedores y microservicios, y de migración a la nube.

No se pierda ningún avance tecnológico

Descubra la investigación emergente en IA, cuántica, nube híbrida y mucho más de la mano de los expertos de IBM con el boletín mensual Future Forward. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Los tres niveles en detalle

Nivel de presentación

El nivel de presentación es la interfaz de usuario y la capa de comunicación de la aplicación, donde el usuario final interactúa con la aplicación. Su objetivo principal es mostrar información y recopilar información del usuario. Este nivel superior puede ejecutarse en un navegador web, como aplicación de escritorio o en una interfaz gráfica de usuario (GUI), por ejemplo. Los niveles de presentación web se desarrollan utilizando HTML, CSS y JavaScript. Las aplicaciones de escritorio se pueden escribir en varios idiomas según la plataforma.

Nivel de aplicación

El nivel de aplicación, también conocido como nivel lógico o nivel intermedio, es el corazón de la aplicación. En este nivel, la información recopilada en el nivel de presentación se procesa, a veces frente a otra información del nivel de datos, utilizando lógica de negocio, un conjunto específico de reglas empresariales. El nivel de aplicación también puede agregar, eliminar o modificar datos en el nivel de datos.

El nivel de aplicación suele desarrollarse utilizando Python, Java, Perl, PHP o Ruby, y se comunica con el nivel de datos mediante llamadas a la API.

Nivel de datos

El nivel de datos, a veces llamado nivel de base de datos, nivel de acceso a datos o back-end, es donde se almacena y gestiona la información procesada por la aplicación. Puede tratarse de un sistema de gestión de bases de datos relacionales como PostgreSQL, MySQL, MariaDB, Oracle, Db2, Informix o Microsoft SQL Server, o en un servidor de bases de datos NoSQL como Cassandra, CouchDB o MongoDB.

En una aplicación de tres niveles, toda la comunicación pasa por el nivel de aplicación. Los niveles de presentación y datos no se pueden comunicar directamente entre sí.

Desarrollo de aplicaciones

Suba a bordo: desarrollo de aplicaciones empresariales en la nube

En este vídeo, el Dr. Peter Haumer explica cómo se desarrollan las aplicaciones empresariales modernas en la nube híbrida mediante la demostración de diferentes componentes y prácticas, como IBM Z Open Editor, IBM Wazi y Zowe. 

Beneficios de la arquitectura de tres niveles

Una vez más, el principal beneficio de la arquitectura de tres niveles es su separación lógica y física de la funcionalidad. Cada nivel puede ejecutarse en un sistema operativo y una plataforma de servidor independientes (por ejemplo, servidor web, servidor de aplicaciones, servidor de bases de datos) que mejor se adapten a sus requisitos funcionales. Y cada nivel se ejecuta en al menos un hardware de servidor dedicado o servidor virtual, por lo que los servicios de cada nivel se pueden personalizar y optimizar sin afectar a los demás niveles.

Otros beneficios (en comparación con la arquitectura de un nivel o dos niveles) incluyen:

  • Desarrollo más rápido: dado que cada nivel puede ser desarrollado simultáneamente por diferentes equipos, una organización puede llevar la aplicación al mercado más rápido. Y los programadores pueden utilizar los últimos y mejores lenguajes y herramientas para cada nivel.

  • Escalabilidad mejorada: cualquier nivel puede escalarse independientemente de los demás según sea necesario.

  • Mayor fiabilidad: es menos probable que una interrupción en un nivel repercuta en la disponibilidad o el rendimiento de los demás niveles.

  • Seguridad mejorada: dado que el nivel de presentación y el nivel de datos no pueden comunicarse directamente, un nivel de aplicación bien diseñado puede funcionar como un firewall interno, evitando inyecciones SQL y otros intentos de explotar.

Niveles frente a capas

En los debates sobre arquitectura de tres capas, a menudo se usa capa indistintamente, y erróneamente, para referirse a nivel, como en "capa de presentación" o "capa de lógica de negocio".

No son lo mismo. Una 'capa' se refiere a una división funcional del software, pero un 'nivel' se refiere a una división funcional del software que se ejecuta en una infraestructura separada de las demás divisiones. La aplicación Contactos en su teléfono, por ejemplo, es una aplicación de tres capas, pero de un solo nivel, porque las tres capas se ejecutan en su teléfono.

La diferencia es importante porque las capas no pueden ofrecer los mismos beneficios que los niveles.

Aplicación de tres niveles en el desarrollo web

En el desarrollo web, los niveles tienen nombres diferentes pero realizan funciones similares:

  • El servidor web es el nivel de presentación y proporciona la interfaz de usuario. Suele tratarse de una página web o un sitio web, como un sitio de comercio electrónico en el que el usuario añade productos a la cesta de la compra, añade los datos de pago o crea una cuenta. El contenido puede ser estático o dinámico, y se desarrolla utilizando HTML, CSS y JavaScript.

  • El servidor de aplicaciones corresponde al nivel intermedio y alberga la lógica empresarial que se utiliza para procesar las entradas de los usuarios. Para continuar con el ejemplo de comercio electrónico, este es el nivel que consulta la base de datos de inventario para devolver la disponibilidad del producto o agrega detalles al perfil de un cliente. Esta capa a menudo se desarrolla utilizando Python, Ruby o PHP y ejecuta un marco como Django, Rails, Symphony o ASP.NET.

  • El servidor de base de datos es el nivel de datos o backend de una aplicación web. Se ejecuta en software de gestión de bases de datos, como MySQL, Oracle, DB2 o PostgreSQL.

Otras arquitecturas multinivel

Aunque la arquitectura de tres niveles es sin duda la arquitectura de aplicaciones multinivel más ampliamente adoptada, existen otras con las que puede encontrarse en su trabajo o en sus investigaciones.

Arquitectura de dos niveles

La arquitectura de dos capas es la arquitectura cliente-servidor original, que consta de una capa de presentación y una capa de datos; la lógica de negocio reside en la capa de presentación, en la capa de datos o en ambas. En la arquitectura de dos niveles, el nivel de presentación, y, por tanto, el usuario final, tiene acceso directo al nivel de datos, y la lógica empresarial suele estar limitada. Una sencilla aplicación de gestión de contactos, en la que los usuarios pueden introducir y recuperar datos de contacto, es un ejemplo de aplicación de dos niveles.

Arquitectura de tres niveles

La arquitectura de N niveles, también denominada arquitectura multinivel, se refiere a cualquier arquitectura de aplicaciones con más de un nivel. Pero las aplicaciones con más de tres capas son raras porque las capas adicionales ofrecen pocos beneficios y pueden hacer que la aplicación sea más lenta, más difícil de administrar y más costosa de ejecutar. Como resultado, la arquitectura de n niveles y la arquitectura multinivel suelen ser sinónimos de arquitectura de tres niveles.

Soluciones relacionadas
IBM Enterprise Application Service for Java

Un servicio totalmente gestionado y de inquilino único para desarrollar y entregar aplicaciones Java.

Explore las aplicaciones Java
Soluciones DevOps

Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.

Explore las soluciones DevOps
Servicios de desarrollo de aplicaciones Enterprise

El desarrollo de aplicaciones en la nube significa crear una vez, iterar rápidamente e implementar en cualquier lugar.

Servicios de desarrollo de aplicaciones
Dé el siguiente paso

Los servicios de consultoría de desarrollo de aplicaciones en la nube de IBM Cloud ofrecen orientación experta y soluciones innovadoras para agilizar su estrategia de nube. Colabore con los expertos en nube y desarrollo de IBM para modernizar, escalar y acelerar sus aplicaciones, y obtenga resultados transformadores para su empresa.

Explore los servicios de desarrollo de aplicaciones Comience a crear con IBM Cloud de forma gratuita