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