PDF de programación - Middleware

Imágen de pdf Middleware

Middlewaregráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 6 de Marzo del 2018)
1.311 visualizaciones desde el 6 de Marzo del 2018
177,6 KB
31 paginas
Creado hace 22a (04/03/2002)
Middleware

] Introducción
] Representación externa de datos y empaquetado
] Protocolos de petición respuesta
] Comunicación en grupo
] Comunicación entre objetos distribuidos
] Llamada a un procedimiento remoto
] Eventos y notificaciones
] Caso de estudio: Java RMI

USAL-DIA

Ampliación de Sistemas Operativos 3.1

Introducción: capas de middleware

Aplicaciones, servicios

RMI y RPC

Protocolo petición-respuesta

Capas de
0LGGOHZDUH

Empaquetado y representación externa de datos

UDP y TCP

USAL-DIA

Ampliación de Sistemas Operativos 3.2

1

Representación externa de datos y empaquetado (I)

] “Aplanado” de estructuras de datos

\ Estructura de datos (programas en ejecución) Î Secuencia de bytes

(mensajes)

] Problemas

\ Estructuras con distintos tipos de datos primitivos
\ Representación de números en coma flotante
\ Códigos para representar caracteres (ASCII, Unicode)
\ Ordenación de números enteros (big-endian, litte-endian)

USAL-DIA

Ampliación de Sistemas Operativos 3.3

Representación externa de datos y empaquetado (II)

] Posibilidades

\ Los valores se convierte a un formato externo acordado antes de la

transmisión y se revierten al formato local en la recepción

\ Los valores se transmiten según el formato del emisor, junto con una

indicación del formato utilizado, y el receptor los convierte si es necesario

] Representación externa de los datos

\ Estándar acordado para la representación de estructuras de datos y valores

primitivos

] Empaquetado (PDUVKDOOLQJ)

\ Tomar una colección de ítemes de datos y ensamblarlos de un modo

adecuado para la transmisión de un mensaje

] Desempaquetado (XQPDUVKDOOLQJ)

\ Generar lo valores primitivos desde la representación de datos externa y

reconstruir las estructuras de datos

USAL-DIA

Ampliación de Sistemas Operativos 3.4

2

Posibilidades de rep. ext. datos y empaquetado

] XDR

\ eXternal Data Representation
\ RFC1832
\ Sun NFS

] CORBA CDR

\ Common Data Representation
\ Definido en CORBA 2.0
\ Object Management Group (OMG)

] Serialización de objetos en Java RMI

\ Java Object Serializacion Specification

USAL-DIA

Ampliación de Sistemas Operativos 3.5

Tipos en CORBA CDR

] Puede representar todos los tipos de datos que se pueden

utilizar como argumentos o como resultados en las
invocaciones remotas de CORBA
\ Tipos primitivos

[ Short (16 bits), long (32 bits), unsigned short, unsigned long, float (32

bits), double (64 bits), char, boolean, octet (8 bits) y any

\ Tipos compuestos

7LSR

VHTXHQFH

VWULQJ

DUUD\

VWUXFW

HQXPHUDWHG

XQLRQ

5HSUHVHQWDFLyQ

longitud (unsigned long-entero largo sin signo-) seguida de los elementos en
orden.
longitud (unsigned long) seguida de los caracteres en orden (también puede
tener caracteres anchos-2bytes-).
elementos de la cadena en orden (no se especifica la longitud porque es fija).
en el orden de declaración de los componentes.
unsigned long (los valores son especificados por el orden declarado).
etiqueta de tipo seguida por el miembro seleccionado.

USAL-DIA

Ampliación de Sistemas Operativos 3.6

3

Mensaje CDR CORBA

3RVLFLyQ HQODVHFXHQFLD
GHE\WHV

4 bytes

0–3
4–7
8–11
12–15
16–19
20-23
24–27

5
"Pére"
"z___"

6

"Madr"
”id__"
1934

1RWDVVREUH
ODUHSUHVHQWDFLyQ

/RQJLWXG GHOVWULQJ

<<3pUH]>>

/RQJLWXG GHOVWULQJ
<<0DGULG¶>>

8QVLJQHGORQJ

La forma aplanada representa una estructura 3HUVRQD con el valor: { <<Pérez>>, <<Madrid>>, 1934}

USAL-DIA

Ampliación de Sistemas Operativos 3.7

Empaquetado en CORBA: IDL

] Generación automática del empaquetado a partir de las
especificaciones de los tipos de datos de los ítemes que
tienen que ser transmitidos en un mensaje

] CORBA IDL (Interface Definition Language)

struct Persona

string nombre;
string lugar;
long año;

};

] Interfaz del compilador CORBA

USAL-DIA

Ampliación de Sistemas Operativos 3.8

4

Serialización de objetos en Java (I)

] En Java RMI, tanto los objetos como los datos primitivos
pueden ser pasados como argumentos y resultados de la
invocación de métodos

] Objeto = instancia de una clase Java

public class Persona implements Serializable {

private String nombre;
private String lugar;
private int año;
public Persona(String unNombre, String unLugar, int unAño) {
nombre = unNombre;
lugar = unLugar;
año = unAño;

};

USAL-DIA

Ampliación de Sistemas Operativos 3.9

Serialización de objetos en Java (II)

] Serialización

\ Consiste en “aplanar” un objeto o un conjunto relacionado de objetos

para obtener una forma lineal adecuada para ser almacenada en
disco o para ser transmitida en un mensaje, por ejemplo como
argumento o resultado de un RMI

] Deserialización

\ Consiste en restablecer el estado de un objeto o un conjunto de

objetos desde su estado lineal

USAL-DIA

Ampliación de Sistemas Operativos 3.10

5

Serialización de objetos en Java (III)

Persona p = new Persona(“Pérez”, “Madrid”, 1934);

Resultado simplificado

9DORUHVVHULDOL]DGRV

Persona

3

Número de versión de 8-bytes
java.lang.String
nombre:

int año

1934

5 Pérez

6 Madrid

java.lang.String
lugar:

([SOLFDFLyQ

1RPEUH GHODFODVHQ~PHUR
GHYHUVLyQ
1~PHURWLSR \QRPEUH GHODV
YDULDEOHVGHLQVWDQFLD
9DORUHV GHODV YDULDEOHVGH
LQVWDQFLD

(cid:127) Serialización

(cid:127) Crear una instancia de la clase ObjectOutputStream
(cid:127) Invocar al método writeObject, pasando Persona como argumento

(cid:127) Deserialización

(cid:127) Crear una instancia de la clase ObjectInputStream
(cid:127) Invocar al método readObject

USAL-DIA

Ampliación de Sistemas Operativos 3.11

Protocolo petición-respuesta (I)

&OLHQWH

6HUYLGRU

KD]2SHUDFLRQ

(espera)

(continuación)

0HQVDMH

SHWLFLyQ

0HQVDMH

UHVSXHVWD

GDPH3HWLFLRQ
ejecución del
método sobre

el objeto

seleccionado

HQYLD5HVSXHVWD

USAL-DIA

Ampliación de Sistemas Operativos 3.12

6

Protocolo petición-respuesta (II)

SXEOLFE\WH>@KD]2SHUDFLRQ 5HPRWH2EMHFW5HI RLQWLG0HWRGRE\WH>@DUJXPHQWRV

envía un mensaje de petición al objeto remoto y recibe la respuesta.
Los argumentos especifican el objeto remoto, el método a invocar y los
argumentos de ese método.

SXEOLFE\WH>@GDPH3HWLFLRQ  

adquiere una petición del cliente a través del puerto del servidor.

SXEOLFYRLGHQYLD5HVSXHVWD E\WH>@UHVSXHVWD,QHW$GGUHVVKRVW&OLHQWHLQWSXHUWR&OLHQWH 

envía el mensaje de respuesta al cliente a su dirección de Internet y a su puerto.

tipoMensaje
idPeticion
referenciaObjeto
idMetodo
argumentos

LQW  3HWLFLyQ 5HVSXHVWD
LQW
5HPRWH2EMHFW5HI
LQW R0HWKRG
FDGHQD GHE\WHV

USAL-DIA

Ampliación de Sistemas Operativos 3.13

Modelo de fallos del protocolo petición-respuesta (I)

] Tiempo de espera límite
] Eliminación de mensajes de petición duplicados
] Pérdida de mensajes de respuesta
] Historial

USAL-DIA

Ampliación de Sistemas Operativos 3.14

7

Modelo de fallos del protocolo petición-respuesta (II)

USAL-DIA

Ampliación de Sistemas Operativos 3.15

Modelo de fallos: idempotencia

] Operación idempotente

\ Operación que puede ser llevada

a cabo repetidamente con el
mismo efecto que si hubiera sido
ejecutada exactamente una sola
vez

USAL-DIA

Ampliación de Sistemas Operativos 3.16

8

Modelo de fallos: historial

] Historial o histórico

\ Estructura que contiene el

registro de los mensajes de
respuesta que han sido
transmitidos

\ El propósito es permitir que el
servidor pueda retransmitir los
mensajes de respuesta cuando
los clientes lo soliciten

\ Problemas del coste de

almacenamiento

USAL-DIA

Ampliación de Sistemas Operativos 3.17

Semánticas de invocación

0HGLGDVGHWROHUDQFLDDIDOORV

6HPiQWLFDV
GHLQYRFDFLyQ

5HWUDQVPLVLyQGH
PHQVDMHGHSHWLFLyQ

)LOWUDGR

GHGXSOLFDGRV

5HHMHFXFLyQGHOSURFHGLPLHQWR
RUHWUDQVPLVLyQGHODUHVSXHVWD

No





No procede

No procede

3XGLHUDVHU

No



Reejecutar el procedimiento

$OPHQRVXQDYH]

Retransmitir respuesta &RPRPi[LPRXQDYH]

USAL-DIA

Ampliación de Sistemas Operativos 3.18

9

Protocolos de intercambio de RPC: R

] Protocolo de petición (R: UHTXHVW)
] P.ej. RPCs asíncronas
] Semántica “pudiera ser”

USAL-DIA

Ampliación de Sistemas Operativos 3.19

Protocolos de intercambio de RPC: RR

] Protocolo de petición-respuesta

(RR: UHTXHVWUHSO\)

] Programación de WLPHRXWV y

reintentos

] Semántica “al menos una vez”, si

no se filtran los reintentos

] Semántica “como máximo una

vez” si se filtran los reintentos

USAL-DIA

Ampliación de Sistemas Operativos 3.20

10

Protocolos de intercambio de RPC: RRA

] Protocolo de petición-respuesta

(RRA: UHTXHVWUHSO\
DFNQRZOHGJHPHQW UHSO\)

] Semántica “como máximo una

vez”

] Útil para gestión de historial

USAL-DIA

Ampliación de Sistemas Operativos 3.21

Comunicación en grupo
  • Links de descarga
http://lwp-l.com/pdf9252

Comentarios de: Middleware (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad