Diseño y arquitectura (diagramas)

Hasta ahora creo que no había explicado la estructura general de Tea. Ahora que he hecho un hueco entre estudio y estudio he dibujado un poco y voy a explicar resumidamente unas cuantas ideas generales. En posteriores entradas trataré temas más específicos y técnicos.

Estructura

El sistema consta de un servidor Tea implementado sobre una BeagleBoard, y uno o varios clientes. Para el proyecto estoy desarrollando un ejemplo de cliente gráfico para PC llamado Oolong.

El servidor está diseñado e implementado con la idea de ser totalmente autónomo, de manera que pueda ser ubicado en cualquier lugar. Su bajo consumo hace posible su alimentación por medio de baterías o energía solar.

Al servidor se le pueden conectar en caliente diversos sensores. Esto lo implementaré con Phidgets, que son unos pequeños sensores autoalimentados que se conectan por usb a la BeagleBoard. Actualmente dispongo de un sensor de temperatura/humedad y otro de presión.

Cuando la aplicación del servidor está funcionando, esta recoge periódicamente los datos medidos por los sensores y realiza diversas operaciones con ellos. La estación Tea está preparado para conectarse a Internet. Si colocamos la estación en una ubicación con una conexión disponible a Internet, la aplicación del servidor publicará mediante web services varios métodos que podrán ser llamados desde cualquier cliente en cualquier lugar del mundo para consultar los datos medioambientales recogidos por la estación.

Lo único que necesita un cliente para acceder a los datos de la estación Tea es poder conectarse a ella y conocer el protocolo SOAP, que es lo que utiliza la aplicación del servidor para publicar los métodos. Al estar tan extendida esta tecnología, resulta muy sencillo realizar clientes Tea para diversas plataformas como smartphones, PDAs, etc.

Aparte de las funcionalidades accesibles remotamente, la estación puede ser equipada con una tarjeta de memoria SD, lo que permitiría a la aplicación servidor almacenar en ella cualquier tipo de información, estadísticas, etc. para su posterior estudio.

Despliegue remoto de servicios

Una de las características más llamativas de Tea es que no sólo podemos consultar la estación remotamente, sino que también podemos configurarla e incluso enviar y ejecutar nuevos módulos de la aplicación servidor desde cualquier parte del planeta sin tener ni siquiera que detener el servidor.

Esto no se limita sólo a lanzar servicios del sistema operativo o realizar tareas de configuración mediante una interfaz web, sino que podemos programar desde nuestra casa una nueva funcionalidad de la aplicación servidor y enviársela remotamente a la estación, y esta, sin tener ningún conocimiento previo acerca del nuevo módulo, podrá lanzarlo en caliente.

Esto proporciona una flexibilidad sin límites al servidor, ya que podremos ser capaces de dejar instalada una estación en cualquier parte del mundo con una conexión a Internet, y si posteriormente queremos añadir o quitar alguna funcionalidad al servidor, o extender alguna de las existentes, podemos hacerlo desde casa fácilmente y a nivel de aplicación.

Arquitectura

El hardware sobre el que se sustenta el servidor está formado por una placa BeagleBoard, unos sensores Phidgets y varios dispositivos complementarios.

Sobre la placa instalamos como sistema operativo GNU/Linux con un kernel construido a medida.

Ejecutándose en GNU/Linux tendremos una máquina virtual de Java, sobre la que se ejecutará la aplicación servidor.

Como un añadido a Java utilizaremos el estándar OSGi, ejecutando para ello sobre la máquina virtual el framework Apache Felix. Este framework nos proporciona ciertas capacidades que no se encuentran por defecto en Java, como la abstracción “bundle” (módulo) en tiempo de ejecución, así como sus dependencias y requisitos, y la posibilidad de añadir o quitar módulos en caliente. Esto nos da 2 grandes beneficios a la hora de desarrollar:

  • Mayor soporte al diseño y a la descomposición funcional que si utilizáramos sólo Java
  • Gestión automática de módulos en tiempo de ejecución
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: