Predesys es un sistema contenido en un servidor central y un conjunto de servidores secundarios asociados con el objetivo de detectar la presencia de diferentes dispositivos (principalmente, inalámbricos, como teléfonos móviles y ordenadores portátiles) que se encuentren cerca fÃsicamente de dichos servidores secundarios para ofrecer una serie de servicios de información a los usuarios de esos dispositivos y a terceros. Está diseñado para los sistemas operativos Linux, es software libre (su licencia es LGPL 3.0) y está escrito en el lenguaje de programación Python.
El problema
Hoy en dÃa, Internet está presente de lleno en nuestras vidas y en muchas ocasiones necesitamos acceder a él para obtener información concreta sobre diversos asuntos. Además, en muchas ocasiones, esta información que buscamos está relacionada con algún entorno fÃsico en el que podemos encontrarnos. El problema está en que para hacer uso de algún servicio de información de ese tipo, normalmente necesitamos un ordenador y un software concreto, algo que no solemos llevar encima cuando salimos de casa.
La solución
Predesys pretende dar una solución a la creación de servicios de información basados en la detección de dispositivos inalámbricos y de otros tipos en un determinado lugar, ofreciendo un sistema extensible por medio de plugins para el cual el usuario no requiera de ningún hardware o software especial, necesitando tan sólo su teléfono móvil o algún otro dispositivo de uso común.
Cada plugin que se instale en el sistema representa un servicio, el cual es ofrecido automáticamente. El sistema soporta tanto servicios que se ejecutan automáticamente cuando ocurre una detección de dispositivos como servicios que se ejecutan cuando un usuario del sistema asà lo quiera en un momento concreto (éstos últimos, a través de un servicio web).
De momento, el sistema soporta detección por Bluetooth y por Ethernet/Wi-Fi, pero es adaptable a la detección por cualquier otra tecnologÃa.
Este proyecto puede tener múltiples aplicaciones, como por ejemplo, puntos de información para teléfonos móviles (los cuales recibirÃan un mensaje automático al acercarse a dichos puntos), el control de la presencia de personal en las oficinas de alguna empresa o la monitorización de una red de área local.
Autor
El autor de Predesys es José Antonio Jiménez Carmona, estudiante de IngenierÃa Técnica en Informática de Gestión de la Universidad de Sevilla. Puede contactar con él en la siguiente dirección de correo electrónico: jajimc [ARROBA] gmail [PUNTO] com
El proyecto ha participado en el V Concurso Universitario de Software Libre [1] que celebrado durante el curso universitario 2010/2011, obteniendo el Premio al Mejor Proyecto de Innovación. También, es el proyecto Fin de Carrera del autor.
[1] http://www.concursosoftwarelibre.org
Licencia
La licencia de Predesys es la LGPL 3.0:
http://www.gnu.org/licenses/lgpl-3.0-standalone.html
Web que aloja el código fuente del proyecto
http://code.google.com/p/predesys
Reconocimientos
- Premio al Mejor Proyecto de Innovación del V Concurso Universitario de Software Libre [ver noticia]
- Primer Premio de la Fase Local de Sevilla del V Concurso Universitario de Software Libre [ver noticia]
La arquitectura
Predesys implementa una arquitectura basada en la arquitectura Cliente-Servidor, pero con 3 elementos clave: un Servidor central, 1 ó más Radares y 1 ó más dispositivos Clientes.
El Servidor contiene toda la lógica de los Servicios y los Datos del sistema. Todo el control del Servidor lo ejerce el Núcleo, que es su componente principal y quien ejecuta los Servicios. El medio por el que los Servicios acceden a los Datos y a cualquier funcionalidad del sistema es a través de la API de Servicios, que ejerce de intermediario entre los Servicios y el Núcleo.
Los Radares, que están todos conectados con el Servidor por TCP/IP, tienen la función de detectar periódicamente la presencia de cada dispositivo que esté fÃsicamente cerca de alguno de ellos y enviar su dirección MAC (del adaptador Bluetooth o de la tarjeta de red, según el tipo de detección del Radar) al Servidor, el cual ejecuta los Servicios automáticos una vez que reciba dichas direcciones.

