Arquitectura de tres niveles
Fondo negro y azul
¿Qué es la arquitectura de tres niveles?

La arquitectura de tres niveles, que separa las aplicaciones en tres niveles de informática lógica y física, es la arquitectura de software predominante para las aplicaciones de cliente-servidor tradicionales.

La arquitectura de tres niveles es una arquitectura de aplicación de software bien establecida , que organiza las aplicaciones en tres niveles informáticos lógicos y físicos: el nivel de presentación o interfaz de usuario; el nivel de aplicación, donde se procesan los datos; y el nivel de datos, donde se almacenan y administran los datos asociados con la aplicación.

El beneficio principal de la arquitectura de tres niveles es que debido a que cada nivel se ejecuta en su propia infraestructura, cada nivel puede ser desarrollado simultáneamente por un equipo de desarrolladores distinto y se puede actualizar o escalar según sea necesario sin que afecte a los demás niveles.

Durante décadas, la arquitectura de tres niveles fue la arquitectura predominante para las aplicaciones de cliente-servidor. Hoy en día, la mayoría de las aplicaciones de tres niveles son objetivos para la modernización, utilizando tecnologíasnativa de la nube comocontenedores ymicroservicios, además de para lamigración a la nube.

Productos destacados

IBM Cloud Pak for Applications


Los tres niveles explicados
Nivel de presentación

El nivel de presentación es la interfaz de usuario y de comunicación de la aplicación, donde el usuario final interactúa con la aplicación. Su objetivo principal es mostrar información al usuario y recopilar datos de este. Este primer nivel se puede ejecutar en un navegador web como una aplicación de desktop o una interfaz gráfica de usuario (GUI). Los niveles de presentación web se suelen desarrollar utilizando HTML, CSS y JavaScript. Las aplicaciones de desktop se pueden escribir en una variedad de lenguajes, dependiendo de la plataforma.

Nivel de aplicación

El nivel de aplicación, también conocido como el nivel lógico o medio, es el núcleo de la aplicación. En este nivel, la información recopilada en el nivel de presentación se procesa, a veces contra otra información en el nivel de datos, utilizando la lógica empresarial, un conjunto específico de reglas comerciales. El nivel de aplicación también puede añadir, suprimir o modificar datos en el nivel de datos.

El nivel de aplicación normalmente se desarrolla utilizando Python, Java, Perl, PHP o Ruby, y se comunica con el nivel de datos mediante llamadas a las API

Nivel de datos

El nivel de datos, a veces denominado nivel de base de datos, nivel de acceso a datos o backend, es donde se almacena y gestiona la información procesada por la aplicación. Este puede ser un sistemarelacional de administración de base de datos,  tal comoPostgreSQL , MySQL, MariaDB, Oracle, DB2, Informix o Microsoft SQL Server, o en un ServidorNoSQL  de base de datos como Cassandra,CouchDB  oMongoDB  . 

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

Nivel (tier) frente a capa (layer)

En discusiones sobre arquitectura de tres niveles,capa a menudo se usa indistintamente, y de manera errónea  para referirse a nivel, como en "capa de presentación" o "capa de lógica empresarial".  

No son iguales. 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 otras divisiones. La aplicación Contactos de su teléfono, por ejemplo, es una aplicación detrescapas, pero una aplicaciónde 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. 

Enlaces relacionados

IBM Cloud Paks


Ventajas de la arquitectura de tres niveles

Como se mencionó anteriormente, 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 base de datos) que mejor se adapte a sus requisitos funcionales. Además, cada nivel se ejecuta en al menos un hardware de servidor o un servidor virtual dedicado, por lo que los servicios de cada nivel pueden personalizarse y optimizarse sin afectar los demás niveles.  

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

  • Desarrollo más rápido: Debido a 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 mejores y más recientes lenguajes y herramientas para cada nivel.

    • Escalabilidad mejorada: Cualquier nivel se puede escalar independientemente de los demás según sea necesario.

      • Confianza mejorada: es menos probable que una interrupción en un nivel afecte la disponibilidad o el rendimiento de los otros niveles.

        • Seguridad mejorada: debido a que los niveles de presentación y de datos no se pueden comunicar directamente entre sí, un nivel de aplicación bien diseñado puede funcionar como una especie de firewall interno, lo que impide ataques de inyecciones SQL y otras vulnerabilidades maliciosas.


Aplicación de tres niveles en el desarrollo web

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

    El
  • servido web  es el nivel de presentación y proporciona la interfaz de usuario. Este suele ser una página o sitio web, como un sitio de comercio electrónico en el que el usuario añade productos al carrito de compras, añade datos de pago o crea una cuenta. El contenido puede ser estático o dinámico y se suele desarrollar utilizando HTML, CSS y Javascript.

      El
    • servidor de aplicación  corresponde al nivel medio, que aloja la lógica empresarial utilizada para procesar las entradas de usuario. Continuando con el ejemplo del comercio electrónico, este es el nivel que consulta la base de datos de inventario para informar la disponibilidad del producto o añadir detalles al perfil de un cliente. Esta capa a menudo se desarrolla utilizando Python, Ruby o PHP y se ejecuta en una infraestructura 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 un software de gestión de base de datos como MySQL, Oracle, DB2 o PostgreSQL.


Otras arquitecturas multinivel

Si bien la arquitectura de tres niveles es fácilmente la arquitectura de aplicaciones multinivel más ampliamente adoptada, hay otras que puede encontrar en su trabajo o investigación.

Arquitectura de dos niveles

La arquitectura de dos niveles es la arquitectura de cliente-servidor original que consta de un nivel de presentación y un nivel de datos. La lógica empresarial reside en el nivel de presentación, en el nivel de datos o en ambos. En la arquitectura de dos niveles, el nivel de presentación y, en consecuencia, el usuario final, tiene acceso directo al nivel de datos y la lógica empresarial suele ser limitada. Un ejemplo de aplicación de dos niveles es una sencilla aplicación de gestión de contactos, en la que los usuarios pueden entrar y recuperar datos de sus contactos.  

Arquitectura multinivel

Arquitectura de n niveles, también llamada arquitectura de varios niveles,  se refiere a alguna 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, su gestión más difícil y su ejecución más costosa. Así, la arquitectura de n niveles suele ser sinónimo para la arquitectura de tres niveles.


Arquitectura de tres niveles e IBM Cloud

IBM Cloud ofrece productos y servicios que le ayudarán a modernizar sus aplicaciones de tres niveles heredadas en su proceso de cambio a la nube.

Dé el primer paso:

cuenta de IBM Cloud hoy mismo.


Soluciones relacionadas

IBM Cloud Paks

Migre hacia la nube más rápido ejecutando IBM Cloud Pak en Red Hat OpenShift: soluciones en contenedores integradas y abiertas certificadas por IBM.


IBM Cloud for VMware Solutions

IBM Cloud for VMware Solutions está diseñado para ayudarle a mover cargas de trabajo de VMware locales hacia IBM Cloud.


Servicios de modernización de aplicaciones

Modernice sus aplicaciones con la estrategia y la tecnología de nube más recientes.