Max Hernandez

Laberinto - Ejemplo de Canvas en HTML5

sábado, 18 de mayo de 2013

Laboratorio 12: Redes Ad-hoc


Para esta semana para el laboratorio de redes de telecomunicaciones se nos dio la tarea de leer  textos científicos relacionados con redes Ad-hoc las cuales son redes improvisadas para comunicación entre dispositivos que se encuentran en un mismo lugar.

[imagen obtenida de: "http://www.ecnmag.com/sites/ecnmag.com/files/legacyimages/ECN/Articles/2012/02/Fig%203%20ad%20hoc%20network-web.jpg"]

Esta publicación servirá a manera de reporte para dicha tarea. El texto que decidí resumir para el reporte es el siguiente:

Ad-hoc Collaborative Document Annotation on a Tablet PC

La referencia del texto es la siguiente:
Huang, A. (2003) Ad-hoc Collaborative Document Annotation on a Tablet PC. [e-book] Brown University. p.1-8. Available through: http://cs.brown.edu/ http://cs.brown.edu/research/pubs/theses/ugrad/2003/ashuang.pdf [Accessed: 18th may 2013].

El paper que me dí a la tarea de leer, analizar y resumir como reporte para este laboratorio, habla sobre el problema de poder editar documentos de forma colaborativa con con hardware con capacidades limitadas, uno de los usos que plantea de esto es poder en un salón de clases que los estudiantes tomen notas de la clase en forma colaborativa. Lo que ellos proponen es un sistema colaborativo diseñado para trabajar en tablets que utiliza una red Ad-hoc para no depender de una red de Internet en un salón de clases.

El objetivo de esta investigación es que en un futuro los estudiantes cuenten con tablets y hagan sus apuntes de forma colaborativa en estas herramientas, esto es un avance por que guardar un pequeño archivo tiene tiene un precio despreciable, además que las nuevas tecnologías son cada vez mas eficientes y se vuelven más fácil de adoptar por los estudiantes. Además de esto archivos virtuales son más fáciles de organizar y de compartir con otros alumnos. Los alumnos pueden fácilmente acceder a cualquier apunte con solo presionar unos cuantos botones puesto que es muy fácil de organizar los documentos y si por ejemplo un profesor necesita compartir un documento con sus alumnos esto también se podría lograr de manera muy simple con una herramienta colaborativa.

El punto a remarcar es la cantidad de beneficios que puede traer una herramienta colaborativa para un aula de clases, los documentos como presentaciones, animaciones, dibujos se podrían compartir de forma muy sencilla entre maestros y alumnos. Los alumnos podrían centrarse en las partes de documentos o anotaciones que les causen mas interés  a un alumno, al alumno podría serle más fácil entender un concepto una vez que haya analizado todas las notas de sus compañeros.


Diseño del sistema
En el documento se muestran un par de escenarios que sirven para justificar el sistema que realizan y entender cuales serían los requerimientos necesarios para una idea como la que ellos plantearon, los escenarios son los siguientes:

El escenario de uso
Al inicio de una clase el profesor distribuye un documento con diapositivas para la clase de día. Las diapositivas son enviadas a todos los alumnos y se pueden demandar después para los alumnos que llegaron tarde. mientras que el profesor da su clase, los alumnos comienzan a tomar notas. El profesor dibuja anotaciones en sus diapositivas y las anotaciones son compartidas en tiempo real a los dispositivos de los alumnos. Un alumno se acaba de dar cuenta que el concepto que explica el maestro es más fácil de entender si se ve de cierto punto de vista, y hace anotaciones en forma privada. Los alumnos han accedido a trabajar juntos en el curso ahora ellos pueden compartir sus notas privadas con otros alumnos. Pueden hacer anotaciones en las diapositivas del maestro, cuando el espacio se haya llenado de comentarios, se pueden elegir los mejores y descartar los menos importantes. El alumno ya en casa puede analizar las diapositivas y notas tomadas y descartar las que tengan menos importancia.

Especificación de requerimientos
El usuario debería ser capaz de:

  • Crear y anotar en documentos en cualquier momento que lo desee.
  • Crear documentos en una gran variedad de formatos (PDF, HTML).
  • Crear políticas para compartir notas o documentos con otros usuarios.
  • Compartir documentos en una forma eficaz y segura.
  • Poder recuperar documentos utilizados con anterioridad para realizar repaso de diapositivas o futuras anotaciones.
  • Realizar pequeñas modificaciones a los documentos y recuperar viejas anotaciones.
La arquitectura

Estructura de los documentos
Sus documentos se definen como una estructura de archivos individuales, esto con la finalidad de poder juntar en un documento una gran variedad de formatos, además de preservar las imágenes y otros elementos. Es decir no se intenta ver cada archivo como un documento si no como un grupo de datos.
Ahora para poder visualizar los datos, se propone que cada documento tenga un archivo de entrada que sera el primero en ser accedido, en caso de ser un solo archivo pues se accede a ese.

Además los documentos cuentan los siguientes anotaciones por defecto que especifican las políticas para compartir el documento:

  • Privado: El modo por defecto de compartir, en el cuál el documento no puede ser compartido.
  • Público: Todas las notas y el documento serán compartidos con todos los participantes.
  • Personalizado: El usuario puede definir con que participantes compartir el documento y este sera compartido de forma segura.


Estructura de las anotaciones
En el caso de las anotaciones en su proyecto están definidas por las siguientes características abstractas:

  • Usuario: Que es la identidad de el usuario que creo la anotación.
  • Fecha: Es la hora y la fecha en que la anotación fue realizada o recibida por el dispositivo local.
  • Datos: Esta característica se deja abstracta para que dependiendo de la aplicación sea definida en la implementación.


El cache de los documentos
El cache es un lugar donde todos los documentos y anotaciones son guardados, cuando el usuario abre un documento para hacer anotaciones, una copia del documento es guardado en el cache dejando una versión original del documento, es útil tanto para leer como para compartir, además cuando un documento es compartido se puede acceder a documentos sin necesidad de tener una conexión Ad-hoc a documentos que se hicieron de forma colaborativa.

En su sistema existen dos tipos de archivos:

  • Archivos locales: Este documento no es mas que un archivo guardado en el disco duro que contiene funcionalidades para leer y escribir y es capaz de verificar su integridad con un hash MD5 del archivo.
  • Archivos cache: Este documento se guarda de igual manera que el anterior y pose las mismas funciones pero no permite al acceso directo al archivo. También provee una interfaz para de manera interactiva escribir porciones de los datos que se descargan.
Sesión Ad-hoc
De manera conceptual una sesión es una relación entre dos dispositivos, cada dispositivo mantiene una memoria cache para el documento que utiliza para mantener una copia local sobre lo que puede compartir o ha sido compartido.
Esta sesión sigue la metodología de las sesiones de tipo cliente-servidor donde un dispositivo debe albergar una sesión de tipo host es decir una sesión que permita ser anfitrión de todos los dispositivos que deseen acceder a la red ad-hoc.
La sesión con el host solo sirve para autenticar a los diferentes dispositivos, una vez que la sesión este abierta esta debería poder continuar inclusive aunque el host se haya desconectado de la red.

Todas las comunicaciones después del inicio de sesión deben ser codificadas utilizando un esquema de cifrado con clave publica, de esta manera los dispositivos han llevado a cabo el proceso de crear la clave mientras hacen el inicio de sesión.
Una vez cerrada la conexión con otros dispositivos aun se pueden ver los documentos y notas guardados en el cache para guardarlos fuera del cache.

Compartir los datos de manera eficiente

Los paquetes de datos se transmitirán a múltiples receptores, el sistema sobre un sistema de transmisión que funciona sobre UDP que provee las mismas garantías de transporte que el protocolo TCP el cual es un punto critico para escalar su proyecto a salones muy amplios.

Distribuyendo los documentos en la red
Para esto se requiere que se tenga una completa capacidad de intercambio de paquetes con todos los participantes, su propuesta se basa en la analogía de una discusión entre varias personas, donde para hablar cada una comparte lo que tiene que decir a todos los participantes y mientras los demás esperan una cantidad aleatoria de tiempo antes de volver intentar a hablar. De esta manera nadie intenta mandar información que ya ha sido compartida con todos.

Este proceso se lleva a cabo en seis etapas:

  1. Petición de un archivo: Cuando un cliente recién se une a una sesión en proceso, el cliente hace una petición por todos los archivos disponibles.
  2. Aviso: Después de escuchar una petición, El cliente va a transmitir a todos los demás clientes un aviso sobre todos los archivos que tiene en la memoria cache. Estas transmisiones también se van a dar cuando el cliente comparte un nuevo archivo a la memoria cache.
  3. Petición de un archivo: Si un cliente después de recibir un aviso con los archivos disponibles, comienza un temporizador. Si el temporizador termina su tiempo antes de que se transmita en la red otro aviso pidiendo el mismo archivo, entonces manda el aviso haciendo pedido del archivo.
  4. Ofreciendo un archivo: Cuando un cliente recibe una petición de un archivo que el mismo cliente tiene en la memoria cache, este pone un temporizador, si el temporizador termina antes de que el cliente reciba otra petición entonces se transmite un aviso a todos los clientes ofreciendo el archivo.
  5. Pidiendo la transferencia del archivo: Cuando el cliente recibe un aviso donde se le ofrece un archivo y el mismo cliente ha mandando una petición por el archivo, el cliente manda una petición de transferir el archivo al primer participante que lo ofreció.
  6. Transmisión del archivo: Cuando un cliente recibe la petición de transmitir el archivo el inmediatamente lo transmite a todos los participantes en la red.

Implementación del sistema
El sistema que el paper plantea fue escrito usando C# y apoyándose en la API .NET de Microsoft. Para su implementación crearon una API que implementa funcionalidades de la arquitectura del sistema, esta sirve para implementar las funciones abstractas de su modelo.

Mis conclusiones
Me parece que es bastante buena la idea de utilizar las redes Ad-hoc para no tener que depender de una conexión a internet para poder transmitir los archivos. El algoritmo para transmitir los documentos me parece muy simple y eso hace que esta idea pueda ser fácilmente aplicada en lugares donde se necesite.
También me parece muy bien el hecho de que la conexión no dependa del dispositivo host, pues esto permite  que sea mas flexible la red.

Referencias:
Huang, A. (2003) Ad-hoc Collaborative Document Annotation on a Tablet PC. [e-book] Brown University. p.1-8. Available through: http://cs.brown.edu/ http://cs.brown.edu/research/pubs/theses/ugrad/2003/ashuang.pdf [Accessed: 18th may 2013].

1 comentario: