Está en la página 1de 35

DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Un aspecto muy importante en arquitectura del software son los patrones tanto
de diseo como de arquitectura

Los complementan los estilos arquitectnicos

Ambos se preocupan de los stakeholders

Los estilos favorecen al tratamiento estructural, la investigacin, la teora

Los patrones estn ms cerca del diseo, la prctica, el proceso, el cdigo
ESTILOS ARQUITECTONICOS

Un estilo describe una clase de arquitectura o piezas de la misma.

Los estilos se pueden reutilizar en situaciones semejantes en el futuro.

Desde que surgi la arquitectura del software se generaliz la arquitectura cliente
servidor, posteriormente entr en auge las arquitecturas en capas y las basadas
en componentes y ms recientemente las basadas en recursos y servicios
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Cada estilo describe una categora de sistemas que incluye

1. Un conjunto de componentes (una base de datos o mdulos de computo) que
realizan una funcin requerida por el sistema

2. Un conjunto de conectores que permiten la comunicacin, coordinacin y
cooperacin entre los componentes

3. Restricciones que definen como se integran los componentes para formar el
sistema

4. Modelos semnticos que permiten que un diseador entienda las propiedades
generales del sistema al analizar las propiedades conocidas de sus partes.

DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Cuando definimos una arquitectura, la tipificamos y la distinguimos, pero existen
preguntas generales?

Cules son las arquitecturas alternativas?

La arquitectura elegida abarca todo un contexto?

La arquitectura elegida es una variante incluida en un conjunto ms amplio?

En que magnitud contrasta con las otras alternativas?

Cuntas formas podra adoptar?
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

No solo es cuestin clasificatoria. Optar por una forma arquitectura tiene un valor
distintivo.

Los estilos se manifiestan en la arquitectura terica descriptiva; los partidarios de
los estilos se definen como arquitectos.

Los que se agrupan en torno a patrones se confunden con ingenieros o
diseadores, incluso con programadores sistemticos o analistas de software.

Ambos con mayor o menor grado participan abarcando la Arquitectura del
Software.

Los estilos se encuentran en el centro de la arquitectura constituyen su escencia.

Los patrones de arquitectura estn claramente dentro de la disciplina, no as los
patrones de diseo.
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Se establece que una arquitectura se define mediante la afirmacin:

Arquitectura del Software = Elementos, Forma y Razn.

- Elementos:
procesamiento: Suministra la transformacin de los datos
datos: Contiene la informacin a procesar
conexin: Llamadas a procedimientos, mensajes, etc.

- Forma: las propiedades y relaciones entre los elementos.

- Razn: motivacin para la eleccin de elementos y sus formas.

Por tanto un estilo arquitectnico es una abstraccin de tipos de elementos y
aspectos formales a partir de arquitecturas especficas.
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Conjunto de reglas de diseo que identifica las clases de componentes y
conectores que se pueden utilizar para componer el sistema o subsistema junto
con las restricciones locales o globales de la forma en que la composicin se lleva
a cabo

Componentes: sistemas encapsulados indicando la forma de empaquetado y
la forma en que interactan con otros componentes.

Conectores: los procesos interactan por medio de protocolos de
transferencia de mensajes o por flujo de datos, etc.
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS

Estilo arquitectnico es una descripcin del patrn de los datos y la interaccin de
control entre los componentes, ligada a una descripcin informal de los beneficios
e inconvenientes del uso del estilo.

Los estilos son entidades que ocurren en un nivel sumamente abstracto y
puramente arquitectnico.
DISEO DE LA ARQUITECTURA

ESTILOS ARQUITECTONICOS
Catalogo de estilos:

Arquitectura centrada en datos (arquitecturas de pizarra, Data Warehouse)

Arquitectura de flujo de datos (Tuberas y filtros, proceso secuencial en lotes)

Arquitecturas de llamada y retorno (llamadas a procedimientos remotos, Modelo
Vista Controlador)

Arquitecturas orientadas a objetos

Arquitecturas orientadas a aspecto

Arquitecturas orientadas a servicios (SOA)

Arquitecturas estratificadas
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN DATOS












Repositorio pasivo: El software cliente accede a los datos independientemente de los
cambios de los datos o de las acciones del software de otro cliente.

Repositorio pizarrn: el repositorio enva notificaciones a los clientes cuando los
datos de su inters cambian, siendo por tanto un ente activo.
DISEO DE LA ARQUITECTURA

Se fundamenta en el almacenamiento de
datos (archivos o bases de datos) al que
acceden otros componentes que realizan
acciones sobre la los datos.


El cliente accede al repositorio central.

ARQUITECTURA CENTRADA EN DATOS

Arquitectura en pizarra:

Imagine un nmero de estudiantes que estn escribiendo en la pizarra al mismo
tiempo tratando de resolver un problema.

Y si le aadimos un maestro que primero le pide a cada estudiante lo que quiere
escribir en la pizarra y decide qu estudiante tiene la mejor idea. Y cuando el
estudiante haya terminado, el proceso se repite.

Esta es la idea detrs de la arquitectura en pizarra. Los estudiantes se llaman
fuentes de conocimiento. El profesor se denomina intrprete de comandos de
control

En la Arquitectura en Pizarra varios subsistemas especializados pueden reunir sus
conocimientos para construir una posible solucin parcial o aproximada.
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN DATOS

Arquitectura en pizarra:

La idea detrs de la Arquitectura de Pizarra es una coleccin de programas
independientes que trabajan conjuntamente en una estructura de datos comn.

Cada programa especializado trabaja para la solucin de una parte especfica de la
tarea general, y todos los programas trabajan juntos en la solucin total.
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN DATOS

Arquitectura en pizarra:

Fuente de conocimiento. La fuente de conocimiento es un componente que se aade
a la solucin del problema. Puede ser cualquier cosa que se lee de un cierto nivel de
pizarra, y propone una modificacin a los componentes de la pizarra.

Pizarra. Es la estructura de datos comn de las fuentes de conocimiento. Es capaz de
representar a todos los estados de algn espacio del problema. Contiene varios
niveles de descripcin con respecto al espacio del problema.

Intrprete de comandos de control. Determina que fuente de conocimiento tiene la
oportunidad de cambiar la pizarra. En cada ejecucin, identifica los cambios a la
pizarra, activa las fuentes de conocimiento apropiadas, selecciona una de estas y la
ejecuta.
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN DATOS

Almacn de datos:
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN DATOS

Almacn de datos:
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:

Enfatiza la reutilizacin y la modificabilidad

Adecuada para sistemas con trasformaciones de datos en pasos sucesivos (cuando
los datos de entrada se transforman en datos de salida mediante una serie de
componentes para el clculo o la manipulacin. )

Ejemplos: arquitecturas de tuberas y filtros y las de proceso secuencial en lotes
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:

Tuberas y filtros

Una tubera (pipeline) es una arquitectura que conecta componentes
computacionales (filtros) a travs de los conectores (pipes) y las comunicaciones
se ejecutan como un flujo.
Filtro
Filtro
Filtro
Filtro Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Tuberas
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:

Tuberas y filtros

Los filtros no necesariamente realizan nicamente tareas de filtrado sino que
ejecutan formas variables de transformacin

Esta diseado para esperar la entrada de datos con cierta forma y producir su
salida (al siguiente filtro) de una forma especfica. (no es necesario que el filtro
conozca el funcionamiento de los filtros vecinos.

La aplicacin tpica es un procesamiento clsico de datos:

- El cliente hace un requerimiento
- El requerimiento se valida
- Un web Service toma el objeto de la base de datos
- Este objeto se convierte en html
- Se efecta la representacin en pantalla


DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Tuberas y filtros
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Tuberas y filtros

Ejemplo: Unix
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Tuberas y filtros

Ejemplo: Compiladores
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Tuberas y filtros

Este estilo se podra usar cuando:

Se puede especificar la secuencia de un nmero conocido de pasos
No se requiere esperar la respuesta asincrnica de cada paso
Se busca que todos los componentes de abajo sean capaces de inspeccionar y
actuar sobre los datos que vienen de arriba (no viceversa).
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Tuberas y filtros

Ventajas:

Simple de entender e implementar
Facilidad de mantenimiento y mejora
Facilidad de diagnostico
Fuerza un procesamiento secuencial
Ejecucin concurrente

Desventajas:

Demasiado simplista
No maneja condicionales, bucles y otras lgicas de control de flujo
No apto para situaciones interactivas
Problemas de rendimiento (los datos se transmiten de forma completa)
DISEO DE LA ARQUITECTURA

ARQUITECTURA CENTRADA EN FLUJO DE DATOS:
Estilo secuencial por lotes

En el estilo secuencial por lotes (batch sequential) los componentes son
programas independientes; el supuesto es que cada paso se ejecuta hasta
completarse antes que se inicie el paso siguiente.
DISEO DE LA ARQUITECTURA

ARQUITECTURAS DE LLAMADA Y RETORNO:
Con esta arquitectura se obtiene una estructura de programa que resulta
relativamente fcil de modificar y cambiar de tamao.

Existen dos subestilos:

Arquitectura de programa principal/subprograma:

Esta estructura de programa clsica separa la funcin en una jerarqua de
control donde un programa principal invoca a varios componentes de
programa, que a su vez pueden invocar a otros componentes.


Arquitectura de llamada a procedimiento remoto:

Los componentes de una arquitectura de programa principal/subprograma se
distribuyen entre varias computadoras de una red.

DISEO DE LA ARQUITECTURA

ARQUITECTURAS DE LLAMADA Y RETORNO:
Arquitectura de programa principal/subprograma:

La programacin procedimental precede a la programacin orientada a objetos.

La llamada a procedimiento convencional es una llamada en el mismo sistema
en el que se invoca y se llama a un procedimiento local.


Un procedimiento o funcin es una estructura de control que proporciona la
abstraccin a una accin.

La accin de una funcin se invoca a travs de una llamada a funcin.

Para usar diferentes variables una llamada a funcin debe tener argumentos

El valor o referencia de cada argumento se pasa a la funcin.

DISEO DE LA ARQUITECTURA

ARQUITECTURAS DE LLAMADA Y RETORNO:
DISEO DE LA ARQUITECTURA

Programa
Principal
Subprograma
controlador
Subprograma
controlador
Subprograma
controlador
Subprograma
de aplicacin
Subprograma
de aplicacin
Subprograma
de aplicacin
Subprograma
de aplicacin
Subprograma
de aplicacin
Subprograma
de aplicacin
Subprograma
de aplicacin
ARQUITECTURAS DE LLAMADA Y RETORNO:
DISEO DE LA ARQUITECTURA

Arquitectura de llamada a procedimiento remoto:

El objetivo de RPC es extender a los sistemas distribuidos el mecanismo de
llamadas a procedimientos y subrutinas de los lenguajes de programacin.

RPC est basado en el modelo cliente - servidor

RPC permite que un proceso localizado en una mquina pueda ejecutar cdigo
localizado en otra mquina remota, sin preocuparse por la comunicacin entre
ambas.
ARQUITECTURAS DE LLAMADA Y RETORNO:
DISEO DE LA ARQUITECTURA

Arquitectura de llamada a procedimiento remoto:

En el modelo de llamada a procedimiento remoto, un proceso realiza una
llamada a procedimiento de otro proceso que posiblemente este localizado
remotamente.

Los datos se pasan a travs de argumentos.

Cuando un proceso recibe una llamada, se ejecuta la accin codificada en el
procedimiento.

Se notifica la finalizacin de la llamada al proceso que lo invoca

Si existe un valor de retorno se enva desde el proceso invocado
ARQUITECTURAS DE LLAMADA Y RETORNO:
DISEO DE LA ARQUITECTURA

Arquitectura de llamada a procedimiento remoto:

En RPC, todos los parmetros que se utilicen en las llamadas han de ser pasados
por valor; y no por referencia, ya que ambos procedimientos se ejecutan en
espacios de memoria diferentes.

Para que estos parmetros puedan ser enviados a travs de la red, es necesario
que sean serializables, es decir, convertibles en una corriente de bytes.

ARQUITECTURAS ORIENTADAS A OBJETOS:
Los componentes de un sistema encapsulan los datos y las operaciones que
deben aplicarse para manipular los datos. La comunicacin y coordinacin entre
los componentes se consigue mediante el paso de mensajes.
DISEO DE LA ARQUITECTURA
Los componentes de este estilo son
los objetos, o ms bien instancias de
los tipos de dato abstractos.

Los objetos representan una clase de
componentes llamados managers,
debido a que son responsables de
preservar la integridad de su propia
representacin.

ARQUITECTURAS ORIENTADAS A OBJETOS:
Los componentes del estilo se basan en principios OO: encapsulamiento,
herencia y polimorfismo. Son asimismo las unidades de modelado, diseo e
implementacin, y los objetos y sus interacciones son el centro de las
incumbencias en el diseo de la arquitectura y en la estructura de la aplicacin.

Las interfaces estn separadas de las implementaciones. En general la
distribucin de objetos es transparente, y no importa si los objetos son locales o
remotos.

Restricciones: una interfaz pueda ser implementada por mltiples clases. Los
componentes y objetos interactan a travs de invocaciones de funciones y
procedimientos.

Hay muchas variantes del estilo; algunos sistemas, por ejemplo, admiten que los
objetos sean tareas concurrentes; otros permiten que los objetos posean
mltiples interfaces.
DISEO DE LA ARQUITECTURA
ARQUITECTURAS EN CAPAS:
Hay varias capas definidas, cada una de ellas realiza operaciones que se acercan
progresivamente al conjunto de instrucciones de la mquina.

En la capa externa los componentes sirven a las operaciones de interfaz del
usuario.

En la capa interna los componentes sirven como interfaz con el sistema
operativo.

Las capas intermedias proporcionan servicios de utilera y de SW de aplicaciones

DISEO DE LA ARQUITECTURA
ARQUITECTURAS EN CAPAS:

DISEO DE LA ARQUITECTURA
Capa
Centra
l
Capa de la
Aplicacin
Capa de
Utileras
Capa de la
interfaz de
usuario
Mdulos
ARQUITECTURAS EN CAPAS:

DISEO DE LA ARQUITECTURA
Ventajas

Facilita la descomposicin del problema en varios niveles de abstraccin.
Soporta fcilmente la evolucin del sistema, los cambios slo afectan a las
capas vecinas
Se pueden cambiar las implementaciones respetando las interfaces con las
capas adyacentes


Desventajas

No todos los sistemas pueden estructurarse en capas
A menudo es difcil encontrar la separacin en capas adecuadas

También podría gustarte