Arquitectura de
sistemas de Información

Tipos y estilos de
Arquitectura de información

Estilos de flujos de datos

Estos estilos enfatizan la reutilización y la modificación, se utiliza en sistemas que implementan transformaciones de datos en pasos sucesivos.

Tubería y filtros

Ejecutan formas variables de transformación

No realizan forzosamente tareas de filtrado

Una tubería (pipeline) es una popular arquitectura que conecta componentes computacionales (filtros) a través de conectores (pipes)

Los componentes computaciones se ejecutan a la manera de un flujo, mientras que los datos se transportan a través de las tuberías entre los filtros, transformando gradualmente las entradas en salidas.

Proceso secuencia en lote

Los componentes son programas independientes; el supuesto es que cada paso se ejecuta hasta completarse antes que se inicie el paso siguiente

Estilos centrados en datos

Enfatiza la integrabilidad de los datos, es utilizada para
sistemas que se fundan en acceso y actualización de datos en estructuras de almacenamiento

Repositorios / Arquitecturas de pizarra

Cuenta con dos
componentes principales.

Estructura de datos que
representa el estado actual.

Colección de componentes
independientes que operan
sobre él.

Si las transacciones en el flujo de entrada definen los procesos a ejecutar, el repositorio puede ser una base de datos tradicional.

Si el estado actual de la estructura de datos dispara los procesos a ejecutar, el repositorio es lo que se llama una pizarra pura o un tablero de control.

Usado en aplicaciones que requieren complejas interpretaciones de proceso de señales (reconocimiento de patrones, reconocimiento de habla, etc), o en
sistemas que involucran acceso compartido a datos con agentes débilmente acoplados.

Los estilos de pizarra son utilizados en exploraciones de inteligencia artificial distribuida/cooperativa, robótica, programación evolutiva, etc.

Consiste en 3 partes

Fuentes de conocimiento, necesarias para resolver el problema.

Una pizarra que representa el estado actual de la resolución del problema.

Una estrategia, que regula el orden en que operan las fuentes.

Estilos de llamada y retorno

Este estilo se enfatiza la modificabilidad y la escalabilidad.

Model-View-Controller

separa el modelado del dominio, la presentación y las acciones basadas en datos ingresados por el usuario en tres clases diferentes.

Modelo

Administra el comportamiento y los datos del dominio de aplicación,
responde a requerimientos de información sobre su estado (usualmente formulados desde
la vista) y responde a instrucciones de cambiar el estado

Vista

Maneja la visualización de la información.

Controlador

Interpreta las acciones del ratón y el teclado, informando al modelo y/o a la
vista para que cambien según resulte apropiado.

Se caracteriza por ventajas como el soporte de vistas múltiples y adaptación al cambio.

Entre sus desventajas encontramos complejidad y costo de las actualizaciones frecuentes.

Atrquitecturas en capas

Es una organización jerárquica tal que cada
capa proporciona servicios a la capa inmediatamente superior y se sirve de las prestaciones que le brinda la inmediatamente inferior.

las capas suelen ser entidades complejas, compuestas de varios paquetes o subsistemas.

ventajas

Soporta un diseño basado en niveles de abstracción crecientes
Admite optimizaciones y refinamientos
Proporciona amplia reutilización

Arquitecturas orientadas/basadas a objetos

Los componentes de este estilo son los objetos / instancias de los tipos de dato abstractos.

Los componentes se basan en principios Orientados a Objetos: encapsulamiento, herencia y polimorfismo.

Las unidades de modelado, diseño e implementación, y los
objetos y sus interacciones son el centro de las incumbencias en el diseño de la arquitectura y en la estructura de la aplicación.

Ventajas

Se puede modificar la implementación de un objeto sin afectar a sus clientes.
Es posible descomponer problemas en colecciones de agentes en interacción.
Un objeto es reutilizable en el entorno de desarrollo.

Desventajas

Para poder interactuar con otro objeto a través de una invocación de procedimiento, se debe conocer su identidad.
Al modificar un objeto se deben modificar también todos los objetos que lo invocan.
se presentan problemas de efectos colaterales en cascada

Arquitecturas basadas en componentes

Es un unidad de composición con interfaces especificadas contractualmente y dependencias de contexto explícitas

La unidad de composición no es preciso confeccionarla, se puede comprar hecha, o se puede producir en casa para que otras aplicaciones de la empresa la utilicen en sus propias
composiciones.

Se basan en principios definidos por una ingeniería de software específica (CBSE)

Estilos de código móvil

Enfatiza la portabilidad, donde encontramos los intérpretes,
los sistemas basados en reglas. máquinas virtuales y los procesadores de lenguaje de comando.

Arquitectura de máquinas virtuales

También llamada intérpretes basados en tablas

Todo intérprete involucra una máquina virtual implementada en software. Para ello un intérprete incluye un pseudoprograma a interpretar y una máquina de interpretación, y este pseudoprograma incluye el programa mismo y el análogo.

un intérprete posee por lo general cuatro componentes:
(1) Una máquina de interpretación que lleva a cabo la tarea (2) Una memoria que contiene el pseudocódigo a interpretar
(3) Una representación del estado de control de la máquina
de interpretación
(4) Una representación del estado actual del programa que se simula.

Numerosos lenguajes y ambientes de scripting utilizan máquinas virtuales: Perl, Javascript, Windows Script Host (WSH), Python, PHP, Pascal.

Estilos heterogeneos

Corresponde a la familia más fuertemente referida en los últimos tiempos, tomando en cuenta a los sistemas de control de procesos industriales, sistemas de
transición de estados, arquitecturas específicas de dominios o estilos derivados de otros estilos, como GenVoca, C2 o REST

Sistemas de control de procesos

Caracterizados por la relación que se mantiene entre sus componentes.

Su objetivo es mantener ciertos valores dentro de
ciertos rangos especificados, llamados puntos fijos o valores de calibración

La ventaja señalada para este estilo radica en su elasticidad ante perturbaciones
externas

Arquitecturas basadas en atributos (ABAS)

asociar a la definición del estilo arquitectónico un framework de razonamiento (ya sea cuantitativo o cualitativo) basado en modelos de atributos específicos.

Trata de lograr que la arquitectura
de software estuviera más cerca de ser una disciplina de ingeniería, aportando el beneficio esencial de la ingeniería (predictibilidad) al diseño arquitectónico.

Estilos peer-to-peer

Enfatiza la modificabilidad por medio de la separación de las diversas partes que intervienen en la computación, la cual también es llamada "De componentes independientes".
Consiste por lo general en procesos independientes o entidades que se comunican a través de mensajes, enviándolas a otras entidades pero no las controla.

Arquitecturas basadas en eventos
(invocación implícita/broadcast)

También de invocación implícita, En términos de patrones de
diseño corresponde al "observer" (modelo de delegación de eventos).

se basa con sistemas basados en actores, daemons y redes de conmutación de paquetes

un componente puede anunciar mediante
difusión uno o más eventos

Ventajas

Optimiza el mantenimiento haciendo que procesos de negocios que no están relacionados sean independientes

Alienta el desarrollo en paralelo

Es agnóstica en lo que respecta a si las implementaciones corren sincrónica o asincrónicamente

Se pueden reemplazar componentes

Desventajas

No permite construir respuestas complejas

Un componente no puede utilizar los datos o el estado de otro componente para efectuar
su tarea

Cuando un componente anuncia un evento, no tiene idea sobre qué otros componentes están interesados en él, ni el orden en que serán invocados

Arquitecturas orientadas a servicios (SOA)

aportar flexibilidad, desde la automatización de las infraestructura y herramientas necesarias consiguiendo

se ocupa del diseño y desarrollo de sistemas distribuidos y es un potente aliado a la hora de llevar a cabo la gestión de grandes volúmenes de datos, datos en la nube y jerarquías de datos.

permite la reutilización de activos existentes para nuevos servicios que se pueden crear a partir de una infraestructura de TI que ya se había diseñado.

Ventajas

Aumenta la eficiencia en los procesos.
Amortiza la inversión realizada en sistemas.
Reduce costes de mantenimiento.
Fomenta la innovación orientada al desarrollo de servicios.
Simplifica el diseño, optimizando la capacidad de organización

Arquitecturas basadas en recursos

Considera que los recursos son componentes de la web

Obedece un protocolo

Cada recurso conoce como se representa así mismo al consumidor

Cada recursos sabe como hacer una transición de un estado a otro

Cada recursos sabe como autodestruirse

Ventajas

Identificador uniforme de recurso (URI) para cada recurso

Conocimientos técnicos mínimos

Comunicación fácil entre los elementos

Simplicidad

¿Qué es?

Es la organización fundamental de un sistema, encarnada en sus componentes, las relaciones entre ellos y con su entorno, y los principios que gobiernan su diseño y evolución

Bibliografía

Reynoso C. 2004.Estilos y Patrones en la Estrategia de Arquitectura de Microsoft. Agosto, 2019. disponible en: http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF

Canals J. 2014. Qué es la arquitectura orientada a servicios SOA. Disponible en: https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/394442/qu-es-la-arquitectura-orientada-a-servicios-soa

Clique aqui para centrar o seu mapa.
Clique aqui para centrar o seu mapa.