Está en la página 1de 24

escuela tcnica superior

de ingeniera informtica

Tema 1: Patrones
Arquitectnicos

Departamento de
Lenguajes y Sistemas Informticos

Ingeniera del Software de


Gestin III

Ejemplo de otro dominio

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

SID: Sistema de Informacin Distribuido

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

Design: a mental project or


scheme in which means to
an end are laid down

Diseo en Capas de un SID

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

Responsable de: (1) presentar


informacin e (2) interactuar con
la capa inferior externas

A veces tambin se le llama CLIENTE pero da lugar a confusiones

Cul es la diferencia entre cliente y la capa de presentacin?

Capa de lgica de aplicacin


Presentacin
Lgica de
aplicacin

Responsable de: implementar las


operaciones solicitadas por los clientes a
travs de la capa de presentacin.
Ej: el componente encargado de ver si un
cliente est o no logado

Datos/
Recursos

Dependiendo de la complejidad y de la tcnica de implementacin


empleada, tambin se le conoce como: proceso/lgica/reglas de
negocio o simplemente servidor

Capa de acceso a datos/recursos


Presentacin
Lgica de
aplicacin
Datos/
Recursos

Responsable de: gestionar todos los


elementos de informacin del SID; ficheros
planos, XML, SGBD, etctera
Tambin conocida como capa de gestin
de recursos
Qu otros elementos pueden
proporcionar informacin?

En algunas arquitecturas se considera como parte integrante de esta


capa aquellos sistemas externos que proporcionan informacin. Es el
eslabn necesario para componer SID a partir de otros SID.
Denominar a esta capa como capa de datos no es del todo riguroso,
por qu?

Diseo arriba-abajo (top-down)

Desde el principio se tienen


claras las funcionalidades y
se dirige el desarrollo sobre
ellas

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

Definir la funcionalidad del


sistema desde el punto de
vista del cliente
Ir propagando por las capas
segn las necesidades
identificadas en las capas
anteriores
Ventajas:

Diseo abajo-arriba (bottom-up)

Suele surgir por necesidad


ms que por eleccin
Muchos de los sistemas de
hoy en da se basan en la
integracin de productos
existentes (legancy systems:
sistemas heredados)
Sistema heredado: aquel que
es utilizado en un contexto
distinto del que en principio
fue concebido. La mayora
de SID se convierten en
sistemas heredados
Si tenemos que integrar
sistemas heredados no
podemos seguir un diseo
arriba-abajo
Definimos por tanto la
funcionalidad del sistema al
final?

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

Diseo abajo-arriba (bottom-up)

Los componentes por lo


general son poco acoplados
y pueden ser reutilizados

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

Definir la funcionalidad desde


el punto de vista del cliente
Examinar recursos existentes
y la funcionalidad que ofrecen
Encapsular la funcionalidad
existente
Adaptar la salida de la
aplicacin a las necesidades
del cliente
Ventaja:

Arquitectura de un SID
Arquitectura:
Arte de proyectar y
construir (edificios)

Architecture: the art or


science of building

A la hora de implementar un SID las


capas (layer) conceptuales pueden
quedarse en uno o ms niveles (tier)
Existen 4 tipos bsicos de arquitecturas:
1-tier, 2-tier, 3-niveles, N-niveles

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

Surge con la aparicin de los PCs


Se vio la posibilidad de sacar la capa de
presentacin a otro nivel
Ventajas:
Se pude aprovechar las capacidad de
computo del cliente
Permite personalizar la capa de
presentacin para distintos fines y
portarla a distintos entornos
Un caso particular son las arquitecturas
cliente/servidor
Surgieron los RPC (Remote Procedure Call) lo
que motiv para la creacin de APIs
Si el cliente es independiente del servidor,
qu puede suceder?
Desventaja:
Cuando hay que hacer una integracin
real de ms de un dos sistemas resulta
poco mantenible y escalable (?)

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)

La capa presentacin reside en el cliente, la


capa lgica reside en el nivel intermedio, y
la capa de datos reside en el nivel de
recursos que est compuesto por tantos
recursos como el sistema pretende integrar

La responsabilidad de integrar pasa al


middleware (CORBA, DCOM, ESB), que
tambin se encarga de:

Transacciones

Balanceo de carga

Replicacin

3-tier separa el nivel lgico de datos


(recursos) por lo que es ms fcilmente
escalable. Es la opcin a seguir si se
pretende hacer una integracin de sistemas,
por qu?

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

Web Services Concepts, Architectures and Applications


Alonso, G., Casati, F., Kuno, H., Machiraju, V.
2004, Springer
ISBN: 3-540-44008-9

Pattern-Oriented Software Architecture


Buschmann, F. et. al
1996, John Wiley & Sons
ISBN: 0471958697

También podría gustarte