Categorieën: Alle - componentes - máquinas - arquitectura - sistemas

door Felipe Tachiquin 5 jaren geleden

737

Arquitectura de sistemas de Información

La arquitectura de sistemas de información se refiere a la organización fundamental de un sistema, incluyendo sus componentes, las relaciones entre ellos y el entorno, así como los principios que guían su diseño y evolución.

Arquitectura de 
sistemas de Información

Arquitectura de sistemas de Informació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

¿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

Tipos y estilos de Arquitectura de información

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 recursos

Simplicidad

Comunicación fácil entre los elementos

Conocimientos técnicos mínimos

Identificador uniforme de recurso (URI) para cada recurso

Obedece un protocolo

Cada recursos sabe como autodestruirse

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

Cada recurso conoce como se representa así mismo al consumidor

Considera que los recursos son componentes de la web

Arquitecturas orientadas a servicios (SOA)

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

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.

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.

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

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

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

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

No permite construir respuestas complejas

Se pueden reemplazar componentes

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

Alienta el desarrollo en paralelo

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

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

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

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

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

Arquitecturas basadas en atributos (ABAS)

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.

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.

Sistemas de control de procesos

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

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

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

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

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

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.

También llamada intérpretes basados en tablas

Estilos de llamada y retorno
Este estilo se enfatiza la modificabilidad y la escalabilidad.

Arquitecturas basadas en componentes

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

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.

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

Arquitecturas orientadas/basadas a objetos

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

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.

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.

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

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

Atrquitecturas en capas

ventajas

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

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

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.

Model-View-Controller

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

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

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

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.

Vista

Maneja la visualización de la información.

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

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

Consiste en 3 partes

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

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

Fuentes de conocimiento, necesarias para resolver el problema.

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

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.

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.

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

Cuenta con dos componentes principales.

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

Estructura de datos que representa el estado actual.

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.

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

Tubería y filtros

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.

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

No realizan forzosamente tareas de filtrado

Ejecutan formas variables de transformación