¿Qué es Wave y para qué sirve?
Información sobre Wave
Introducción sobre el documento
Este documento pretende explicar lo que es Wave, su uso, los elementos que lo componen, aplicaciones prácticas que pueda tener, etc.
El documento lo cree en una ola (el término se explica más abajo) y lo compartí con unos cuantos amigos para que opinaran y discutir sobre él. Aquí les dejo la versión actual del mismo.
Nota: Parte de la información está copiada directamente de la web de Google.
Introducción sobre Wave
Wave es una herramienta colaborativa, además de un protocolo de comunicación.
Básicamente se trata de una herramienta centralizada que permite que varios usuarios editen al mismo tiempo un documento.
Existen herramientas similares a ésta para realizar dicha tarea, pero ninguna cumplía todos los requisitos:
- Edición colaborativa en tiempo real. Es decir, que varios usuarios pueden escribir y borrar en el mismo documento, al mismo tiempo y la misma copia única del mismo.
- Edición de texto enriquecido. Esto es, que no se trataría de texto sin formato, sino con él (negrita, cursiva, etc), además de contenidos multimedia y de otro tipo incrustados en el mismo documento (vídeos, enlaces, imágenes, formularios, gráficas, botones, etc).
- Posibilidad de establecer conversaciones. Se puede responder a un documento o a parte de él, de forma pública o privada, pero dentro del mismo documento marco. Esto permite establecer conversaciones a base de respuestas a los puntos que sea preciso y en el momento que se desee.
- Los participantes en la edición de un documento o de una conversación pueden añadirse en cualquier momento de la misma y estos tendrán acceso a la misma copia que los demás coeditores o conversadores.
- Sólo existe una copia de la conversación o documento y es accesible de igual forma por todos los participantes.
- Posibilidad de reproducir el desarrollo y edición de un documento o conversación. Se puede reproducir paso a paso cualquier conversación o edición (incluido el borrado) de un documento.
Definición de conceptos
Una ola (wave) es una conversación encadenada, que consta de uno o varios participantes (que puede incluir participantes humanos y robots). La ola es una entidad dinámica que contiene el estado y almacena información de historial. Una ola es un elemento activo, con participantes que se comunican y modifican la ola en tiempo real. Una ola se utiliza como contenedor para una o varias óndulas que se definen más abajo.
Una óndula (wavelet) es una conversación encadenada que se genera en una ola (incluida la conversación inicial). Las óndulas se utilizan como contenedor para uno o varios mensajes, que se conocen como señalizaciones visuales. La óndula es la unidad básica de control de acceso para los datos de la ola. Todos los participantes de una óndula disponen de un acceso completo de lectura y escritura a todo el contenido de la misma. Asimismo, todos los eventos que se producen en las API de Google Wave funcionan en el nivel de la óndula o inferior.
Cuando generas una óndula desde una ola, no heredas ningún permiso de acceso de la óndula principal. Durante la vida útil de una ola, puedes generar conversaciones privadas, que se convierten en óndulas independientes, pero se agrupan en la misma "ola". Puesto que los eventos se producen en el nivel de la óndula o en un nivel inferior, el contexto de un evento se limita a una única óndula. Una óndula se puede crear y gestionar con un robot como su único participante. Esto permite al robot utilizar la óndula de forma efectiva como un documento de datos privados. Estos documentos de datos no se muestran nunca al usuario y pueden contener datos sobre la óndula estructurados o sin estructurar.
Una señalización visual (blip) es la unidad básica de conversación y consta de mensajes únicos que aparecen en una óndula. Las señalizaciones visuales pueden ser borradores o publicadas (haciendo clic en "Done" en el cliente de Wave). Las señalizaciones visuales gestionan su contenido a través de su documentación, que se define más abajo. Las señalizaciones visuales también pueden contener otras señalizaciones visuales como secundarias, formando así una jerarquía de señalizaciones. Todas las óndulas constan siempre de al menos una señalización visual raíz.

Un documento es el contenido que se adjunta a una señalización visual. Este documento consta de XML que el API puede recuperar, modificar o añadir. Por lo general, gestionas el documento a través de cómodos métodos en lugar de a través de la manipulación directa de la estructura de datos XML.
Extensiones
Las extensiones de Wave suponen un método para aumentar la funcionalidad de una ola. Existen dos tipos de extensiones, los robots (bots) y los gadgets.
Los robots y los gadgets no se excluyen mutuamente. Puedes utilizarlos juntos. Sin embargo, tienen objetivos diferentes:
- Un robot es un participante automatizado de una ola. Los robots son aplicaciones que se ejecutan de forma automatizada y que pueden modificar el estado en la propia ola. Un robot puede leer el contenido de la ola en la que participa, modificar el contenido de la misma, añadir o eliminar participantes y crear señalizaciones visuales y olas nuevas. Los robots actúan en respuesta a eventos. Por ejemplo, un robot puede publicar el contenido de una ola en un sitio de blog público y actualizar la ola con los comentarios del usuario.
- Un gadget es una aplicación pequeña que se ejecuta en un cliente. El gadget es propiedad de la ola, y todos los participantes de una ola comparten el mismo estado del gadget. Los únicos eventos a los que responde un gadget son los cambios de su propio objeto de estado y los cambios de los participantes de la ola (por ejemplo, los participantes que se unen a la ola o que la abandonan). El gadget no tiene influencia sobre la ola en sí. Los gadgets de Wave no suelen ser aplicaciones totalmente desarrolladas, sino pequeños complementos que mejoran determinados tipos de conversaciones. Por ejemplo, una ola puede incluir un gadget de sudoku que permita a los participantes de la ola competir para ver quién puede resolver el rompecabezas primero.
Usos
Wave puede usarse para diferentes finalidades, es más, como la herramienta es tan abierta, cada persona podría darle su propio uso. De todas formas, se podría decir que hay algunos usos básicos sobre los cuales se puede ir haciendo variaciones o combinaciones.
Edición colaborativa de un documento
Consiste en la edición de un documento con formato y posibles contenido multimedia entre varias personas al estilo de lo que podría ser un wiki o Google Docs. La diferencia está en que la edición puede realizarse al mismo tiempo o en diferentes momentos, pero siempre la misma única copia del documento.
Además dicha copia tendría un histórico de cómo se produjo la edición y se podría reproducir dicho proceso en cualquier momento por cualquiera de los que esté participando. Sin importar en qué momento comenzó a participar en la edición.
El ejemplo obvio es la escritura de un documento de texto, pero podría ser cualquier tipo documento o entidad de información.
Conversación en tiempo real
También se podría utilizar Wave para comunicarse con una o más personas que estén conectadas al mismo tiempo en algo que sería una mezcla entre la mensajería instantánea (Gtalk, Jabber, MSN), el chat del IRC y los foros web.
Conversación en diferido
Como no siempre estarán conectados todos los posibles participantes en un debate o conversación, pero todo lo que se hable quedará guardado en la copia común, cualquier participante de la conversación podrá responder a cualquier parte de la conversación en el momento que pueda o lo desee.
Esto viene a ser como el correo tradicional y si la conversación incluye a más de 2 participantes o se producen muchas respuestas, vendría a equivaler a los hilos de discusión de foros, listas de correo o de los correos con copia a muchos.
Una de las diferencias con estos métodos tradicionales es que es bastante más sencillo contestar de forma contextual, es decir, contestar justo al texto al que se quiere. Por ejemplo en el caso de que alguien escriba una argumentación de varios puntos y se quiera contestar sólo a alguno de ellos, o abrir un mini debate por cada uno de ellos. Otro ejemplo puede ser la realización de encuestas, con cada encuestado contestando con un comentario anidado a cada pregunta.
Otra ventaja es que en cualquier momento se puede añadir a alguien dentro de la conversación y dicha persona podrá ver, si así lo desea, la conversación desde el principio y cómo ha ido evolucionando, no sólo el resultado final o las conclusiones.
Casos prácticos de uso del Wave
- Proporcionar servicio técnico a través de Wave
- Creación de mapas mentales de forma colaborativa
- Creación de BPMN (Business Process Management) de forma colaborativa
- Formación en línea. Usar Wave para dar asistencia online a los alumnos y poder apoyar las clases o tutorías con textos, vídeos o cualquier clase de contenidos, además de poder consultar y responder dudas sobre la marcha.
- Organizar viajes de grupo. Usando las herramientas propias del Wave y los gadgets se pueden organizar rutas en un mapa, añadir información necesaria para antes, durante o después del viaje, hacer sondeos y tomas de decisiones sobre detalles del mismo, e infinidad de cosas más.
- Reuniones de trabajo. Creación del acta de la reunión, convocar a todo el mundo al añadirlos al acta, revisar entre todos y en tiempo real el acta según se va redactando, durante la reunión, aceptación del mismo y posibles conclusiones sin necesidad de esperar a que se pase a limpio, se mande por correo y se reciba la respuesta de todos los asistentes.
- Brainstorming o tormenta de ideas. Existen extensiones como la de los mapas mentales u otras más específicas que permiten que cada participante en el brainstroming vaya apuntando las ideas que se le vayan ocurriendo y luego, entre todos, ir seleccionando las más interesantes, combinarlas, reorganizarlas, enlazarlas o lo que se estime oportuno.
- Creación colaborativa de documentos. Un ejemplo muy claro es el «manifiesto» (el enlace es a la ola donde se creó, creo que sólo se abra con Wave) en defensa de los derechos fundamentales en internet del que tanto se ha hablado estos días, que se creo entre un montón de bloggers con Google Wave.
- ...
¿Es libre o abierto?
Pues la verdad es que depende de a qué nos refiramos. El protocolo está definido como un estándar abierto que cualquier puede implementar, mientras que el servidor y cliente web que tiene disponible Google, no es ni abierto ni libre (de momento).
Pero sí existe una versión del servidor que usa Google y que implementa dicho protocolo publicada con licencia libre para que cualquiera la pueda probar, modificar o usarla como ejemplo para hacer su propio servidor.
¿Esto qué significa? ¿Qué tiene de bueno?
Pues significa que cualquiera puede crearse una versión del servidor de Wave de Google y que podrán ser compatibles con éste. Lo que lleva a la siguiente conclusión: Google no será el único proveedor de esta tecnología.
Y alguno pensará que a Google no le interesa eso, pero yo pienso que está muy bien pensado. Para ellos y para nosotros.
La idea que tiene Google es sustituir al correo electrónico (entre otras cosas), pero el correo electrónico está muy arraigado en todo internet, es muy complicado que se pueda cambiar de tecnología, aunque ésta sea mejor.
Suponiendo que la tecnología sea tan buena que todos quieran usarla, no se terminaría de implantar en muchas empresas y organizaciones si sólo existe un proveedor, porque se quedarían vendidos. Y tampoco sería tan útil si apareciesen 20 tecnologías parecidas pero incompatibles entre sí.
Así que la mejor solución es crear un protocolo de comunicación y una prueba de concepto, para que todo el mundo pueda probarlo y, si gusta, puedan aparecer nuevos proveedores de este servicio de comunicación, usando el mismo protocolo común.
De esta forma las empresas podrían tener su propio servidor Wave como los servidores SMTP que tienen ahora, o contratar los servicios de un proveedor externo. Lo mismo pasaría con las organizaciones y ciudadanos.
El resultado sería que cualquier empresa podrá tener su propio servicio interno o externo de Wave y que cualquier persona podrá elegir entre muchos proveedores gratuitos o de pago. Como pasa ahora mismo con el correo electrónico. Que es precisamente el objetivo que perseguían.
La ventaja de todo esto es que, si bien ahora sólo hay Wave de Google, dentro de no mucho habrá Wave de muchas empresas y habrá servidores libres que poder usar de forma interna. Además, cada empresa desarrollará más cosas interesantes que serán compatible (espero) con los demás servidores.
Tener una herramienta colaborativa con tanto potencial a disposición de cualquiera y sin tener que ceder obligatóriamente tus datos a otra empresa, creo que es algo bueno.
Y para que vean que esto es posible y las empresas de servicios comenzarán a crear sus propios servidores y servicios en torno a este protocolo, échenle un vistazo a la implementación que ya tiene Novell: Novell Pulse
También hay ya algún proyecto de implementación libre basándose en el servidor de Google y su API, como Pygowave
Referencias
- Algunas partes de este texto han sido extraidas de la guía oficial del API de Google Wave.
- Una lista de waves públicas está aquí: http://www.waverz.com/groups
- Guía de uso de Wave (en inglés)
- Google Wave Federation Protocol

Comentarios
drodriguez:
Me ha gustado mucho el post. Un abrazo.
David Rodríguez Vicente
jojeda:
Espero que aparezcan dentro de poco nuevos servidores y clientes Wave para que se expanda un poco más y se pueda usar de forma interna en empresas y organizaciones, ahí veremos las posibilidades que tiene.
Un abrazo
Juanje
rmartin: