Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patrones de Arquitectura
Patrones de Arquitectura
de ingeniera informtica
Tema 1: Patrones
Arquitectnicos
Departamento de
Lenguajes y Sistemas Informticos
Diseo de la arquitectura
Implementacin de la arquitectura
ndice
Definiciones
Qu es un SID?
Aplicacin de ejemplo
Diseo de un SID
Arquitectura de un SID
Patrn MVC
Arquitectura SOA
Bibliografa
Definiciones
"Software architecture is the set of design decisions
which, if made incorrectly, may cause your project to be
cancelled." Eoin Woods
En [Buschmann96] se definen tres tipos de patrones
Patrones arquitectnicos sobre aspectos
fundamentales de la estructura de un sistema software.
Especifican un conjunto predefinido de subsistemas con
sus responsabilidades y una serie de recomendaciones
para organizar los distintos componentes
Patrones de diseo sobre aspectos relacionados con el
diseo de los subsistemas. Por tanto se centran en
aspectos ms especficos
Idiom es un patrn de bajo nivel especfico de un
lenguaje de programacin o entrono de desarrollo
Qu es un SID?
Dominio del problema
Cliente
Visitante
Administrador
Vendedor
Aplicacin de ejemplo
USVirtual
Identificarse
Consultar Productos
Aadir Productos
Cliente
Sistema
Eliminar Productos
Confirmar Compra
Aplicacin de ejemplo
Consultar Productos
Seguir Compra
Aadir
Aadir Productos
Cliente
Eliminar Productos
Confirmar Compra
Visualizar Carrito
Eliminar
Acabar Compra
Diseo de un SID
Se pueden distinguir varios aspectos
comunes en el diseo de un SID
Diseo en capas
Diseo arriba-abajo (top-down)
Diseo abajo-arriba (bottom-up)
Diseo: Concepcin
original de un objeto u
obra destinados a la
produccin en serie.
Diseo grfico, de
modas, industrial
Capa de
Presentacin
Capa de
Lgica de aplicacin
Capa de
Acceso a
Datos /Recursos
Sistema de Informacin
Cliente
Slo son conceptuales:
No tienen por qu
corresponderse con la
estructura de la
implementacin.
Tambin conocida como
vista lgica de la
arquitectura.
Capa (Layer), Nivel (Tier)
Capa de presentacin
Cliente
SID
Presentacin
Datos/
Recursos
Desventaja:
Slo es posible aplicarlo a
sistemas desarrollados
desde cero
Los componentes por lo
general son fuertemente
acoplados pues se usan en
entornos homogneos.
C lie n t e
Capa de
P r e s e n ta c i n
Capa de
L g ic a d e a p lic a c i n
Capa de
A cceso a
D a to s / R e c u rs o s
S is te m a d e I n fo r m a c i n
C lie n t e
Capa de
P r e s e n ta c i n
Capa de
L g ic a d e a p lic a c i n
Capa de
A cceso a
D a to s / R e c u rs o s
S is te m a d e I n fo r m a c i n
Desventaja:
Viene impuesto por
necesidades existentes
C lie n t e
Capa de
P r e s e n ta c i n
Capa de
L g ic a d e a p lic a c i n
Capa de
A cceso a
D a to s / R e c u rs o s
S is te m a d e I n fo r m a c i n
Arquitectura de un SID
Arquitectura:
Arte de proyectar y
construir (edificios)
Arquitectura 1-tier
C lie n t e
Capa de
P r e s e n ta c i n
Capa de
L g ic a d e a p lic a c i n
Capa de
A cceso a
D a to s / R e c u rs o s
S is te m a d e I n fo r m a c i n
Aplicaciones monolticas
Las capas de
presentacin, lgica y
datos se mezclan en una
mismo nivel
Suelen ser cerrados y no
presentan ningn tipo de
interfaz
Son un ejemplo claro de
sistemas heredados
qu hacemos si tenemos
que integrarlo?
tienen alguna ventaja?
Arquitectura 2-tier
C lie n t e
Capa de
P r e s e n ta c i n
Capa de
L g ic a d e a p lic a c i n
Capa de
A cceso a
D a to s / R e c u rs o s
S is te m a d e I n fo r m a c i n
Arquitectura 2-tier
Cliente
Lgica de la aplicacin
Presentacin 1
Presentacin 2
Servidor 2
Servidor 1
Lgica de
aplicacin
Lgica de
aplicacin
Gestin de
Recursos
Gestin de
Recursos
Arquitectura 3-tier
Debido al problema de integracin de varios
sistemas aparece un nuevo nivel
(middleware, nivel intermedio)
Transacciones
Balanceo de carga
Replicacin
Cliente
Presentacin
Lgica de
aplicacin
middleware
Gestin de
Recursos
SID
Arquitectura N-tier
Es la arquitectura n-tier escalada tantas
veces como sea necesario
La capa de recursos (datos) puede ser
otro sistema n-tier
Presentacin
SID
Lgica de
aplicacin
middleware
Gestin de
Recursos
1-tier
3-tier
Patrn MVC
MVC: es un patrn de arquitectura de software que separa los
datos de una aplicacin, la interfaz de usuario, y la lgica de
control en tres componentes distintos. El patrn MVC se ve
frecuentemente en aplicaciones web, donde la vista es la
pgina HTML y el cdigo que provee de datos dinmicos a la
pgina, el modelo es el Sistema de Gestin de Base de Datos
y el controlador representa la Lgica de negocio.
Modelo: Esta es la representacin especfica de la
informacin con la cual el sistema opera. La lgica de datos
asegura la integridad de estos y permite derivar nuevos
datos; por ejemplo, no permitiendo comprar un nmero de
unidades negativo, calculando si hoy es el cumpleaos del
usuario o los totales, impuestos o importes en un carrito de
la compra
Vista: Este presenta el modelo en un formato adecuado
para interactuar, usualmente un elemento de
interfaz de usuario.
Controlador: Este responde a eventos, usualmente
acciones del usuario e invoca cambios en el modelo y
probablemente en la vista.
Muchas aplicaciones utilizan un mecanismo de
almacenamiento persistente (como puede ser una
base de datos) para almacenar los datos. MVC no menciona
especficamente esta capa de acceso a datos.
Frameworks comunes:
Arquitecturas SOA
SOA: Service Oriented Architecture
SO
AP
SO
AP
AP
O
S
X
XM
MLL
P
A
O
S
LL
M
M
X
X
Interne
Interne
tt
HTTP
HTTP
LL
M
M
X
X
X
XM
MLL
Bibliografa