Está en la página 1de 5

Polibits

ISSN: 1870-9044
polibits@nlp.cic.ipn.mx
Instituto Politécnico Nacional
México

Acosta Gonzaga, Elizabeth; Álvarez Cedillo, Jesús Antonio; Gordillo Mejía, Abraham
Arquitecturas en n-Capas: Un Sistema Adaptivo
Polibits, núm. 34, 2006, pp. 34-37
Instituto Politécnico Nacional
Distrito Federal, México

Disponible en: http://www.redalyc.org/articulo.oa?id=402640447007

Cómo citar el artículo


Número completo
Sistema de Información Científica
Más información del artículo Red de Revistas Científicas de América Latina, el Caribe, España y Portugal
Página de la revista en redalyc.org Proyecto académico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto
Arquitecturas en n-Capas: Un Sistema Adaptivo

Arquitecturas en n-Capas:
Un Sistema Adaptivo

M. en C. Elizabeth Acosta Gonzaga


ejemplo, una aplicación web CGI que miento. Se han desarrollado nuevas
M. en C. Jesús Antonio Álvarez Cedillo
Profesores del CIDETEC-IPN corre en un navegador (cliente), y en tecnologías que ayudan a combatir
M. en C. Abraham Gordillo Mejía un servidor web, se dice que es una esta anomalía, tales como CORBA,
Profesor de la UPIICSA-IPN aplicación de dos capas, ya que se tie- EJB, DCOM y RMI; sin embargo, para
ne un programa cliente y un programa saltar de tres a n-capas, así como para

L
os primeros sistemas de cóm- servidor; la diferencia principal entre saltar de una a dos, o de dos a tres,
puto, tal y como los conoci- éstos es que el servidor da respuesta a deben tomarse en cuenta diversas
mos, se encontraban aislados solicitudes de varios clientes, mientras consideraciones de seguridad.
unos de otros y contaban con sus que un cliente inicia una solicitud de
propios dispositivos propios de E/S, información a un servidor.
y los programas tenían acceso a la Arquitecturas de una capa
computadora únicamente a través de Una aplicación de tres capas suma
dichos dispositivos; con la llegada y un tercer programa, comúnmente una
auge de las redes de comunicaciones base de datos, en la cual el servidor Una arquitectura de una capa es
el panorama ha cambiado, y ahora almacena información. Este tipo de un programa simple que no necesita
es necesario escribir programas que aplicaciones es una mejora incremen- acceso a la red mientras se ejecuta;
interactúan y/o dependen de otros tal a la arquitectura de dos capas; así, entre las aplicaciones más comunes
programas en computadoras lejanas, si una solicitud llega de un cliente a de este tipo están los procesadores
en un esquena que se conoce como un servidor, éste solicita o almacena de texto y los compiladores. Como
programación distribuida. información en la base de datos, la ya se ha mencionado, un navegador
base regresa información al servidor, y un servidor web forman parte de
Una aplicación distribuida es un y el servidor regresa la información un arquitectura de dos capas, pero
sistema compuesto de un conjunto al cliente. ¿qué pasa si el navegador web baja
de programas corriendo en múltiples un applet java y éste se ejecuta en la
computadoras (hosts); su arquitectura Una arquitectura de múltiples ca- computadora?. El applet no accesa a
es un esqueleto de programas diferen- pas (n-tiers), permite que un número la red mientras se ejecuta, entonces,
tes, con una descripción de qué pro- ilimitado de programas corra simul- desde que llega al cliente se convierte
gramas están corriendo en qué hosts, táneamente, enviando información en una aplicación de una capa; en es-
cuales son sus responsabilidades y qué de uno a otro, utilizando diferentes tos términos, un programa escrito con
protocolos determinan la forma en la protocolos para comunicarse e inte- JavaScript o VBScript incrustado en
cual diferentes partes del sistema se ractuar simultáneamente; esto permi- código HTML, también puede decirse
comuinican unas con otras. te crear aplicaciones más poderosas que es aplicación de una capa.
que proporcionen diversos servicios
El concepto de capas (tiers), pro- a varios clientes. Las aplicaciones de una capa tie-
porciona una manera conveniente nen una gran ventaja: la simplicidad,
para agrupar diferentes clases de Sin embargo, esto también repre- pues no necesitan del manejo de
arquitectura. Así, si una aplicación senta desventajas; por ejemplo, existe protocolos, y no se necesita garantizar
se ejecuta en una computadora, ésta la posibilidad de que se introduzca la sincronización entre datos lejanos,
tiene una arquitectura de una capa código maligno, tal como los gusanos ni el manejo de rutinas de excepción
(one-tiers), si la aplicación se esta (worms), ocasionando problemas en para soportar las fallas inherentes de
ejecutando dos computadoras, por el diseño, implementación y rendi- la red o de un servidor manejando

34 polibits 2006
Arquitecturas en n-Capas: Un Sistema Adaptivo

diferentes versiones de un protocolo y despliega mensajes, y un servidor cuando múltiples clientes solicitan
o programa. Estos programas repre- que entrega mensajes de un cliente simultáneamente al servidor realizar
sentan una gran ventaja en cuanto a otro. tareas. El sistema de archivos en el
al rendimiento, ya que los datos no mejor de los casos, maneja controles
necesitan atravesar la red, esperar su Otro ejemplo sería un programa de concurrencia rudimentarios, por
turno en el servidor y entonces regre- CGI que calcula una hipoteca (puede lo cual la solución más común es
sar, por lo que no sobrecargan la red ser un servlet Java o script Perl). Los añadir un tercer programa, una base
ni al servidor con tráfico extra. datos de entrada se proporcionan a de datos.
través del protocolo HTTP y especí-
ficamente en un formulario HTML, Una base de datos especializada
Arquitecturas de dos capas que el usuario llena; la salida es uno almacena, recupera e indexa datos, tal
o más archivos HTML, pero en rea- como una arquitectura de dos capas,
lidad, todos los cálculos ocurren en separa la capa de lógica del negocio
Una arquitectura de dos capas en el servidor, y aunque se incorpora un de la capa GUI; una arquitectura de
realidad tiene tres partes: un cliente, navegador web para presentar datos tres capas permite separar la lógica
un servidor y un protocolo, mismo de salida y aceptar datos de entrada del negocio y el acceso de datos, como
que hace un puente entre las capas del usuario, toda la ejecución real del se muestra en la Figura 1.
del cliente y del servidor. El diseño programa ocurre en el servidor.
de dos capas es muy efectivo para Con una base de datos es posible
aplicaciones de red, así como para Así, si se escribe un programa proporcionar índices a los mismos, in-
programas con interfaz gráfica de para el servidor y no el código que cluir métodos altamente optimizados
usuario (GUI); comúnmente los pro- debe ejecutarse en el cliente, entonces, para su recuperación, y proporcionar
gramas GUI se almacenan del lado del ¿puede decirse que es una aplicación replica, respaldos, redundancia, y
cliente, y la lógica del negocio del lado de dos capas?. Esto es altamente procedimientos de carga específicos
del servidor, esto permite regenerar y discutible, ya que puede decirse que que balancean según las necesidades
validar datos del usuario en el cliente, el código HTML es realmente una de la información.
donde se tiene una respuesta más forma primitiva de código de un
rápida; en el proceso, se conservan programa, y si además se añade un En la actualidad existen sistemas
los tan apreciados recursos de la red y Javascript u otro código del lado del SQL RDBMS, tales como Oracle,
del servidor. De igual forma, la lógica cliente, entonces en verdad se tiene Sybase, etc, y algunos tipos tales como
del negocio vive en el servidor, donde una aplicación de dos capas. Una OODB (bases de datos orientadas
está segura, además de hacer uso los arquitectura de una capa combina a objetos), ORDB (bases de datos
recursos de dicho servidor. todas las funciones en un solo proceso, relacionales), etc.
mientras que una arquitectura de dos
Una aplicación de dos capas es niveles debe separar diversas funcio- El procedimiento general para usar
un programa cliente/servidor con nes. En realidad, elegir entre una o una base de datos implica, en primer
una GUI como presentación, escrita dos capas depende de las necesidades lugar, realizar un esquema que describa
en un lenguaje de alto nivel tal como de la aplicación. los datos para posteriormente escribir
Java, C++, etc. En un programa de consultas que almacenen y recuperen
dos capas se ve la división entre las
capas frontales (front) y las capas Arquitecturas de tres
Interfaz de usuario Presentación
posteriores (end). En la primera capa, capas
el cliente no necesita preocuparse
acerca del almacenamiento de los
datos o acerca del procesamiento de Muy probablemente, una
múltiples solicitudes; la segunda capa, aplicación de dos niveles
Registrar Autorizar
el servidor, no necesita preocuparse necesitará almacenar datos Regla s de Negocio
orden pago
acerca de cómo alimentar datos, o en un servidor. Tradicional-
sobre cuestiones relacionadas con mente la información se
la Interfaz Gráfica (UI). Por ejemplo, almacena en un sistema de
una aplicación de conversación en archivos (FileSystem); sin
línea (Chat) está compuesta por un embargo, el riesgo a la inte- Escribe Lee
Almacenamiento
cliente que acepta entradas del usuario gridad de datos se presenta orden pago

Figura 1. Arquitectura de tres capas.


XVII 1 34 polibits 35
Arquitecturas en n-Capas: Un Sistema Adaptivo

dichos datos. Existen muchos casos del envío; entonces, se escribe


que usan bases de datos; sin embargo, un procedimiento almacenado
también existen ocasiones en que que calcule el costo automáti-
se puede almacenar una cantidad camente por alguna compañía
pequeña de datos en un archivo de entrega de paquetería, tal
local simple, en vez de una base de como FedEx, cada vez que se
datos relacional. La regla común es: salva un registro de compras
si solo se necesita almacenar datos, y (procedimiento conocido como
recuperarlos por nombre, un sistema trigger); pero si después de seis
de archivos es suficiente. Pero si se meses se decide enviar con otra
requieren búsquedas sobre la infor- compañía que proporciona
mación, entonces es necesaria una un costo más barato depen-
base de datos, especialmente si las diendo de la zona del destino,
búsquedas incluyen varios criterios. entonces tendrá que escribirse
nuevo código, seguramente
Uno de los beneficios de las bases en SQL. Si se desordenan los
de datos, además del acceso rápido y datos se puede interferir con
la fiabilidad, es que múltiples aplicacio- la integridad de los mismos,
nes o servicios pueden tener acceso a pero si el código original se
los mismos datos; éste beneficio está hubiera escrito directamente
implícito en las aplicaciones de tres en Java, en una capa interme-
o de n-capas. Los procedimientos dia, podría extenderse la clase Figura 2. Diseño general de una aplicación con una
almacenados (stored procedure), DeliveryMethod. arquitectura de n-capas.
son pequeños programas que corren
en una base de datos, y puesto que
están cerca de los datos, pueden ma- Arquitecturas de n capas En una arquitectura de n-capas se
nipularlos; por ejemplo, clasificando, requiere diseñar objetos realmente
filtrando, transformando, etc. Sin reutilizables, que puedan usarse para
embargo, realizar esto en el lado del Cuando se escribe una aplicación, proyectos futuros. Si los requisitos
servidor es muy costoso. normalmente se diseñan y escogen para un proyecto cambian es nece-
los objetos comunicándolos a través sario reescribir el código; aún más
Existen operaciones que requieren de mensajes en código de alto nivel. importante es el hecho que, dejando
de procedimientos o disparadores Los protocolos que utilizan los obje- la seguridad que proporciona una
almacenados (triggers), para fun- tos distribuidos manejan lo rudo, los arquitectura por capas, se corre el
cionar; sin embargo, es fácil utili- detalles de bajo nivel, tales como los riesgo de diseñar un sistema que
zarlos de forma incorrecta, es decir parámetros de ordenamiento, locali- sea más complejo que el pensado
si se colocan dentro de la lógica del zación de objetos remotos, manejo originalmente. Esto evita el avance,
negocio constituyen un desorden de transacciones, etc. puesto que una decisión descuidada
a la estructura de tres capas, y así, en el diseño puede tener aspectos
en lugar de tener una GUI, lógica y Un ejemplo de una aplicación no considerados. Sin embargo, la
almacenamiento separados, se tiene de n-capas es un sistema para alma- transmisión de aplicaciones de ob-
la lógica del negocio mezclada con el cenamiento de mercancías; en este jetos distribuidos en CORBA no es
almacenamiento. Además, si el proce- ambiente múltiples datos alimentan tan rápida como aquellas diseñadas
dimiento se escribe en otro lenguaje órdenes de compra que llegan de di- con protocolos de socket estándar;
diferente al del código en uso, hace ferentes fuentes, de múltiples bases de CORBA es lento por que necesita
que el código del procedimiento sea datos, y éstas a su vez son consultadas ser general, y su gran fortaleza es su
mucho más difícil de mantener y de por múltiples clientes que ejecutan mayor debilidad.
eliminar errores. aplicaciones especializadas; tiene
sentido unir éstos bloques diferentes Por lo tanto, si lo que se necesita
Por ejemplo, un sitio Web de con el hilo de una arquitectura común es rapidez el mejor método es hacerlo
comercio electrónico incluye un ca- de objetos distribuidos, tales como uno mismo (DIY, Do It Yourself).
rrito de compras, y al término de las CORBA o EJB, (ver Figura 2). Esto realmente no representa un
mismas se necesita calcular el costo inconveniente, ya que es aceptable

36 polibits 2006
Arquitecturas en n-Capas: Un Sistema Adaptivo

si el sistema se puede extender inactivo, esperando el regreso de una de Internet). Estas tecnologías son
añadiendo nuevos módulos, lo que serie de mensajes que están formados los bloques para crear Software de
se conoce comúnmente como arqui- en algún objeto remoto sobrecargado Negocio y Sistemas de Información
tectura escalable; ésta permite que en alguna parte de la red. Los CPU adaptables que ayuden a las empresas
sus programas se puedan extender de la línea frontal están subutilizados, a integrar todos sus sistemas de Tec-
sobre múltiples máquinas. Cuando mientras que el CPU posterior esta nologías de la Información, mientras
un sistema tiene muchos objetos sobrecargado, y no existe una forma que obtienen una ventaja clara en el
que interactúan recíprocamente, el simple de transferir los ciclos inactivos uso de Internet.
número de combinaciones aumenta de una máquina a otra; entonces se
exponencialmente con el número de debe rediseñar a nivel de objetos para Los componentes distribuidos
objetos, y entonces es recomendable eliminar las ineficiencias. de una arquitectura de n-capas son
escoger un estándar existente. una tecnología esencial para crear la
El surgimiento de la tecnología de siguiente generación de aplicaciones
En un sistema de tres capas existen componentes distribuidos es la clave e-business, aplicaciones que son al-
millones de accesos a un solo servi- de las arquitecturas de n-capas. Estos tamente escalables, confiables y que
dor, lo que produce una saturación al sistemas de computación utilizan un proporcionan un alto rendimiento
mismo; se puede resolver el problema número variable de componentes y una integración sin fallas con los
agregando más servidores, a lo que individuales que se comunican entre sistemas heredados.
se llama balanceo de carga, (miles ellos utilizando estándares prede-
de accesos entre varios servidores finidos y marcos de comunicación
equivalentes). Cuando se tiene una (frameworks) como:
sola base de datos para todos los Bibliografía
servidores, esto no es representa CORBA - (Common Object Request
problema si, por ejemplo, un servidor Broker Architecture) de Object
escribe datos y otro servidor necesita Management Group (OMG). [1] Jacobson, Ivar, Grady Booch,
leerlos inmediatamente después. Sin DNA- (Distributed interNet Archi- and James Rumbaugh. El
embargo, en un arquitectura de n- tecture) de Microsoft (incluye Proceso Unificado de Desa-
capas, hay docenas o centenares de COM/DCOM y COM+ además rrollo de Software. México:
objetos que corren simultáneamente, de MTS, MSMQ, etc.) . Addison-Wesley, 1999.
ejecutándose en muchos anfitriones; EJB- (Enterprise Java Beans) de Sun
si el sistema es lento, no es inmedia- Microsystems. [2] Kruchten, Philippe. «Archi-
tamente claro que objeto o cual host XML- (eXtensible Markup Langua- tectural Blueprints—The
requiere balancear la carga. Se neesita ge) de World Wide Web Consor- 4+1 View Model of Software
el análisis a detalle del tráfico de la red tium (W3C). Architecture». IEEE Software,
y de los archivos de bitácora, para IEEE. November 1995, pp.
aislar los cuellos de botella; es decir, 42-50.
aumentando el grado de detalle en el Conclusiónes
diseño del objeto también se limita el [3] Larman, Craig. UML y Patro-
rendimiento del sistema. nes, Introducción al análisis
La esencia de los modelos de de- y diseño orientado a objetos.
En un sistema de tres capas sarrollo por capas es el concepto de México: Prentice Hall, 1999.
prebalanceado, se conoce que hay separación, es decir, mantener cada
servidores usando de forma óptima componente tan separado del contex- [4] Wilson, Scott F. Analyzing
su CPU; si una solicitud llega al sis- to global como sea posible. Así, cada Requirements and Defi-
tema, éste se encarga de realizarla. capa simplemente es la agrupación ning Solution Architectures.
Si es necesario esperar a que la base de todos los componentes que tienen Redmond: Microsoft Press,
de datos responda a una consulta una funcionalidad común. 1999.
(query), entonces se generan múltiples
hilos o tareas que trabajan sobre otra Una arquitectura de n-capas forma [5] Fernández Aramayo, David
solicitud; sin embargo, si la cadena de parte de un proceso revolucionario, Ricardo. Arquitectura de Soft-
la comunicación tiene que pasar por actualmente en desarrollo, basado ware. Universidad Tecmilenio,
diferentes máquinas en la red, enton- en la aplicación de estas nuevas tec- ITESM.
ces el servidor original puede estar nologías (componentes y estándares

XVII 1 34 polibits 37

También podría gustarte