SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
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

Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
Julio Pari
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacional
Eduar Alfons Leon
 
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
wilber147
 
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
 

La actualidad más candente (20)

Arquitectura centralizada
Arquitectura centralizadaArquitectura centralizada
Arquitectura centralizada
 
cliente servidor
cliente servidorcliente servidor
cliente servidor
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
 
Metodología CommonKADS
Metodología CommonKADSMetodología CommonKADS
Metodología CommonKADS
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Base de datos-objeto-relacional
Base de datos-objeto-relacionalBase de datos-objeto-relacional
Base de datos-objeto-relacional
 
Seguridad en Base de Datos
Seguridad en Base de DatosSeguridad en Base de Datos
Seguridad en Base de Datos
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
 
Requerimientos de usuario y del sistema
Requerimientos de usuario y del sistemaRequerimientos de usuario y del sistema
Requerimientos de usuario y del sistema
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
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
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos Distribuidas
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
OOSE
OOSEOOSE
OOSE
 

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
 
Fundam servclient
Fundam servclientFundam servclient
Fundam servclient
tvazamar
 
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
zulaymaylin
 
Sistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generalesSistemas Distribuidos conceptos generales
Sistemas Distribuidos conceptos generales
arquitectura5
 

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
 

Último

deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptxdeshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
salazarsilverio074
 
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdfFisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
NATHALIENATIUSHKAESP
 
yodo -,caracteristicas y para que sirve.
yodo -,caracteristicas y para que sirve.yodo -,caracteristicas y para que sirve.
yodo -,caracteristicas y para que sirve.
equispec432
 

Último (11)

Recetario royal prestige pdf para una mejor cocina desde casa!
Recetario royal prestige pdf para una mejor cocina desde casa!Recetario royal prestige pdf para una mejor cocina desde casa!
Recetario royal prestige pdf para una mejor cocina desde casa!
 
MODELO DE ALIMENTACION actualmente 2024v
MODELO DE ALIMENTACION actualmente 2024vMODELO DE ALIMENTACION actualmente 2024v
MODELO DE ALIMENTACION actualmente 2024v
 
FOLLETO FODMAPS para indicar mejores alimentos
FOLLETO FODMAPS para indicar mejores alimentosFOLLETO FODMAPS para indicar mejores alimentos
FOLLETO FODMAPS para indicar mejores alimentos
 
deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptxdeshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
deshidratacinehidratacionenpediatria2023-240204000209-ae429ba6.pptx
 
Biosintesis de la Leche presentación ppp
Biosintesis de la Leche presentación pppBiosintesis de la Leche presentación ppp
Biosintesis de la Leche presentación ppp
 
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdfFisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
Fisiopatología_Renal_Fundamentos_Cuarta_edición_Helmut_Rennke_Bradley (1).pdf
 
yodo -,caracteristicas y para que sirve.
yodo -,caracteristicas y para que sirve.yodo -,caracteristicas y para que sirve.
yodo -,caracteristicas y para que sirve.
 
Batidos y jugos saludables FrutiFresh.pdf
Batidos y jugos saludables FrutiFresh.pdfBatidos y jugos saludables FrutiFresh.pdf
Batidos y jugos saludables FrutiFresh.pdf
 
ELABORACION DE GOMITAS , dulces, terapeuticas y con alcohol
ELABORACION DE GOMITAS , dulces, terapeuticas y con alcoholELABORACION DE GOMITAS , dulces, terapeuticas y con alcohol
ELABORACION DE GOMITAS , dulces, terapeuticas y con alcohol
 
Auditorias Puntos Importantes SQF en industria de alimentos
Auditorias Puntos Importantes SQF en industria de alimentosAuditorias Puntos Importantes SQF en industria de alimentos
Auditorias Puntos Importantes SQF en industria de alimentos
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE (1) (3).pdf
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE (1) (3).pdf4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE (1) (3).pdf
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE (1) (3).pdf
 

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