Download Plataformas de Distribución

Document related concepts
no text concepts found
Transcript
Plataformas de Distribución
Prog. Distribuida
bajo Internet
Plataformas de Distribución

Introducción
–
–

Bajo Nivel
–
–

–
Llamada a procedimiento remoto (RPC)
Invocación a Objeto Remoto (ROI)
Alto Nivel
–
–
2
Sockets
PVM
Nivel Intermedio
–

Modelo ISO/OSI
Niveles de abstracción
Erlang
Oz
16-2-2006
Prog. Distribuida bajo Internet
Modelo ISO

Descomposición en niveles
–
–
Cada nivel trata un aspecto específico de la comunicación
Cada nivel usa el inferior, da soporte al superior, incluye su
cabecera




Bajo nivel (físico, enlace, red)
Transporte
Alto nivel (sesión, presentación, aplicación)
Middleware.- sustituye a sesión y presentación. Ofrece
protocolos a las aplicaciones
–
Autenticación, compromiso atómico, reservas distribuidas,
comunicación de alto nivel
3
16-2-2006
Prog. Distribuida bajo Internet
Niveles ISO

Físico.- transmite bits
–

Enlace.- comunicación libre de errores
–



Divide mensaje en paquetes, retransmite los que no llegan a destino
Sesión.- Control conversación, facilidades de sincronización
–

Tramas de bits, detección errores, mensajes control, retransmisión
Red.- encamina paquetes entre máquinas (ej.- IP)
Transporte.- asegura la fiabilidad de las comunicaciones
–

¿velocidad? ¿Conectores? ¿señales eléctricas?
Ej TCP (mensajes fiables con conexión), UDP (no fiables, sin conexión)
Presentación.- Interpreta significado de la información recibida
Aplicación.- protocolos que dotan de funcionalidad al sistema
–
Ej FTP, HTTP, Mail, etc.
4
16-2-2006
Prog. Distribuida bajo Internet
Niveles Abstracción

Plataforma de distribución = soft que proporciona transparencia a las
aplicaciones
–
–

Bajo Nivel (ej.- sockets, PVM)
–
–
–

Proporciona nivel de transporte y sesión
Permite intercambio de datos no interpretados entre componentes
Componentes en direcciones conocidas
Nivel Intermedio (Ej.- RPC, RMI, CORBA, DCOM, .NET)
–
–

Abstracciones para direccionamiento, sincronización, representación datos
Facilidades para movilidad, calidad de servicio e interoperabilidad
Proporciona niveles de presentación y sesión
Automatiza la codificación y transferencia de parámetros
Alto Nivel (ej.- Erlang, Oz)
–
–
–
Proporcionan sesión, presentación y aplicación
Los mecanismos de comunicación forman parte integral del sistema
Asociados a lenguajes y entorno de programación concretos
5
16-2-2006
Prog. Distribuida bajo Internet
Niveles Abstracción (cont.)
Remote Procedure Call:
hides communication details behind
a procedure call and helps bridge
heterogeneous platforms
sockets:
operating system level interface to the
underlying communication protocols
TCP, UDP:
User Datagram Protocol (UDP) transports
data packets without guarantees
Transmission Control Protocol (TCP)
verifies correct delivery of data streams
Remote Procedure Call
sockets
TCP, UDP
Internet Protocol (IP):
moves a packet of data from one node
to another
Internet Protocol (IP)
6
16-2-2006
Prog. Distribuida bajo Internet
Bajo nivel.- Sockets

Disponible en cualquier plataforma
–
–

Proporcionan interfaz de programación para
–
–

Bajo coste (0 en internet)
Base para plataformas de mayor nivel
TCP/IP.- orientada a conexión (flujo de datos)
UDP/IP.- sin conexión, no fiable
Direccionamiento: (nombre host, port)
–
–
–
Port = 0..2^16-1
En redes locales puede usarse multicast (grupo de receptores)
Los participantes consensúan nombres de máquinas y nums port



7
Mismos números de port en todos los nodos
Mapping entre nombres de servicio y números de port
Los más conocidos registrados en internet (ej news:119, http:80, date:13,..)
16-2-2006
Prog. Distribuida bajo Internet
Bajo nivel.- Sockets (cont.)

La aplicación debe:
–
–
Establecer protocolo
Empaquetar/desempaquetar datos (se transfieren
bytes no interpretados)



El receptor debe saber cómo interpretar los datos
En entornos heterogéneos, consensuar formato común
(ej.- tiras)
Servidor = proceso que espera conexiones
(solicitudes) en un port
8
16-2-2006
Prog. Distribuida bajo Internet
Bajo nivel: PVM

Plataforma para procesamiento paralelo
–
–

Organización jerárquica de tareas
–
–

Asume estaciones de trabajo homogéneas en red
Cada host ejecuta un demonio PVM
Toda tarea posee un identificador único
Cada tarea puede ejecutarse en cualquier host
Diseño Maestro/Esclavo. La tarea maestra:
–
–
–
Arranca varias tareas esclavas, que se ejecutan en paralelo
Le pasa a cada una parte de los datos
Recoge los resultados parciales y construye resultado final
9
16-2-2006
Prog. Distribuida bajo Internet
Bajo nivel: PVM (cont.)

Oculta la red
–
Direccionamiento basado en identificadores de
tareas

–

El emisor envía el mensaje de forma asíncrona a una o
más tareas (identificadores)
Codificación común de los datos
Pero no los protocolos (la aplicación debe
interpretar los mensajes)
10
16-2-2006
Prog. Distribuida bajo Internet
Nivel Intermedio


Facilitan desarrollo de sistemas distribuidos
Cliente/Servidor
Extienden lenguajes de programación existentes
–
–

Utilizan las mismas abstracciones (procedimiento, objeto)
Invocante e invocado pueden residir en nodos distintos
Nueva capa entre aplicación y red. Oculta:
–
–
Detalles de comunicación
Mecanismo de transferencia de datos


11
Codificación y transferencia de parámetros y resultados
Referencias
16-2-2006
Prog. Distribuida bajo Internet
Nivel Intermedio (cont.)

Propuestas
–
–
RPC (invocación de procedimiento remoto)
ROI (invocación de método sobre objeto remoto)



12
Estándar (multilenguaje).- CORBA
Específico para Java.- RMI, EJB
Específico para Windows, multilenguaje.- .NET
16-2-2006
Prog. Distribuida bajo Internet
RPC

Procedimiento
–
–
Abstracción habitual en programación
Caja negra.- argumentos [proc] resultado



El programa invocante pasa args y espera respuesta
El procedimiento invocado se ejecuta y devuelve resultado
Podemos situar invocante y procedimiento en nodos
distintos, unidos por una red
–
–
–
Se denomina Invocación de Procedimiento Remoto
Un mecanismo de invocación oculta la interacción entre
nodos
Buscamos transparencia de ubicación (misma sintaxis para
invocar procedimiento local y remoto)
13
16-2-2006
Prog. Distribuida bajo Internet
ROI

Similar a RPC
–
–

También utiliza el modelo Cliente/Servidor
Al usar objetos, podemos proporcionar servicios con estado
Invoca un método con transparencia de ubicación
–
–
Si el objeto es local, invocación normal
Si es remoto



14
Objeto remoto y stub cliente (proxy) implementan el mismo
interfaz
El proxy envía la invocación al stub servidor (esqueleto)
El esqueleto invoca el método sobre el objeto
16-2-2006
Prog. Distribuida bajo Internet
ROI.- ORB

ORB (Object Request Broker)
–
–
Gestor de invocaciones a objetos
Proporciona servicios usados por proxies,
esqueletos, y código de las aplicaciones

–
Básicamente dirige las invocaciones a los esqueletos
apropiados en el nodo adecuado
Todo objeto invocable debe registrarse en el ORB

15
El ORB crea el esqueleto
16-2-2006
Prog. Distribuida bajo Internet
Alto Nivel: Erlang

Lenguaje abierto desarrollado por Ericsson
–
–

Para su OTP (infraestructura para aplicaciones de telefonía)
Util para sist. distribuidos tolerantes a fallos con ‘soft real-time’
Características
–
–
Funcional (similar a Lisp)
Proporciona procesos ligeros




16
Sólo se comunican mediante mensajes
Pueden lanzarse procesos en otros nodos
Transparencia de ubicación (direc. basado identidad del proceso)
Dispone de enlace y carga dinámicos (facilita migración)
16-2-2006
Prog. Distribuida bajo Internet
Alto Nivel: Erlang (cont.)
–
Facilita la programación dirigida por eventos


–
Sistema concurrente como colección de autómatas finitos
intercomunicados
Favorece el desarrollo de sistemas fiables
Recuperación ante fallos

El sistema envía mensajes especiales si un proceso remoto
finaliza o falla
–

Gestión del tiempo real pasiva
–
17
Podemos diseñar mecanismos de recuperación ante fallos
Limitamos el tiempo de espera a un mensaje, pero no
controlamos el envío de mensajes
16-2-2006
Prog. Distribuida bajo Internet
Alto Nivel: Oz


Es un lenguaje académico (investigación)
Es concurrente y multiparadigma. Soporta:
–
–
–

Programación declarativa
Programación funcional
Programación Orientada a Objetos
Proporciona un mecanismo de paso de
mensajes asíncrono entre tareas
18
16-2-2006
Prog. Distribuida bajo Internet
Alto Nivel: Oz (cont.)

Proporciona Transparencia de:
–
–
Acceso
Ubicación

–
–
Concurrencia
Migración



Invocación de métodos idéntica para objeto local y remoto
Utiliza movilidad de objetos
Los procesos migran de forma transparente al nodo que los
utiliza de forma activa
Dispone de soporte parcial para detectar y recuperar
fallos
19
16-2-2006
Prog. Distribuida bajo Internet