La relación entre com middleware corba y ellos
Cuando me enfrento a un pasante, mi dirección de investigación es 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. Cuando se trata de comprender el middleware Rara vez pienso en este tema: el middleware tiene su propia comprensión del hardware, los sistemas operativos y las plataformas de aplicaciones, y puede proteger sistemas operativos de diferentes naturalezas.
Una plataforma de sistema completa consta de un conjunto de middleware, normalmente integrado, que incluye una plataforma de desarrollo y una plataforma operativa. El grupo de middleware será normalmente al menos un middleware de comunicación. Middleware es un concepto utilizado en sistemas distribuidos.
El middleware protege la complejidad del sistema operativo subyacente, haciendo que el desarrollo de aplicaciones sea sencillo y unificado. Reduzca la complejidad de la programación (Hadoop es un buen ejemplo), concéntrese en su propio negocio, no hay transferencia de software ni duplicación de programas en diferentes sistemas, y la carga técnica se reduce considerablemente. El middleware integra sistemas de aplicaciones en lugar de un simple desarrollo, acorta el ciclo de desarrollo y también reduce la carga de trabajo de mantenimiento, operación y administración del sistema (no parece que escribir programas MPI directamente en Hadoop también se pueda ejecutar sin ningún mantenimiento adicional). -mecanismo tolerante con el que suena Hadoop satisface esto). Además, se reduce el coste total del ordenador.
El middleware es un problema que hay que afrontar para resolver los problemas de los sistemas informáticos distribuidos heterogéneos. El middleware proporciona una interfaz de programa y un protocolo estándar para llamadas a aplicaciones o, más precisamente, el proceso de servicio de middleware llama a la interfaz del programa de aplicación para completar la tarea.
Entre ellos: El middleware característico
se puede resumir en:
1. Satisfacer las necesidades de una gran cantidad de aplicaciones
Ejecutar en una variedad de plataformas de hardware y sistema operativo
Transparencia entre redes, aplicaciones o servicios en plataformas de hardware y sistema operativo, compatible con la informática distribuida p> p>
4Admite la interoperabilidad de protocolos estándar
5. Apoyar la portabilidad de 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 más importante que los sistemas operativos y los servicios de red. El middleware proporciona una definición de interfaz de aplicación de alto nivel relativamente estable, siempre que el middleware se actualice y mantenga. Las interfaces externas del software están definidas por la misma aplicación y no requieren prácticamente nada, protegiendo así 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, y se puede dividir en los siguientes. Varias categorías:
Llamada a procedimiento remoto (RemoteProcereCall, llamada a procedimiento remoto)
Middleware orientado a mensajes (middleware orientado a mensajes)
Proxy de solicitud de objeto (Object Request Agente)
Sus funciones:
Primero: proporcionar diferentes formas de servicios de comunicación, incluida sincronización, publicación de suscripción en cola, transmisión, estas plataformas de comunicación básicas. Se pueden establecer varios marcos para proporcionar servicios. para aplicaciones, monitoreo de procesamiento de transacciones en diferentes áreas, procesamiento de transacciones distribuidas, administrador de transacciones de objetos de acceso OTM.
Dos: el middleware en sí define la arquitectura de la aplicación y los componentes de servicio estándar de los campos correspondientes. El usuario solo necesita decirle al marco los eventos de interés y luego proporcionar el código para manejar estos eventos. Cuando ocurre un evento, el marco llama al código de usuario. Los usuarios no necesitan llamar al marco, y al programa de usuario no le importa la estructura del marco, las llamadas a la API del sistema durante la implementación, y el marco es responsable del desarrollo de aplicaciones basadas en middleware con buena escalabilidad, capacidad de administración, alta disponibilidad y portabilidad. .
2.1 Introducción a la clasificación:
2.1.1 Llamada a procedimiento remoto
RemoteProcereCall, la llamada a procedimiento remoto es un método ampliamente utilizado para aplicaciones distribuidas. La aplicación utiliza RPC para ejecutar "remotamente" un proceso en un espacio de direcciones diferente, que, de hecho, ejecuta la misma llamada local.
2.1.2 Middleware orientado a mensajes
MOM es un mecanismo de transmisión de mensajes confiable y eficiente, basado en el intercambio de datos independiente de la plataforma y la comunicación de datos del sistema distribuido integrado. Al proporcionar modelos de paso de mensajes y colas de mensajes, puede ampliar los entornos distribuidos, la comunicación entre procesos y admitir múltiples protocolos de comunicación, lenguajes, aplicaciones, plataformas de hardware y software. Los productos populares de middleware MOM incluyen IB? Serie MQ de M, :BEAMessageQ.
La tecnología de paso de mensajes y colas tiene tres características principales:
Los programas de comunicación pueden ejecutarse en diferentes momentos. Los programas se comunican entre sí directamente en la red, pero colocan mensajes indirectamente en la cola de mensajes porque. No existe una conexión directa entre programas. Por tanto, no se ejecutan simultáneamente. El programa de destino no necesita ejecutar el mensaje en una cola adecuada o se está ejecutando en absoluto, incluso si el programa de destino no significa que deba procesar el mensaje inmediatamente.
: Con respecto a la estructura de la aplicación de aplicaciones complejas, la Figura 2 no es vinculante. El procesamiento de la comunicación no solo puede ser una correspondencia uno a uno, sino también uno a uno y muchos a. -uno, o incluso una combinación de métodos. Los constructores para múltiples medios de comunicación no aumentan la complejidad de la aplicación.
3. Aislamiento de la programación y la complejidad de la red: un programa colocará un mensaje en la cola de mensajes, o eliminará un mensaje de la cola de mensajes, y comunicará todas las actividades relacionadas con él, como mantener la cola de mensajes, mantener la relación entre el programa y reiniciar. la red MOM y las tareas manejadas por la cola de mensajes en la red móvil no son llamadas directamente por otros programas y no implican comunicaciones de red complejas.
2.1.3 Agente de solicitud de objetos
Con el desarrollo de los tiempos, la tecnología de objetos y la tecnología de computación distribuida pueden formar una computación de objetos distribuida entre sí y convertirse en el núcleo del software actual. tecnología principal. A finales de 1990, el Grupo de Gestión de Objetos OMG Arquitectura de Gestión de Objetos OMA (Arquitectura de Gestión de Objetos), el Agente de Solicitud de Objetos (Object Request Agent) es el componente central de este modelo. Su función es proporcionar un marco de comunicación para solicitar y transferir objetos de forma transparente en un entorno informático distribuido heterogéneo. La especificación CORBA incluye todas las interfaces estándar de ORB. CORBA 1.1 se introdujo en 1991 y definió el lenguaje de descripción de interfaz OMGIDL y las API de interoperabilidad ORB específicas de objetos cliente/servidor compatibles. La especificación CORBA2.0 describe la interoperabilidad entre ORB de diferentes proveedores.
El Object Request Broker (ORB) es un bus de objetos. Es el núcleo de la especificación CORBA y define el mecanismo básico para la transparencia de objetos en un entorno heterogéneo. Es una comunicación entre objetos cliente/servidor. .Middleware de construcción de relaciones. El ORB permite que las solicitudes de objetos de otros objetos se realicen de forma transparente o acepte respuestas de otros objetos, que pueden estar ubicados localmente en una máquina remota. ORB se puede implementar para interceptar llamadas de solicitud y es responsable de encontrar el objeto solicitado, transmitir parámetros, llamar al método correspondiente y devolver el resultado. El objeto cliente se comunica y activa el mismo objeto servidor o almacena el objeto servidor. No conoce, ni necesita saber, el objeto servidor, en qué idioma está, en qué sistema operativo u otros componentes del sistema no forman parte. interfaz del objeto.
Vale la pena 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 un cliente o un servidor ORB. ambos. Cuando un objeto realiza una solicitud, está en la función de cliente y cuando recibe una solicitud, está en la función de servidor. La mayoría de los objetos desempeñan una función en el cliente que desempeña una función en el servidor. Además, nadie es responsable del transporte y la gestión del servidor, y existe una conexión directa entre el objeto cliente y servidor que solicita 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 programa de monitoreo de procesamiento de transacciones apareció por primera vez en la computadora central para brindar soporte para una operación confiable en entornos de procesamiento de transacciones a gran escala. Con el desarrollo de la tecnología informática distribuida, los sistemas de aplicaciones distribuidas requieren un procesamiento de transacciones a gran escala, como una gran cantidad de actividades comerciales clave de procesamiento de transacciones.
Comunidad de monitoreo de transacciones entre clientes y servidores, gestión y coordinación de transacciones, equilibrio de carga y recuperación de fallas 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 procesamiento de transacciones tiene las siguientes características:
Gestión de procesos, incluido el inicio de procesos del servidor, la asignación de tareas, la supervisión de su ejecución y el equilibrio de carga.
Gestión de transacciones, es decir, asegurar la atomicidad, coherencia, independencia y durabilidad de las transacciones en su seguimiento.
La gestión de la comunicación entre el cliente y el servidor proporciona una variedad de mecanismos de comunicación, incluidas sesiones de solicitud-respuesta, colas, publicación de suscripciones y difusión.
El seguimiento de transacciones proporciona servicios para un gran número de clientes, como sistemas de reserva de aviones. Si al servidor se le asignan los recursos necesarios para cada cliente, entonces el servidor se inundará (como se muestra en la Figura 2). Pero, de hecho, no todos los clientes necesitan solicitar servicios al mismo tiempo. Una vez que un cliente solicita un servicio, espera obtener una respuesta rápida. El monitor de procesamiento de transacciones proporciona un conjunto de servicios además del sistema operativo, administra y asigna los procesos de servicio correspondientes, de modo que el servidor pueda atender de manera efectiva grandes solicitudes de clientes dentro de recursos limitados del sistema.
: Desventajas del middleware
Los servicios de middleware más populares utilizan API y protocolos propietarios para permitir que aplicaciones de diferentes fabricantes se creen en un único producto. Lograr la interoperabilidad entre los productos de los fabricantes es difícil. Se implementan algunas plataformas de servicios de middleware, lo que limita la aplicación del trasplante entre sistemas heterogéneos. Los desarrolladores de aplicaciones que crean sus propias aplicaciones con estos servicios de middleware también corren riesgos considerables y, a menudo, necesitan reescribir sus sistemas a medida que evoluciona la tecnología. A medida que aumenta el nivel de abstracción de la computación distribuida en los servicios de middleware, los desarrolladores de aplicaciones deben enfrentar muchas decisiones de diseño difíciles. Por ejemplo, los desarrolladores también deben decidir sobre la asignación de funciones entre los lados del cliente y del servidor de las aplicaciones distribuidas. Por lo general, se refiere al servicio en el dispositivo de visualización del cliente, lo cual es conveniente para usar el servicio de datos en el servidor para cerrar la base de datos, pero no siempre es así, sin mencionar cómo se asignan otras aplicaciones, no es fácil. para determinar.