Lección 5 Introducción a las representaciones externas de datos Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas Representación de la información Problema prueba.letra prueba.x struct { char letra; int x; } prueba; prueba.x=260; prueba.letra=’c’; 01100011 00000000 00000100 00000001 Máquina little endian, alineación a la palabra Universidad de Oviedo / Dpto. de Informática prueba.letra prueba.x 01100011 00000001 00000100 Máquina big endian, alineación al byte ATC-Distribuidas Soluciones • Crear una forma de representar la información, independiente de la arquitectura de las máquinas, y un lenguaje para definirla. – XDR (External Data Representation): ONC – NDR (Network Data Representation): DCE – CDR (Common Data Representation): Corba – ASN.1 (Abstract Syntax Notation 1) + BER (Basic Encoding Rules): ISO Lenguaje de definición de datos Universidad de Oviedo / Dpto. de Informática Codificación de los datos ATC-Distribuidas Ejemplo: ANS.1 y BER • ASN.1: Lenguaje abstracto para definir tipos y datos Nombre::= OCTET STRING Peso::= INTEGER {Nombre, ”Alfredo”} {Peso, 260} • BER: Reglas para codificar los datos ASN.1 en secuencias de bytes 04 07 41 6C 66 72 65 64 6F 02 02 01 04 Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas Codificación “TLV” de BER • En BER cada dato se codifica con una terna de valores: 1 2 3 4 5 – T: Tipo – L: Longitud (en bytes) – V: Valor BOOLEAN INTEGER BITSTRING OCTET STRING NULL ... etc 04 07 41 6C 66 72 65 64 6F 02 02 01 04 T=4 (Octet string) L=7 bytes V=ASCII de “Alfredo” Universidad de Oviedo / Dpto. de Informática T=2 (integer) L=2 bytes V=260, big endian ATC-Distribuidas Tipos de codificación • Explícita: – La codificación incluye el valor del dato, y también su tipo. – Ejemplo: BER (ASN.1) • Implícita: – La codificación sólo incluye el valor, no el tipo. – Ejemplo: XDR (se verá) Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas Implementación Definición de los datos Bibliotecas de conversión Compilador del Lenguaje de Datos Llama Declaraciones de tipos Incluye Llama Código de conversión (filtros) Programa en lenguaje X Lenguaje de definición de datos Compilador Ejecutable Lenguaje X de programación Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas Middleware • Software intermediario entre los componentes de un sistema distribuido. • Servicios proporcionados: – Representación común de la información • Lenguaje para especificar tipos • Implementación (codificación) de cada tipo • Herramientas de “conversión” – Invocación remota • Localización • Etc. (nombrado, seguridad...) Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas Ejemplos de middleware • ONC RPC (Sun) • DCE (Open Software Foundation) • CORBA (Object Management Group) • Java (Sun) • SOAP, XML-RPC, ... Universidad de Oviedo / Dpto. de Informática ATC-Distribuidas