Lección 5 Introducción a las representaciones externas de datos ATC-Distribuidas

Anuncio
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
Descargar