P2P en la empresa
Autor: Ramón Jesús Millán Tejedor
Publicado en Comunicaciones World nº 206, IDG Communications S.A, 2005
Introducción
La conjunción de tecnologías de compresión de contenidos digitales, conexiones a Internet de banda ancha y programas P2P, hacen factible descargar en muy poco tiempo archivos grandes y de alta calidad. Esta mezcla tan atractiva para los usuarios de Internet, ha intensificado involuntariamente el dolor de cabeza provocado por la piratería para los estudios de cine y las compañías discográficas. Según estudios de la firma de tecnología CacheLogic, más del 60% del tráfico actual de Internet está generado por las redes P2P, constituyendo así la aplicación estrella (killer application) de la banda ancha.
Si bien los sistemas P2P, con Napster a la cabeza, empezaron a ser conocidos por los usuarios y desarrolladores por su utilización para el intercambio "ilegal" de contenidos protegidos por derechos de autor, la realidad es que esta tecnología ofrece una gran cantidad de beneficios para sus usuarios, tanto domesticos como empresariales. Entre las aplicaciones actuales y futuras de las redes P2P, cabe destacar: negocios de intercambio de todo tipo de contenidos digitales de forma legal, motores de búsqueda, protección contra virus, ayuda en la investigación, educación colaborativa a distancia, difusión de televisión y radio en tiempo real, telefonía IP, mensajería instantánea, chat, redes de almacenamiento, etc.
Concepto de P2P
Básicamente, una red informática P2P (Peer-to-Peer) se refiere a una red que no tiene clientes y servidores fijos, sino una serie de nodos que se comportan a la vez como clientes y como servidores de los demás nodos de la red. Este modelo de red contrasta con el modelo cliente-servidor tradicionalmente empleado en las aplicaciones de Internet. Así, todos los nodos se comportan igual y pueden realizar el mismo tipo de operaciones; pudiendo no obstante diferir en configuración local, velocidad de proceso, ancho de banda de su conexión a la red y capacidad de almacenamiento.
Típicamente, la computadora que realiza algunas tareas en beneficio de otras aplicaciones llamadas clientes (clients), es el denominado servidor (host). Algunos servidores habituales son los servidores de archivos, que permiten a los usuarios almacenar y acceder a los archivos de un ordenador, y los servidores de aplicaciones, que realizan tareas en beneficio directo del usuario final. El modelo cliente-servidor era muy apropiado cuando no existían los PC, sólo estaciones de trabajo, cuya potencia distaba mucho de los grandes y costosos ordenadores centrales (mainframes). Hoy en día, los PC empleados en hogares y empresas tienen unas prestaciones cada vez más parecidas a los servidores a un precio sensiblemente menor. Por ello, las redes P2P son la mejor alternativa para aprovechar toda la capacidad de proceso, almacenamiento y ancho de banda sobrante de los ordenadores interconectados.
Características del P2P
Los programas P2P tienen una serie de características distintivas inherentes a su naturaleza descentralizada. Estas características son las que hacen realmente atractivas estos programas para los usuarios empresariales. Se pueden resumir en:
- Descentralización. En el modelo cliente-servidor tradicional, la información se concentra en servidores y es accedida por los usuarios mediante programas clientes, que básicamente se comportan como meras interfaces de usuario. Estos sistemas centralizados son ideales para ciertas aplicaciones y tareas. Por ejemplo, el control de los derechos de acceso y las búsquedas de recursos son mucho más fácilmente gestionados en sistemas centralizados. Sin embargo, la topología de los sistemas centralizados lleva inevitablemente a ineficiencias, cuellos de botella, y recursos desperdiciados. Es más, los registros centralizados son muy caros de establecer y mantener con información relevante y actualizada.
- Escalabilidad. Un beneficio inmediato de la descentralización es la mejora de la escalabilidad. La escalabilidad está limitada por factores tales como la cantidad de operaciones centralizadas (por ejemplo, sincronización y coordinación) que deben ser ejecutadas, la cantidad de estados que deben ser mantenidos, el paralelismo inherente que exhibe una aplicación, y el modelo de programación que es empleado en el desarrollo de la aplicación concreta. En cualquier caso, la escalabilidad nunca debe conseguirse a costa de degradar otras características deseables, tales como el determinismo y el rendimiento.
- Anonimato. El anonimato permite a los usuarios emplear un sistema sin preocuparse de cuestiones legales o de otro tipo, como ataques a su intimidad. Para ello, es necesario asegurar el anonimato tanto de la identidad del emisor y receptor de los mensajes; así como del autor, distribuidor y lector de los contenidos, y del lugar donde son almacenados. Un objetivo a más largo plazo es garantizar que no es posible la censura de cualquier contenido digital. Existen varias tecnicas para alcanzar el anonimato en las redes P2P, como la creación de grupos de multicasting para que el receptor de un mensaje o contenido no pueda ser identificado, ocultación de la IP e identidad del emisor, comunicación empleando nodos intermedios a pesar de que sea factible contactar directamente con el destinatario, o ubicación involuntaria y fragmentada de los contenidos.
- Propiedad compartida. La propiedad compartida reduce el coste de la posesión de los sistemas y contenidos, así como el coste de su mantenimiento. El coste del sistema global se ve reducido además, porque en P2P se reducen las capacidades de cálculo, almacenamiento y ancho de banda ociosas.
- Conectividad ad-hoc. La naturaleza ad-hoc de la conectividad es algo normal en los entornos P2P, por lo que estas aplicaciones están preparadas para el caso de nodos que no están disponibles todo el tiempo o que lo hacen de forma intermitente. La naturaleza ad-hoc es reducida, por ejemplo, mediante: proveedores de contenidos redundantes con tecnicas de replicación espontáneas, o nodos centralizados que se encargan de mantener la información o mensajes destinados a pares temporalmente desconectados de la red.
- Rendimiento. Los sistemas P2P pretenden mejorar el rendimiento agregando anchos de banda, capacidad de almacenamiento y ciclos de computación de los dispositivos diseminados por una red. Los sistemas descentralizados consiguen un mayor rendimiento, salvo para ciertas funciones, típicamente la búsqueda de recursos en la red. Por ello, las aplicaciones P2P actuales suelen tener una arquitectura mixta, incorporando el concepto de superpar, que son pares en los que otros pares delegan las búsquedas de recursos.
- Seguridad. Los sistemas P2P comparten la mayoría de los requisitos de seguridad con los sistemas distribuidos tradicionales, como el establecimiento de relaciones de confianza entre los nodos y objetos distribuidos y el establecimiento de esquemas de intercambio de claves de sesión. No obstante, aparecen nuevos requisitos en los sistemas P2P: encriptación en las comunicaciones y almacenamiento de datos, sandboxing, gestión de derechos digitales, reputación, e interoperabilidad con cortafuegos y NAT.
- Tolerancia a fallos. Los sistemas cliente-servidor suponen una perdida total del sistema cuando el servidor falla, algo que evidentemente no ocurre en P2P. Es decir, un objetivo básico de diseño de una red P2P es que esta no pierda su funcionalidad debido a fallos asociados a desconexiones de nodos o a nodos no alcanzables, caídas de la red y fallos de nodos. Por ello, es siempre deseable encontrar mecanismos que permitan manejar este tipo de fallos, bastante frecuentes sobre todo en las redes inalámbricas. La forma de conseguir la tolerancia a fallos es que varios nodos sean capaces de ofrecer los mismos recursos y servicios, para lo cual, habitualmente, son espontáneamente replicados.
- Interoperabilidad. A pesar de que existen ya muchos sistemas P2P, la mayoría de ellos no son interoperables, es decir, aunque su propósito es el mismo no son capaces de comunicarse y entenderse entre sí. La razón de esta falta de interoperabilidad ha sido la inexistencia de una entidad de estandarización mundial dedicada al mundo del P2P. No obstante, recientemente se han tenido mejoras significativas a este respecto, gracias a la formación del Grupo de Trabajo P2P y a la aparición de JXTA. El Grupo de Trabajo P2P de Internet2 es un intento de reunir los esfuerzos e iniciativas de la comunidad de desarrolladores de aplicaciones P2P y establecer un grupo común para escribir reportes y especificaciones que posibiliten el entendimiento común entre todas ellas. Por otro lado, el Proyecto JXTA es un importante esfuerzo para conseguir la interoperabilidad ofreciendo una infraestructura de código abierto para el desarrollo de aplicaciones P2P, intentando así convertir esta arquitectura básica o middleware en un estándar de facto.
Aplicaciones
Algunas de las aplicaciones P2P más populares en estos momentos suponen cierto grado de centralización. El abanico es muy amplio, y va desde aplicaciones totalmente descentralizadas a aplicaciones totalmente centralizadas, siendo su punto en común que todas siguen un sistema de computación de red distribuida donde todos los nodos pueden actuar como clientes o servidores, es decir, se comunican de igual a igual.
Muchas de las aplicaciones de las arquitecturas P2P pueden ser cubiertas por las arquitecturas cliente-servidor. Sin embargo, las características del P2P traen consigo importantes mejoras respecto a las aplicaciones tradicionales. Las principales aplicaciones actuales del P2P en el mundo empresarial se pueden agrupar en: colaboración, mensajería instantánea y telefonía IP, compartición de ficheros, distribución de contenidos, sincronización de datos y compartición de capacidad de procesamiento.
Colaboración
La informática colaborativa (groupware) consiste en varias tecnologías y procesos para eliminar el aislamiento de los empleados individuales y construir un nuevo modelo empresarial cooperativo. En un grupo de trabajo, colaboración implica compartir ideas y recursos a traves de comunicaciones interactivas. Por ejemplo, para colaborar en un proyecto, los miembros del equipo es probable que necesiten intercambiar mensajes y documentos entre sí, y disponer de un calendario de actividades y tareas conjuntas continuamente sincronizado. El intercambio de mensajes puede ser realizado por aplicaciones como: correo electrónico, telefono, chat, mensajería instantánea o videoconferencia. Durante las reuniones, puede ser de ayuda tener una pizarra electrónica virtual compartida para facilitar la comunicación entre distintos colaboradores. Los documentos son desarrollados tanto individualmente y compartidos, como elaborados conjuntamente. Otro ejemplo sería que desarrolladores de software pudiesen trabajar al mismo tiempo sobre los mismos ficheros de código.
Una de las grandes ventajas de emplear la tecnología P2P para colaboración es que una aplicación puede ser totalmente desarrollada sin depender de servidores u otros sistemas administrados de forma centralizada. De este modo, los programas P2P se encargan de descubrir los otros nodos y de encaminar de forma segura los mensajes entre los distintos usuarios. Entre las aplicaciones más completas para la colaboración en LAN e Internet empleando arquitectura P2P, tipo al famoso Lotus Notes en arquitectura cliente-servidor, está Groove. Groove integra mensajería instantánea, chat, intercambio de archivos, agenda de contactos y calendario común, y la posibilidad de trabajar en grupo directamente sobre el mismo archivo de Word, todo ello con total seguridad. Típicamente, Groove centraliza una serie de servicios (en un una sola plataforma servidor o en varias) con el fin de hacer la comunicación más eficiente y transparente a los usuarios: presencia, retransmisión, correo electrónico y DNS.
Mensajería instantánea y telefonía IP
La telefonía basada en Internet o VoIP (Voz sobre IP) ha estado disponible desde hace muchos años, pero no ha sido capaz de captar al mercado dominante. Las principales razones han sido que la baja calidad de las llamadas, el bajo porcentaje de concreción de llamadas debido a la presencia de cortafuegos y de NAT, y las complejas y poco intuitivas interfaces de usuario.
La centralización empleada por los sistemas tradicionales, como AOL Instant Messenger o MSN Messenger, pueden superar algunas de estas dificultades encaminando las llamadas a traves de cortafuegos o dispositivos NAT. No obstante, el costo del funcionamiento de la red se eleva demasiado como para ofrecer el servicio a bajo costo. Además, aumenta en proporción al número de usuarios. El resultado de esto es que las compañías que ofrecen tales servicios, destinan muy pocos recursos a los servidores por usuario, y esto perjudica la calidad de las llamadas.
Por ello, el siguiente paso lógico en la revolución originada por el intercambio de ficheros a traves de la tecnología P2P, fue la telefonía IP; y Skype fue el primer programa en desarrollar una red de telefonía de este tipo. Skype aprovecha eficientemente todos los recursos disponibles en una red; elevando así el porcentaje de concreción de llamadas y la calidad de estas, a niveles ligeramente inferiores al sistema telefónico básico. Además de telefonía IP, Skype permite establecer sesiones de mensajería instantánea y transferencia de ficheros directa entre usuarios.
Popular Telephony ofrece PeerioBiz, una solución P2P empresarial que permite crear redes de telefonía IP sin disponer de una centralita IP y compatible con las centralitas analógicas tradicionales y con Skype, lo cual supone un gran ahorro en llamadas y un enorme coste de inversión y mantenimiento enorme para las empresas.
Comparitición de ficheros
Las aplicaciones de compartición de ficheros son las más famosas y a la vez las más controvertidas de todas las posibles aplicaciones de las tecnologías P2P. Una característica de P2P es que la información es distribuida de forma totalmente flexible, segura y dinámica, haciendo que su control sea realmente complicado, por lo que ha sido empleado tradicionalmente para la difusión "ilegal" de material con copyright.
Programas tales como Kazaa o eDonkey2000, son utilizados habitualmente para compartir contenidos protegidos por derechos de autor, lo cual ha generado una autentica batalla legal entre los desarrolladores y usuarios de estos programas y las productoras cinematográficas y discográficas. La controversia en torno este tipo de programas corre el riesgo de eclipsar sus autenticas contribuciones y el mundo empresarial cometería un grave error si cierra los ojos ante esta potente tecnología. Las redes P2P a traves de Internet suponen ciertas ventajas para la industria discográfica y cinematográfica, que deberán adaptarse a las nuevas fórmulas de distribución y promoción que ofrece la Red. En un futuro no muy lejano, la música, las películas y el software serán vendidos casi de forma exclusiva por Internet, ofreciendo mejores precios al usuario y mejores ganancias al interprete y permitiendo la distribución instantánea del contenido. Es más, la capacidad de crear se verá más impulsada gracias a la posibilidad de distribuir de forma sencilla y barata la nueva obra. Consideremos por ejemplo el caso de un grupo musical modesto, que como mecanismo de marketing de sus conciertos, pone a disposición de sus seguidores un vídeo musical de un concierto en directo. La forma que tiene de hacerlo llegar ahora al gran público es poner el contenido en un servidor Web, ya sea mantenido por ellos mismos o por una empresa ajena, lo cual puede suponer una inversión económica importante. En cambio, mediante un programa como SoulSeek, basta con poner una copia del fichero a publicar en un directorio compartido de cualquier ordenador personal.
La gestión de derechos digitales o DRM (Digital Rights Management) permite que la distribución de los contenidos cumpla en todo momento el copyright establecido. Las tecnicas de DRM se basan en encriptación, la cual permite a los dueños del contenido controlar cómo podrá ser accedido por los distintos usuarios, incluyendo la cuestión de licencias y desencriptación en el dispositivo cliente. Están ya disponibles servicios, como Snocap o Audible Magic, que permiten controlar la legalidad de los contenidos compartidos a traves de una red P2P. Por otro lado, existen tambien redes P2P destinados al intercambio legal de contenidos digitales, como PeerImpact. La descarga de contenidos digitales en este tipo de redes tiene grandes ventajas para los usuarios respecto a las descargas en las redes P2P convencionales, como Kazaa: los clientes para interactuar con la red P2P no contienen ningún tipo de código malicioso, los ficheros descargados no son en ningún caso falsos (fake) o de baja calidad (spoof), los usuarios recibirán información más amplia del fichero descargado (artistas, contenidos, letras, recomendaciones, enlaces, etc.), no se fomentará la piratería que tanto perjudica a los autores y creadores, se podrá actuar como redistribuidor de contenidos siendo compensado económicamente por ello, etc. Las redes P2P están llamadas así a convertirse en las redes de distribución de contenidos, tambien conocidas como CDN (Content Delivery Networks), del futuro.
Distribución de contenidos
La distribución de contenidos se diferencia de la compartición de ficheros, en cuanto a que dichos ficheros son en este caso replicados entre todos los distintos iguales. Las redes P2P serán de gran utilidad para la distribución de contenidos, como por ejemplo: vídeo bajo demanda (películas a la carta) o aplicaciones de streaming vídeo o audio (como televisión o radio).
El contenido es así distribuido desde una entidad, como por ejemplo un periódico electrónico, a los pares. El principal beneficio de la solución P2P es que sólo unos pocos pares necesitan acceder al servidor del periódico para bajarse el artículo. Despues de esto, los pares replican el artículo entre ellos. De esta forma, el periódico que distribuye los datos siguiendo esta solución, no necesita un servidor muy potente y de alto costo, sino algo mucho más modesto. Existe tambien un nivel de ahorro adicional dentro de las propias organizaciones. Cuando el artículo es enviado a un par dentro de una red corporativa, puede emplearse un broadcast IP para distribuir inmediatamente el artículo a todos los pares de esa organización. De este modo, el enlace entre la organización e Internet no requiere la capacidad que supondría que todos los pares se descargasen el artículo a traves de un navegador Web.
Por otro lado, tenemos la distribución de contenidos en tiempo real. Mediante las recientes tecnicas de streaming, es posible visualizar ficheros de vídeo o escuchar ficheros de audio en Internet sin necesidad de descargarlos previamente al disco duro. Esto ha favorecido la proliferación de cadenas de radio y emisoras de televisión en la Red, que si bien no tienen la calidad de las obtenidas mediante las radios y televisores tradicionales, los usuarios se ven favorecidos por poder visualizar o escuchar contenidos de cualquier lugar del mundo en su ordenador. Las arquitecturas de streaming actuales se basan en el modelo cliente-servidor. La más sencilla es la de un servidor para varios clientes, pero podemos encontrar entornos más complejos con varios servidores, con los mismos o diferentes contenidos, que dan servicio a los clientes más cercanos. En este segundo entorno, la replicación de contenidos entre servidores se realiza por FTP o por multicast IP, siendo este segundo caso el mejor, pues permite que todos los contenidos esten disponibles inmediatamente para todos los usuarios. En otros sistemas se distribuye bajo demanda, es decir, el cliente pide el contenido al servidor más cercano, y en el caso de que este no lo tenga, se encargará de solicitarlo al servidor central para poder dárselo al cliente y guardarlo para siguientes peticiones.
De nuevo el P2P es un medio ideal para que dicha distribución de contenidos en tiempo real mejore su eficiencia y calidad a un menor costo. La BBC ha sido una de las primeras cadenas de televisión en hacer disponible en la Red toda su programación de radio y televisión mediante una tecnología que ha denominado Internet Media Player basada en P2P y que incorpora mecanismos de DRM, preservando así los derechos de autor de lo emitido por la cadena y pudiendo especificar el tiempo que se tiene para ver un programa. En principio sólo está disponible para ordenadores con Windows, pero la idea es permitir el acceso futuro a móviles y otros dispositivos. Mercora es otra famosa emisora de radio en Internet basada en P2P.
Sincronización de datos
La sincronización P2P es muy similar a la distribución de contenidos, con la diferencia de que es a un nivel más granular. Los usuarios domesticos y empresariales acostumbramos a sincronizar datos entre distintos dispositivos, como por ejemplo, la agenda de contactos entre el terminal móvil y el ordenador.
La sincronización podría emplearse por ejemplo para que los fabricantes de software distribuyesen los parches de aplicaciones entre sus clientes, o para que los teletrabajadores actualizasen documentos entre su ordenador domestico y los servidores de almacenamiento de la empresa. Por ejemplo, Microsoft incorporará la tecnología P2P para la distribución de contenidos y la sincronización de datos a la próxima versión de Windows, conocida actualmente con el nombre en clave de Vista, y que será lanzada comercialmente alrededor de noviembre de 2006. Dicha tecnología, que la compañía de Bill Gates ha bautizado como Avalanche, está destinada a las descargas de material legal, como software comercial o emisiones de radio y televisión, ya que Microsoft está trabajando codo con codo con las empresas discográficas, productoras cinematográficas y otras compañías de desarrollo de software para proporcionar mecanismos de seguridad que aseguren el control de todo el tráfico de las redes P2P creadas con su sistema. Avalanche será tambien utilizado para la descarga de parches y actualizaciones de seguridad, tareas que actualmente son realizadas desde una serie de servidores centrales propiedad de Microsoft, y que crean cuellos de botella en dichos servidores. En cambio, descargando estas actualizaciones desde los ordenadores de otros usuarios que a su vez las hubiesen ya descargado, como hace actualmente Kazaa, ganaríamos en velocidad, a parte de no congestionar los servidores de la compañía fabricante del software, lo que redundaría en un mejor servicio por parte de esta. Esta tecnología, evidentemente, contará con mecanismos de seguridad que garanticen el anonimato de los participantes en la conexión, así como la verificación de la legitimidad del contenido intercambiado y su integridad, y establezcan reglas para que en la máquina destino no entre nada más que la información correspondiente al fichero intercambiado.
Tambien podría emplearse la sincronización para la realización de copias de seguridad automáticas de datos críticos de nuestros ordenadores, algo que ya están explotando comercialmente, por ejemplo, PeerStor y Popular Telephony. Popular Telephony ofrece PeerioData que permite crear redes de almacenamiento sin servidores dedicados, reduciendo así los costes en infraestructura y mantenimiento. PeerioData segmenta los archivos que han de ser almacenados y los distribuye comprimidos y encriptados entre el espacio libre de los discos de distintos ordenadores conectados a la red. Cuando el usuario quiere acceder a un fichero, PeerioData recupera y recompone las diversas piezas, si es posible a partir de varias copias, con el fin de balancear la carga y aumentar la velocidad. Para disponer de redundancia y disponibilidad, el software distribuye múltiples copias de cada pieza.
Compartición de ciclos de procesamiento
Los ordenadores personales mejoran continuamente en cuanto a velocidad, espacio de almacenamiento y precio. Los ordenadores de hoy son mucho más potentes que los servidores de hace un par de años. De hecho, la única diferencia entre un ordenador y un servidor es en muchos casos el mayor ancho de banda de entrada/salida que el servidor es capaz de procesar. Existen otras diferencias, pero tienen que ver más con la gestión, fiabilidad y escalabilidad; en cuanto a velocidad de procesamiento, capacidad de almacenamiento y memoria, las diferencias son cada vez menores.
Los programas demandan cada vez más velocidad de procesamiento y más espacio en disco. No obstante, la mayoría de las aplicaciones no utilizan el 100% de los recursos de los ordenadores, por lo que la capacidad sobrante es bastante importante. Las aplicaciones y protocolos P2P pueden utilizar el exceso de potencia de cálculo y almacenamiento para crear sistemas donde todo el procesamiento sea realizado por pares en vez de por servidores.
La idea es emplear esta capacidad de cálculo sobrante para resolver problemas complejos, dividiendo estos en subproblemas que puedan ser resueltos de forma independiente por un gran número de ordenadores. Por lo general, un servidor central es requerido para controlar los recursos ofrecidos por cada ordenador, los ordenadores no operan como servidores, y no existe comunicación entre ordenadores. No obstante, una parte significativa del sistema se ejecuta en los ordenadores, con gran autonomía, por lo cual es considerado un sistema P2P. El servidor central es el encargado de dividir el problema a resolver y de distribuirlo entre los distintos ordenadores conectados. Cada uno de los ordenadores registrados está equipado con un software cliente, que es ejecutado en los períodos de inactividad. Una vez finalizado el trabajo, el resultado es enviado de vuelta al servidor, y se envía un nuevo trabajo al cliente.
Aunque esto es complicado de llevar a la práctica, existen ya programas P2P operando de este modo. El más popular es el software asociado al proyecto SETI@home, cuyo objetivo es la búsqueda de vida extraterreste mediante la detección de su tecnología de comunicaciones, buscando patrones que demuestren inteligencia en las ondas de radio procedentes del espacio. Para ello, cualquier persona que quiera colaborar puede descargarse un salvapantallas gratuito que instalado en su ordenador analiza señales del espacio captadas con el radiotelescopio de Arecibo. Otro programa muy popular es Distributed.net, cuyo objetivo es crackear códigos de encriptación, con el fin de mejorarlos.
La idea es que estos programas acaben por cubrir todo tipo de áreas de interes para empresas y usuarios, como aplicaciones financieras y de biotecnología, y establecer modelos de negocio en los que se compre la potencia de cálculo de otros usuarios para poder resolver los distintos problemas, algo en lo que ya están trabajando compañías con United Devices.
