Habilidades avanzadas en diseño de arquitectura de sistemas · Tecnología de componentes y middleware

Haga clic para ingresar al directorio de series de artículos.

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

Insertar descripción de la imagen aquí

1. Definición de componentes

Definición 1: Un componente de software es una unidad de ensamblaje que tiene una especificación de interfaz estandarizada y dependencias de contexto explícitas. Los componentes de software pueden implementarse de forma independiente y ensamblarse a voluntad por parte de terceros.
Definición 2: Un componente es una parte valiosa, casi independiente y reemplazable de un sistema que cumple una función clara dentro de un contexto arquitectónico bien definido.
Definición 3: Un componente es una parte funcional publicada de forma independiente a cuyos servicios se puede acceder a través de su interfaz.

Un artefacto es un conjunto de componentes atómicos que normalmente deben implementarse simultáneamente.

La diferencia entre componentes y componentes atómicos es que la mayoría de los componentes atómicos nunca se implementan individualmente, aunque se pueden implementar individualmente. Por el contrario, la mayoría de los componentes atómicos pertenecen a una familia de componentes y un despliegue suele implicar a toda la familia.

Un componente atómico es un módulo y un conjunto de recursos.
Los componentes atómicos son la unidad básica de implementación, control de versiones y reemplazo. Los componentes atómicos generalmente se implementan en grupos, pero también se pueden implementar individualmente. Un módulo es un componente atómico sin recursos separados (según esta definición estricta, un paquete Java no es un módulo; la unidad atómica de implementación en Java es un archivo de clase. Un único paquete se compila en varios archivos de clase separados, cada uno de ellos común. la clase tiene uno).

Un módulo es un conjunto de clases y posiblemente estructuras no orientadas a objetos, como procedimientos o funciones.

La diferencia entre módulos, objetos y componentes:

Las características de los componentes son: (1) unidad de despliegue independiente; (2) unidad de ensamblaje como un tercero; (3) ningún estado visible (externo). (Puede usar un contenedor para administrar su estado visible externo)
Un componente puede contener múltiples elementos de clase, pero un elemento de clase solo puede pertenecer a un componente. Por lo general, dividir una clase para su implementación no tiene sentido.
Las características del objeto son: (1) Una unidad de instancia con un identificador único. (2) Puede tener un estado que sea visible externamente. (3) Encapsula su propio estado y
comportamiento.

Por favor agregue la descripción de la imagen.

2. Características de la arquitectura del sistema de componentes.

La arquitectura del sistema de componentes consta de un conjunto de decisiones de plataforma, un conjunto de marcos de componentes y el diseño de interoperabilidad entre marcos de componentes.

Un marco de componentes es una arquitectura dedicada (normalmente en torno a algunos mecanismos clave) y un conjunto de estrategias que actúan de forma fija sobre los mecanismos a nivel de componentes.

El diseño de interoperabilidad del marco conceptual incluye las reglas de interoperabilidad entre todos los marcos conectados por la arquitectura del sistema .

Un componente es un conjunto de componentes atómicos que normalmente deben implementarse al mismo tiempo. La diferencia entre componentes y componentes atómicos es que la mayoría de los componentes atómicos nunca se implementan individualmente, aunque se pueden implementar individualmente.

Un componente atómico es un módulo y un conjunto de recursos.

Un módulo es un conjunto de clases y posiblemente estructuras no orientadas a objetos, como procedimientos o funciones.

Un recurso es una colección fija de elementos escritos.

El concepto de recursos puede incluir recursos de código y, por tanto, módulos. El problema es que además de los recursos que genera el compilador al compilar un módulo o paquete, pueden existir otros recursos. En el enfoque de "objeto puro", los recursos son objetos externos inmutables, inmutables porque los componentes no tienen indicadores de persistencia y las copias no se pueden distinguir.

Si se considera un sistema de software como una colección de componentes, entonces, desde la perspectiva de la forma externa de los componentes, los componentes que constituyen un sistema se pueden dividir en [ cinco categorías]:

(1) Componentes independientes y maduros. Los componentes independientes y maduros se han probado muchas veces en el entorno operativo real. Este tipo de componente oculta todas las interfaces y los usuarios solo necesitan usar comandos prescritos. Por ejemplo, sistemas de gestión de bases de datos y sistemas operativos, etc.
(2) Componentes restringidos. Los componentes restringidos proporcionan interfaces y señalan las condiciones y requisitos previos de uso. Este tipo de componente tendrá conflictos de recursos, cobertura y otros efectos cuando se ensambla y debe probarse cuando se usa. Por ejemplo, bibliotecas de clases básicas en varios lenguajes de programación orientados a objetos.
(3) Componentes adaptables. Los componentes adaptables están empaquetados o utilizan tecnología de interfaz para manejar incompatibilidades, conflictos de recursos, etc., y se pueden usar directamente. Este componente se puede utilizar sin modificaciones en una variedad de entornos. Por ejemplo ActiveX, etc.
(4) Componentes del conjunto. Cuando se instalan los componentes del ensamblaje, se ensamblan en diferentes niveles del sistema operativo, sistema de administración de bases de datos o sistema de información, y se pueden conectar y usar mediante código adhesivo. La mayoría de los productos de software que actualmente ofrecen algunos proveedores de software entran en esta categoría.
(5) Componentes modificables. Los componentes modificables se pueden reemplazar con versiones. Si se modifican errores o se agregan nuevas funciones al componente original, el componente se puede reemplazar reempaquetando o escribiendo una interfaz. Este tipo de componente se utiliza con frecuencia en el desarrollo de sistemas de aplicaciones.

3. Descripción general del middleware

El middleware es un software de sistema independiente o un programa de servicio que puede ayudar al software de aplicaciones distribuidas a compartir recursos entre diferentes tecnologías. El middleware puede:
1. Responsable de la conexión y comunicación entre el cliente y el servidor, así como del mecanismo de comunicación eficiente entre el cliente y la capa de aplicación.
2. Proporcionar equilibrio de carga de aplicaciones y alta disponibilidad, mecanismos de seguridad y funciones de gestión, así como mecanismos de gestión de transacciones para garantizar la coherencia de las transacciones.
3. Proporcionar el mecanismo de interoperabilidad entre diferentes servicios en la capa de aplicación, así como el mecanismo de conexión y control entre la capa de aplicación y la base de datos.
4. Proporcionar una plataforma de operación y desarrollo de aplicaciones de arquitectura multicapa, así como un marco de desarrollo de aplicaciones para respaldar el desarrollo de aplicaciones modulares.
5. Blindar las diferencias en hardware, sistemas operativos, redes y bases de datos.
6. Proporcionar un conjunto de servicios comunes para realizar diferentes funciones para evitar la duplicación de trabajo y permitir la colaboración entre aplicaciones.
El middleware es un tipo de componente.
El middleware es un tipo de software de sistema.
Insertar descripción de la imagen aquí

Simplifique la estructura, proteja las diferencias y facilite la reutilización.

Ventajas de utilizar tecnología middleware:

  • (1) Orientado a la demanda. Es decir, los diseñadores se centran en la lógica empresarial misma.
  • (2) Separación e inclusión de negocios. Los desarrolladores de aplicaciones pueden dividir funciones según diferentes negocios, lo que se refleja en diferentes interfaces o modos de interacción.
  • (3) Aislamiento de diseño e implementación. Los efectos externos de los componentes o las interacciones entre componentes se llevan a cabo a través de interfaces. Los usuarios de componentes solo necesitan conocer la interfaz del componente y no necesitan preocuparse por su implementación interna. Esta es la clave para la separación del diseño y la implementación. .
  • (4) Aislar recursos complejos del sistema. Una función muy importante de la arquitectura es aislar los recursos del sistema de los componentes de la aplicación, que es la base para garantizar que los componentes se puedan reutilizar o incluso "plug and play", lo cual es coherente con la intención del middleware.
  • (5) Modelo de interacción compatible con el estándar. El middleware implementa el modelo arquitectónico e implementa protocolos estándar.
  • (7) Reutilización del software. El middleware proporciona encapsulación de componentes, reglas de interacción, aislamiento del entorno y otros mecanismos, que brindan soluciones convenientes para la reutilización del software.
  • (8) Proporcionar gestión de los componentes de la aplicación. El software basado en middleware se puede gestionar fácilmente porque los componentes siempre se pueden dividir mediante mecanismos de identificación.

4. Modelo basado en componentes CBSD (modelo de ensamblaje de componentes/desarrollo de software basado en componentes)

Un componente (Componente) es una unidad de software con valor reutilizable y funciones relativamente independientes. El modelo de desarrollo de software basado en componentes (CBSD) utiliza métodos de modularización para modularizar todo el sistema y, con el soporte de un determinado modelo de componente, reutiliza uno o más componentes de software en la biblioteca de componentes mediante medios combinados. con alta eficiencia y alta calidad.

El modelo de desarrollo basado en componentes incorpora muchas características del modelo en espiral, es de naturaleza evolutiva y el proceso de desarrollo es iterativo. El modelo de desarrollo basado en componentes consta de cinco etapas: análisis y definición de requisitos de software, diseño de arquitectura, establecimiento de biblioteca de componentes (la biblioteca de componentes incluye la adquisición y gestión de componentes), construcción, prueba y lanzamiento de software de aplicación . Como se muestra en la imagen:

Insertar descripción de la imagen aquí

Los componentes CBSE deben tener las siguientes características:

  • Capacidad de ensamblaje: todas las interacciones externas deben ocurrir a través de interfaces definidas públicamente.
  • Implementabilidad: los componentes siempre están en formato binario y pueden ejecutarse en la plataforma como una entidad independiente.
  • Documentación: los usuarios juzgan si el componente cumple con los requisitos en función de la documentación.
  • Independencia: Puede ensamblarse y desplegarse sin otros componentes especiales.
  • Estandarización: modelo de componente que se ajusta a un determinado estándar.

Secuencia de montaje de los componentes CBSE:

  • Ensamblaje secuencial: llame a los componentes existentes en secuencia. Puede usar dos componentes existentes para crear un nuevo componente.
  • Ensamblaje jerárquico: la interfaz "proporcionada" del componente llamado debe ser compatible con la interfaz de "solicitud" del componente que llama.
  • Conjunto de superposición: se fusionan varios componentes para formar un nuevo componente, que integra las funciones de los componentes originales y proporciona nuevas interfaces con el mundo exterior.

Como importante tecnología y herramienta de software, los componentes se han desarrollado enormemente. Estos nuevos estándares y herramientas de tecnología incluyen DCOM/COM de Microsoft, EJB de Sun, CORBA de OMG, etc. Las actividades de desarrollo basadas en componentes comienzan con la identificación de componentes candidatos . Al buscar en la biblioteca de componentes existente , confirme si el componente requerido ya existe. Si ya existe , extráigalo de la biblioteca de componentes para reutilizarlo ; si no existe , use el objeto- método orientado Desarrollarlo. Después de que los componentes extraídos pasan las comprobaciones de sintaxis y semántica, estos componentes se ensamblan mediante código adhesivo para implementar el sistema. Este proceso es iterativo.

El método de desarrollo basado en componentes hace que el desarrollo de software ya no comience desde cero. El proceso de desarrollo es el proceso de ensamblaje de componentes y el proceso de mantenimiento es el proceso de actualización, reemplazo y expansión de componentes. Su ventaja es que el modelo de ensamblaje de componentes conduce a reutilización y mejora del software Mejora la eficiencia del desarrollo de software ; los componentes pueden ser definidos por una parte, implementados por otra parte y luego proporcionados a un tercero para su uso; el modelo de ensamblaje de componentes permite desarrollar múltiples proyectos al mismo tiempo, reduciendo costos, mejorando la mantenibilidad y permitiendo el envío paso a paso de Productos de Software.
La desventaja es que debido al uso de estándares de estructura de ensamblaje personalizados, faltan estándares de estructura de ensamblaje universales y su introducción es riesgosa; la reutilización y la eficiencia del software no son fáciles de coordinar, lo que requiere analistas y desarrolladores capacitados y experimentados. Si los desarrolladores no pueden involucrarse, la satisfacción del cliente es baja; se confía demasiado en los componentes y la calidad de la biblioteca de componentes afecta la calidad del producto .

El ensamblaje de componentes se refiere a conectar los componentes de la biblioteca de componentes entre sí después de las modificaciones apropiadas, o conectarlos a los elementos componentes en el proyecto de desarrollo actual y finalmente formar un nuevo software de destino.

La tecnología de ensamblaje de componentes se puede dividir a grandes rasgos en tecnología de ensamblaje basada en funciones, tecnología de ensamblaje basada en datos y tecnología de ensamblaje orientada a objetos.

5. Reutilización de componentes

Los niveles corresponden a diferentes tareas en el proceso de ensamblaje de componentes.
Dimensiones de la reutilización
Reutilización horizontal: universal independientemente del ámbito industrial.
Reutilización vertical: dividida en áreas industriales y dedicadas.
Insertar descripción de la imagen aquí

5.1 Recuperación y extracción de componentes.

Los métodos de clasificación de componentes existentes se pueden dividir en tres categorías principales, a saber, clasificación de palabras clave, clasificación de facetas y métodos de organización de hipertexto.

  • Clasificación de palabras clave: es el método más simple para organizar bibliotecas de componentes. Su idea básica es: de acuerdo con los resultados del análisis de dominio, los conceptos del campo de aplicación se descomponen en árboles o estructuras de gráficos acíclicos dirigidos en orden de abstracto a concreto. Cada concepto está representado por una palabra clave descriptiva. Una clave atómica no descomponible contiene ciertos componentes básicos que le pertenecen.

  • Método de clasificación de facetas: en el mecanismo de clasificación de facetas, se definen varias "facetas" (facetas) utilizadas para describir las características de los componentes. Cada faceta contiene varios conceptos, y estos conceptos expresan las características del componente en la superficie. Una descripción puede describir la función que realiza un componente, los datos con los que opera, el contexto en el que se utiliza el componente o cualquier otra característica.

  • Método de organización de hipertexto: el método de organización de hipertexto es diferente del método de organización de biblioteca de componentes basado en sistemas de bases de datos. Se basa en tecnología de recuperación de texto completo. La idea principal es: todos los componentes deben complementarse con documentos detallados de descripción de funciones o comportamientos; importante Los conceptos que aparecen en la descripción o los componentes están conectados entre sí en forma de enlaces de red; en el proceso de lectura de documentos, los buscadores pueden saltar a documentos que contienen conceptos o componentes relacionados según el pensamiento del contacto humano; el sistema de recuperación de texto completo combina la Palabras clave y documentos de descripción proporcionados por el usuario. Haga coincidir el texto para lograr la recuperación de componentes al estilo de navegación.

Insertar descripción de la imagen aquí

5.2 Comprender y evaluar los componentes

Insertar descripción de la imagen aquí

5.3 Modificar componentes

Insertar descripción de la imagen aquí

5.4 Montaje de componentes

Insertar descripción de la imagen aquí

El ensamblaje de los componentes del sistema se divide en tres niveles diferentes: personalización, integración y extensión. Estos tres niveles corresponden a diferentes tareas en el proceso de ensamblaje de componentes.

6. Normas de componentes

Insertar descripción de la imagen aquí

7. Middleware principal

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Servidor: La implementación real del objeto CORBA, responsable de completar las solicitudes de los clientes.
Adaptador de objetos: se utiliza para proteger los detalles de implementación del kernel ORB y proporcionar una interfaz abstracta para los implementadores de objetos del servidor para que puedan usar ciertas funciones dentro del ORB.
Agente de solicitud de objetos: interpreta la llamada y es responsable de encontrar el objeto que implementa la solicitud, pasar parámetros al objeto encontrado y llamar al método para devolver el resultado. El cliente no necesita conocer la ubicación, método de comunicación, implementación, activación o mecanismo de almacenamiento del objeto de servicio.
Insertar descripción de la imagen aquí
El contenido principal del sistema CORBA incluye las siguientes partes:

  • (1) Agente de solicitud de objetos (ORB). Responsable de que los objetos envíen y reciban solicitudes y respuestas de forma transparente en un entorno distribuido. Es la base para construir aplicaciones de objetos distribuidos y lograr la interoperabilidad entre aplicaciones en entornos heterogéneos u homogéneos.
  • (2) Servicios de Objeto. Una colección de objetos básicos proporcionados para usar e implementar objetos. Estos servicios deben ser independientes del dominio de la aplicación.
  • (3) Instalaciones comunes. Proporciona un conjunto de interfaces de servicios compartidos para los usuarios finales, como gestión de sistemas, documentos combinados y correo electrónico.
  • (4) Interfaces de aplicación. Los productos proporcionados por proveedores que controlan sus interfaces corresponden a la representación tradicional de la capa de aplicación y se encuentran en el nivel superior del modelo de referencia.
  • (5) Interfaces de dominio. Interfaces proporcionadas para servicios de dominio de aplicaciones, como especificaciones desarrolladas por la organización OMG para sistemas PDM.

Supongo que te gusta

Origin blog.csdn.net/weixin_30197685/article/details/132925466
Recomendado
Clasificación