Diseño y Arquitectura

  1. Diseño General
  2. Vision General

    Este será nuestro diseño general. El estado o información recogida de la red de sensores, será transmitida al controlador que según dichos estados accionará los actuadores que correspondan, además transferirá dicha información a la base de datos para almacenarla tanto los estados de los sensores como de los actuadores, la cual será comprobada para evitar errores. Una vez almacenada, desde la aplicación web se podrá acceder a la información para interactuar con ella y configurar los estados de los actuadores según las necesidades del usuario.

    Este sistema se puede dividir en dos partes claramente diferenciables:

    • La red de dispositivos.
    • El servidor.

    Pero aunque el sistema se pueda dividir en dos grandes componentes, un componente sin el otro no tiene la funcionalidad deseada. Por esto se hace imprescindible un diseño de cada componente que le permita interactuar con el otro.

    Nuestro diseño general está dividido en 6 fases:

    • Fase 1. Recogida de información de los sensores y actualización de los actuadores.
    • Fase 2. Envío de la información de los nodos al controlador.
    • Fase 3. Envío de los estados de los dispositivos del controlador a la base de datos.
    • Fase 4. Comprobación de los datos.
    • Fase 5. Interactividad entre el usuario y el sistema.
    • Fase 6. Configuración del sistema.
  3. Arquitectura Aplicación Web
  4. Nuestra aplicación web, será desarrolado por un framework, que es una estructura de software diseñada para apoyar el desarrollo de sitios web dinámicos. Siendo su principal objetivo el alivio del exceso de carga asociado a actividades comunes en el desarrollo web.

    Fuentes: PFE – Firewall-Web

    • Modelo Vista Controlador
    • Con objetivo de desarrollar una aplicación modular y fácil de mantener y escalar vamos a utilizar el patrón de diseño MVC.

      El MVC separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El estilo de llamada y retorno MVC (según CMU), se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio es el controlador es el responsable de recibir los eventos de entrada desde la vista.

      Modelo Vista Controlador

      Fuentes: Wiki: MVC

    • Kumbia PHP

    KumbiaPHP es un framework para aplicaciones web libre escrito en PHP5. Basado en las prácticas de desarrollo web como DRY y el Principio KISS para software comercial y educativo. Kumbiaphp fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas por poder, control y placer.

    KumbiaPHP Framework PHP intenta proporcionar facilidades para construir aplicaciones robustas para entornos comerciales. Esto significa que el framework es muy flexible y configurable.

    Logo Kumbia PHP

    Fuentes: Kumbia PHP

  5. Arquitectura de la Red de Sensores
  6. Una red de sensores (del inglés sensor network) es una red de ordenadores pequeñísimos («nodos»), equipados con sensores, que colaboran en una tarea común.

    • Nodo
    • Denominamos nodo a cada estación de nuestra red. Cada nodo tiene capacidad para:

    1. Recoger información a través de los sensores que tenga conectados.
    2. Accionar dispositivos, según la información de los sensores.
    3. Enviar su propia información y la recibida a otros nodos.
    4. Auto Configuración, a partir de la información proporcionada del controlador.

    La plataforma elegida como soporte de cada nodo es arduino.

    Arduino es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas simple y un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring. Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente.

    Plataforma Arduino

    Las plataformas Arduino están basadas en los microcontroladores Atmega168, Atmega328, Atmega1280, ATmega8 y otros similares, chips sencillos y de bajo coste que permiten el desarrollo de múltiples diseños.

    Al ser open-hardware, tanto su diseño como su distribución son libres. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

    El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix Ars Electrónica de 2006.

    Los motivos de la elección son:

    1. Es de hardware libre.
    2. Bajo consumo energético.
    3. Lenguaje de programación Wiring, el cual es fácil de desarrollar por su alto parecido a C.
    4. Bajo coste económico.
    • Controlador

    Denominamos controlador al hardware que actúa como Host, ejecutando los Servicios necesarios para el almacenamiento de los datos provenientes del resto de nodos así como los procesos Servidor necesarios para atender las solicitudes de consulta de los datos provenientes de los Clientes, para transmitir dicha información al resto de nodos.

    En nuestro sistema el nodo controaldor se compone de una plataforma arduino con un módulo XBee y un módulo Ethernet.

    Fuentes: Libelium
    Apuntes de Sistemas Distribuidos de la Universidad de Sevilla

    Wireless Integrated Network Sensor: Low power system on a chip G. Asada, M. Dong, T. S. Lin, F. Newberg, G. Pottie, W. J. Kaiser (1998)

  7. Servidor
  8. En informática, un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.

    En nuestro sistema el servidor será el encargado de recoger la información del puerto de Ethernet, tratarla, generar las respectivas alarmas si procede, y almacenar la información en la base de datos. Además el servidor debe de satisfacer las peticiones clientes provenientes de la aplicación web.

    Para todo esto utilizamos LAMP, sockets y procesos del sistema.

    • ¿Qué es LAMP?
    • Es el acrónimo del conjunto de subsistemas necesarios para alcanzar una solución global:

    • L, los sistemas operativos basados en Linux.
    • A, el servidor web Apache.
    • M, el sistema gestor de base de datos MySQL.
    • P, el lenguaje utilizado para la generación de aplicaciones web PHP.

    Logotipos LAMP

  9. Procesos del Sistema
  10. Los socket y procesos descritos a continuación, se realizarán en código C, bajo un sistema Linux, el cual nos da un entorno más profesional y destinado más a la administración de sistemas.

    1. Proceso GET, obtención de datos.
    2. Proceso CHECK, comprobación de los datos.
    3. Proceso SAVE, almacenamiento de datos.
    4. Proceso ERROR, almacenamiento de uno o varios errores.
    5. Proceso TIMEOUT, alarmas para nodos que no envían su información.
    6. Proceso ALARM, aviso de la situación de una emergencia.
    7. Proceso SEND, envío de la nueva configuración.

    El contolador arduino, tras recibir la información de la red de sensores y validarla, transferirá dicha información al sistema, que será recibida por un proceso continuo, el cual es el socket del sistema, quien se encargará de validar la transferencia a partir de la cabecera HTTP 1.0 y desencapsular los datos que se encuentran en formato CSV, comma-separated values para enviárselos al siguiente proceso, el cual se encargará de comprobar dichos datos para su veracidad, si son erroneos se llamará a un proceso para almacenar dicho error en la base de datos, si son correctos se transferirá dichos datos a otro proceso para almacenarlos en la base de datos. También contamos con un proceso que se carga cada hora para comprobar que los nodos activos envían información, si esto no fuera así llamaría al proceso de los errores para informar de dicho error. Si alguno de los errores producidos es de emergencia, dicho proceso transmitirá la información del error de emergencia a otro proceso para que comunique la alarma. Además existirá un último proceso que se encargará de transmitir al controlador arduino la nueva configuración de los nodos sensores.

    Diseño de los Procesos

  11. Base de Datos
  12. Una base de datos, debe estar diseñada en Tercera Forma Normal.

    Esquema E/R

Anuncios

1 comentario (+add yours?)

  1. Diseño « AutoHogar
    Dic 13, 2010 @ 15:41:55

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: