1 / 64

Sistemas Peer-To-Peer La plataforma JXTA

Sistemas Peer-To-Peer La plataforma JXTA. Introducción. Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo. La comunicación es simétrica. Los equipos actúan como iguales (peers). Los peers cumple a la vez el papel de cliente y servidor.

nelly
Download Presentation

Sistemas Peer-To-Peer La plataforma JXTA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Peer-To-PeerLa plataforma JXTA

  2. Introducción • Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo. • La comunicación es simétrica. • Los equipos actúan como iguales (peers). • Los peers cumple a la vez el papel de cliente y servidor. • Alternativa a la arquitectura cliente/servidor.

  3. Modelo cliente/servidor

  4. Modelo cliente/servidor • Modelo cliente/servidor: Un servidor ofrece servicio a muchas máquinas cliente. • Gran extensión en las aplicaciones Internet: FTP, www, correo electrónico. • Ventajas: • Casi toda el procesamiento se realiza en el servidor. • Clientes muy simples. Clientes pasivos. • Inconvenientes: • Conforme el número de clientes crece, la carga y la demanda de ancho de banda del servidor se incrementa impidiendo a este servir más peticiones. • Direcciones IP dinámicas: impiden ofrecer servicios a otros usuarios. • Redes privadas: los sistemas de seguridad (firewalls, NAT) impiden las conexiones externas.

  5. Peer-To-Peer • Cualquier equipo puede ofrecer un servicio a otro. • Organización totalmente distribuida: • No dependen de un servidor centralizado para ofrecer acceso a los servicios. • Funcionan de forma independiente al sistema de nombrado de dominio (DNS). • Distribuyen la responsabilidad de ofrecer servicios entre todos los peers de la red: • Elimina las indisponibilidades de servicios debidas a caídas de los servidores. • Mejora la escalabilidad.

  6. Peer-To-Peer • Ventajas: • Escalabilidad. • Agregación de información. • Disponibilidad. • Tolerancia a fallos. • Inconvenientes: • Redundancia. • Las peticiones de servicio no son deterministas: • Dos clientes que soliciten el mismo recurso pueden conectarse con máquinas completamente diferentes, a través de rutas diferentes, y posiblemente con resultados diferentes. • Los servicios no siempre están disponibles. • Posibles soluciones: • Acceso redundante a los recursos: • El servicio está disponible mientras exista un peer conectado.

  7. Peer-To-Peer

  8. Elementos de P2P. Peers. • Peer: Cualquier entidad capaz de realizar una tarea útil y comunicar el resultado de dicha tarea a otra entidad de la red, bien directa o indirectamente. • Puede desde ser una aplicación en una sola máquina, una aplicación distribuida en varias máquinas o cualquier dispositivo. • Tipos de peers: • Peers simples: Sirven a un solo usuario final, permitiendo a este usuario ofrecer y utilizar servicios de otros peers. • Peers rendezvous: Permite descubrir a otros peers o recursos. Responden directamente o propagan la consulta. • Peers enrutadores: Permite la comunicación entre peers que no tienen conectividad física directa (firewalls, NAT’s).

  9. Elementos de P2P. Peer groups. • Peer group: Conjunto de peers que comparten un interés u objetivo común definido por todos los miembros del grupo. • Objetivos de los peer groups: • Crear entornos seguros. • Establecer políticas de seguridad (login/password, PKI, etc). • Publicar contenidos protegidos de acceso restringido. • Crear entornos limitados. • Crear dominios de especialización (divisiones lógicas). • Limitar las búsquedas de recursos. • Crear entornos de monitorización. • Monitorizar el estado de un grupo de equipos.

  10. Elementos de P2P. Transporte de red. • Transporte de red: Capa de procesamiento responsable de la transmisión de los datos. • Puede ser un protocolo de bajo nivel, como UDP o TCP, o un protocolo de alto nivel, como HTTP o SMTP. • Puede dividirse en tres componentes: • Extremos: El origen inicial o destino final de cualquier fragmento de datos transmitido en la red. Un extremo corresponde a las interfaces de red utilizadas para enviar y recibir datos. • Tuberías: Canales virtuales de comunicación asíncronos y unidireccionales que conectan uno o más extremos. • Mensajes: Contenedores de datos transmitidos a través de una tubería desde un extremo a otro.

  11. Elementos de P2P. Servicios. • Servicios: funciones y capacidades que los peers ofrecen al resto de la red. • Permiten a los dispositivos el acceso a los recursos. • Pueden dividirse en dos categorías: • Servicios de peer. • Funciones que ofrece un peer determinado de la red a otros peers. • Las capacidades de este servicio son propias del peer y sólo estarán disponibles mientras se encuentre conectado a la red. • Servicios de peer group. • Funciones que ofrece un peer group a sus miembros. • Pueden ser suministrados por varios miembros: acceso redundante. El servicio se encuentra disponible mientras exista algún miembro del peer group conectado.

  12. Elementos de P2P. Anuncios. • Anuncio: Representación estructurada de una entidad, servicio o recurso publicado por un peer o un peer group como parte de una red P2P. • Todo recurso se identifica mediante anuncios: • Peers, peer groups, tuberías, extremos, servicios y contenidos.

  13. Elementos de P2P. Protocolos. • Protocolo:Método de estructurar el intercambio de información entre dos o más participantes mediante reglas previamente acordadas por todas la partes. • En P2P, se definen protocolos para: • Encontrar peers en la red. • Averiguar los servicios ofrecidos por un peer. • Obtener información de estado de un peer. • Invocar un servicio de un peer. • Crear, unirse o dejar un peer group. • Crear conexiones con otros peers. • Enviar mensajes de ruteo a otros peers. • La definición de los protocolos se reduce a la definición del intercambio de anuncios correspondiente.

  14. Elementos de P2P. Nombrado. • Todo recurso debe identificarse de forma única: • Peers, peer groups, tuberías, contenidos. • Una red P2P pura debe utilizar un esquema de nombrado independiente del transporte de red y del sistema operativo. • Independiente de la localización.

  15. P2P. Mecanismos de descubrimiento • Descubrimiento: Proceso de localización de los recursos de la red. • El descubrimiento de recursos consiste en la búsqueda de los anuncios correspondientes. • Tipos de descubrimiento: • Pasivo: Mantener en una caché los anuncios descubiertos anteriormente en la que buscarán la información de los recursos de la red. • Directo: Utiliza los mecanismos de broadcast o multicast para encontrar peers en la misma LAN. • Indirecto: Se consulta a peers intermediarios (rendezvous) sobre los anuncios.

  16. P2P. Mecanismos de descubrimiento • Descubrimiento pasivo

  17. P2P. Mecanismos de descubrimiento • Descubrimiento directo

  18. P2P. Mecanismos de descubrimiento • Descubrimiento indirecto

  19. P2P. Retos para la comunicación • Los firewalls y NAT presentes en las redes corporativas representan un serio obstáculo para la comunicación P2P. • Firewalls: Son utilizados para proteger las redes privadas contra conexiones no autorizadas provenientes del exterior o del interior de la red. • Utilizan filtrado de IP’s y protocolos. • Bloquean conexiones entrantes: • Un peer externo no puede conectarse a uno interno. • Los peers internos suelen estar restringidos a utilizar sólo ciertos protocolos: SMTP, HTTP.

  20. P2P. Retos para la comunicación

  21. P2P. Retos para la comunicación • Network Address Translation: Técnica utilizada para mapear un conjunto de direcciones IP privadas dentro de una red interna a un conjunto de direcciones IP externas de una red pública. • Se utilizan por muchas razones: • Elimina la necesidad de una dirección IP pública para cada equipo dentro de una red privada. • Permite proteger la red al existir un único punto de entrada. • Sólo autoriza las conexiones entrantes que fueron originadas dentro de la red.

  22. P2P. Retos para la comunicación

  23. P2P. Retos para la comunicación • Solución: • La única herramienta de que disponen los peers para atravesar firewalls/NAT es su capacidad para crear conexiones de salida hacia los equipos externos. • Se pueden usar protocolos permitidos por el firewall para realizar mediante túnel conexiones al exterior.

  24. P2P. Retos para la comunicación

  25. Aplicaciones P2P. • Compartición de ficheros: Kazaa, Emule. • Monitorización de datos • Mensajería instantánea: ICQ. • Búsqueda en la web. Motores de búsqueda. • Computación distribuida.

  26. Cliente servidor vs. P2P

  27. ¿Qué es JXTA? • JXTA: Plataforma abierta de programación para computación P2P formada por: • Conjunto de protocolos de comunicación (basados en XML). • API de programación. • Red virtual. • JXTA=juxtapose (alternativa a cliente/servidor) • Objetivos de JXTA: • Interoperabilidad: Entre diferentes sistemas P2P y comunidades. • Independencia de la plataforma: Lenguajes de programación (C, C++, Java), sistemas operativos (UNIX, Windows) y entornos de red (TCP, HTTP, SMTP, Bluetooth). • Ubicuidad: Todo dispositivo que emita una señal puede conectarse.

  28. JXTA. Arquitectura software. • La arquitectura software del proyecto JXTA está dividida en 3 capas: • Capa del núcleo (core): • Responsable de gestionar los protocolos JXTA mediante los cuáles los peers pueden comunicarse. • Encapsula las funciones básicas de P2P. • Capa de servicio: • Servicios de red que no resultan absolutamente necesarios para P2P, pero que son comúnmente utilizados o deseables en un entorno de este tipo. • Ej: búsqueda e indexación, directorio, sistemas de almacenamiento, compartición de ficheros, sistemas de ficheros distribuidos, etc. • Capa de aplicación: • En esta capa se encuentran las aplicaciones P2P. • Ej. Compartición de ficheros, chat, grid computing, etc.

  29. JXTA. Arquitectura software.

  30. La red virtual JXTA • Red adaptativa, ad-hoc y multisalto. • Gran frecuencia de cambio en la topología: las conexiones son temporales. • Rutas no deterministas. • Red de superposición (overlay network): red virtual por encima de la red física. • La conectividad en la red no depende de la localización física.

  31. La red virtual JXTA

  32. Elementos clave de JXTA • Peers • Cualquier dispositivo conectado a la red que implementa uno o más protocolos JXTA. • Peer Groups • Colección de peers que acuerdan un conjunto común de reglas para publicar, compartir y acceder a los recursos. • Tuberías • Canales de comunicación virtuales unidireccionales y asíncronos.

  33. Elementos clave de JXTA • Mensajes • Empaqueta la información transmitida a través de las tuberías. • Pueden ser binarios o XML. • Anuncios • Representación de los recursos de la red. • Basados en XML. • Codats (código y datos) • Cualquier tipo de contenido: código, datos, aplicaciones, etc.

  34. Bloques básicos de la red virtual • Direccionamiento lógico uniforme (Peer IDs) • Dominios configurables dinámicamente (peer groups). • Representación uniforme de recursos (anuncios) • Mecanismo de resolución universal (resolver) • Canales de comunicación virtuales (tuberías) • Seguridad • Monitorización • Contenidos (código y datos)

  35. Direccionamiento lógico uniforme • Un peer se identifica mediante: • Un Peer ID único. • Múltiples direcciones de extremo peer: • TCP/IP (tcp://129.127.29.65:9700) • HTTP (http://JxtaHttpClientuuid-….) • Etc… • Permite el direccionamiento independientemente de la localización física (firewalls y NAT’s) en la red.

  36. Peers JXTA • La red JXTA está compuesta de peers conectados, que pueden unirse o dejar la red en cualquier momento. • Tipos de peers: • Peers mínimos. • Pueden enviar y recibir mensajes. • No almacenan anuncios ni enrutan mensajes. • Dispositivos pequeños (móviles, PDA’s, game boy). • Peers simples. • Como los mínimos, pero pueden almacenar anuncios. • No enrutan mensajes. • Peers rendezvous. • Peers relays.

  37. Peers rendezvous • Como los peers simples, pero pueden reenviar peticiones de descubrimiento para permitir a otros peers el descubrimiento de recursos. • Cualquier peer simple puede convertirse en rendezvous. • Cualquier peer puede utilizar uno o más rendezvous. • Cada rendezvous mantiene un lista con: • El resto de rendezvous que conoce. • Los peers que han contratado sus servicios. • Almacenan un gran número de anuncios.

  38. Peers rendezvous (cont.) • Los peers envían peticiones de búsqueda a los rendezvous. Si no pueden satisfacerlas las reenvían a otros rendezvous. • El proceso continúa hasta que un peer tiene el anuncio buscado o la petición muere (TTL en el mensaje). • Búcles de red: se evitan manteniendo la lista de los peers que atraviesa el mensaje.

  39. Peers rendezvous (cont.)

  40. Peers relays • Peers especiales utilizados para enrutar mensajes a otros peers dentro de la red física. • Soportan transferencia de mensajes multisalto. • Los mensajes JXTA contienen información de auto-enrutamiento (enrutamiento basado en el origen). • Los relays mantienen información dinámica de enrutamiento. • Almacenan mensajes hacia peers temporalmente no disponibles o no alcanzables. • Cualquier peer puede convertirse en un relay. • Utilizados principalmente para atravesar firewalls y NATs. • Permiten el descubrimiento dinámico de rutas.

  41. Peers relays

  42. Peer groups • Definidos por el usuario sin necesidad de administradores de red. • Identificados mediante un Peer group ID. • Permiten la auto-organización de los peers (dinámicamente). • Agrupan un conjunto de servicios: servicios de peer group. • Política de pertenencia configurable.

  43. Peer groups

  44. ¿Por qué los peer groups? • Crear dominios de seguridad y protección. • Limitar las operaciones de los peers (descubrimiento, búsqueda, comunicación). • Proporcionar una identidad de grupo (grupo que comparte intereses comunes). • Monitorización.

  45. Servicios básicos de peer group en JXTA • Servicios de los peer groups: • Servicio de descubrimiento. • Servicio de pertenencia. • Servicio de acceso. • Servicio de tubería. • Servicio de resolución (resolver). • Servicio de monitorización. • Nota: Un peer group es libre de implementar sólo los servicios que considere necesarios.

  46. Anuncios • Todo recurso de una red JXTA es representado mediante un anuncio. • Peers. • Peer groups. • Tuberías. • Extremos. • Modulos. • Contenidos.

  47. Anuncio de peer <?xml version="1.0"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta="http://jxta.org"> <PID> urn:jxta:uuid- 59616261646162614A78746150325033958A35814213467EBC6C 88D3C138B43903 </PID> <GID> urn:jxta:jxta-NetGroup </GID> <Name> bill </Name>

  48. Anuncio de peer (cont.) <Svc> <Parm> <Addr> tcp://129.144.34.14:9701/ </Addr> <Addr> jxtatls://uuid- 59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903/ TlsTransport/jxta-WorldGroup </Addr> <Addr> http://JxtaHttpClientuuid- 59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903/ </Addr> </Parm> </Svc> </jxta:PA>

  49. Almacenamiento de anuncios • Los peers pueden almacenar anuncios (no es obligado). • Los peers publican y descubren anuncios de los recursos. • Cada anuncio se publica con un tiempo de vida. • Fecha de expiración relativa. • Se eliminan del sistema cuando expiran. • Los anuncios pueden ser republicados.

  50. Mecanismo universal de resolución • Todas las operaciones de resolución (binding) propias de los SSDD se implementan mediante la búsqueda de anuncios. • Ejemplos: • DNS->Búsqueda de anuncios de peer o de peer group. • Localización de servicios -> búsqueda de anuncios de módulos. • Servicios de directorios -> búsqueda de anuncios de peer. • Resolución de sockets –> búsqueda de anuncios de tuberías. • Sistemas de ficheros distribuidos -> búsqueda de anuncios de contenidos. • ¡No se requiere centralización!

More Related