Red de conocimiento informático - Computadora portátil - La relación entre middleware y corba

La relación entre middleware y corba

Cuando me enfrento a un pasante, mis direcciones de investigación son el procesamiento de datos a gran escala, la computación distribuida y el middleware Hadoop. Parece que si estoy muy interesado en el middleware, pregúnteme directamente. Rara vez pienso en este tema: el middleware tiene su propio entendimiento, y el hardware, los sistemas operativos y las plataformas de aplicaciones pueden proteger sistemas operativos de diferentes naturalezas.

Una plataforma de sistema completa normalmente consta de un conjunto de middleware integrado, que incluye una plataforma de desarrollo y una plataforma de ejecución. Este conjunto de middleware suele incluir al menos un middleware de comunicación. Middleware es un concepto utilizado en sistemas distribuidos.

El middleware protege la complejidad del sistema operativo subyacente y logra un desarrollo de aplicaciones simple y unificado. Reduce la complejidad de la programación (Hadoop es un buen ejemplo) y se centra en su propio negocio. No hay transferencia de software ni duplicación de programas en diferentes sistemas, lo que reduce en gran medida la carga técnica. El middleware coloca aplicaciones en el sistema en lugar de un simple desarrollo, lo que acorta el ciclo de desarrollo y reduce la carga de trabajo de mantenimiento, operación y administración del sistema (esto no se puede sentir en Hadoop, también puede escribir programas MPI directamente. La operación no requiere ningún mantenimiento adicional. El mecanismo de tolerancia a fallos y la solidez de Hadoop satisfacen este punto). Además, reduce el costo total de inversión en computadora.

El middleware está diseñado para resolver un problema que es problemático y debe enfrentarse en sistemas informáticos distribuidos heterogéneos. El middleware proporciona interfaces y protocolos de programa estándar para llamadas de aplicaciones o, más precisamente, el proceso de servicio de middleware llama a la interfaz del programa de la aplicación para completar las tareas.

Entre ellas: las características del middleware

se pueden resumir en las siguientes:

1. Satisfacer las necesidades de un gran número de aplicaciones

En varios hardware Se ejecuta en plataformas de sistemas operativos

De forma transparente en redes, hardware de aplicaciones o servicios y plataformas de sistemas operativos, compatible con informática distribuida

Admite la interoperabilidad de protocolos estándar

p >

5. Admite interfaces y protocolos estándar

.

5. Apoyar la portabilidad de las interfaces estándar

El middleware se ha convertido en una parte importante de muchos esfuerzos de estandarización. Para el desarrollo de software de aplicaciones, el middleware es una parte más importante de los sistemas operativos y los servicios de red. El middleware proporciona definiciones de interfaz de aplicaciones de alto nivel relativamente estables, independientemente de cómo se reemplace el hardware de la computadora y el software del sistema subyacentes, siempre que el middleware se actualice. y mantenimiento, la definición de interfaz externa de middleware es casi innecesaria para el mismo software de aplicación, lo que protege importantes inversiones en desarrollo y mantenimiento de aplicaciones empresariales

.

: Clasificación del middleware

En un entorno distribuido, el middleware debe proporcionar servicios de comunicación. A este servicio lo llamamos plataforma. Según diferentes propósitos y mecanismos de implementación, se puede dividir en lo siguiente. categorías:

Middleware de llamadas remotas (RemoteProcereCall, RemoteProcereCall)

Middleware orientado a mensajes (Middleware orientado a mensajes)

Proxy de solicitud de objetos (Agente de solicitud de objetos)

Sus funciones:

Primero: proporcionar diferentes formas de servicios de comunicación hacia arriba, incluida la sincronización, la publicación de suscripción en cola y la transmisión. Estas plataformas de comunicación básicas se pueden integrar en Varios marcos que brindan servicios para aplicaciones. en diferentes áreas, como monitoreo del procesamiento de transacciones, procesamiento de transacciones distribuidas, administrador de transacciones de objetos de acceso OTM.

Dos: el middleware en sí define la estructura de campo correspondiente y los componentes de servicio estándar de la aplicación. Los usuarios solo necesitan informar al marco sobre los eventos de interés y luego proporcionar código para procesar estos eventos. Cuando ocurre un evento, el marco llama al código de usuario. Los usuarios no necesitan llamar al marco y los programas de usuario no necesitan preocuparse por la estructura, el proceso de implementación, las llamadas a la API del sistema, etc. del marco. El marco es responsable de completar el desarrollo de aplicaciones basadas en middleware y tiene buena escalabilidad. manejabilidad, alta disponibilidad y portabilidad.

2.1 Introducción a la clasificación:

2.1.1 Llamada a procedimiento remoto

La llamada a procedimiento remoto (RemoteProcereCall, llamada a procedimiento remoto) es un tipo de método de aplicación distribuida ampliamente utilizado . Una aplicación utiliza RPC para ejecutar "remotamente" un procedimiento almacenado en un espacio de direcciones diferente, ejecutando efectivamente la misma llamada local.

2.1.2 Middleware orientado a mensajes

MOM es un mecanismo de transmisión de mensajes confiable y eficiente que se puede utilizar para el intercambio de datos independiente de la plataforma y es compatible con la distribución basada en la comunicación de datos. sistema integrado. Al proporcionar modelos de mensajería y colas de mensajes, se puede extender a entornos distribuidos, comunicación entre procesos y admite múltiples protocolos de comunicación, idiomas, aplicaciones, plataformas de hardware y software. Los productos populares de middleware MOM incluyen MQSeries y BEAMessageQ de IB?M.

La tecnología de paso de mensajes y colas tiene tres características principales:

Los programas de comunicación pueden ejecutarse en diferentes momentos y los programas hablan directamente en la red, pero como no existe una conexión directa entre los programas, sino que habla indirectamente poniendo mensajes en una cola de mensajes. Por tanto, no se ejecutan simultáneamente. Para poner un mensaje en la cola adecuada, no es necesario que el programa de destino esté ejecutándose en absoluto, aunque el programa de destino no esté destinado a procesar el mensaje inmediatamente.

: Para aplicaciones con estructuras complejas, no hay restricciones en la Figura 2. El método de procesamiento de comunicación no solo puede ser correspondencia uno a uno, sino también uno a uno a uno a muchos. y muchos a uno, o incluso varias combinaciones de métodos. Múltiples constructores de métodos de comunicación no aumentan la complejidad de la aplicación.

3. Aislamiento del programa de la complejidad de la red: el programa coloca mensajes en la cola de mensajes o elimina mensajes de la cola de mensajes, y todas las actividades de comunicación relacionadas con esto, como mantener la cola de mensajes y mantener el programa. MOM no llama directamente a otros programas ni implica comunicaciones de red complejas, como la relación entre reiniciar la red y mover la cola de mensajes en la red para manejar tareas.

2.1.3 Agente de solicitud de objetos

Con el desarrollo de los tiempos, la tecnología de objetos y la tecnología informática distribuida se fusionaron para formar la informática de objetos distribuidos y se desarrollaron hasta convertirse en la corriente principal de la tecnología de software actual. dirección. A finales de 1990, el equipo de gestión de objetos propuso la arquitectura de gestión de objetos OMA (Arquitectura de gestión de objetos). El agente de solicitud de objetos es el componente central de este modelo. La especificación CORBA incluye todas las interfaces estándar para ORB. CORBA 1.1, introducido en 1991, definió el lenguaje de descripción de interfaz OMGIDL y la API de interoperabilidad ORB que admitía objetos específicos de cliente/servidor.

Object Request Broker (ORB) es el bus de objetos en el núcleo de la especificación CORBA. Define el mecanismo básico para que los objetos envíen solicitudes y reciban respuestas de forma transparente en entornos heterogéneos. a middleware de construcción relacional de objetos. ORB permite el envío transparente de solicitudes o respuestas desde máquinas locales a remotas u otros objetos que puedan ubicarse. La implementación de un ORB intercepta las llamadas de solicitud y es responsable de encontrar el objeto solicitado, pasar parámetros, llamar al método apropiado y devolver el resultado. El objeto cliente no sabe ni necesita saber en qué idioma está el objeto servidor, qué sistema operativo es u otros componentes del sistema que no forman parte de la interfaz del objeto cuando se comunica con el mismo objeto servidor y activa el mecanismo o almacena el objeto del servidor.

Cabe señalar que los roles de cliente y servidor solo se utilizan para coordinar la interacción entre objetos. Dependiendo de la situación, el ORB en el objeto puede ser el cliente, el servidor o incluso ambos. Son ambas cosas. Cuando un objeto realiza una solicitud, desempeña el papel de cliente y cuando recibe una solicitud, desempeña el papel de servidor. La mayoría de los objetos desempeñan el papel de cliente dentro del rol de servidor.

Además, ninguno de los objetos responsables del transporte y la gestión del servidor, o las conexiones directas entre clientes y servidores, solicitan el ORB, por lo que el ORB puede soportar estructuras más complejas que la simple arquitectura cliente/servidor soportada por RPC.

2.1.4 Monitor de procesamiento de transacciones

El Monitor de procesamiento de transacciones apareció por primera vez en el mainframe para brindar soporte para el funcionamiento confiable de entornos de procesamiento de transacciones a gran escala. Con el desarrollo de la tecnología informática distribuida, las aplicaciones distribuidas requieren un procesamiento de transacciones a gran escala, como una gran cantidad de actividades comerciales clave de procesamiento de transacciones. Sociedad de monitoreo de transacciones, gestión y coordinación de transacciones, equilibrio de carga y recuperación de fallas entre clientes y servidores para mejorar el rendimiento general del sistema. Puede considerarse como el "sistema operativo" para aplicaciones de procesamiento de transacciones. En términos generales, un monitor de transacciones tiene las siguientes características:

Gestión de procesos, incluido el inicio de procesos del servidor, la asignación de tareas, el seguimiento de la ejecución de tareas y el equilibrio de carga.

La gestión de transacciones significa garantizar la atomicidad, coherencia, independencia y durabilidad de las transacciones durante el seguimiento.

La gestión de la comunicación entre clientes y servidores proporciona una variedad de mecanismos de comunicación, incluidas sesiones de solicitud-respuesta, colas, publicación por suscripción y transmisiones.

El seguimiento de transacciones sirve a un gran número de clientes, como por ejemplo un sistema de reserva de aviones. Si al servidor se le asignan los recursos necesarios, se inundará para cada cliente (como se muestra en la Figura 2). Pero en realidad, no todos los clientes necesitan solicitar un servicio al mismo tiempo y, una vez que lo solicitan, esperan una respuesta rápida. El monitor de transacciones proporciona un conjunto de servicios además del sistema operativo para administrar y asignar procesos de servicio apropiados para que el servidor pueda atender de manera eficiente a grandes clientes con recursos del sistema y solicitudes de clientes limitados.

: Desventajas del middleware

Los servicios de middleware más populares utilizan API y protocolos propietarios, lo que hace que las aplicaciones de diferentes fabricantes se creen sobre productos de un solo fabricante. La interoperabilidad entre programas es difícil de lograr. Algunos servicios de middleware son implementados por la plataforma, lo que limita la portabilidad de aplicaciones entre sistemas heterogéneos. Los desarrolladores de aplicaciones también asumen riesgos considerables al crear sus propias aplicaciones utilizando estos servicios de middleware y, a medida que la tecnología evoluciona, a menudo necesitan reescribir sus propios sistemas. El nivel de abstracción de los servicios de middleware para la informática distribuida ha aumentado y los desarrolladores de aplicaciones deben enfrentar muchas opciones de diseño difíciles. Por ejemplo, los desarrolladores también deben distribuir la funcionalidad de las aplicaciones distribuidas en la toma de decisiones del lado del cliente y del servidor. Normalmente, el cliente consulta el servicio en el dispositivo de visualización para utilizar el servicio de datos en el servidor para cerrar la base de datos, pero este no es siempre el caso, y mucho menos cómo se distribuyen otras aplicaciones.