Red de conocimientos turísticos - Información de alquiler - Paradigma estructural de la arquitectura

Paradigma estructural de la arquitectura

Cada componente tiene un conjunto de entradas y salidas, lee datos de un flujo como entrada y genera un flujo de datos de salida. Todo el sistema puede verse como un componente de procesamiento de datos compuesto por múltiples filtros.

Filtro a

Filtro b

Filtro c

Pipeline

Características: Los filtros interactúan entre sí de forma independiente (no se puede disfrutar del estado * * *), el funcionamiento y el comportamiento de un filtro no pueden afectar el funcionamiento y el comportamiento de otro filtro, y la transmisión de la transmisión no tiene efectos secundarios. Al filtro no le importa el origen del flujo de entrada ni el destino del flujo de salida. No necesita conocer el origen y el destino del flujo y no tiene ningún impacto en el procesamiento de datos del filtro. El filtrado y la transmisión pueden ser simultáneos y pueden existir varias transmisiones en el sistema al mismo tiempo. Ejemplo:

Uno de los ejemplos más famosos es la programación de shell de Unix, que conecta múltiples programas (componentes) que procesan datos a través de tuberías para producir un efecto de suma. Otro es el compilador tradicional, que genera código fuente mediante análisis léxico; , análisis de sintaxis, generación de código intermedio, generación de código de destino y otros pasos.

Ventajas: La función de todo el sistema es la suma de las funciones de múltiples filtros, lo que puede simplificar el análisis y diseño del sistema. Después de analizar los requisitos, todo el sistema puede verse como un filtro y luego refinarse gradualmente en múltiples filtros interconectados. Admite la reutilización de componentes; el mismo filtro puede aparecer varias veces en diferentes ubicaciones del sistema. Fácil de mantener y mejorar, el filtro se puede reemplazar y se pueden agregar filtros nuevos al sistema sin cambiar el filtro original ni las funciones básicas del sistema original. Soporte de concurrencia En esencia, esta arquitectura es inherentemente independiente del estado de cada filtro individual y del orden de entrega de flujos paralelos, por lo que la concurrencia es una característica natural de la infraestructura. Desventajas: dado que los filtros son esencialmente independientes, los diseñadores deben considerar los procesos de entrada, procesamiento y salida de cada filtro de forma independiente, y las similitudes e interrelaciones lógicas de los filtros no pueden reflejarse en el diseño. Debido a la naturaleza por lotes de este sistema, no es adecuado para desarrollar aplicaciones que interactúen con los usuarios. Es imposible extraer la identidad * * * entre los múltiples flujos de procesamiento del sistema, y ​​no se puede extraer la identidad * * * entre múltiples filtros, lo que aumenta la complejidad del diseño. En este sistema, los datos y las operaciones sobre datos se encapsulan en tipos de datos u objetos abstractos. Este sistema consta de una gran cantidad de objetos. Físicamente, estos objetos interactúan entre sí a través de llamadas a funciones o procedimientos. Lógicamente, la reutilización del diseño se consigue entre objetos mediante la integración y la composición.

Objeto d

Objeto b

Objeto a

Objeto e

Objeto c

Llamada a objeto

Llamada a objeto

Llamada a objeto

Nivel A

Clase B

Clase C

Clase G

Objeto a

Objeto e

Clase F

Compuesto

Herencia

Estructura física estructura lógica

Características:

Hay demasiados datos sobre el análisis y diseño de sistemas orientados a objetos, por lo que no lo explicaré. en detalle aquí.

Ventajas:

Debido a la encapsulación, se logra flexibilidad y escalabilidad, los detalles de implementación se ocultan y se mejora la calidad del código;

Utiliza herencia y El estado múltiple mejora la reutilización del software.

Desventajas:

La principal desventaja es que la interacción entre objetos se realiza a través de llamadas explícitas a funciones de objetos, por lo que cuando un objeto necesita implementar una función específica, se debe saber cuál El objeto proporciona este servicio, lo que reduce la flexibilidad del sistema. El modelo de tubería y filtro no requiere que se indique explícitamente el origen y el destino de los datos. Objeto e

Objeto e

Objeto e

Bus de distribución de eventos

Creación de eventos

Registro del receptor de eventos Creación de

objetos

Esta es una variante de los sistemas orientados a objetos y de abstracción de datos. El sistema también está compuesto por una gran cantidad de objetos, pero la interacción entre objetos no se lleva a cabo a través de llamadas a funciones o procedimientos que especifiquen explícitamente los objetos. En cambio, el sistema proporciona mecanismos para crear y publicar eventos, y los objetos generan eventos. Uno o más objetos prestan atención al evento registrándose en el sistema, desencadenando así el comportamiento correspondiente o generando un nuevo evento.

Ejemplo:

El ejemplo más famoso es el modelo GUI. El mouse, el teclado u otros dispositivos de entrada generan varios eventos, que activan ventanas, programas u otros objetos para generar nuevos eventos. , realizar procesamiento de datos u otras operaciones.

Ventajas:

Llamar funciones y procedimientos no requiere especificar objetos específicos, por lo que el sistema tiene buena flexibilidad y escalabilidad. Se pueden agregar nuevos componentes al sistema inmediatamente registrándose en la parte de manejo de eventos del sistema. Asimismo, los componentes antiguos se pueden eliminar fácilmente del sistema. Esta estructura debería utilizarse para sistemas con requisitos dinámicos particularmente altos, especialmente si es necesario ampliar el sistema en tiempo de ejecución.

Desventajas:

Debido a que la llamada a la función se realiza enviando un evento, el objeto que envía el evento no puede confirmar si un objeto maneja el evento, si el objeto esperado maneja el evento y si se obtuvieron los resultados esperados y no había forma de controlar la secuencia de eventos. La exactitud de la lógica y la sincronización del sistema debe garantizarse mediante una lógica de sincronización compleja y afirmaciones de condiciones previas y posteriores. Divida las funciones y componentes del sistema en niveles funcionales. En términos generales, los usuarios fuera del sistema solo pueden acceder a componentes y funciones de nivel superior, y solo se pueden realizar llamadas a funciones entre capas adyacentes.

La siguiente es la estructura jerárquica del sistema de procesamiento empresarial básico:

Capa de interfaz de usuario

Capa de lógica de transacciones

Capa central

Ejemplo:

Obviamente, el modelo de referencia OSI (Interconexión de sistemas abiertos) de ISO es el ejemplo más famoso de un modelo jerárquico. La interoperabilidad compleja se logra dividiendo las funciones y componentes del sistema abierto en siete capas, con interfaces claramente definidas (y a menudo demasiado complejas) entre las capas.

Ventajas: el desarrollo y diseño del sistema se puede llevar a cabo paso a paso, comenzando desde las funciones simples en la parte inferior hasta desarrollar gradualmente las funciones abstractas complejas en el nivel superior. Flexibilidad y escalabilidad, dado que las capas adyacentes interactúan a través de interfaces claras, se pueden reemplazar y mejorar capas específicas, o incluso agregar otras nuevas. Desventajas: No todos los sistemas se pueden descomponer en niveles con capas claras, división clara del trabajo y lógica consistente. Esto es muy difícil (el fracaso de OSI y el éxito de TCP/IP ilustran este punto). Una estructura de llamadas jerárquica estricta reducirá el rendimiento del sistema. Se utiliza una estructura de datos central para representar el estado actual del sistema y un conjunto de componentes independientes operan en la base de datos central. Si los componentes son responsables de seleccionar y procesar datos centrales, el sistema es un modelo de base de datos tradicional; si la estructura de datos centrales conduce de forma independiente a una serie de acciones, el sistema puede verse como un modelo de pizarra.

Base de datos central (base de conocimientos)

Componente del cliente a

Componente del cliente b

Componente del cliente c

Ejemplo:

Una gran cantidad de aplicaciones de bases de datos tradicionales son en realidad ejemplos específicos de este sistema. En muchos sistemas de investigación, el modelo de pizarra basado en la base de conocimientos es en realidad el mismo sistema.

Ventajas:

La arquitectura centrada en datos puede representar naturalmente grandes cantidades de datos y lógica de procesamiento de transacciones, y es adecuada para expresar aplicaciones centradas en datos.

Desventajas:

Esta arquitectura solo puede representar completamente unas pocas aplicaciones simples de almacenamiento de bases de datos. En una gran cantidad de aplicaciones comerciales reales, las aplicaciones que completan la lógica, como el procesamiento de control principal, deben utilizar otras arquitecturas para expresar a los usuarios.

Si la lógica de la aplicación es muy compleja, como las diversas instrucciones de dibujo de AutoCAD, la forma en que el usuario usa el sistema puede ser muy complicada, entonces un mejor sistema es proporcionar un conjunto de dominios. Instrucciones orientadas (lenguaje). Este lenguaje se interpretará y se generarán los comportamientos correspondientes. Los usuarios utilizarán esta instrucción (lenguaje) para completar operaciones complejas.

Lógica empresarial descrita en lenguaje de máquina virtual

Intérprete de máquina virtual

Instrucciones básicas para completar tareas operativas prácticas

Áreas problemáticas prácticas

p>

Ejemplo:

Una gran cantidad de herramientas de desarrollo y herramientas de desarrollo secundarias incorporan esta idea: Microsoft usa Visual Basic para aplicaciones y los productos de AutoDesk ampliamente utilizados en sus productos en realidad proporcionan a los usuarios un dominio. -Lenguaje orientado y luego interpreta las instrucciones y secuencias de instrucciones que implementan este lenguaje. Esto amplía la funcionalidad del producto y facilita a los usuarios personalizar el sistema según sus propias necesidades.

Ventajas:

Buena escalabilidad, los usuarios pueden realizar un desarrollo secundario de sistemas de software.

Desventajas:

El desarrollo de software es complejo, especialmente el diseño de este conjunto de instrucciones es muy difícil.

¿Se puede utilizar un lenguaje maduro como base para el desarrollo secundario (como uno basado en Java)?