“Conocimiento Hardware>Equipos de Red

¿Es posible conectarse a través de una red dos componentes del sistema distribuido escritos en diferentes idiomas utilizando un sistema basado en objetos?

2013/10/20
Sí, es posible conectar dos componentes de un sistema distribuido escrito en diferentes idiomas utilizando un sistema basado en objetos, pero requiere una consideración cuidadosa y el uso de tecnologías intermedias. Una interacción directa de objeto a objeto a través de los límites del lenguaje no es factible porque las representaciones de memoria interna y los diseños de objetos difieren.

Así es como puedes lograr esto:

* Llamadas de procedimiento remoto (RPC): Este es un enfoque común. El componente de un idioma expone su funcionalidad como procedimientos (o métodos) que se pueden llamar remotamente. Un marco RPC (como GRPC, Apache Thrift u otros) maneja el mariscal (convertir los datos en un formato transportable en red) y la desencadenación (reconstruyendo los datos en el extremo receptor). El marco abstrae las diferencias de idioma. El cliente en el otro idioma hace llamadas a estos procedimientos remotos como si fueran locales.

* colas de mensajes (por ejemplo, Rabbitmq, Kafka): Los componentes se comunican asincrónicamente intercambiando mensajes. Cada componente esializa sus datos (generalmente en JSON o en un formato similar) y los envía a la cola. El otro componente recibe el mensaje, lo deserializa y lo procesa. Este desacoplamiento hace que la elección del lenguaje sea menos crítica. Los conceptos basados ​​en objetos aún se pueden usar * dentro * de cada componente, pero la comunicación entre componentes se basa en mensajes.

* API RESTFUL: Este es un enfoque ampliamente utilizado para los servicios web. Un componente expone su funcionalidad a través de puntos finales HTTP (URL) a los que el otro componente puede acceder al lenguaje de programación. Los datos generalmente se intercambian usando JSON o XML. Nuevamente, mantiene un diseño orientado a objetos dentro de cada componente, pero la comunicación entre componentes se basa en formatos de datos estandarizados.

* Buffers de protocolo (ProtoBuf): Un mecanismo neutral de lenguaje neutral para la plataforma para serializar datos estructurados. Defina estructuras de datos una vez, y ProTobuf genera código para varios idiomas (incluidos Python, Java, C ++, GO, etc.). Esto permite un intercambio de datos eficiente y robusto entre componentes escritos en diferentes idiomas.

Consideraciones clave:

* Serialización/deserialización de datos: Es crucial elegir el formato de serialización correcto (JSON, XML, Buffers de protocolo, Avro, etc.). Afecta el rendimiento, el tamaño de los datos transmitidos y la facilidad de uso.

* Manejo de errores: El manejo de errores robusto es esencial en los sistemas distribuidos, especialmente cuando se cruzan los límites del lenguaje.

* Protocolos de red: Es probable que tenga que tratar con los protocolos de red (TCP/IP, UDP, etc.) en algún nivel, aunque los marcos RPC a menudo lo abstienen.

* Versión: Si las interfaces entre componentes cambian con el tiempo, necesita un mecanismo para administrar la compatibilidad de la versión.

En resumen, si bien no puede usar directamente las referencias de objetos en todos los idiomas en un sistema distribuido, puede lograr el * efecto * de la interacción basada en objetos mediante el uso de patrones de comunicación y middleware apropiados. La elección de la tecnología depende de factores como los requisitos de rendimiento, la complejidad y la escala del sistema.

Equipos de Red
¿La administración de red es la instalación de diseño y el soporte de una red su software de hardware verdadero o falso?
Instrucciones para la instalación de un Spectra Radio Motorola
HS2300 Programas de banda ancha HSDPA HP
Cómo deshabilitar Lenovo Wireless
¿Qué sistema de Windows OS comenzó IPCONFIG?
Cómo establecer una contraseña para un WRT54GS
¿Cuál es el tipo más común de adaptador de red?
¿Qué es un router ladrillera
Conocimiento de la computadora © http://www.ordenador.online