Document 7390080

Download Report

Transcript Document 7390080

Gestión e intercambio de
contenidos audiovisuales en
un entorno P2P basado en
JXTA
Rosa Mª Martín,
Facultad de Informática de BarcelonaUniversidad Politécnica de Cataluña
(UPC)
Fundación i2CAT
[email protected]
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Contexto
• Colaboración del Laboratorio de Cálculo de la Facultad
de Informática con la Fundación i2CAT (Internet
Avanzada) en diversos proyectos I+D desarrollados entre
2004 y 2006.
• Uno de los objetivos comunes de dichos proyectos era el
de desarrollar aplicaciones altamente distribuidas y que
puedan beneficiarse de redes avanzadas o de gran
ancho de banda.
• Uso de tecnologías P2P para la compartición de
contenidos audiovisuales y especialmente en la
plataforma JXTA.
RedIRIS-JT2006
¿ Por qué P2P?
• Permite la descentralización de las aplicaciones:
– P2P (peer-to-peer) permite una computación cooperativa, social,
mediante la comunicación directa entre dispositivos.
– Los nodos del sistema pueden ejercer al mismo tiempo el papel de
clientes y de servidores al mismo tiempo.
• Aplicaciones P2P cada vez más extendidas
– Demostrada eficiencia en diferentes ámbitos (compartición de
datos, mensajería, trabajo colaborativo, etc.)
– El tráfico P2P supone un porcentaje muy elevado del tráfico de
Internet.
• Oportunidad
– Cada vez hay más nodos en Internet.
– Los equipos y dispositivos de los extremos tienen más recursos locales
y están mejor conectados (mayor ancho de banda).
– Más accesos inalámbricos.
• Muchas posibilidades de innovar e investigar.
RedIRIS-JT2006
Algunos datos sobre el uso de
P2P
• http://www.cachelogic.com/research/index.php
RedIRIS-JT2006
Propiedades de las redes P2P
• Los peers o nodos son autónomos y pueden actuar como
clientes y servidores al mismo tiempo.
• Las conexiones y los propios peers no son estables.
– Las redes P2P están preparadas para no ser vulnerables
respecto a la caída de nodos.
• Se organizan en redes virtuales (red overlay).
• No es necesaria una coordinación central ni una base de datos
central.
– Modelos de redes P2P: p2p puro, parcialmente centralizados
o híbridos (donde existen nodos, los super-peers, que actúan
de servidor para un conjunto de nodos)
• Los peers cooperan entre ellos para conseguir servicios (mayor
escalabilidad, fiabilidad y rendimiento).
RedIRIS-JT2006
Comparación con modelo
cliente-servidor
Arquitectura cliente-servidor
• Gran ancho de banda
requerido por el servidor
• No escalable
• Sensible a las caídas del
servidor
Arquitectura p2p
• Menor ancho de banda
requerido en el origen.
• Escalable
• Robusto frente a caídas
RedIRIS-JT2006
Aplicaciones P2P
• Compartición distribuida de archivos: Kazaa,
Emule, Azureus, BitTorrent, Gnutella, FastTrack,
Napster.
• Compartición de recursos de CPU: SETI@Home,
Avaki, Entropia y entornos de Grid.
• Mensajería Instantánea P2P: MSN Messenger, SIP,
AOL Instant Messenger, Yahoo! Messenger, ICQ
y Jabber.
• Otras aplicaciones: Hive, Groove, o myJXTA.
RedIRIS-JT2006
¿Por qué JXTA?
• Es una especificación de protocolos abiertos que permiten
ofrecer servicios e infraestructura para aplicaciones P2P (de
todo tipo).
• Permiten la conexión de diferentes tipos de peers
(ordenadores personales, servidores, PDAs, móviles). La
comunicación e interacción entre ellos.
• Proyecto de software abierto www.jxta.org impulsada por un
equipo de desarrollo de Sun Microsystems.
• Independencia de la implementación (lenguaje,
plataforma, red y aplicación).
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Sobre JXTA
• JXTA Define los mecanismos de control y gestión del
comportamiento de los nodos para:
– Descubrir otros nodos (peers), mantener su
visibilidad, publicar sus recursos y descubrir el
resto de recursos y servicios disponibles en la red
• mediante el intercambio de anuncios o
Advertisements.
– Organizarse en diferentes subgrupos
(peergroups) de nodos.
• Independientes de la topología de red subyacente
(firewalls, NAT, tipo de conexiones, etc.)
– Comunicarse entre ellos
• usando canales de comunicación llamados pipes.
RedIRIS-JT2006
RedIRIS-JT2006
Independencia de
implementación
• Independiente del lenguaje (implementaciones en Java,
C/C++ y Perl) y del sistema operativo.
• Puede funcionar sobre diferentes protocolos (HTTP, TCP,
etc.) y topologías de red.
• Mensajes (advertisements) codificados en formato XML.
Java == platform independence
XML == application independence
JXTA == network independence
RedIRIS-JT2006
Arquitectura software JXTA
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Aplicación e-Ruc
• eRuc es el módulo de aplicación del Proyecto Integrado
de la Fundación i2CAT (2004-2005) en el que participan
grupos de investigación de la UPC, URL y UPF.
• Integra funcionalidades suministradas por el resto de
módulos del proyecto para ofrecer al usuario una
aplicación avanzada para compartir y gestionar recursos
audiovisuales:
– Gestión de metadatos asociados a los recursos audiovisuales
y de sus derechos y licencias de uso.
– Compartición de recursos.
– Acceso a contenidos audiovisuales distribuidos,
adaptándolos a las capacidades y características de la red
y del dispositivo.
RedIRIS-JT2006
Arquitectura
• La aplicación utiliza una arquitectura totalmente distribuida
basada en web services (SOAP) y P2P (Plataforma JXTA).
• Arquitectura basada en el estándar MPEG21. Concretamente en
lo que respecta a:
–
–
–
–
gestión de contenidos.
adaptación a las capacidades del dispositivo y de la red.
personalización y recomendación de contenidos
gestión de derechos (licencias de distribución y uso).
• Autentificación y seguridad distribuida con un sistema de SSO,
single sign on, basado en SAML, integrado con todos los servicios
web y con la arquitectura JXTA.
• Sistemas de distribución de vídeo sobre IP basados en servidores
centrales o arquitecturas P2P (que incorporan sistemas de
protección de contenidos).
RedIRIS-JT2006
Arquitectura e-Ruc
RedIRIS-JT2006
JXTA en e-Ruc
•
Los nodos que ejecutan e-Ruc forman parte del
grupo JXTA I2catPeerGroup. Todos los recursos y
servicios de la red JXTA están disponibles a través
de servicios de este grupo.
•
Los servicios que se usan son:
–
Content Manager Service o CMS. Es el módulo de
compartición de ficheros. En e-Ruc se ha
implementado un módulo gestor de contenidos
audiovisuales que usa este servicio.
–
Discovery service: Servicio de descubrimiento de
recursos. Permite publicar y buscar advertisements.
–
Rendezvous service: Permite obtener la información
inicial sobre los participantes del grupo.
–
Membership service: Permite aceptar o denegar otros
miembros .
JXTA permite utilizar diferentes sistemas de
autenticación para entrar en un grupo. En nuestro
caso se ha implementando un módulo de JAAS (Java
Authentication and Authorization Service) para
integrarlo con el sistema de SSO del proyecto.
RedIRIS-JT2006
Autentificación y seguridad
en e-Ruc
• Autentificación y
seguridad distribuida
(con un sistema de SSO,
single sign on) basado en
SAML.
– Integrado con todos los
web services.
SAML-Request
WS
Servidor
Autenticación
WS Cliente
SAML-Assertion
– Se ha integrado con la
red P2P (JXTA).
Crear_SAML_Request()
Firmar()
Llamada +
[+ SAML-Assertion]
[+ Firma Cliente]
WS
verificar_SAML_Assertion()
RedIRIS-JT2006
Distribución de contenidos en eRuc
•
Los metadatos semánticos, las licencias se
almacenan en servidores centralizados
(accesibles a través de servicios web).
•
Junto con los metadatos se almacena una
referencia con la ubicación física del
contenido.
•
La referencia indica el mecanismo utilizado
para publicar y acceder al archivo. Los
archivos audiovisuales se pueden compartir
utilizando tres mecanismos:
–
–
–
La red P2P basada en JXTA.
p2pi2cat://referencia
Servidores externos (accesibles a través de una
URL)
servidores de vídeo de la red del proyecto (se
hace una operación de upload a través de un
web service).
RedIRIS-JT2006
Publicación de un archivo en JXTA
•
Requiere que el nodo JXTA y sus servicios estén inicializados y se haya validado
correctamente con el sistema de autenticación.
•
Cuando se quiere anunciar un nuevo fichero como “compartible”, se crea su
respectivo Advertisement que pasará a publicarse junto al resto de información del
Discovery Service. Por ejemplo el fichero video.mpeg tendría este aspecto:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:ContentAdvertisement>
<jxta:ContentAdvertisement>
<name>
video.mpg
</name>
<cid>
md5:4829110e7bf72be170f5efceeb92c77f
</cid>
<length>
3160114
</length>
<description>
description for I2cat!
</description>
<address>jxta://uuid-59616261646162614A78746150325033A77B79FDF71B4025AE6CCE2DE224055503/CMS/jxtaNetGroup
</address>
</jxta:ContentAdvertisement>
RedIRIS-JT2006
Publicación de un archivo en JXTA
• Hay que ir renovando la publicación de
contenidos a través del Discovery Service, para
que la caché de los nodos conserven la
información de los ficheros compartidos.
• La referencia física de este archivo será
p2pi2cat://md5:xxxxxxxxxxxxxxxxxxxxx
• Esta referencia se guardará junto con los
metadatos en el módulo gestor de contenidos,
usando un web service.
RedIRIS-JT2006
Acceso a los contenidos en e-Ruc
• Como resultado de una búsqueda o consulta de
contenidos audiovisuales se obtiene, entre otras
informaciones, la referencia que indica la ubicación del
contenido:
– Si la referencia es una URL válida, la aplicación abre el
player con esta referencia.
– Si la referencia es p2pi2cat://referencia indica que los
contenidos se pueden descargar de la red P2P.
RedIRIS-JT2006
Descarga de archivos de la
red Jxta
• Si lo que queremos es descargar un contenido de la red,
debemos hacer primero la búsqueda de su Advertisement. Una
vez encontrado, de ahí podemos leer la dirección del nodo
donde se encuentra el contenido, a parte de otra información
relacionada con el fichero (su md5, tamaño en bytes, tipo MIME,
etc...).
• Por tanto, como ya sabemos el fichero y dónde se encuentra, lo
descargamos de la red a través del servicio CMS (internamente,
está implementado con las operaciones habituales de
Entrada/Salida de JXTA, con objetos Input / Output streams)
• Una vez descargado el archivo, éste estará disponible en la
carpeta que tengamos configurada en nuestro Content
Manager. A partir de este momento, estamos en condiciones de
poder publicar nosotros también este contenido en la red JXTA.
RedIRIS-JT2006
Gestión de derechos y
protección de contenidos
• Los contenidos distribuidos a través de la red P2P pueden ir
cifrados.
• Las claves de descifrado se almacenan en el módulo de gestión
de derechos.
• La aplicación comprueba, llamando al módulo de derechos, la
autorización de acceso del usuario y si la licencia de uso es
correcta, y obtiene la clave de descifrado.
• La aplicación descarga el archivo cifrado de la red p2p y va
descifrando el contenido mientras se visualiza en el player (no se
almacena descifrado).
RedIRIS-JT2006
Conclusiones e-Ruc
• Un cliente e-Ruc puede publicar y obtener archivos de la
red p2p:
– Se ha ganado experiencia con esta tecnología.
– Se han podido integrar los resultados en otros proyectos de
innovación (Proyecto XAC o Aprencat).
– Pero el sistema implementado implica descargar siempre
completamente el archivo de otro cliente activo y presente
en la red.
• Líneas futuras:
– División de los archivos en fragmentos y descarga simultánea
desde diferentes fuentes.
– Servicios de streaming p2p.
– Extensión de la arquitectura p2p a otros módulos.
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Proyecto MediaMòbil
•
Proyecto de innovación con participación de empresas y universidades
(Tempos21, CROMOSOMA, CCRTVi, UPC, UPF, URL, Fundación i2CAT) y financiado
por el CIDEM con diferentes objetivos ligados a las aplicaciones móviles multimedia
avanzadas.
•
Desarrollado entre 2005 y 2006 con los objetivos:
•
Tecnología: J2ME MIDP 2.0 (Java para móviles); JXME (versión JXTA para móviles);
Bluetooth;, Localización mediante GPS, redes WIFI y redes celulares; uso de sistemas
de clave pública y privada para autentificación desde terminales móviles; DVB-H;
Streaming e interactividad sobre vídeo en equipos móviles; sistemas gráficos y
multimedia avanzados para móviles (librerías 3D, flash lite, 3GL, etc.);juegos
MMPOG; sistemas de mensajería instantánea basada en SIP (Simple) o Jabber.
•
Paquete de trabajo ligado a tecnologías p2p aplicadas a dispositivos móviles
desarrollado por el LCFIB.
–
–
–
Analizar las posibilidades de las tecnologías P2P.
Convergencia entre la TV y el móvil.
Aplicaciones y tecnologías sensibles al contexto.
RedIRIS-JT2006
Proyecto MediaMòbil
•
Arquitectura de implementación basada en
JXME.
–
–
•
Uso de JXME para gestión de la presencia:
–
–
–
–
•
Adaptación de JXTA para terminales móviles (con
soporte Java MIDP y configuración CLDP).
Adaptación a las restricciones de los dispositivos:
problemas de conectividad y poca memoria.
Definición de intercambio de mensajes XML
adaptados al proyecto.
Conexión al peergroup mediante un proxy-relay.
El proxy-relay mantiene la información de los
caminos hacia otros nodos, reenvía los mensajes
procedentes del resto de nodos. Está accesible a
través del puerto 80.
Compresión de datos a enviar entre relay y
terminal.
Convivencia en el peergroup de terminales
móviles con otros dispositivos JXTA (ordenadores
personales, servidores, etc.)
Uso de Bluetooth (JSR-82) para intercambio de
archivos.
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Trabajo actual
• Proyecto MACHINE 2006-2007
– Extensión de la arquitectura p2p a otros módulos.
• Servidores de media, servicios de transcodificación, etc.
visibles también a través de la red p2p.
• Servidores de metadatos distribuidos en una red p2p.
– Servicios de streaming p2p
• Alternativa a los servicios basados en multicast.
• Mayor escalabilidad que los servicios centralizados.
• En línea con aplicaciones como Peercast, freecast,
ACTLab TV, ESM, Vatata, NodeZilla, Coolstreaming, Pplive.
RedIRIS-JT2006
Servicios de streaming sobre p2p
• Trabajo a desarrollar:
– Decidir arquitectura a utilizar
– Mapearla a entorno JXTA
– Desarrollar e integrar prototipo de
aplicación
RedIRIS-JT2006
Arquitectura
• Factores que influyen en la eficiencia del
streaming sobre p2p.
– Minimizar la pérdida de paquetes para recibir todas las
fracciones del streaming a tiempo de emitir.
– Reducir el tiempo que se tarda en recibir el primer
segmento a emitir.
– Decidir de dónde se extrae la información,
considerando la minimización del retardo punto a
punto (determinado por el número de nodos
intermedios y los posibles cuellos de botella).
RedIRIS-JT2006
Arquitectura
• Otros factores:
– los nodos tienen la libertad de conectarse y
desconectarse del sistema en cualquier momento, por
lo que se necesita un esquema robusto que minimice
las pérdidas de paquetes causadas por las
desconexiones (fortuitas o voluntarias).
– Es necesario controlar el overhead de los protocolos,
evitando la generación de una sobrecarga excesiva
de mensajes de control que impida la escalabilidad
del sistema.
– Uno de los aspectos más importantes que influyen en
la robustez, escalabilidad y rendimiento del sistema es
la topología de la red de nodos (red overlay o red de
revestimiento) y cómo se gestiona ésta.
RedIRIS-JT2006
Tipos de arquitecturas según
los protocolos
Source-driven
• Mayor pérdida de paquetes
por desconexión
• Mayor tiempo medio de
llegada del primer paquete
• Menor escalabilidad
Ej: PeerCast o Zigzag
•
Data-driven
• Menor pérdida de
paquetes por desconexión
• Menor tiempo medio de
llegada del primer paquete
• Más escalabilidad
Ej: Donet
en el proyecto MACHINE hemos decidido optar por los protocolos DataDriven, basándonos en la arquitectura de DONet e intentando crear una
implementación de la misma usando JXTA.
RedIRIS-JT2006
Data-driven: DONet
Reproductor de vídeo
Membership
Manager
Buffer
Partnership
Manager
Buffer Map
(BM)
Scheduler
Interfaz de red
Partner
Partner
Partner
RedIRIS-JT2006
¿Cómo se recibe un stream?
Partnership en DONet
n-1
n
n+1
C
n-1
n
n+1
D
H
n+1
n-1
n
n-1
n
n+1
G
Entre partners se intercambia
constantemente el BM (Buffer Map)
El scheduler aplica una
heurística que da prioridad a la:
1- Disponibilidad
2- Deadline segmento
3- Ancho de banda partner
RedIRIS-JT2006
DONet + JXTA
C
n-1
n-1 n n+1
n-1 n n+1
D
n+1
n
G
H
n-1 n n+1
RedIRIS-JT2006
DONet + JXTA
• El uso de JXTA proporciona independencia de
la red física y un entorno de desarrollo de
aplicaciones p2p.
• El uso de DONet gestiona los recursos de
manera eficiente.
• Faltaría demostrar si el uso conjunto de ambas
tecnologías puede reducir la eficiencia
proporcionada por DONet.
RedIRIS-JT2006
Índice
 Introducción
 Sobre JXTA
 Proyectos desarrollados
 Aplicación e-Ruc
 Proyecto MediaMòbil
 Trabajo actual
 Conclusiones
RedIRIS-JT2006
Conclusiones
• Las tecnologías P2P constituyen un enorme campo de
investigación e innovación, permitiendo la extensión de
servicios y contenidos audiovisuales a un gran número de
usuarios.
• La experiencia previa con la plataforma JXTA ha
permitido experimentar con tecnologías P2P en entornos
heterogéneos.
• La idoneidad de JXTA para entornos de streaming y vídeo
bajo demanda de alta calidad, es todavía una incógnita
ya que todavía es un poco prematuro para extraer
conclusiones del proyecto que actualmente nos ocupa.
RedIRIS-JT2006
Referencias
•
•
•
•
•
•
•
•
•
[1]
Web oficial de la tecnología JXTA. http://www.jxta.org
[2]
Presentación final del proyecto integrado y del eRuc.
http://www.i2cat.net/i2cat/servlet/I2CAT.MainServlet?seccio=24_1_3
[3]
Información del proyecto MediaMobil.
http://www.i2cat.net/i2cat/servlet/I2CAT.MainServlet?seccio=8_26
[4]
P2P IPTV Motherlist.
http://orblive.com/modules/newbb/viewtopic.php?topic_id=13&forum=4
[5]
Silverston, Thomas; Fourmaux, Oliver. “Source vs Data-driven Approach for
Live P2P Streaming”. Presentada en the International Conference on Networking,
International Conference on Systems and International Conference on Mobile
Communications and Learning Technologies (ICNICONSMCL’06). 2006.
[6]
Duc, A.Tran; Kien, A. Hua; Tai, D.; “ZIGZAG: An Efficcient Peer-to-Peer Scheme
for Media Streaming”. IEEE INFOCOM. 2003. San Francisco, CA.
[7]
Zhang, Xinyan; Liu, Jiangchuan; Li, Bo; Yum, Tak-Shing Peter “DONet: A datadriven overlay network for efficient live media streaming”. IEEE INFOCOM. 2005.
[8]
Membership Service de JXTA.
http://platform.jxta.org/nonav/java/api/net/jxta/membership/packagesummary.html
RedIRIS-JT2006
Agradecimientos
Rosa Mª Martín ([email protected])
• Gracias a:
José Francisco Crespo, Joan Esteve, Joan Giralt,
Fran Martínez Posadas del LCFIB.
Fundación i2CAT.
Todas las personas de los grupos de
investigación de la UPC, URL y UPF y de las
empresas que han participado en los proyectos
mencionados.
RedIRIS-JT2006