Está en la página 1de 19

INTEGRANTES:

-Hussein Rahman
-Byron Jimnez
-Christian Caicedo
SISTEMAS DISTRIBUIDOS
ARQUITECTURA POR CAPAS
Lo que se conoce como
arquitectura en capas es
en realidad un estilo de
programacin donde el
objetivo principal es
separar los diferentes
aspectos del desarrollo,
tales como las cuestiones
de presentacin, lgica
de negocio, mecanismos
de almacenamiento, etc.
PRINCIPIOS FUNDAMENTALES
Abstraccin. La arquitectura basada en capas abstrae la vista
del modelo como un todo mientras que provee suficiente detalle
para entender las relaciones entre capas.

Encapsulamiento. El diseo no hace asunciones acerca de
tipos de datos, mtodos, propiedades o implementacin.

Alta cohesin. Cada capa contiene funcionalidad directamente
relacionas con la tarea de dicha capa.

Reutilizable. Las capas inferiores no tienen ninguna
dependencia con las capas superiores, permitindoles ser
reutilizables en otros escenarios.
Los que aprendieron a programar con Pascal, recuerdan que
con ese lenguaje todo estaba en la misma porcin de cdigo.

A lo mejor un programador cuidandose organizaba las cosas
en "units", pero al final todo esta amontonado.
Muchos de nosotros debemos recordar que desde la
aparicin de los motores de base de datos existen dos
"niveles" perfectamente definidos.
Hay que resaltar el uso del trmino "nivel" y no el de
"capa" porque no significan lo mismo.
El trmino capa se utiliza para referenciar a las
distintas "partes" en que una aplicacin se divide desde
un punto de vista lgico; mientras que "nivel"
corresponde a la forma fsica en que se organiza una
aplicacin.
Ahora consideremos el ejemplo
de un componente que permita
grabar los programas de
televisin emitidos.

Este componente tiene un
sistema de almacenamiento,
dado que hace falta "guardar"
las instrucciones sobre el da y
hora se desea grabar el
programa en particular;
obviamente existe una porcin
de lgica de negocio, la que se
refiere a los pasos necesarios
para capturar el programa de
televisin y grabarlo.

Finalmente hay una interfaz de
usuario que permite a las
personas ver y editar las
instrucciones de grabacin.
La necesidad de contar con porciones de la aplicacin que se
puedan "intercambiar" sin tener que modificar el resto de la
aplicacin es lo que impulsa el desarrollo en capas; de este
modo nos encontramos con el siguiente diagrama:
La necesidad de contar con porciones de la aplicacin que se
puedan "intercambiar" sin tener que modificar el resto de la
aplicacin es lo que impulsa el desarrollo en capas; de este
modo nos encontramos con el siguiente diagrama:
Ahora tenemos 2 niveles y en el
primero de ellos diferenciamos 2
capas, de esta manera estamos
diciendo que la capa de
presentacin interacta con la
capa de lgica de negocio;
Desde la filosofa de arquitectura
en capas, esto significa que la
capa de lgica de negocios
presenta una "interfaz" para
brindar servicios a la capa de
presentacin.
La clave del desarrollo en capas es que una
capa solamente debe utilizar lo que la
"interfaz" de la o las capas inferiores le
brindan, de este modo se pueden
intercambiar las capas respetando la
"interfaz", que viene a ser como un
"contrato entre capas"
Las buenas prcticas de diseo y desarrollo indican
que se debe trabajar sobre el siguiente diagrama:
Ahora si tenemos las tan famosas 3 capas, pero hay que hacer un par de
aclaraciones para que nadie se confunda.

La nueva capa, se denomina Capa de Acceso a Datos (o Capa de
Persistencia) que no es lo mismo que Capa de Datos.

La capa de acceso a datos es una porcin de cdigo que justamente
realiza el acceso a los datos. De esta manera cuando es necesario
cambiar el motor de base de datos, solamente tendremos que corregir
esa capa.

Mientras que la capa de datos (en el nivel de datos) es donde estn los
datos y se corresponde directamente con la definicin de esquemas,
tablas, vistas, procedimientos almacenados y todo lo que se pueda o
deba poner en un motor de base de datos.

Los arquitectos estn felices con este diagrama, sin
embargo los desarrolladores tienen un problema.

Resulta que los componentes de la capa de lgica de
negocios necesitan referenciar a instancias de las
"clases del dominio" (las que representan las
entidades del negocio) y los componentes de la capa
de acceso a datos tambin tienen que referenciarlas
para poder "rellenar" tales instancias con los datos
que obtienen de las capas inferiores.
La solucin que satisface a los arquitectos y a los
desarrolladores, es la siguiente:
Ahora tenemos otra capa ms, la capa de Entidades que
corresponde al dominio de la aplicacin.

En esta capa se encuentra la declaracin de las entidades
de la aplicacin, de manera que se pueden referenciar
desde otras capas sin entrar en ciclos recursivos de
compilacin.

Adems este esquema permite una total independencia
entre la lgica de negocios (Business Model) y las
entidades (Domain Model). Por supuesto que ambas
partes estn relacionadas por los casos de uso y otros
requerimientos de la aplicacin.

SOA - Service Oriented Architecture (servicios web)
La pregunta ahora es: Los servicios
publicados forman parte de la capa de lgica
de negocio?
BENEFICIOS
Mejoras en las posibilidades de mantenimiento. Debido a que
cada capa es independiente de la otra los cambios o actualizaciones
pueden ser realizados sin afectar la aplicacin como un todo.
Escalabilidad. Como las capas estn basadas en diferentes maquinas, el
escalamiento de la aplicacin hacia afuera es razonablemente sencillo.
Flexibilidad. Como cada capa puede ser manejada y escalada de forma
independiente, la flexibilidad se incrementa.
Disponibilidad. Las aplicaciones pueden aprovechar la arquitectura
modular de los sistemas habilitados usado componentes que escalan
fcilmente lo que incrementa la disponibilidad.