Puntos Examen Estilos Arquitectonicos Secc01

19
ESTILOS ARQUITECTÓNICOS Es la clasificación de los sistemas software en grandes familias cuyos integrantes comparten un patrón estructural común 1. SISTEMAS BASADOS EN FLUJOS a. Filtros y Pipes Este consta de un conjunto de componentes denominados “filtros” conectados entre si por “tuberías” que transmiten datos desde un componente al siguiente. Cada filtro trabaja de manera independiente de los componentes que se encuentran situados antes o después de ella. Se diseñan de tal modo que esperan un conjunto de datos en un determinado formato y obtiene como resultado otros datos de salida en un formato específico. Descripción Cada componente tiene un conjunto de entradas y un conjunto de salidas. Cada componente lee las entradas y las transforma en salidas. Restricciones

description

Resumen de la exposición Nº 3 de la materia Arquitectura del Software, utilizados para realizar el parcial Nº 2

Transcript of Puntos Examen Estilos Arquitectonicos Secc01

Page 1: Puntos Examen Estilos Arquitectonicos Secc01

ESTILOS ARQUITECTÓNICOS

Es la clasificación de los sistemas software en grandes familias cuyos

integrantes comparten un patrón estructural común

1. SISTEMAS BASADOS EN FLUJOS

a. Filtros y Pipes

Este consta de un conjunto de componentes denominados “filtros” conectados

entre si por “tuberías” que transmiten datos desde un componente al siguiente.

Cada filtro trabaja de manera independiente de los componentes que se

encuentran situados antes o después de ella. Se diseñan de tal modo que esperan un

conjunto de datos en un determinado formato y obtiene como resultado otros datos de

salida en un formato específico.

Descripción

Cada componente tiene un conjunto de entradas y un conjunto de

salidas.

Cada componente lee las entradas y las transforma en salidas.

Restricciones

Los filtros deben ser independientes. No deben compartir estado con

otros filtros.

Los filtros realizan la labor independientemente del flujo de entrada.

Ventajas

Permite entender el sistema global en términos de la combinación de

componentes.

Soporta de buena manera la reutilización, los filtros son independientes

de sus vecinos.

Page 2: Puntos Examen Estilos Arquitectonicos Secc01

Facilidad de Mantenimiento y mejora.

Facilidad de diagnóstico (rendimiento, deadlocks).

Soportan la ejecución concurrente.

Desventajas

No aconsejado para cuando se necesita interactividad.

Problemas de performance ya que los datos se transmiten en forma

completa entre filtro.

b. Procesamiento por lotes

Se conoce como procesamiento por lotes, o modo batch, a la ejecución de un

programa sin el control o supervisión directa del usuario (que se denomina

procesamiento interactivo). Este tipo de programas se caracterizan porque su

ejecución no precisa ningún tipo de interacción con el usuario.

Generalmente, este tipo de ejecución se utiliza en tareas repetitivas sobre grandes

conjuntos de información, ya que sería tedioso y propenso a errores realizarlo

manualmente. Un ejemplo sería el renderizado de los fotogramas de una película.

Algunos programas conocidos que pueden funcionar en modo por lotes: R-

project, gnuplot, GNU Octave, Adobe Photoshop, command.com, EXEC II, entre

otros muchos.

- 2 -

Page 3: Puntos Examen Estilos Arquitectonicos Secc01

Ventajas:

Permite compartir mejor los recursos de un ordenador entre muchos

usuarios, al no competir por éstos de forma inmediata.

Realiza el trabajo en el momento en el que los recursos del ordenador

están menos ocupados, dando prioridad a tareas interactivas.

Evita desaprovechar los recursos del ordenador sin necesidad de

interacción y supervisión humanas continuas.

En ordenadores caros o supercomputadores, ayuda a amortizar el coste

manteniendo altos índices de utilización.

Desventajas:

El principal inconveniente de la ejecución por lotes frente a la ejecución

interactiva es que hay que conocer y planificar cuidadosamente la tarea

a realizar. Al carecer de supervisión por parte del usuario, cualquier tipo

de error puede producir resultados inútiles o, simplemente, inexistentes.

2. SISTEMAS CALL/RETURN

Permite a los diseñadores software conseguir estructuras de programas

relativamente fáciles de modificar y escalar.

Este estilo arquitectónico permite al diseñador del software (arquitecto del

sistema) construir una estructura de programa relativamente fácil de modificar y

ajustar a escala.

- 3 -

Page 4: Puntos Examen Estilos Arquitectonicos Secc01

a. Sistemas Principal/subrutinas

Descompone las funciones en una jerarquía de control donde el programa

principal llama a un número de componentes del programa, los cuales pueden llamar

también a otros componentes.

b. Sistemas OO

Los componentes de un sistema encapsulan los datos y las operaciones que se

deben realizar para manipular los datos. La coordinación y la comunicación entre los

componentes se consigue a través del paso del mensaje.

Descripción:

- 4 -

Page 5: Puntos Examen Estilos Arquitectonicos Secc01

Las representaciones de los datos y las operaciones están encapsulados

en un tipo abstracto de datos u objeto.

Los componentes son objetos.

Las invocaciones de métodos son los conectores.

Restricciones:

Los objetos son responsables de la integridad de sus representaciones.

Dicha representación es ocultada al resto de los objetos.

Ventajas:

Gracias al invariante de ocultación es posible reemplazar la

Implementación sin que afecte a los clientes.

Desventajas:

Para invocar métodos de un objeto se debe conocer su identidad.

Efectos colaterales

c. Capas jerárquicas

Se crean diferentes capas y cada una realiza operaciones que progresivamente se

aproximan más al cuadro de instrucciones del usuario. En la capa externa, los

componentes sirven a las operaciones de interfaz del sistema. Las capas internas

proporcionan servicios de utilidad y funciones de software de aplicaciones.

- 5 -

Page 6: Puntos Examen Estilos Arquitectonicos Secc01

Descripción:

Organizado jerárquicamente en capas, donde cada capa provee servicios

a la capa superior y es servido por la capa inferior.

Los componentes son cada una de las capas.

Los conectores son los protocolos de interacción (Llamadas a

procedimientos, Llamadas a métodos) entre las capas.

Cada nivel tiene asociado una funcionalidad:

a. Niveles bajos: Funciones simples, ligadas al hardware o al entorno.

b. Niveles altos: Funciones más abstractas.

Restricciones:

La interacción está limitada a las capas adyacentes.

Ventajas:

Facilita la descomposición del problema en varios niveles de

abstracción.

Soporta la mejora, los cambios solo afectan a las capas vecinas.

Se pueden cambiar las implementaciones respetando las interfaces con

las capas adyacentes.

Desventajas:

- 6 -

Page 7: Puntos Examen Estilos Arquitectonicos Secc01

No todos los sistemas pueden estructurarse en capas.

Es difícil encontrar la separación en capas adecuada.

Aplicación:

Torres de protocolos de comunicación.

Sistemas operativos.

Compiladores.

3. SISTEMAS CENTRADOS EN DATOS

Arquitectura centradas en datos proporcionan integridad, es decir, los

componentes existentes pueden cambiar y pueden añadirse nuevos componentes a la

arquitectura sin que afecte a otros clientes. A su vez los datos pueden ser pasados

entre clientes a través de mecanismos que coordinen dicha transferencia de

información.

El software cliente accede a un repositorio central.

Ventajas

Disminución del acoplamiento entre entidades debido en parte al

empleo de la filosofía publish/subscribe.

Arquitectura flexible y adaptable gracias al empleo del 'discovery'

automático (RPTS).

Eficiencia debido a la comunicación directa entre el publisher y el

subscriber.

Determinismo en la consigna de los datos.

Escalabilidad debido en parte a la disminución del acoplamiento entre

entidades.

Calidad de servicio altamente parametrizable.

Independencia de la plataforma debido al empleo de estándares como

IDL.

- 7 -

Page 8: Puntos Examen Estilos Arquitectonicos Secc01

a. Bases de Datos (Repositorios)

Un repositorio, depósito o archivo es un sitio centralizado donde se almacena

y mantiene información digital, habitualmente bases de datos o archivos

informáticos.

b. Sistemas de HiperTexto

El hipertexto es una tecnología que organiza una base de información en bloques

distintos de contenidos, conectados a través de una serie de enlaces cuya activación o

selección provoca la recuperación de información.

Se dice que son hipertextos las páginas web, las enciclopedias en CD-ROM,

algunos programas muy difundidos como la Ayuda de Windows, otros programas

propietarios que sirven para elaborar hipertextos independientes, y también se dice

que son hipertextos los documentos creados con dicho software o los generados

mediante un simple procesador de textos que permita la creación de enlaces intra e

inter documentos.

El hipertexto es una estructura que organiza la información de forma no lineal. La

estructura hipertextual, permite saltar de un punto a otro en un texto -o a otro texto- a

través de los enlaces.

- 8 -

Page 9: Puntos Examen Estilos Arquitectonicos Secc01

Este tipo de estructura y esta forma de organizar la información es sólo posible

gracias a la utilización de un medio digital, un hipertexto sólo puede realizarse y

tomar forma gracias a los ordenadores.

El cliente software accede a los datos independientemente de cualquier cambio en

los datos o a las acciones de otros clientes software

.

Características

Un sistema hipertexto, en términos ideales, debe cumplir con las siguientes

características:

Esta tecnología debe proveer un medio adecuado para organizar y

presentar información poco o nada estructurada, no ajustada a esquemas

tradicionales y rígidos como es el caso de las bases de datos. Pueden

utilizarse esquemas jerárquicos para la utilización de sistemas de

documentación de texto tradicionales, muy organizados o simplemente

creando estructuras de redes con poco o ningún atributo de precedencia.

Tener asociada una interfaz de usuario muy intuitiva, pues se pretende

imitar el funcionamiento de la mente humana, haciendo uso de modelos

cognitivos, por lo que el usuario no debería realizar grandes esfuerzos

para obtener la información requerida.

La información se encuentra distribuida y puede ser accesada en forma

concurrente por varios usuarios, por lo tanto es un ambiente compartido.

- 9 -

Page 10: Puntos Examen Estilos Arquitectonicos Secc01

Es un ambiente colaborativo: un usuario puede crear nuevas referencias

entre dos documentos cualesquiera en forma inmediata e independiente de

los tipos de contenido, haciendo crecer su hiperdocumento, sin generar

cambios en el hiperdocumento referenciado. Estas referencias pueden

estar embebidas en el documento, de modo que aunque éste se cambiara

de instalación, el enlace seguiría proporcionando acceso a la información

referenciada.

Tiene asociados varios mecanismos de recuperación y búsqueda de

información a través de las navegaciones, ya sean dirigidas o no dirigidas.

Modelos

General, es decir, debe ser válido para cualquier aplicación del campo

que formaliza.

Abstracto, ya que con esto se puede separar las características

particulares del objeto de estudio para extraer su esencia.

Consistente, para lograr que cada elemento tenga una única definición,

acorde con la función que se espera que represente y coherente con el

resto de componentes del modelo.

Elementos

El nodo, Elemento constitutivo de un hipertexto que contiene una

cantidad discreta de información (texto, imágenes,..).

Suelen clasificarse por la forma de visualización en la pantalla: marco

(cantidad fija de espacio en la pantalla) y ventana (toda la pantalla).

El enlace, Es una conexión entre dos nodos que proporciona una forma

de seguir las referencias entre un origen y un destino. Deben ser fáciles de

activar y deben producir una respuesta suficientemente rápida.

- 10 -

Page 11: Puntos Examen Estilos Arquitectonicos Secc01

c. Sistemas de pizarra

El repositorio envía información a los clientes cuando los datos de su

interés cambian, siendo por tanto un ente activo.

Descripción

Existen dos tipos de componentes.

Una estructura central de datos (representa el estado del proceso).

Componentes independientes (operan en función del depósito de

datos).

Las interacciones entre el repositorio y los demás componentes es

variable:

a. La entrada de los datos es seleccionada por los componentes

b. El estado de los datos del repositorio selecciona el proceso a

ejecutar (pizarra).

Ventajas

Posibilita la integración de agentes.

- 11 -

Page 12: Puntos Examen Estilos Arquitectonicos Secc01

Adecuado para la resolución de problemas no deterministas.

Se puede resumir el estado de conocimiento en cada momento del

proceso.

Desventajas

Estructura de datos común a todos los agentes.

Problemas de carga a la hora de chequear y vigilar el estado de la

pizarra.

a. Arquitecturas orientadas a servicios (SOA)

(SOA) es un concepto de arquitectura de software que define la utilización de

servicios para dar soporte a los requisitos del negocio.

Hasta ahora nos hemos centrado en la aplicación, considerándola como una

unidad de ejecución de un procesador o cuando la visión se amplía y la

distribuimos entre nodos un grupo de procesadores. Por eso también tenemos

que considerar patrones arquitectónicos para que esa descomposición sea

adecuada y eficiente en función de los factores considerados.

Pero el concepto de aplicación sigue ampliándose, ya no se reduce a un grupo

humano que interactúa con el software dentro de los límites de la empresa u

organización. La Web nos ha conducido a generalizar lo que en un origen estaba

en algún nodo corporativo y a pensar que algunos de los componentes de la

aplicación pueden estar donde sea más rentable o adecuado que estén. Si

necesitamos acceder a algún sitio de la Web para poder ejecutar nuestra

aplicación, diremos que estamos utilizando un servicio de Web.

Algunas definiciones genéricas que encontramos en la Web nos plantean que

un Servicio de Web puede ser incluso el FTP (File Transfer Protocol), que se

podía acceder en los 1990 sólo desde un comando Unix, pero que desde 1995

podía accederse desde un navegador Web. Esto se denominaba una ‘evolución’

- 12 -

Page 13: Puntos Examen Estilos Arquitectonicos Secc01

de los servicios Web y todavía no tenían nada que ver con el uso de XML. Si nos

obligaran a resumir este concepto, podríamos decir que un servicio Web es "una

función de negocio auto contenida que opera en Internet".

La Arquitectura Orientada a Servicios es un concepto de arquitectura de

software que define la utilización de servicios como construcciones básicas para

el desarrollo de aplicaciones. Es una arquitectura de una aplicación donde las

funcionalidades se definen como servicios independientes, con interfaces

accesibles, bien definidas, que pueden ser llamadas en secuencias dadas para

formar procesos de negocios.

“SOA ha surgido como la mejor manera de afrontar el desafío de hacer más

con menos recursos. Promete hacer la reutilización y la integración mucho más

fáciles, ayudando a reducir el tiempo de desarrollo y aumentando la agilidad

organizacional. No sorprendentemente, el 80% de las organizaciones de IT están

implementando aplicaciones usando SOA con web services subyacentes. SOA

proporciona mayor flexibilidad para afrontar los cambios tanto en el ambiente de

negocios como en la infraestructura tecnológica” (Reynoso, 2005).

Las arquitecturas SOA se basan en la exposición de servicios ya existentes

para ser reutilizados. Al usar servicios web, para exponer estos servicios, se

reutilizan la infraestructura web existente en virtualmente todas las

organizaciones por lo que se limita considerablemente el coste.

Ventajas

Mejorar toma de decisiones.

Más información con mejor calidad.

Mejorar productividad de empleados.

Acceso optimo a sistemas.

Potenciar relación con los clientes y proveedores.

Mayor capacidad de respuesta a los clientes.

- 13 -

Page 14: Puntos Examen Estilos Arquitectonicos Secc01

Aplicaciones más productivas y flexibles.

Aplicaciones más seguras y manejables.

Desventajas

Los tiempos de llamado no son despreciables, gracias a la comunicación

de la red, tamaño de los mensajes, entre otros. Esto necesariamente

implica la utilización de mensajería confiable.

La respuesta del servicio es afectada directamente por aspectos externos

como problemas en la red, configuración, entre otros.

Debe manejar comunicaciones no confiables, mensajes impredecibles,

reintentos, mensajes fuera de secuencia, etcétera.

- 14 -