Sei sulla pagina 1di 14

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

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.

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-
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.

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

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.

-6-
• Desventajas:

 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.

-7-
 Independencia de la plataforma debido al empleo de estándares como
IDL.

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.

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 -
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.

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 -

Potrebbero piacerti anche