Peer to Peer: Un modelo con alto potencial en aplicaciones móviles

Hace varios años el concepto de aplicaciones peer to peer en Internet se popularizó y dio origen a una amplia variedad de soluciones que ya forman parte de nuestra vida diaria, tales como Messenger, Windows Live Sync, Skype y BitTorrent entre otras.

¿Qué es peer to peer?
En un modelo peer to peer necesariamente participan dos o más colegas (peers) corriendo en dispositivos –la mayor parte de las veces una PC– que se comunican directamente entre si en un modelo uno a uno o muchos a muchos, sin pasar a través de un servidor central para la parte medular de la interacción entre ellos.
En la mayoría de las aplicaciones peer to peer un servidor central actúa únicamente como un directorio que le permite a los diferentes peers encontrarse entre sí. Por ejemplo, cuando quiero llamar a alguien a través de Skype, mi PC obtiene las direcciones de mis contactos de un servidor central que conoce las ubicaciones de todos. Sin embargo, una vez que inicio la llamada todos los datos de esta se intercambian mediante una conexión directa entre mi PC y la del contacto con el que estoy hablando. Los datos de la llamada ya no fluyen a través del servidor central. Este esquema se conoce como peer-to-peer “suave”.

En un modelo peer to peer puro o completo, no hay distinción entre cliente y servidor y todas las funciones de indexación y localizació están a cargo de los mismos clientes. Las principales ventajas de este modelo son su escalabilidad y resistencia a fallas. Dado que cada peer funge tanto como cliente como servidor, agregar nodos a la red implica incrementar casi linealmente los recursos disponibles de cómputo y comunicaciones. Adicionalmente, como ningún nodo juega un rol especial, la pérdida o falla de uno normalmente no afecta el funcionamiento de la red global que sostiene a la aplicación. BitTorrent es un excelente ejemplo de un protocolo peer to peer que es altamente escalable, resistente y prácticamente imposible de controlar por una autoridad central.

El escenario móvil
Hoy existen pocas aplicaciones móviles con un modelo de este tipo que verdaderamente aprovechen los diferenciadores de un dispositivo móvil. Es cierto que hay versiones móviles de Skype o Messenger, pero en mi opinión hay un amplio terreno sin explotar en aplicaciones móviles peer to peer.

Cuando hablamos de soluciones para movilidad, tenemos que ir más allá de hacer lo mismo que hacíamos en la PC pero ahora en pequeño. El diferenciador obvio de un dispositivo móvil es….. ¡que se mueve! La ubicación se vuelve relevante para que pensemos en aplicaciones móviles peer to peer que verdaderamente hagan sentido.

La ubicación tiene dos connotaciones:
1. ¿Dónde estamos ubicados en el planeta? Definido por nuestras coordenadas – latitud, longitud y altura – obtenidas mediante alguna forma de posicionamiento – GPS, trangulación, etc. –
2. ¿Quién está cerca de mi? En este caso no es necesario conocer nuestra posición absoluta, el simple hecho de poder identificar qué es loque está cerca de mí puede proveerme con información interesante.

Es en la convergencia del modelo peer to peer con la información de nuestra ubicación absoluta
y relativa donde está el verdadero potencial de innovación en aplicaciones móviles. Pensemos
en algunos ejemplos ...

Un automóvil podría comunicar a cualquier otro cercano que ha sufrido un accidente. Estos a su vez podrían retransmitir esta información a otros de tal forma que conductores que se acercan al punto del problema sean advertidos. Podría funcionar incluso para compartir información de las condiciones de tráfico que nos ayuden a elegir mejores rutas.

Cuando llego a un concierto o una fiesta con intención de conocer a alguien, mi celular podría
establecer contacto con la gente que está a mi alrededor comunicándole mis intenciones y preferencias. Lo mismo si quiero jugar a algo con alguien que se encuentre cerca. La función social de compartir música de la Microsoft Zune a través de Wi-Fi es una idea adelantada a su tiempo que no ha funcionado mejor simplemente por la falta de una masa crítica de dispositivos.

En un parque de diversiones podría calificar en mi celular las diferentes atracciones que visito y consultar en tiempo real lo que piensan otros visitantes al parque sobre ellas. Si les gustaron o no y además como están los tiempos de espera en las colas. Esto último podría resolverse sin mayor interacción humana si los dispositivos simplemente analizan su densidad relativa en un área determinada.

Retos a resolver
Hay varios obstáculos que dificultan el desarrollo de este tipo de aplicaciones en este momento
y que nos tocará ir resolviendo.

Diversidad de plataformas móviles. El mercado de dispositivos móviles es altamente competitivo y ningún jugador tiene una penetración
suficientemente dominante como para ser un estándar generalizado. El valor de uso de una aplicación peer to peer (como el de cualquier otra red) se incrementa conforme agregamos más participantes a ésta. Es el problema que mencionaba sobre las funciones sociales del Microsoft Zune. Para poder realmente aprovecharlo tengo que encontrarme con usuarios de Zune seguido
y en muchos lados. Si queremos crear una aplicación peer to peer de alto impacto seguramente tendremos que soportar a todas las principales plataformas móviles y este es un esfuerzo no trivial. El problema además se incrementa si consideramos que hay tremenda variabilidad entre las capacidades de los diferentes modelos de dispositivos móviles. Hay mucho menos diferencia de capacidades entre una Mac y una PC de la que existe entre un teléfono básico y un smartphone avanzado. Para mitigar este problema podemos dirigir nuestra aplicación a las necesidades de un nicho de mercado específico que tienda a utilizar predominantemente un sistema operativo móvil o bien podemos simplificar nuestra aplicación al mínimo común denominador.

Configuración compleja de redes locales. Los sistemas operativos móviles deben evolucionar
de tal forma que sea más sencillo establecer una conexión local entre dispositivos. Las modalidades existentes a través de Bluetooth o Wi-Fi no son suficientemente sencillas aún. Ambas plataformas inalámbricas son suficientemente buenas en términos de ancho de banda y alcance para muchos usos, pero hay que simplificar la experiencia de usuario para establecer una conexión. Todos los detalles
del protocolo deben esconderse de tal forma que para el usuario sea tan fácil como responder a una pregunta como “Juan desea establecer una conexión contigo para jugar Scrabble. ¿Estás de acuerdo?” Con responder a esa pregunta mi dispositivo debiera de hacer todo lo necesario para establecer una conexión segura, instalar el scrabble si no lo tengo e iniciar el juego.

Protección de la privacidad. Muy relacionado con el punto anterior, necesitamos tener control
absoluto de con quién queremos compartir nuestra información. Resulta particularmente
sensible la información sobre nuestra ubicación absoluta. Hay muchos escenarios done el usuario puede no querer ser ubicado. Las plataformas móviles nos deben dar control total sobre nuestra información al mismo tiempo que nos permitan compartirla de manera simple con quien o quienes deseemos.

Plataformas cerradas. Cuando hablamos de dispositivos móviles más allá del celular, por ejemplo el automóvil, no hay mucho que hacer mientras las plataformas de los dispositivos de a bordo continúen estando cerradas. Hay una oportunidad para los fabricantes de autos para ofrecer un “sandbox” dentro de la computadora de a bordo donde desarrolladores independientes pudieran agregar sus aplicaciones. Mientras tanto el ritmo de innovación dependerá de lo que cada fabricante pueda hacer por su cuenta.

Servicios estándar de descubrimiento geográfico. Necesitamos un DNS de descubrimiento geográfico. Un servicio totalmente estandarizado y abierto que me permita descubrir con facilidad cualquier tipo de objetos y servicios que estén disponibles en una cierta zona geográfica o en mi vecindad próxima para poder iniciar una interacción con ellos. En Internet el DNS hace la función indispensable de un directorio de nombres y es la base de mucho de lo que hacemos en la red. Un servicio similar que incorporara información geográfica, potenciaría de manera fundamental la innovación en el espacio móvil. El reto no es nada trivial ya que la información geográfica cambia mucho más rápido que la de nombres en Internet, además de que hay mucho más dispositivos móviles que computadoras en el mundo.

Por dónde empezar
Aún cuando los retos que hemos mencionado arriba son significativos, las herramientas necesarias
para crear la primera generación de aplicaciones móviles peer to peer realmente innovadoras ya existen. No hay que perder de vista que el mercado para este tipo de aplicaciones es más grande que el que existe hoy para computadoras personales. Las principales plataformas móviles (Symbian, Windows Mobile, Blackberry e iPhone OS) todas cuentan con herramientas de desarrollo poderosas y gratuitas que podemos utilizar para empezar a construir estas aplicaciones hoy. Es muy probable que el primer gran éxito de este modelo no se trate de una aplicación compleja. Sucedió de forma similar en las PCs con ICQ y Napster en su momento. No sé cual será la primera aplicación ni en que momento estará disponible, pero estoy absolutamente seguro de que llegará y cambiará nuestra forma de vivir para siempre.

Acerca del Autor
Héctor Obregón es fundador y Director General de emLink. Héctor se especializa en el desarrollo de soluciones móviles y para dispositvos embebidos. Adicionalmente, es Microsoft MSDN Regional Director, Microsoft MVP para Windows Embedded y miembro del comité de dirección de la Comunidad .NET de México D.F.