Datos de entrada-salida Servidor

Servidor - Aplicación
En el diagrama de caja negra se puede observar que hay una comunicación bidireccional entre la aplicación y el servidor. Los datos que fluirán en ambos sentidos son los siguientes:
 * Fecha y hora de la medición (java.util.Date serializada como "DD-MM-AA hh:mm:ss" ej: 25-02-2014 09:47:16, 32 bytes)
 * Ubicación de la medición (com.google.appengine.api.datastore.GeoPt)
 * Latitud (Float 64-bit)
 * Longitud (Float 64-bit)
 * Tipo de dato (Temperatura, aire o ruido) (Long 64-bit) 0: temp, 1: aire, 2: ruido
 * Valor del dato medido (Float 64-bit)
 * Persona que realizó la medición (java.lang.String)

Observaciones
Longitud máxima de un email 254 caracteres (RFC3696)

Longitud promedio de un email es de 23 caracteres

El cuerpo del mensaje JSON típico para subir un dato será como el siguiente {    "date": "25-02-2014 09:47:16", "location": [{            "latitud": 4.602149, "longitud": -74.066180 }],    "dataType": "0", "value": 34.5, "email": "usuario123456@gmail.com" }

El encabezado típico de una petición HTTP de este tipo es de 430 bytes, la longitud del JSON mostrado es de 149 bytes, por lo que el mensaje completo es de 579 bytes. Teniendo en cuenta que en 2G el ancho de banda de subida es de al rededor de 10kbps  se podrían subir al rededor de 2.21 datos por segundo desde un dispositivo movil conectado a una red 2G. Esto no quiere decir que esta deba ser la frecuencia de toma de datos.

Dado que se pueden almacenar cerca de 585.7 mil datos al dia y cada dato en la red se representa por una petición HTTP cuyo peso es de 579 bytes aproximadamente, se requiere que el servidor tenga capacidad de subida al dia de  339.12 MB, la capa gratuita de la plataforma escogida tiene una capacidad de subida al dia de 1GB por lo que cumple con los requerimientos.

Si se quisiera medir llenar la capacidad de la capa gratuita de la base de datos, y se tomaran  las mediciones 24h al dia, se podrían hacer mediciones cada 147.5 ms con un solo dispositivo, o cada 1.47 s

Servidor - Cliente
Está por definir como se entregarán los datos al cliente. En principio pensamos entregar los datos brutos en un archivo, es necesario hablar con el cliente para saber si se requiere un mayor procesamiento de los datos (agregación temporal, estadística descriptiva, etc) y el medio por el cual se hará la entrega (consulta via web, descarga de un archivo, email)