En informática distribuida , un intermediario de solicitud de objetos ( ORB ) es un concepto de middleware que permite realizar llamadas a programas de una computadora a otra a través de una red informática , proporcionando transparencia de ubicación a través de llamadas a procedimientos remotos . Los ORB promueven la interoperabilidad de los sistemas de objetos distribuidos, permitiendo que dichos sistemas se construyan uniendo objetos de diferentes proveedores, mientras las diferentes partes se comunican entre sí a través del ORB. Common Object Request Broker Architecture ) estandariza la forma en que se puede implementar ORB.
Se supone que los ORB manejan la transformación de estructuras de datos en proceso hacia y desde la secuencia de bytes sin procesar, que se transmite a través de la red. Esto se llama marshalling o serialización . Además de reunir datos, los ORB suelen exponer muchas más funciones, como transacciones distribuidas , servicios de directorio o programación en tiempo real. Algunos ORB, como los sistemas compatibles con CORBA , utilizan un lenguaje de descripción de interfaz para describir los datos que se transmitirán en llamadas remotas. [1] [2]
En los lenguajes orientados a objetos (.por ejemplo, Java), un ORB en realidad proporciona un marco que permite utilizar objetos remotos a través de la red, de la misma manera que si fueran locales y parte del mismo proceso . En el lado del cliente, se crean e invocan los llamados objetos stub , que sirven como la única parte visible y utilizada dentro de la aplicación cliente. Después de invocar los métodos del stub, el ORB del lado del cliente realiza la clasificación de los datos de invocación y reenvía la solicitud al ORB del lado del servidor. En el lado del servidor, ORB localiza el objeto objetivo, ejecuta la operación solicitada y devuelve los resultados. Al tener los resultados disponibles, el ORB del cliente realiza la clasificación y devuelve los resultados al código auxiliar invocado, poniéndolos a disposición de la aplicación del cliente. Todo el proceso es transparente, lo que da como resultado que los objetos remotos aparezcan como si fueran locales. [1]