Title: Gesti
1Gestión e intercambio de contenidos audiovisuales
en un entorno P2P basado en JXTA
- Rosa Mª Martín,
- Facultad de Informática de Barcelona-Universidad
Politécnica de Cataluña (UPC) - Fundación i2CAT
- rosam_at_fib.upc.edu
2Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
3Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
4Contexto
- Colaboración del Laboratorio de Cálculo de la
Facultad de Informática con la Fundación i2CAT
(Internet Avanzada) en diversos proyectos ID
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.
5 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.
6Algunos datos sobre el uso de P2P
- http//www.cachelogic.com/research/index.php
7Propiedades 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).
8Comparació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
9Aplicaciones P2P
- Compartición distribuida de archivos Kazaa,
Emule, Azureus, BitTorrent, Gnutella, FastTrack,
Napster. - Compartición de recursos de CPU SETI_at_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.
10Por 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).
11Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
12Sobre 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.
13(No Transcript)
14Independencia 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 independenceXML application
independenceJXTA network independence
15Arquitectura software JXTA
16Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
17Aplicació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.
18Arquitectura
- 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).
19Arquitectura e-Ruc
20JXTA 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.
21Autentificació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.
- Se ha integrado con la red P2P (JXTA).
22Distribución de contenidos en e-Ruc
- 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).
23Publicació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 - lt?xml version"1.0" encoding"UTF-8"?gt
- lt!DOCTYPE jxtaContentAdvertisementgt
- ltjxtaContentAdvertisementgt
- ltnamegt
- video.mpg
- lt/namegt
- ltcidgt
- md54829110e7bf72be170f5efceeb92c77f
- lt/cidgt
- ltlengthgt
- 3160114
- lt/lengthgt
- ltdescriptiongt
- description for I2cat!
- lt/descriptiongt
- ltaddressgtjxta//uuid-59616261646162614A78746150325
033A77B79FDF71B4025AE6CCE2DE224055503/CMS/jxta-Net
Group
24Publicació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//md5xxxxxxxxxxxxxxxxxxxxx - Esta referencia se guardará junto con los
metadatos en el módulo gestor de contenidos,
usando un web service.
25Acceso 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.
26Descarga 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.
27Gestió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).
28Conclusiones 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.
29Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
30Proyecto 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
- Analizar las posibilidades de las tecnologías
P2P. - Convergencia entre la TV y el móvil.
- Aplicaciones y tecnologías sensibles al contexto.
- 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.
31Proyecto MediaMòbil
- Arquitectura de implementación basada en JXME.
- 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. - Uso de JXME para gestión de la presencia
- 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.
32Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
33Trabajo 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.
34Servicios de streaming sobre p2p
- Trabajo a desarrollar
- Decidir arquitectura a utilizar
- Mapearla a entorno JXTA
- Desarrollar e integrar prototipo de aplicación
35Arquitectura
- 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).
36Arquitectura
- 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.
37Tipos 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 Data-Driven, basándonos en la
arquitectura de DONet e intentando crear una
implementación de la misma usando JXTA.
38Data-driven DONet
39Cómo se recibe un stream?
Partnership en DONet
n-1
n
n1
n-1
n
n1
C
D
H
n1
n-1
n
n-1
n
n1
G
Entre partners se intercambia constantemente el
BM (Buffer Map)
El scheduler aplica una heurística que da
prioridad a la1- Disponibilidad2- Deadline
segmento3- Ancho de banda partner
40DONet JXTA
n-1
n
n1
n-1
n
n1
C
D
Red virtual DONet
H
n-1
n1
n
G
n-1
n
n1
Red virtual JXTA
Red física
41DONet 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.
42Índice
- Introducción
- Sobre JXTA
- Proyectos desarrollados
- Aplicación e-Ruc
- Proyecto MediaMòbil
- Trabajo actual
- Conclusiones
43Conclusiones
- 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.
44Referencias
- 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?seccio24_1_3 - 3 Información del proyecto MediaMobil.
http//www.i2cat.net/i2cat/servlet/I2CAT.MainServl
et?seccio8_26 - 4 P2P IPTV Motherlist. http//orblive.com/modul
es/newbb/viewtopic.php?topic_id13forum4 - 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 (ICNICONSMCL06). 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 data-driven overlay
network for efficient live media streaming. IEEE
INFOCOM. 2005. - 8 Membership Service de JXTA.
- http//platform.jxta.org/nonav/java/api/net/jxta/m
embership/package-summary.html
45Agradecimientos
- Rosa Mª Martín (rosam_at_fib.upc.edu)
- 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.