Vous êtes sur la page 1sur 5

ARQUITECTURA EN CAPAS

mircoles, 10 de agosto de 2011


ARQUITECTURA 3 CAPAS PROGRAMACIN POR CAPAS
Es un estilo de programacin, su objetivo primordial es la separacin de la capa de presentacin, capa de
negocio y la capa de datos.

La arquitectura de una aplicacin es la vista conceptual de la estructura de esta.


Toda aplicacin contiene cdigo de presentacin, cdigo de procesamiento de datos
y cdigo de almacenamiento de datos. La arquitectura de las aplicaciones difieren
segn como esta distribuido este cdigo.
Windows DNA presenta una arquitectura de aplicaciones de tres-capas, basadas en
componentes. La meta de DNA es unificar las aplicaciones para PC, las aplicaciones
cliente / servidor y las aplicaciones basadas en la Web, lo cual es posible para
aplicaciones
de
cualquier
tamao.
En nuestros das mucha informacin importante est almacenada en aplicaciones
como sistemas de correo electrnico, y an ms recientemente en servicios de
directorio. Microsoft habla sobre Universal Data Access (Acceso Universal a Datos)
como una serie de manejadores e interfaces diseadas para proveer una forma de
conseguir acceder a este tipo de almacenamientos y ms an a datos como
archivos de formato especiales, datos de posicin geoespacial, datos cientficos no
estndar, etc. Los servicios son puestos en la red y operan de manera cooperativa
para dar soporte a uno o ms procesos de negocios. En este modelo, una aplicacin
se convierte en un conjunto de servicios de usuario, negocios y datos que satisface
las necesidades de los procesos de negocios o procesa su soporte. Como los
servicios estn diseados para el uso general y siguen lineamientos de interfaz
publicados, pueden ser reutilizados y compartidos entre mltiples aplicaciones. La
arquitectura DNA de tres capas como se muestra en el grafico cuenta con servicios
especficos en cada capa que se comunican entre si mediante COM (Component
Object Model)

Arquitectura de Capas
Preguntar qu conocen por arquitectura de capas (en Sistemas de Operacin,
Redes de Computadores...).
Nos limitaremos a manejar la nocin de arquitectura como una forma de
estructurar los elementos de un software.
En toda arquitectura de capa los elementos agrupados en una misma capa
pueden comunicarse entre si; pero existen variantes en cuanto a las
comunicaciones permitidas entre elementos de capas diferentes:
1. Arquitectura top-down de capas:
Los elementos de una capa i+1 pueden enviar solicitudes de servicio a
elementos de la capa inferior i. Tpicamente se produce una cascada de
solicitudes, es decir para satisfacer una solicitud a una capa i+2, sta
requiere enviar varias solicitudes a la capa i+1; cada una de estas
solicitudes a la capa i+1 genera a su vez un conjunto de solicitudes a la
capa i y as sucesivamente. Una arquitectura top-down es laxa (o no
estricta) si los elementos de una capa i+1 pueden enviar solicitudes de
servicio directamente a un elemento de cualquiera de las i capas
inferiores.
2. Arquitectura bottom-up de capas:
Cada elemento de una capa i puede notificar a elementos de la capa
superior i+1 de que ha ocurrido algn evento de inters (ej.
manejadores de dispositivos). La capa i+1 puede juntar varios eventos
antes de notificar a su vez an elemento de la capa i+2. Una arquitectura
bottom-up tambien puede ser no estricta si el elemento de la capa i
puede notificar a cualquier elemento de cualquier capa superior a la
capa i.
3. Arquitectura bidireccional de capas
En su forma ms comn involucra dos pilas de N capas que se
comunican entre si. El ejemplo ms conocido es el de los protocolos en
Redes de Computadores.

Al implementar una arquitectura top-down de capas, se deben tomar en cuenta


los siguientes factores:
1. Cul es el criterio de abstraccin para agrupar servicios/clases en una
capa?
Mencionar el criterio Presentacin-Dominio de Aplicacin-Repositorio
de Sistemas de Informacin.
2. Determinar el nmero de capas
En trminos simplistas, a ms capas ms flexibilidad pero menor
desempeo. [Discutir]
3. Tpicamente las capas ms internas ofrecen menos servicios.
Esto ayuda la reutilizacin de capas ("pirmide invertida de reuso").
4. El grado de encapsulamiento de las capas.
A mayor encapsulamiento, menor dependencia externa sobre la
estructura de una capa.
5. Estructura interna de cada capa.

6. Cunta informacin pasar de una capa a otra?


Tomemos el caso de la arquitectura top-down. Es muy posible que, de
acuerdo con el tipo de servicio solicitado, la capa inferior requiera una
cantidad de informacin variable. En un modelo puro "empujado"
(push), la capa superior est obligada a enviarle toda la informacin que
pueda llegar a hacerle falta a la capa inferior en la solicitud.
Esto no siempre es posible (piense por ejemplo en una solicitud de
servicio a una base de datos que no logra completarse por estar fuera de
lnea. Qu se hace: reintentar, abandonar, usar una fuente alterna?).

En el modelo contrario, "halado" (pull o por demanda), la capa inferior


solicita mayor informacin slo si le hace falta --pero de quin la
pida? El modelo de solicitudes top-down presupone un invocador
annimo y un invocado conocido.
La solucin la proporciona el patrn Editorial-Suscriptor (PublishSubscribe) que encapsula la idea del callback. Este patrn de diseo lo
estudiaremos ms adelante.
7. Disee la estrategia de manejo de errores.
Este es un aspecto que es frecuentemente obviado, aunque tiene
impacto fuerte tanto en el tiempo de procesamiento como en el esfuerzo
de programacin. Tpicamente se recomienda manejar el error en el
nivel que lo descubri, si esto no es posible, dejar que lo resuelva la
capa ms arriba, pero generalmente abstrayendo el tipo de error para
que sea comprensible en trmino de los servicios de la capa superior.
Todo patrn tiene ventajas y desventajas: en el caso de la arquitectura de
capas ya las hemos mencionado [dejar que los estudiantes las resuman]:
Ventajas
o Reutilizacin de capas;
o Facilita la estandarizacin
o Dependencias se limitan a intra-capa
o Contencin de cambios a una o pocas capas
Desventajas
o A veces no se logra la contencin del cambio y se requiere una
cascada de cambios en varias capas;
o Prdida de eficiencia;
o Trabajo innecesario por parte de capas ms internas o redundante
entre varias capas;
o Dificultad de disear correctamente la granularidad de las capas.
Arquitectura de capas en Sistemas de Informacin

Existen tres propuestas de arquitecturas de capas para Sistemas de


Informacin, donde las capas a veces reciben el nombre de niveles (en Ingls
tiers):
Arquitectura de dos capas;
Arquitectura de tres capas;
Arquitectura de cuatro capas.
Las diferencias entre estas arquitecturas las pospondremos hasta que nos
corresponda estudiar el proceso de diseo de un software. Por los momentos,
seguiremos RPM en presuponer que apuntamos a una arquitectura de tres
capas.

Vous aimerez peut-être aussi