Puntos Examen Estilos Arquitectonicos Secc01
-
Upload
miguel-angel-matos -
Category
Documents
-
view
207 -
download
0
description
Transcript of 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.
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -