Blog de Miguel Llopis

¿En qué consiste Windows Drive?

Mucho hemos hablado en Geeks.ms estos últimos meses acerca del proyecto Windows Drive en el cual hemos trabajado Héctor Juan, David Rodríguez, Carlos Junquera Cachero y yo mismo. O mejor dicho, os hemos mantenido al tanto de los logros que paso a paso hemos ido consiguiendo: la clasificación para la final española de Imagine Cup '08 y la victoria en la misma, allá por el mes de Abril, posteriormente os comunicamos la noticia de que estábamos entre los tres proyectos clasificados para la categoría internacional de Windows Live y, finalmente, el éxito hace apenas 4 días en París.

No obstante, aún no habíamos explicado aquí de una forma concreta en qué consiste el proyecto. Como tampoco pretendemos soltar una descripción demasiado larga y enrevesada, me gustaría referenciaros a una gran entrevista que nos hizo la revista dotNetManía en la edición de Junio. Aún así, nos parece necesario responder a modo de cuestionario rápido una serie de preguntas que os ayuden a situaros mejor en el contexto del problema afrontado y los principios básicos de nuestra solución:

1.- ¿Cuál es el lema de Imagine Cup 2008?

Imagina un mundo en el que la Tecnología posibilite un Medioambiente sostenible

2.- ¿Qué problema afrontáis vosotros?

El Cambio Climático, puesto que es quizá el problema de mayor trascendencia y a la vez la causa de otros muchos problemas derivados (incremento del número de huracanes, descenso del nivel de lluvias, aparición de mayor número de incendios forestales no provocados, etc).

3.- ¿De qué forma?

Pensamos que la solución a este problema debe partir de la colaboración entre ciudadanos de a pie. A lo largo de la última década, muchos han sido los tratados y acuerdos entre gobiernos y otras instituciones para reducir el volumen de emisiones pero, al final, lo que verdaderamente cuenta es el ahorro de emisiones que la gran masa de ciudadanos puede llevar a cabo en sus tareas diarias. La Tecnología nos va a ayudar a ello optimizando nuestras actividades cotidianas.

4.- ¿En qué actividades cotidianas nos centramos?

Nuestro proyecto trata de optimizar el uso del vehículo privado. De esta forma, lo que perseguimos es hacer más sencillo y práctico que la gente comparta su vehículo con otras personas.

5.- ¿Existen soluciones en este sentido?

Sí, existen más de 100 soluciones, fundamentalmente basadas en plataforma web para abordar este problema. El fenómeno en cuestión se denomina en inglés "carpooling".

6.- ¿Qué ventajas pensáis que aporta vuestro proyecto?

Cuando te dedicas durante meses a analizar minuciosamente las soluciones ya existentes y sus modelos de negocio, encuentras que, aunque éstas ofrecen unos resultados beneficiosos para el Medioambiente, existen una serie de patrones o mejor dicho de "antipatrones" o pequeños errores de concepto que hacen que el usuario se muestre reticente al uso de las mismas, de forma que finalmente no son todo lo efectivas que desearíamos. Algunas de ellas son:

a) Los sistemas existentes ponen en contacto a personas desconocidas que realizan una ruta similar, esto genera cierto miedo o poca disposición a meter en tu vehículo o montar en vehículos de personas que no conoces de nada... Nuestro sistema emplea el enfoque radicalmente opuesto, dispondremos de una serie de información almacenada "en la nube" mediante el uso de diferentes servicios de Live, de igual forma que ahora mismo disponemos de MSN Spaces o álbumes de fotos para cada usuario y seremos capaces de compartir esta información con nuestros contactos habituales de MSN Messenger mediante el uso de la API de Live Contacts, de este modo compartiremos vehículo con usuarios que ya conocemos: amigos, compañeros de trabajo, familiares, etc.
b) Existen más de 100 soluciones de Carpooling a nivel mundial y, sin embargo, la compartición de información entre ellas es totalmente inexistente. De este modo, cada una intenta hacer la guerra por su cuenta, existe gran redundancia de información en distintos almacenes de datos y, como consecuencia final, dos personas que perfectamente podrían complementar sus rutas son incapaces de encontrarse por estar en sistemas diferentes. ¿No sería mejor disponer de una fuente de información central, sobre la cual plantear distintos clientes? Mediante el uso de Live Services, podemos almacenar toda esta información en la nube, apoyándonos en el uso de SQL Server 2008 para información y cálculos más complejos. Posteriormente, el uso de una capa de servicios Windows Communication Foundation y la tecnología LINQ nos posibilita acceder a estas fuentes de datos y servir la información y métodos necesarios a cada uno de los clientes implementados.
c) ¿Hasta qué punto la visibilidad de estas plataformas web es la apropiada? ¿Qué estrategias de marketing emplean para llegar al gran público? A menudo, el aislamiento de estos sistemas es tal, que ni siquiera tienen presencia en redes sociales tan relevantes como Facebook, Twitter, LinkedIn o Windows Live. Por el modo en que nuestro sistema está concebido, cada usuario que haga uso de Windows Drive, será un punto de "publicidad" de nuestro sistema, ya que sus 100-200 (o incluso más) contactos de MSN Messenger verán que esta persona usa el sistema y podrán automáticamente unirse al mismo de manera gratuita; esto es: crear una auténtica cadena de colaboración a través de Windows Live.
d) ¿Qué nivel de experiencia de usuario proporcionan? ¿Está el usuario obligado a interactuar con el sistema a través de una página web o dispone de otras vías como podrían ser el uso de aplicaciones de escritorio, actividades dentro de MSN Messenger, clientes ligeros para PDA o, incluso, otros dispositivos como la XBOX, televisores con Windows Media Center, etc.? Al fin y al cabo, ¿la experiencia de usuario no consiste en dotar al usuario de una comunicación de último nivel en todos y cada uno de los puntos de interacción entre el usuario y el sistema, además de proporcionar cuantos puntos de interacción sean necesarios para ajustarse a los diferentes escenarios de uso?. En nuestro caso: acceder al sistema desde casa, desde el PC, chateando con un compañero/amigo, o desde un dispositivo móvil ya en la calle/carretera...
e) Por último, los sistemas de búsqueda de rutas existentes son muy simples. El punto de origen y destino de la ruta debe coincidir entre la búsqueda realizada y los resultados obtenidos... ¿No resultaría mucho más efectivo combinar una serie de algoritmos de inteligencia artificial y ser capaces de proporcionar rutas compuestas para, de este modo, mejorar los resultados de nuestras búsquedas y de este modo incrementar aún más si cabe la satisfacción del usuario con el sistema? Pues bien, si combinamos el uso de la SDK de Live Maps con las nuevas capacidades del Spatial Engine de SQL Server 2008... ¡podemos llevar a cabo esta funcionalidad!

7.- A modo de resumen, y puesto que se trata de una competición de desarrollo software, ¿qué tecnologías se han utilizado para el desarrollo del proyecto?

En primer lugar, nos gustaría resaltar que el uso de una u otra tecnología no hace mejor ni peor un proyecto en sí. Para nosotros, la fórmula ideal es la expuesta en este post:

a) Identificar una oportunidad de negocio, realizar un análisis competitivo y explotar nuestras potenciales ventajas respecto al resto de alternativas.
b) Centrar el desarrollo del proyecto en satisfacer las necesidades de los usuarios y en proporcionar una satisfacción elevada en el uso del sistema.
c) Por último, determinar qué tecnologías nos van a proporcionar estas posibilidades, diseñar e implementar el sistema en base a ellas. La tecnología es "únicamente" aquello que hace posible el proyecto, no el factor motivante del mismo.

Desde el punto de vista tecnológico, estas son las tecnologías que hemos empleado:

    1. SQL Server 2008
    2. LINQ
    3. Windows Communication Foundation
    4. Web Services
    5. Windows Presentation Foundation
    6. XNA
    7. J2ME (Java Middleware Platform for Mobile Devices)
    8. ASP.NET Ajax
    9. Silverlight 2.0
    10. .NET Compact Framework 3.5
    11. Windows Mobile 6
    12. Windows Live APIs (Virtual Earth, Contacts, Alerts, IM, Live ID)
    13. Windows Media® Center
    14. Visual Studio Team System 2008
    15. Expression Studio 2.0

Por último, dejamos una serie de recursos asociados, como son las fichas del proyecto publicadas con motivo de la final internacional tanto para la categoría de Software Design como de Windows Live, así como un vídeo promocional que creamos ya desde la fase nacional y que muchos de vosotros ya conoceréis, pensamos que resume muy bien todas estas características y además ofrece imágenes del proyecto a pleno rendimiento.

Aprovecho para dar las gracias a nuestro gran amigo Ricardo Acosta por el pedazo logo que se curró para nuestro proyecto, ¡artista! :-) 

Como despedida, me gustaría dar las gracias a todos por vuestro apoyo desde las primeras fases de la competición y también animar a la gente a participar en la edición del próximo año. Si nosotros hemos podido, vosotros TAMBIÉN.

Ánimo y mucha suerte, ¡Imagine Cup 2009 ya ha comenzado!

Posted: 12/7/2008 20:37 por Miguel LLopis | con 7 comment(s) |
Comparte este post:

Comentarios

Miguel ha opinado:

Muy impresionante tu proyecto, solo una pregunta, sera open source?

Un saludo.

# July 13, 2008 12:12 AM

Miguel LLopis ha opinado:

Muchas gracias por tus palabras Miguel. En principio, nuestro proyecto no será open source; recalco la expresión "en principio", jeje.

De todas formas, si lo que te interesa es ver proyectos que hagan uso de las APIs de Windows Live, la página de dev.live.com tiene gran cantidad de recursos entre los que se incluyen las QuickApps: http://dev.live.com/Quickapps/

Como parte del premio que obtuvimos, está la posibilidad de que nuestro proyecto aparezca en portada de esta web de desarrollo con Live. No obstante, nuestro objetivo es convertirlo en un servicio real dentro de la plataforma Live, más que servir de ejemplo "ficticio" como es el caso de las Quickapps.

Ello no impide que podamos hablar largo y tendido acerca de la implementación del proyecto e, incluso, que expongamos nuestra fachada de servicios de modo que se puedan crear proyectos de desarrollo de clientes que consuman dichos servicios. Pero en el tema del "core" del sistema, pensamos que es mejor que lo gestionemos directamente nosotros.

Un saludo y gracias por tu interés.

# July 13, 2008 3:30 PM

PabloNetrix ha opinado:

Ahhh... sí, opensource, claro...

Así puedo coger y copiar la idea tranquilamente, y luego aprovecharme de los algoritmos creados por los demás, y voy y monto un servicio de "suscripción" (DE PAGO estilo 'envia ALTA al 6969') en el que básicamente ofrezco lo mismo, pero diferente (cambiaré al menos los logos y los iconos, no sea que se aprecie el plagio descarado).

Si la fórmula de la CocaCola hubiese sido "opensource"...

# July 14, 2008 10:40 AM

Miguel LLopis ha opinado:

jajaja, muy buena Pablo, sobretodo el nº de teléfono para el alta... xD

La verdad es que el problema fundamental, más que el tema de que otros hagan uso de ello, es el aportar garantías de privacidad. Por ejemplo, para la creación de una actividad de MSN y conseguir que ésta venga incluída "de serie" en futuras versiones del Messenger, hay que realizar una serie de trámites (documentación, envío de código al equipo de Live, etc). De modo que antes de incluir cualquier actividad en el Messenger, el equipo de Live debe estar totalmente seguro de que estas actividades no son maliciosas ya que, al fin y al cabo, estás haciendo uso de sus servicios y, más aún, de la información que sus usuarios han introducido al darse de alta (perfil de usuario).

Al igual que sucede con las actividades de Messenger, el proceso para el uso de otras APIs como Alerts, Agents o, incluso, App Data Storage sigue procesos similares.

Es por ello que se me antoja complicado conjugar el "control" sobre la lógica de negocio del proyecto que debemos llevar a cabo para que se pueda integrar en Live con el hecho de exponer todo el código a modo de proyecto Open Source. Esto en cuanto al Core del sistema y a la capa de servicios WCF + WS. En cuanto a los diferentes clientes, creo que no habría problema.

Si alguien está dispuesto a colaborar en el proyecto creando nuevos clientes que consuman la fachada de servicios existente, que lo diga. Estamos dispuestos a hablar de ello. Todo sea por llegar a una mayor cuota de público y, de esta forma, colaborar aún más en la conservación del medioambiente :-)

# July 14, 2008 1:14 PM