0% encontró este documento útil (0 votos)
18 vistas10 páginas

Arquitecturas en Sistemas Distribuidos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas10 páginas

Arquitecturas en Sistemas Distribuidos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Distribuidos

(Arquitecturas)

Sistemas Distribuidos II-1

Arquitecturas
• Los SD son los sistemas de software más complejos
– Nortel Networks crea switches los cuales pueden contener entre 25-30
millones de líneas de código, interviniendo 3000 desarrolladores de
software, y con un ciclo de vida de 20 años para actualizar.
– En Motorola, el 20% de sus ingenieros producen hardware, 80% produce
software.
– En este tipo de software hay materia para toda clase de problemas de
ingeniería de software.
• Investigación de arquitectura de software para tratar los retos de
diseño
– “... Incluye la organización de un sistema como la composición de
componentes; control global de estructuras; los protocolos para
comunicación, sincronización, y acceso a datos; la asignación de
funcionalidad para diseñar elementos; la composición de diseño de
elementos; distribución física; escalamiento y desempeño; dimensiones
de evolución; y selección de alternativas de diseño. Este es el nivel de
diseño arquitectura de software.” [Garlan y Shaw]
• Algunos paradigmas de arquitecturas pertinentes para SD
– Capas
– Cliente - Servidor

Sistemas Distribuidos II-2


Capas
• Idea básica
– Desmembrar la complejidad de sistemas mediante el diseño en capas y
servicios
• Capas: grupo de funcionalidades fuertemente relacionadas y altamente
coherentes
• Servicios: funcionalidades proporcionadas a capas superiores

Capa n+1
Servicio-n

Capa n
Servicio-n

Capa n-1
– Ejemplos de arquitecturas en capas
• Sistemas operativos (kernel, otros servicios), históricamente: los sistemas
operativos.
• Arquitecturas de protocolos de red
Sistemas Distribuidos II-3

Cliente-Servidor
• Estructura típica en capas de un SD

Applications, services

Middleware

Operating system

Plataforma

Computer and network hardware

– Plataforma: Hardware y sistema operativo


• Windows NT / Procesador Pentium
• Solaris / Procesador SPARC
– Middleware: logra trasparencia en la heterogeneidad en el nivel de plataforma
• Logra comunicación y compartición de recursos
– Ej. Invocación de métodos remotos
• Ejemplos
– CORBA (OMG), DCOM (Microsoft)
– RM-ODP (ITU-T/ISO)
– Invocación de Métodos Remotos Java (SUN)
– Servicios Web
• Nota: no todas las funciones relacionadas con comunicación puede ser abstractas.

Sistemas Distribuidos II-4


Cliente-Servidor
• Modelo básico

Client invocation Server


invocation

result result
Server

Client
Key:
Process: Computer:

– Cliente: el proceso requiere acceder datos, utilizar recursos o ejecutar


operaciones en una computadora diferente
– Servidor: Proceso maneja datos y otros recursos compartidos, permite al cliente
acceder a recursos y ejecutar cómputos
– Interacción: invocación / par de mensajes resultantes
– Ejemplo
• Servidor http: cliente (navegador) página solicitada, servidor entrega página
– Servicios de caching (servidores proxy)
• Caching de páginas Web frecuentemente utilizadas
– Procesos pares (no cliente-servidor: peer-to-peer)
• Procesos que tienen en gran parte similitudes de funcionalidad
Sistemas Distribuidos II-5

Cliente-Servidor
• Variantes
– Servicios proporcionados por múltiples servidores
Service

Server

Client

Server

Client
Server

– Ejemplos: muchos servicios de comercio Web están implementados en


diferentes servidores
– Motivación
• Desempeño (ej. cnn.com, servidores para descarga, etc.)
• Confiabilidad
– Los servidores mantienen bases de datos replicadas o distribuidas
Sistemas Distribuidos II-6
Cliente-Servidor
• Variantes
– Servidores proxy: suministrar replicación/distribución trasparente

Client Web
server
Proxy
server

Client Web
server

– Caching
• Los servidores proxy mantienen caches, como almacenes de recursos
solicitados recientemente
• Utilizados frecuentemente en motores de búsqueda:

Sistemas Distribuidos II-7

Cliente-Servidor
• Más variantes de modelo Cliente- Servidor
– Código Móvil
• Código enviado a un proceso cliente para realizar una tarea específica
• Ejemplos
– Applets
– Mensajes Activos(contiene código de protocolo de comunicación)
• Agentes Móviles
– Programa ejecutado (código + datos), migración entre procesos, realizando una
tarea autónoma, frecuentemente en representación de otro proceso
– ventajas: flexibilidad, ahorro en costo de comunicación
– Merados virtuales, programas gusano
• Clientes delgados
– Ejecutar interfaces de ventanas localmente mientras la aplicación se ejecuta en el
servidor
– ejemplo: servidores X11 (corren del lado de la aplicación cliente)
• Dispositivos portátiles para cómputo móvil
– personal digital assistants (PDAs)
– Como se conectan a internet
• wireless LANs/ MANs
• wireless Personal Area Networks

Sistemas Distribuidos II-8


Cliente-Servidor
Music
service Alarm
gateway service
Internet

Hotel wireless
Discovery network
service
Camera

TV/PC Guests
Laptop PDA devices

• Más variantes del modelo Cliente- Servidor


– Gestión espontánea de red
• Características
– W-LAN se enfrentan a constantes cambios de dispositivos móviles heterogéneos
– Dispositivos vagando en ambientes W-LAN heterogéneos
• Beneficios
– no se requiere conexión con cable
– Fácil acceso a servicios disponibles localmente

Sistemas Distribuidos II-9

Cliente-Servidor
Music
service Alarm
gateway service
Internet

Hotel wireless
Discovery network
service
Camera

TV/PC Laptop Guests


PDA devices
• Más variantes del modelo Cliente- Servidor
– Gestión espontánea de red
• Retos
– Soporte para conexiones convenientes e integración:
» Internet asume dispositivos con dirección IP en redes fijas
» Posible solución: asignación dinámica de direcciones IP
» Problemas: como encontrar dispositivos si estos son servidores
– Conexión intermitente de dispositivos
– Privacidad
– Seguridad

Sistemas Distribuidos II-10


Cliente-Servidor
Music
service Alarm
gateway service
Internet

Hotel wireless
Discovery network
service
Camera

TV/PC Laptop Guests


PDA devices
• Más variantes del modelo Cliente- Servidor
– Gestión espontánea de red
• Descubrimiento de servicios
– Servicios disponibles en la red
– Sus propiedades, y como accederlos (incluyendo información específica de drivers)
• Interfaces para descubrir servicios
– Servicios de registro
» Acepta solicitudes de registro de servidores, almacena propiedades en BDs de servicios
disponibles
• Servicio lookup
– Servicios de solicitudes equivalente con servidores disponibles

Sistemas Distribuidos II-11

Cliente-Servidor
• Interfaces
– Utilizar arquitecturas cliente-servidor impacta en el uso del software
• ¿cuál es el mecanismos de sincronización entre cliente y servidor?
• ¿tipos permitidos de solicitudes/respuestas?
• Retos de diseño
– Calidad de Servicio
• desempeño
– Tiempos de respuesta
– caudal
– puntualidad
** dependen de la latencia de la red y tiempo de cómputo (incluyendo planificación) **
• confiabilidad
• adaptabilidad
– Dependencia
• Tolerancia a fallas: se espera que el sistema siga funcionando correctamente
a pesar de presentarse fallas
• seguridad

Sistemas Distribuidos II-12


Fundamentos del Modelo de Interacción
• Sistemas Distribuidos
– Procesos múltiples
– Conectados mediante canales de comunicación
• Algoritmos distribuidos
– Pasos a realizar por cada proceso
– Comunicación entre procesos
• sincronización
• Flujo de información
• Paradigmas generales para captar aspectos de comportamiento
de un sistema distribuido basado en mensajes, algoritmos de
ejecución
– Comunicando máquinas de estado finito extendidas [Brand y Zafiropoulo]
– Autómatas de E/S [Lynch]

Sistemas Distribuidos II-13

Fundamentos del Modelo de Interacción


• Características de desempeño del canal de comunicación
– latencia: retardo entre el envío y recepción del mensaje
• Tiempo de acceso a la red (ej., retardos de transmisión Ethernet)
• Tiempo para que el primer bit viaje desde la interfaz de la red transmisora
hasta la interfaz de red receptora
• Tiempo procesado dentro del proceso de envío y recepción
– caudal: número de unidades (ej., paquetes) entregadas por unidad de
tiempo
– Ancho de banda: cantidad de información (ej., bits) transmitida por
unidad de tiempo
– Variación de retardo: variación en retardos entre diferentes mensajes del
mismo tipo (ej., cuadros de video en redes ATM)

Sistemas Distribuidos II-14


Fundamentos del Modelo de Interacción
• Sistemas Distribuidos Síncronos
– el tiempo para ejecutar cada paso de un proceso tiene establecidos
limites inferiores y superiores
– los tiempo de entrega de mensajes tienen limites establecidos
– cada proceso tiene un reloj que deriva rangos en tiempo real con limites
establecidos
• Sistemas Distribuidos Asíncronos : sin límites
– Tiempos de ejecución de procesos
– Tiempo de entrega de mensajes
– Tasa de movimiento del reloj
• Nota
– los sistemas distribuidos síncronos son fáciles de manejar, pero
determinar limites realistas puede ser difícil o imposible
– Los sistemas asíncronos son más abstractos y genéricos: un algoritmo
distribuido ejecutado en un sistema es probable que también trabaje en
otro

Sistemas Distribuidos II-15

Fundamentos del Modelo de Interacción


send receive receive
X
1 m1 4
m2
send
receive
2 3 Physical
Y
receive time

send
Z
receive receive

m3 m1 m2
A
receive receive receive
t1 t2 t3

• Ordenamiento de eventos
– en un sistema distribuido es imposible que un proceso tenga una vista del estado
global del sistema
– posiblemente para registrar localmente información de tiempos,
– reglas de ordenamiento de eventos
• si e1 y e2 suceden en el mismo proceso, y e2 sucede después de e1, entonces e1  e2
• si e1 es el emisor del mensaje m y e2 es el receptor del mismo mensaje m, entonces
e1 e2
Por lo tanto,  describe una relación de ordenamiento parcial del conjunto de eventos en un
sistema distribuido

Sistemas Distribuidos II-16


Fallas
process p process q

send m receive

Communication channel
Outgoing message buffer Incoming message buffer

• Fallas por Omisión


– Fallas por omisión de proceso: caída de proceso
• detección con timeouts
• la caída es del tipo fail-stop si otro proceso puede detectar con certeza que el proceso ha
caído
– Fallas por omisión de comunicación: el mensaje no ha sido entregado (pérdida de
mensajes
• Posibles causas:
– error de trasmisión de red
– Sobrecarga de buffer de recepción de mensajes
• Fallas arbitrarias
– proceso: omite pasos esperados del proceso o lleva a cabo no deseados
– Canal de comunicación: ej., sin entrega, corrupción o duplicidad

Sistemas Distribuidos II-17

Fallas

Tipo de falla Efecto


Descripción
Fail-stop Proceso El proceso para y permanece así. Otros procesos pueden
detectar este estado
Crash Proceso El proceso para y permanece así. Otros procesos pueden
no ser capaces de detectar este estado.
Omission Canal Un mensaje insertado en un buffer de mensajes de salida
no llega al siguiente buffer de llegada de mensajes.
Send-omission Proceso Un proceso completa un envío, pero el mensaje no es puesto
en su buffer de mensajes de salida.
Receive-omission Proceso Un mensaje es puesto en el buffer de mensajes de llegada
de un proceso, pero éste no lo recibe
Arbitrary Proceso o El proceso/canal muetra un comportamiento arbitrario: podría
(Byzantine) canal enviar/transmitir arbitrariamente mensajes en tiempos
arbitrarios, comete omisiones; un proceso puede detenerse o
t.omar un paso incorrecto

Sistemas Distribuidos II-18


Seguridad
Copy of m

The enemy
m’
Process p m Process q
Communication channel

• Protección de acceso a objetos


– derechos de acceso
– en sistemas cliente-servidor: involucra autentificación de clientes
• Protección de procesos e interacciones
– amenazas a procesos: problemas de solicitudes / réplicas no autentificadas
– amenazas a canales de comunicación: el enemigo puede copiar, alterar o introducir mensajes
cuando estos viajan por la red
• uso de canales “seguros”, basados en métodos criptográficos
• Negación de servicio
– Generación de redes débiles o cargar al servidor para que los servicios estén por de facto no
disponibles
– “pings” para cnn.com
• Código móvil
– requiere privilegios de ejecución en la máquina objetivo
– el código puede ser malicioso (ej, correos gusano)

Sistemas Distribuidos II-19

También podría gustarte