3.8 Interoperabilidad Introducción n Interoperabilidad entre distintos ORBs de distintos fabricantes n GIOP (General Inter-ORB Protocol) n n IIOP (Internet Inter-ORB Protocol) n n GIOP sobre TCP/IP ESIOPs (Environment-Specific Inter-ORB Protocols) n n n Protocolo abstracto que especifica el formato de transferencia de tipos IDL y un conjunto de formatos de mensajes para permitir que ORBs de distintos fabricantes pueden interoperar sobre un protocolo de transporte orientado a la conexión No siguen GIOP (porque hay una infraestructura subyacente que quieren aprovechar) DCE CIOP (DCE Common Inter-ORB Protocol) También está estandarizada la interoperabilidad con COM/DCOM GIOP (1) Formato de un mensaje GIOP n Cabecera (12 bytes) n Cuerpo (longitud variable) La cabecera especifica n n n Bytes 0..3: GIOP Bytes 4..5: versión del protocolo (ej.: 1.1) Byte 6: flags n n n n Bit menos significativo: big-endian o little-endian Segundo bit menos significativo: fragmento o { fin de fragmento / mensaje completo } Byte 7: tipo de mensaje Bytes 8-11: tamaño del mensaje (sin contar la cabecera) GIOP (2) n CDR (Common Data Representation) n n Define el formato binario en el que se transmiten los tipos IDL Soporta representación big-endian y little-endian n n n n El emisor especifica el tipo de orden de bytes El receptor cambia el orden de los bytes si es preciso Enfoque más eficiente que otras codificaciones (ej.: XDR) que transmiten siempre los datos en un determinado orden (ej.: big-endian) Los datos nunca se etiquetan n Los stubs y skeletons generados son consistentes con las definiciones IDL GIOP (3) n Tipos de mensajes Tipo de mensaje Request Emisor Reply Servidor CancelRequest Cliente LocateRequest Cliente LocateReply Servidor CloseConnection MessageError Cliente o Servidor Fragment Cliente o Servidor Cliente Cliente o Servidor GIOP (y 4) n Request n n Para invocar una operación remota o leer/escribir un atributo Entre otra información, el cuerpo del mensaje incluye n n n n n Identificador de petición Clave del objeto Nombre de operación Parámetros in e inout (en CDR) Reply n n Respuesta a un mensaje Request Entre otra información, el cuerpo del mensaje incluye n n Identificador de petición Valor de retorno, parámetros out e inout y posibles excepciones (en CDR) IIOP n n GIOP sobre TCP/IP Estructura básica de una IOR Clave del objeto Identificador de repositorio n Dirección de transporte Nombre del POA Identificador del objeto IIOP básicamente especifica el campo “dirección de transporte” n Máquina (nombre o dirección IP) y puerto Estructura completa de una IOR Id. repositorio n Datos para protocolo 1 Datos para protocolo 2 ... Datos para protocolo n Cada campo “datos para protocolo i” contiene información para contactar con el correspondiente objeto con un determinado protocolo n IIOP, DCE-CIOP, información propietaria (permite optimizaciones), información específica a servicios (ej.: seguridad), etc.