Arquitectura de N niveles (varios niveles), 3 niveles, 2 niveles con EJEMPLO

¿Qué es N-Tier?

Un programa de aplicación de N-Tier es aquel que se distribuye entre tres o más computadoras separadas en una red distribuida.

La forma más común de n niveles es la aplicación de 3 niveles y se clasifica en tres categorías.

  • Programación de la interfaz de usuario en la computadora del usuario
  • Lógica empresarial en una computadora más centralizada y
  • Datos requeridos en una computadora que administra una base de datos.

Este modelo de arquitectura permite a los desarrolladores de software crear aplicaciones / sistemas reutilizables con la máxima flexibilidad.

En N-tier, "N" se refiere a un número de niveles o capas están siendo utilizados como - de 2 niveles, 3 niveles o 4 niveles, etc . También se denomina " Arquitectura de varios niveles" .

La arquitectura de n niveles es un modelo de arquitectura de software probado en la industria. Es adecuado para admitir aplicaciones cliente-servidor de nivel empresarial al proporcionar soluciones de escalabilidad, seguridad, tolerancia a fallas, reutilización y mantenibilidad. Ayuda a los desarrolladores a crear aplicaciones flexibles y reutilizables.

En este tutorial, aprenderá:

  • ¿Qué es N-Tier?
  • Arquitectura de N niveles
  • Tipos de arquitecturas de N niveles
    • Arquitectura de 3 niveles
    • Arquitectura de 2 niveles
    • Arquitectura de un solo nivel o de 1 nivel
  • Ventajas y desventajas de las arquitecturas de varios niveles
  • Consejos y desarrollo de arquitectura de n niveles

Arquitectura de N niveles

Aquí se muestra una representación esquemática de un sistema de n niveles: capas de presentación, aplicación y base de datos.

Diagrama de arquitectura de N niveles

Estas tres capas se pueden subdividir en diferentes subcapas según los requisitos.

Algunos de los sitios populares que han aplicado esta arquitectura son

  • MakeMyTrip.com
  • Aplicación empresarial Sales Force
  • Ferrocarriles indios - IRCTC
  • Amazon.com, etc.

Algunos términos comunes para recordar, para entender el concepto con mayor claridad.

  • Red distribuida: Es una arquitectura de red, donde los componentes ubicados en las computadoras de la red coordinan y comunican sus acciones solo pasando mensajes. Es una colección de múltiples sistemas situados en diferentes nodos pero que el usuario ve como un solo sistema.
    • Proporciona una única red de comunicación de datos que puede ser administrada por separado por diferentes redes.
    • Un ejemplo de red distribuida, donde diferentes clientes están conectados dentro de la arquitectura LAN por un lado y por el otro lado están conectados a conmutadores de alta velocidad junto con un bastidor de servidores que contienen nodos de servicio.
  • Arquitectura Cliente-Servidor: Es un modelo de arquitectura donde el cliente (un programa) solicita un servicio de un servidor (otro programa), es decir , es un servicio de solicitud-respuesta proporcionado a través de Internet o de una intranet.

    En este modelo, el Cliente servirá como un conjunto de programa / código que ejecuta un conjunto de acciones a través de la red. Mientras que Server , por otro lado, es un conjunto de otro programa, que envía los conjuntos de resultados al sistema cliente según lo solicitado.

    • En esto, la computadora cliente proporciona una interfaz para que un usuario final solicite un servicio o un recurso de un servidor y, por otro lado, el servidor procesa la solicitud y muestra el resultado al usuario final.
    • Un ejemplo de modelo cliente-servidor: un cajero automático. Un banco es el servidor para procesar la aplicación dentro de las grandes bases de datos de clientes y el cajero automático es el cliente que tiene una interfaz de usuario con un proceso de aplicación simple.
  • Plataforma: en la industria de la informática o el software, una plataforma es un sistema en el que se puede ejecutar un programa de aplicaciones. Consiste en una combinación de hardware y software que tiene una instrucción incorporada para que los procesadores / microprocesadores realicen operaciones específicas.
    • En palabras más simples, la plataforma es un sistema o una base donde cualquier aplicación se puede ejecutar y ejecutar para obtener una tarea específica.
    • Un ejemplo de plataforma: una máquina personal cargada con Windows 2000 o Mac OS X como ejemplos de 2 plataformas diferentes.
  • Base de datos: Es una colección de información de forma organizada para que se pueda acceder, gestionar y actualizar fácilmente.
    • Ejemplos de base de datos: MySQL, SQL Server y Oracle Database son algunas bases de datos comunes.

Tipos de arquitecturas de N niveles

Hay diferentes tipos de arquitecturas de N-Tier, como Arquitectura de 3 niveles, Arquitectura de 2 niveles y Arquitectura de 1 Nivel.

Primero, veremos la Arquitectura de 3 niveles, que es muy importante.

Arquitectura de 3 niveles

Al observar el diagrama a continuación, puede identificar fácilmente que la arquitectura de 3 niveles tiene tres capas diferentes.

  • Capa de presentación
  • Capa de lógica empresarial
  • Capa de base de datos

Diagrama de arquitectura de 3 niveles

Aquí hemos tomado un ejemplo simple de la forma del estudiante para comprender estas tres capas. Tiene información sobre un estudiante como: nombre, dirección, correo electrónico e imagen.

Capa de interfaz de usuario o capa de presentación

Capa de presentación

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e){// Object of the Property layerclsStudent objproperty=new clsStudent();// Object of the business layerclsStudentInfo objbs=new clsStudentInfo();// Object of the dataset in which we receive the data sent by the business layerDataSet ds=new DataSet();// here we are placing the value in the property using the object of the//property layerobjproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());// In this following code we are calling a function from the business layer and// passing the object of the property layer which will carry the ID till the database.ds=objbs.GetAllStudentBsIDWise(objproperty);// What ever the data has been returned by the above function into the dataset//is being populate through the presentation laye.txtId.Text=ds.Tables[0].Rows[0][0].ToString();txtFname.Text=ds.Tables[0].Rows[0][1].ToString();txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

Explicación del código

  • El código anterior define el diseño básico de una vista frontal de aplicaciones, así como la llamada de las funciones de otras capas para que puedan integrarse entre sí.

Capa de acceso empresarial -

Esta es la función de la capa empresarial que acepta los datos de la capa de aplicación y los pasa a la capa de datos.

  • La lógica empresarial actúa como una interfaz entre la capa de cliente y la capa de acceso a datos
  • Toda la lógica empresarial, como la validación de datos, los cálculos, la inserción / modificación de datos, se escriben en la capa de lógica empresarial.
  • Hace que la comunicación entre el cliente y la capa de datos sea más rápida y sencilla
  • Define una actividad de flujo de trabajo adecuada que es necesaria para completar una tarea.
// this is the function of the business layer which accepts the data from the//application layer and passes it to the data layer.public class clsStudentInfo{public DataSet GetAllStudentBsIDWise(clsStudent obj){DataSet ds=new DataSet();ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer functionreturn ds;}}

Explicación del código

El código utiliza la función de capa empresarial, que aceptará los datos para la capa de aplicación y los pasará a la capa de datos. Los códigos de la capa empresarial actúan como un mediador entre las funciones definidas en la capa de presentación y la capa de datos y llaman a las funciones viceversa.

Capa de acceso a datos

Esta es la función de la capa de datos, que recibe los datos de la capa empresarial y realiza la operación necesaria en la base de datos.

// this is the datalayer function which is receiving the data from the business//layer and performing the required operation into the databasepublic class clsStudentData // Data layer class{// object of property layer classpublic DataSet getdata_dtIDUise(clsStudent obj){DataSet ds;string sql;sql="select * from student where Studentld=" +obj.id+ "order by Studentld;ds=new DataSet();//this is the datalayer function which accepts the sql query and performs the//corresponding operationds=objdt.ExecuteSql(sql);return ds;}}

Explicación del código

El código definido en la capa del conjunto de datos de arriba acepta la solicitud completa: solicitada por el sistema y realizando las operaciones requeridas en la base de datos.

Arquitectura de 2 niveles:

Es como la arquitectura Cliente-Servidor, donde la comunicación tiene lugar entre el cliente y el servidor.

En este tipo de arquitectura de software, la capa de presentación o la capa de interfaz de usuario se ejecuta en el lado del cliente, mientras que la capa del conjunto de datos se ejecuta y almacena en el lado del servidor.

No existe una capa de lógica empresarial o una capa inmediata entre el cliente y el servidor.

Arquitectura de un solo nivel o de 1 nivel:

Es el más simple ya que equivale a ejecutar la aplicación en la computadora personal. Todos los componentes necesarios para que se ejecute una aplicación se encuentran en una única aplicación o servidor.

La capa de presentación, la capa de lógica empresarial y la capa de datos están ubicadas en una sola máquina.

Ventajas y desventajas de las arquitecturas de varios niveles

Ventajas

Desventajas

  • Escalabilidad
  • Aumento del esfuerzo
  • Integridad de los datos
  • Aumento de la complejidad
  • Reutilización
  • Distribución reducida
  • Seguridad mejorada
  • Disponibilidad mejorada

Por lo tanto, es parte de un programa que encripta problemas comerciales del mundo real y determina cómo se pueden actualizar, crear, almacenar o modificar los datos para completar la tarea.

Consejos y desarrollo de arquitectura de n niveles

Teniendo en cuenta que los profesionales del software deben tener un control total sobre todas las capas de la arquitectura, a continuación se ofrecen consejos sobre la arquitectura de n niveles.

  1. Intente desacoplar capas de otra capa tanto como sea posible utilizando una técnica como XML de jabón.
  2. Utilice algunas herramientas automatizadas para generar un mapeo entre una capa de lógica empresarial y una capa de base de datos relacional (capa de datos). Las herramientas que pueden ayudar a modelar estas técnicas de mapeo son: Entity Framework e Hibernate para .Net, etc.
  3. En la capa de presentador de cliente, coloque un código común para todos los clientes en una biblioteca separada tanto como sea posible. Esto maximizará la reutilización del código para todo tipo de clientes.
  4. Se puede agregar una capa de caché a una capa existente para acelerar el rendimiento.

Resumen:

La arquitectura de N niveles ayuda a administrar todos los componentes (capa empresarial, capa de presentación y capa de base de datos) de una aplicación bajo un mismo techo.

Las aplicaciones que utilizan una pequeña cantidad de usuarios en una red de área local pueden beneficiarse de la arquitectura de n niveles.

Dicho diseño arquitectónico determina el mantenimiento, la ampliación y la implementación de una aplicación en Internet de manera eficiente.

Articulos interesantes...