La arquitectura de 3 o N capas no es más que
la evolución lógica de la programación Cliente/Servidor, la cual a su vez fue
una evolución de un modelo monocapa, en la cual inicialmente se embebía dentro
del programa ejecutable los datos junto con el proceso.
La idea general de las capas es proporcionar un
alcance bien definido en las tareas que ejecuta cada una de ellas, logrando con esto independencia entre los
diferentes niveles de ejecución.
En otras palabras, a la capa cliente no le debe interesar
aspectos técnicos de la base de datos, como el tipo de archivos en que se
guardan los datos, la concurrencia, como
se leen los datos físicamente, etc. que
son parte de la capa de base de datos.
Si en un momento determinado se cambia el
motor de la base de datos, no debería afectar la ejecución de la aplicación, ya
que la capa de cliente, no conoce y no accede a los datos físicamente, solo puede
ver (alcance) algunas funciones de conexión que no deben cambiar si se cambia
el motor de base de datos.
Las aplicaciones Multicapa y en nuestro caso
de 3-Capas se refieren a aquellas donde el software está diseñado de tal forma
que existen al menos tres separaciones claras, la capa de presentación, la capa
de lógica del negocio y la capa de bases de datos.
CAPA
|
DESCRIPCIÓN
|
Presentación
|
La capa de presentación hace
referencia a la interface con el usuario que puede ser visual en ambientes
gráficos como los formularios (Forms), en aplicaciones tipo consola en
comandos de texto e incluso en dispositivos de interfaz humana como un
control remoto, comandos de voz, etc.
|
Lógica
de Negocio
|
La capa de lógica de negocio se
refiere a los procedimientos que se realizan en la aplicación, como los cálculos
de intereses, creación de una factura,
decidir a qué información tendrá acceso un usuario, entre otros.
|
Bases
de Datos
|
En esta capa se almacenan los
datos, se encarga de recibir las
peticiones desde la capa de lógica y retornan los datos correspondientes.
|
Cada capa es susceptible de ser dividida a su
vez en más capas, así por ejemplo la capa de base de datos puede dividirse en
la capa de persistencia y la capa de datos, dando lugar a más capas, obteniendo
aplicaciones MultiCapas - N-Tiers
Un ejemplo de esto se evidencia en que la
capa de presentación la cual solo puede acceder a funciones (CRUD) y no
directamente a la base de datos. así
mismo los procedimientos del CRUD tiene acceso a la base de datos pero no a la
capa de presentación, de esta manera si se cambia el motor de la base de datos,
solo bastará cambiar las funciones de conexión que utiliza el CRUD pero no las
funciones directamente.
La gran ventaja de esta separación radica en
la facilidad del mantenimiento del software, dividir las tareas de
mantenimiento, la asignación de cada capa a un líder especifico para su control
y dado que cada capa tiene una API especifica, es posible desarrollar una capa
con solo conocer el API a la cual tiene acceso, permitiendo desarrollos y
mejoras simultáneamente.
Aunque las aplicaciones se diseñen en
arquitectura de 3 capas, la implementación puede estar en uno, dos o tres
niveles, Si en un solo computador se ejecuta la Presentación, la lógica y la
base de datos, se llamaría una aplicación de un Nivel.
Si por el contrario en un computador se
ejecuta la capa de presentación y de lógica y en el segundo computador se
ejecutan los datos, se denominaría de dos niveles, y finalmente si en cada
computador se ejecuta solo una capa, se denominaría de 3 Niveles.
¿Cuándo utilizar varios niveles?
Las aplicaciones multinivel no reemplazan las
otras arquitecturas, simplemente cada una tiene un nicho especifico y es importante definir cuando es necesario
utilizar una u otra arquitectura.
CRITERIO
DEL NÚMERO DE USUARIOS
| |||
Nivel
|
No.
Usuarios
|
Descripción
|
Dificultad
de
implementación
|
1
Nivel
|
1
usuario
|
Las aplicaciones que utilizará
un solo usuario requieren un solo nivel, los dos caso más comunes hoy en día
corresponden a las aplicaciones que corren desde un CD o DVD directamente,
como una enciclopedia.
Las aplicaciones que corren en
dispositivos móviles que utilizan almacenamiento local, como agendas, notas,
etc. ya que solamente un usuario
tendrá acceso a los datos y no requieren red para su funcionamiento.
|
Las aplicaciones desarrolladas
en un nivel son usualmente sencillas de implementar, ya que no deben
considerar aspectos como concurrencia, ni infraestructura adicional para su
funcionamiento, además existen conexiones directas a las bases de datos o
almacenamientos de datos que no exigen complejas configuraciones.
|
2
Niveles
|
1-100
Usuarios
|
Las aplicaciones de dos niveles
así estén construidas en 3 capas se corresponden a aplicaciones Cliente/Servidor,
las cuales son excelentes para un numero moderado de usuarios y dada su
arquitectura para redes locales LAN.
|
Las aplicaciones de 2 niveles
requieren redes bien estructuradas, para lo cual podrían necesitar personal
especializado para la administración de la red.
|
N-Niveles
|
50-
> 2000 Usuarios
|
Cuando el número de usuarios va
en aumento, las ventajas como la escalabilidad que ofrecen los 3 niveles es
el ideal
|
Las
aplicaciones multinivel son complejas en su implementación, requieren
personal altamente especializado y grandes recursos de hardware para soportar
de manera adecuada la gran cantidad de usuarios.
|
CRITERIO
DE ACUERDO A LA CONECTIVIDAD
| ||
Nivel
|
RED
|
Descripción
|
1
Nivel
|
SIN
RED
|
Es ideal para aplicaciones que
no requieren conexión a redes para su funcionamiento.
|
2
Niveles
|
RED
LOCAL LAN
|
Las aplicaciones de 2 niveles
son ideales para trabajar en redes locales, las cuales cuentan con
conectividad mínima de 100mbps.
|
N-Niveles
|
RED
WAN
INTERNET
|
Para uso en redes como Internet
que tienen limitaciones en la velocidad de transferencias y en la estabilidad
de conexión.
|
CRITERIO
DE ACUERDO A LAS PLATAFORMAS
| ||
Nivel
|
HARDWARE
|
Descripción
|
1
Nivel
|
1
solo equipo
|
Cuando la aplicación correrá en
un solo equipo, como los dispositivos móviles como celulares inteligentes o
tabletas o en un solo computador de escritorio.
|
2
Niveles
|
Varios
equipos homogéneos
|
Para trabajar en redes LAN
donde las plataformas de hardware son homogéneas, Ej. todos los equipos son
Windows.
Ya que la lógica de negocio
estaría dispersa en cada plataforma, es difícil hacer mantenimiento a esta
capa de forma eficiente.
|
N-Niveles
|
Plataformas
Heterogéneas
|
Cuando se van a conectar gran
variedad de dispositivos, como celulares, tabletas, equipos de escritorio,
etc.
Dado que la lógica del negocio
está centralizada es más fácil su administración y se ve reflejada en todo
los dispositivos, así por ejemplo si se cambia la forma de cálculo de la
comisión de ventas en la capa de lógica de negocio, este cambio se verá
reflejado en todos los dispositivos automáticamente.
|
¿Ventajas de la separación en N-niveles?
Existen grandes ventajas en la separación por
capas y por niveles, de ahora en
adelante hablaremos de aplicaciones en 3 capas como una aplicación de 3 capas y
3 niveles.
Enumeraremos algunas ventajas de este modelo,
sin embargo en un próximo articulo detallaremos mejor el concepto y el uso de
los middleware.
1.
Escalabilidad: Con la arquitectura de 3 capas y 3 Niveles
es posible crecer en el número de usuarios sin traumatismos, ya que en cualquier
momento es posible instalar un segundo servidor de lógica o un tercero y así
crecer el número de usuarios sin afectar el rendimiento.
2.
Confiabilidad: El hecho de permitir el uso de varios
servidores de lógica de negocio, permite que el sistema pueda tolerar la caída
de uno o varios de ellos y la aplicación utilizará el siguiente servidor que
esté activo.
3.
Balance de Carga: Con
este esquema es posible definir cual servidor ejecutará la tarea, repartiendo la
carga de trabajo entre los diferentes servidores disponibles.
4.
Centralización de la lógica: Dado que la lógica de negocio está
centralizada en el servidor, es posible hacer mantenimiento centralizado
afectando a todos los clientes de forma inmediata.
5.
Seguridad:
Al estar centralizado y en forma remota es posible implementar mejor la
seguridad tanto en la ejecución de los accesos de usuarios.
Mg. Gustavo Enríquez
http://www.hyper-soft.co
No hay comentarios:
Publicar un comentario