640 likes | 788 Views
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.
E N D
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
P2P. Mecanismos de descubrimiento • Descubrimiento pasivo
P2P. Mecanismos de descubrimiento • Descubrimiento directo
P2P. Mecanismos de descubrimiento • Descubrimiento indirecto
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.
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.
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.
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.
¿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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
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.
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.
¿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.
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.
Anuncios • Todo recurso de una red JXTA es representado mediante un anuncio. • Peers. • Peer groups. • Tuberías. • Extremos. • Modulos. • Contenidos.
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>
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>
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.
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!