SlideShare una empresa de Scribd logo
TEMA 1. Introducción a las arquitecturas
distribuidas
Tema 1. ARQUITECTURAS DISTRIBUIDAS:
CONCEPTOS BÁSICOS
1. ¿Qué es un sistema distribuido?
2. Servicios
3. Arquitectura
4. Definición de AD
5. Modelos de sistema
6. Retos de diseño
7. Motivación
8. Comunicación entre procesos
1. Interfaz Socket
2. Llamada a procedimiento remoto (LPR)
9. Resumen de definiciones
¿Qué es un sistema distribuido (S.D)?
 Coulouris: “Un sistemas cuyos componentes se
comunican y coordinan sus acciones sólo mediante el
paso de mensajes”.
 Una aplicación que se comunica con otros procesos en
una red para coordinar sus acciones de manera que en
conjunto realicen una o varias tareas relacionadas
Arquitecturas Distribuidas-10/11 3
Algunas definiciones básicas
 Recurso: cualquier entidad hardware o software.
Por ejemplo: un ordenador, un sistema de
almacenamiento de archivos, una impresora, un
archivo, un canal de comunicaciones, un servicio,
etc.
 Nodo: término genérico usado para representar
cualquier dispositivo.
 Proceso: instancia de un programa en ejecución
 Cliente: un consumidor de información.
 Servidor: un proveedor de información.
Arquitecturas Distribuidas-10/11 4
¿Para qué necesitamos un S.D?
 El objetivo fundamental es compartir recursos
 Objetivo secundario: conectar usuarios remotos a
recursos remotos de manera abierta y “escalable”
 Abierta: no hay restricciones en el tipo de recursos y
componentes que forman el sistema. Los componentes
está abiertos a interacciones continuas con otros
componentes.
 “Escalable”: el sistema puede acomodar fácilmente
incrementos en el número de usuarios y recursos
Ejemplo: Internet
Arquitecturas Distribuidas-10/11 5
¿Compartir?
 Problema: “compartir” no es inmediato, exige
comunicación entre componentes, y “entidades”
que gestionen los recursos.
 Las “entidades” encapsulan un recurso y regulan su
uso.
 Las “entidades” poseen distintas interfaces, modos
de funcionamiento y requieren el establecimiento
de “políticas” comunes: nombramiento, forma de
acceso, etc.
Arquitecturas Distribuidas-10/11 6
Servicios
 ¿Qué es un “servicio”?
 Coulouris: “parte diferente de un sistema de computadores
que gestiona una colección de recursos relacionados y
presenta su funcionalidad a usuarios y aplicaciones”
 Trabajo o capacidad que se ofrece a los clientes
 ¿Cómo se ofrece? ¿Cómo sabe el cliente lo que se le ofrece?
 Los servicios se ofrecen mediante una interfaz: conjunto
bien definido de operaciones ofertadas
 Permite que usuario y proveedor evolucionen
independientemente siempre que no cambie la interfaz
Arquitecturas Distribuidas-10/11 7
Arquitectura
 Arquitectura: abstracción de un sistema, en el que se
representa su estructura, sus propiedades externas
“visibles” y la relación entre componentes
 No se detalla la implementación de los
componentes, sí las relaciones entre ellos.
 Papeles funcionales: ¿Qué tarea desempeñan?
 Patrones de comunicación entre ellos
Arquitecturas Distribuidas-10/11 8
Definición de AD
 El termino “Arquitecturas Distribuidas” (AD) hace
referencia a “una serie de procedimientos, políticas y
requerimientos aplicados a la construcción de un
sistema distribuido”, con objeto de:
 Unificar y simplificar el diseño, facilitando así la
construcción y mantenimiento del mismo, y
estandarizando su desarrollo (metodologías).
 Reducir costes.
 Reutilizar componentes.
Arquitecturas Distribuidas-10/11 9
Modelo cliente/servidor
 Modelo fundamental
 Servidor: programa en ejecución (proceso) que acepta peticiones de
otros programas que se están ejecutando
 Pasivo: recibe peticiones
 Suele estar continuamente en ejecución
 Cliente: programa (proceso) que solicita una petición (invoca una
operación) a un servidor
 Activo: inicia peticiones.
 Está en ejecución sólo el tiempo que lo está la aplicación que lo
inicia.
 Cliente y servidor pueden estar en la misma o diferentes
máquinas
 Cliente/Servidor, por tanto hace referencia al rol desempeñado en
una solicitud. Un proceso puede ser cliente y servidor en diferentes
momentos.
 Los servidores gestionan los recursos y ofrecen servicios
Arquitecturas Distribuidas-10/11 10
Modelo cliente/servidor
 Problema) Existen servicios que requieren una
cooperación mayor que la que se presenta en este
modelo.
 Sol) Modelos basados en objetos remotos
 Sol) Redes de pares P2P (peer to peer). Sigue
utilizando el modelo cliente/servidor, solo que ahora
en los componentes no se distingue el rol que toma
cada uno: todos pueden actuar como servidores y/o
clientes
Arquitecturas Distribuidas-10/11 11
Resumen modelos arquitectónicos
 Modelo cliente/servidor: el modelo fundamental y más
utilizado
 Distinción clara de las funciones de cada componente
 Servicios pueden ser proporcionados por diferentes servidores
 Procesos de “igual a igual” (pares, P2P)
 Todos los procesos realizan tareas semejantes
 Clientes y servidores simultáneamente
 Código móvil
 Código se transfiere al cliente
 Ejemplos: Applets, javascript
 Agentes móviles
 Proceso en ejecución se transfiere completamente a otra
máquina
 Clientes ligeros
Arquitecturas Distribuidas-10/11 12
Características de un SD
 Separación funcional: las funciones se reparten
entre diferentes entidades
 Distribución inherente: evidentemente, los
recursos se comparten de manera remota, además
las tareas se realizan sin que el usuario sea
consciente de qué recursos se utilizan ni dónde
están localizados
 Heterogeneidad: diversidad de dispositivos,
aplicaciones, sistemas operativos, lenguajes de
programación, etc.
Arquitecturas Distribuidas-10/11 13
Retos de diseño de los sistemas
distribuidos
 ¿Qué características debería proporcionar nuestro SD?
 Transparencia
 Soporte de la concurrencia
 Gestión de fallos
 Escalabilidad
 Seguridad
 Apertura: clave del éxito de Internet
Arquitecturas Distribuidas-10/11 14
Motivación de la asignatura
 Es necesario conocer herramientas, patrones básicos
de trabajo, así como los problemas comunes de las de
AD.
 Es necesario conocer el funcionamiento de los sistemas
distribuidos más utilizados hoy en día
Arquitecturas Distribuidas-10/11 15
Programa
 Durante este curso:
 Exploraremos la AD más exitosa y utilizada, y
trabajaremos haciendo uso de ella: el WWW.
 Lenguajes estructurados: HTML, SGML, XML
 Web dinámica. La evolución de la Web. Web 2.0
 BBDD relacionales
 Estudiaremos otros tipos de sistemas distribuidos: LPR,
CORBA, P2P .
Arquitecturas Distribuidas-10/11 16
Tema 1. ARQUITECTURAS DISTRIBUIDAS:
CONCEPTOS BÁSICOS
1. ¿Qué es un sistema distribuido?
2. Servicios
3. Arquitectura
4. Definición de AD
5. Modelos de sistema
6. Retos de diseño
7. Motivación
8. Comunicación entre procesos
1. Interfaz Socket
2. Llamada a procedimiento remoto (LPR)
9. Resumen de definiciones
Comunicación entre procesos (I)
 Proceso: instancia de un programa en ejecución
 Hilo (thread): tarea que se ejecuta concurrentemente (en
paralelo) dentro un proceso
 Los hilos comparten memoria con el resto de hilos de un
proceso
 Distintos procesos dentro de una misma máquina NO
comparten memoria
 ¿Cómo comparten datos distintos procesos?
 Intercambio de mensajes
 Comunicación entre procesos: técnicas para el intercambio
de información (mensajes) entre procesos (local o
remotamente)
Arquitecturas Distribuidas-10/11 18
Comunicación entre procesos (II)
 Procesos pueden estar en la misma máquina (com. local) o en distintas
máquinas (com. remota)
 Mecanismos para la comunicación entre procesos:
 Archivos
 Señales
 Tuberías
 Colas de mensajes
 Sockets
 Otros
 Operaciones básicas de paso de mensajes: enviar y recibir.
 Características de la comunicación entre procesos:
 Comunicación síncrona o asíncrona.
 Destinos de los mensajes (dirección IP, puerto)
 Fiabilidad y ordenación
Arquitecturas Distribuidas-10/11 19
Interfaz Socket
 Interfaz estándar que abstrae las tareas de intercomunicación entre
procesos
 Socket() crea un conector y devuelve un descriptor de la conexión.
Acepta 3 parámetros:
 Dominio: PF_INET, PF_INET6, PF_UNIX
 Tipo: Stream (fiable OC), datagrama (no fiable, NOC), otros
 Protocolo: por defecto TCP para stream y UDP para datagrama
 Operaciones:
 Servidor: socket(), bind(), listen(), accept(), write(), read(), close().
 Cliente: socket(), connect(), write(), read(), close()
 Permiten el transporte de datos sobre canales fiables o no fiables
 Normalmente la implementación de las operaciones la proporciona el
propio S.O.
Arquitecturas Distribuidas-10/11 20
Protocolo TCP
Arquitecturas Distribuidas-10/11 21
 Mantiene información de estado: ¿en
qué paso estoy?, ¿qué puede ocurrir?
¿a qué estado voy?
 Se describe mediante una máquina
de estados
 Proporciona un servicio de
transporte de datos fiable y orientado
a la conexión: requiere
establecimiento y cierre de conexión
Llamada a procedimiento remoto (LPR)
 Extensión del modelo de programación para aplicarlo a
programas distribuidos: invocación de operaciones en
distintos procesos en la misma o distintas máquinas.
 Llamada a procedimiento remoto (Remote Procedure Call,
RPC) = Invocación a un método remoto (Remote Method
Invocation, RMI), cuando se utiliza POO.
 Un objeto instanciado en un proceso invoca a un método (función)
de un objeto instanciado en otro proceso (local o remoto).
 La capa RMI es un software que permite realizar estas operaciones
de manera transparente al programador => Abstracción de las
operaciones realizadas
Arquitecturas Distribuidas-10/11 22

Más contenido relacionado

La actualidad más candente

Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
Juan Carlos Ortega
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
Jorge Guerra
 
Arquitectura Multinivel
Arquitectura MultinivelArquitectura Multinivel
Arquitectura Multinivel
urumisama
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
Juan Pablo Bustos Thames
 
MODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADORMODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADORRené Pilataxi
 
Ingenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientosIngenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientos
Isidro Gonzalez
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
anibalsmit
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
itzayana bacilio
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSIComdat4
 
Desarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en ModelosDesarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en ModelosJuan Manuel Gonzalez Calleros
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Modelos de estimacion de software
Modelos de estimacion de softwareModelos de estimacion de software
Modelos de estimacion de software
Manuel Galindo Sanz
 
Diseño de sistemas - UML - compendio
Diseño de sistemas  -  UML - compendioDiseño de sistemas  -  UML - compendio
Diseño de sistemas - UML - compendio
Jose Diaz Silva
 
Administración de redes
Administración de redesAdministración de redes
Administración de redes
edithua
 
Sistema gestor de base de datos para moviles
Sistema gestor de base de datos para movilesSistema gestor de base de datos para moviles
Sistema gestor de base de datos para moviles
ajhr1995
 

La actualidad más candente (20)

Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
Arquitectura Multinivel
Arquitectura MultinivelArquitectura Multinivel
Arquitectura Multinivel
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
MODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADORMODELO VISTA CONTROLADOR
MODELO VISTA CONTROLADOR
 
Ingenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientosIngenieria de requisitos y requerimientos
Ingenieria de requisitos y requerimientos
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Desarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en ModelosDesarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en Modelos
 
Arquitectura pizarra
Arquitectura pizarraArquitectura pizarra
Arquitectura pizarra
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Modelos de estimacion de software
Modelos de estimacion de softwareModelos de estimacion de software
Modelos de estimacion de software
 
Modelo GOMS
Modelo GOMSModelo GOMS
Modelo GOMS
 
Diseño de sistemas - UML - compendio
Diseño de sistemas  -  UML - compendioDiseño de sistemas  -  UML - compendio
Diseño de sistemas - UML - compendio
 
Administración de redes
Administración de redesAdministración de redes
Administración de redes
 
Sistema gestor de base de datos para moviles
Sistema gestor de base de datos para movilesSistema gestor de base de datos para moviles
Sistema gestor de base de datos para moviles
 

Similar a Arquitectura distribuida

Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Universidad de Guadalajara
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
Tensor
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
yoshimaryj
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
Tensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
Tensor
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclienttvazamar
 
Egsi Sesion3
Egsi Sesion3Egsi Sesion3
Egsi Sesion3
Yassir Barcelo
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacionzulaymaylin
 
3 ultimas capas del modelo osi
3 ultimas capas del modelo osi 3 ultimas capas del modelo osi
3 ultimas capas del modelo osi
cesartejadab
 
Arquitectura de Comuniaciones
Arquitectura de Comuniaciones Arquitectura de Comuniaciones
Arquitectura de Comuniaciones
Toño Castillo Aguilar
 
Sistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generalesSistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generalesarquitectura5
 
Clase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidorClase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidor
Gregorio Tkachuk
 

Similar a Arquitectura distribuida (20)

Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclient
 
Egsi Sesion3
Egsi Sesion3Egsi Sesion3
Egsi Sesion3
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
3 ultimas capas del modelo osi
3 ultimas capas del modelo osi 3 ultimas capas del modelo osi
3 ultimas capas del modelo osi
 
Osi
OsiOsi
Osi
 
como usar excel
como usar excelcomo usar excel
como usar excel
 
Osi
OsiOsi
Osi
 
Osi
OsiOsi
Osi
 
Osi
OsiOsi
Osi
 
Arquitectura de Comuniaciones
Arquitectura de Comuniaciones Arquitectura de Comuniaciones
Arquitectura de Comuniaciones
 
Osi
OsiOsi
Osi
 
Sistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generalesSistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generales
 
Clase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidorClase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidor
 
Arquitectura software
Arquitectura softwareArquitectura software
Arquitectura software
 

Arquitectura distribuida

  • 1. TEMA 1. Introducción a las arquitecturas distribuidas
  • 2. Tema 1. ARQUITECTURAS DISTRIBUIDAS: CONCEPTOS BÁSICOS 1. ¿Qué es un sistema distribuido? 2. Servicios 3. Arquitectura 4. Definición de AD 5. Modelos de sistema 6. Retos de diseño 7. Motivación 8. Comunicación entre procesos 1. Interfaz Socket 2. Llamada a procedimiento remoto (LPR) 9. Resumen de definiciones
  • 3. ¿Qué es un sistema distribuido (S.D)?  Coulouris: “Un sistemas cuyos componentes se comunican y coordinan sus acciones sólo mediante el paso de mensajes”.  Una aplicación que se comunica con otros procesos en una red para coordinar sus acciones de manera que en conjunto realicen una o varias tareas relacionadas Arquitecturas Distribuidas-10/11 3
  • 4. Algunas definiciones básicas  Recurso: cualquier entidad hardware o software. Por ejemplo: un ordenador, un sistema de almacenamiento de archivos, una impresora, un archivo, un canal de comunicaciones, un servicio, etc.  Nodo: término genérico usado para representar cualquier dispositivo.  Proceso: instancia de un programa en ejecución  Cliente: un consumidor de información.  Servidor: un proveedor de información. Arquitecturas Distribuidas-10/11 4
  • 5. ¿Para qué necesitamos un S.D?  El objetivo fundamental es compartir recursos  Objetivo secundario: conectar usuarios remotos a recursos remotos de manera abierta y “escalable”  Abierta: no hay restricciones en el tipo de recursos y componentes que forman el sistema. Los componentes está abiertos a interacciones continuas con otros componentes.  “Escalable”: el sistema puede acomodar fácilmente incrementos en el número de usuarios y recursos Ejemplo: Internet Arquitecturas Distribuidas-10/11 5
  • 6. ¿Compartir?  Problema: “compartir” no es inmediato, exige comunicación entre componentes, y “entidades” que gestionen los recursos.  Las “entidades” encapsulan un recurso y regulan su uso.  Las “entidades” poseen distintas interfaces, modos de funcionamiento y requieren el establecimiento de “políticas” comunes: nombramiento, forma de acceso, etc. Arquitecturas Distribuidas-10/11 6
  • 7. Servicios  ¿Qué es un “servicio”?  Coulouris: “parte diferente de un sistema de computadores que gestiona una colección de recursos relacionados y presenta su funcionalidad a usuarios y aplicaciones”  Trabajo o capacidad que se ofrece a los clientes  ¿Cómo se ofrece? ¿Cómo sabe el cliente lo que se le ofrece?  Los servicios se ofrecen mediante una interfaz: conjunto bien definido de operaciones ofertadas  Permite que usuario y proveedor evolucionen independientemente siempre que no cambie la interfaz Arquitecturas Distribuidas-10/11 7
  • 8. Arquitectura  Arquitectura: abstracción de un sistema, en el que se representa su estructura, sus propiedades externas “visibles” y la relación entre componentes  No se detalla la implementación de los componentes, sí las relaciones entre ellos.  Papeles funcionales: ¿Qué tarea desempeñan?  Patrones de comunicación entre ellos Arquitecturas Distribuidas-10/11 8
  • 9. Definición de AD  El termino “Arquitecturas Distribuidas” (AD) hace referencia a “una serie de procedimientos, políticas y requerimientos aplicados a la construcción de un sistema distribuido”, con objeto de:  Unificar y simplificar el diseño, facilitando así la construcción y mantenimiento del mismo, y estandarizando su desarrollo (metodologías).  Reducir costes.  Reutilizar componentes. Arquitecturas Distribuidas-10/11 9
  • 10. Modelo cliente/servidor  Modelo fundamental  Servidor: programa en ejecución (proceso) que acepta peticiones de otros programas que se están ejecutando  Pasivo: recibe peticiones  Suele estar continuamente en ejecución  Cliente: programa (proceso) que solicita una petición (invoca una operación) a un servidor  Activo: inicia peticiones.  Está en ejecución sólo el tiempo que lo está la aplicación que lo inicia.  Cliente y servidor pueden estar en la misma o diferentes máquinas  Cliente/Servidor, por tanto hace referencia al rol desempeñado en una solicitud. Un proceso puede ser cliente y servidor en diferentes momentos.  Los servidores gestionan los recursos y ofrecen servicios Arquitecturas Distribuidas-10/11 10
  • 11. Modelo cliente/servidor  Problema) Existen servicios que requieren una cooperación mayor que la que se presenta en este modelo.  Sol) Modelos basados en objetos remotos  Sol) Redes de pares P2P (peer to peer). Sigue utilizando el modelo cliente/servidor, solo que ahora en los componentes no se distingue el rol que toma cada uno: todos pueden actuar como servidores y/o clientes Arquitecturas Distribuidas-10/11 11
  • 12. Resumen modelos arquitectónicos  Modelo cliente/servidor: el modelo fundamental y más utilizado  Distinción clara de las funciones de cada componente  Servicios pueden ser proporcionados por diferentes servidores  Procesos de “igual a igual” (pares, P2P)  Todos los procesos realizan tareas semejantes  Clientes y servidores simultáneamente  Código móvil  Código se transfiere al cliente  Ejemplos: Applets, javascript  Agentes móviles  Proceso en ejecución se transfiere completamente a otra máquina  Clientes ligeros Arquitecturas Distribuidas-10/11 12
  • 13. Características de un SD  Separación funcional: las funciones se reparten entre diferentes entidades  Distribución inherente: evidentemente, los recursos se comparten de manera remota, además las tareas se realizan sin que el usuario sea consciente de qué recursos se utilizan ni dónde están localizados  Heterogeneidad: diversidad de dispositivos, aplicaciones, sistemas operativos, lenguajes de programación, etc. Arquitecturas Distribuidas-10/11 13
  • 14. Retos de diseño de los sistemas distribuidos  ¿Qué características debería proporcionar nuestro SD?  Transparencia  Soporte de la concurrencia  Gestión de fallos  Escalabilidad  Seguridad  Apertura: clave del éxito de Internet Arquitecturas Distribuidas-10/11 14
  • 15. Motivación de la asignatura  Es necesario conocer herramientas, patrones básicos de trabajo, así como los problemas comunes de las de AD.  Es necesario conocer el funcionamiento de los sistemas distribuidos más utilizados hoy en día Arquitecturas Distribuidas-10/11 15
  • 16. Programa  Durante este curso:  Exploraremos la AD más exitosa y utilizada, y trabajaremos haciendo uso de ella: el WWW.  Lenguajes estructurados: HTML, SGML, XML  Web dinámica. La evolución de la Web. Web 2.0  BBDD relacionales  Estudiaremos otros tipos de sistemas distribuidos: LPR, CORBA, P2P . Arquitecturas Distribuidas-10/11 16
  • 17. Tema 1. ARQUITECTURAS DISTRIBUIDAS: CONCEPTOS BÁSICOS 1. ¿Qué es un sistema distribuido? 2. Servicios 3. Arquitectura 4. Definición de AD 5. Modelos de sistema 6. Retos de diseño 7. Motivación 8. Comunicación entre procesos 1. Interfaz Socket 2. Llamada a procedimiento remoto (LPR) 9. Resumen de definiciones
  • 18. Comunicación entre procesos (I)  Proceso: instancia de un programa en ejecución  Hilo (thread): tarea que se ejecuta concurrentemente (en paralelo) dentro un proceso  Los hilos comparten memoria con el resto de hilos de un proceso  Distintos procesos dentro de una misma máquina NO comparten memoria  ¿Cómo comparten datos distintos procesos?  Intercambio de mensajes  Comunicación entre procesos: técnicas para el intercambio de información (mensajes) entre procesos (local o remotamente) Arquitecturas Distribuidas-10/11 18
  • 19. Comunicación entre procesos (II)  Procesos pueden estar en la misma máquina (com. local) o en distintas máquinas (com. remota)  Mecanismos para la comunicación entre procesos:  Archivos  Señales  Tuberías  Colas de mensajes  Sockets  Otros  Operaciones básicas de paso de mensajes: enviar y recibir.  Características de la comunicación entre procesos:  Comunicación síncrona o asíncrona.  Destinos de los mensajes (dirección IP, puerto)  Fiabilidad y ordenación Arquitecturas Distribuidas-10/11 19
  • 20. Interfaz Socket  Interfaz estándar que abstrae las tareas de intercomunicación entre procesos  Socket() crea un conector y devuelve un descriptor de la conexión. Acepta 3 parámetros:  Dominio: PF_INET, PF_INET6, PF_UNIX  Tipo: Stream (fiable OC), datagrama (no fiable, NOC), otros  Protocolo: por defecto TCP para stream y UDP para datagrama  Operaciones:  Servidor: socket(), bind(), listen(), accept(), write(), read(), close().  Cliente: socket(), connect(), write(), read(), close()  Permiten el transporte de datos sobre canales fiables o no fiables  Normalmente la implementación de las operaciones la proporciona el propio S.O. Arquitecturas Distribuidas-10/11 20
  • 21. Protocolo TCP Arquitecturas Distribuidas-10/11 21  Mantiene información de estado: ¿en qué paso estoy?, ¿qué puede ocurrir? ¿a qué estado voy?  Se describe mediante una máquina de estados  Proporciona un servicio de transporte de datos fiable y orientado a la conexión: requiere establecimiento y cierre de conexión
  • 22. Llamada a procedimiento remoto (LPR)  Extensión del modelo de programación para aplicarlo a programas distribuidos: invocación de operaciones en distintos procesos en la misma o distintas máquinas.  Llamada a procedimiento remoto (Remote Procedure Call, RPC) = Invocación a un método remoto (Remote Method Invocation, RMI), cuando se utiliza POO.  Un objeto instanciado en un proceso invoca a un método (función) de un objeto instanciado en otro proceso (local o remoto).  La capa RMI es un software que permite realizar estas operaciones de manera transparente al programador => Abstracción de las operaciones realizadas Arquitecturas Distribuidas-10/11 22