Un Middleware para las Redes Inalámbricas de Sensores



Documentos relacionados
Wireless Sensor Network in a nuclear facility: A technology aplication proposal

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Elementos requeridos para crearlos (ejemplo: el compilador)

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Módulo 2. Inicio con Java

CAPÍTULO 1 Instrumentación Virtual

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Capítulo 1. Introducción

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

picojava TM Características

INF 473 Desarrollo de Aplicaciones en

CURSO COORDINADOR INNOVADOR

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION

Capítulo 1 Introducción

Sistema de monitoreo automatizado para el cuidado de la salud en ambientes calido-humedo extremos

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Sistema de marketing de proximidad

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

BASES DE DATOS OFIMÁTICAS

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Maquinas virtuales Conceptos Básicos

La Arquitectura de las Máquinas Virtuales.

Workflows? Sí, cuántos quiere?

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

FUNDAMENTOS DE PROGRAMACION CON C#

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

CAPITULO I El Problema

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

forma de entrenar a la nuerona en su aprendizaje.

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Software, qué es? Clasificación. Tipos de software Freeware Firmware Shareware Release. Software por área. Propiedades y versiones

1 EL SISTEMA R/3 DE SAP AG

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Oferta tecnológica: Sistema de gestión remota de dispositivos heterogéneos en la Nube

Acceso al Disco Compartido y Dispositivos USB y DVD

Grado en Ingeniería Informática

TIPOS DE REDES QUE CONFORMAN INTERNET. LAN, WAN, MAN, WLAN, WMAN, WWMAN, SAN y PAN: Qué significa cada término?

Análisis de aplicación: Virtual Machine Manager

Capitulo I. Introducción

DIAGNOSTICO SERVIDOR Y PLATAFORMA MOODLE

Módulo 1 El lenguaje Java

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Capitulo 5. Implementación del sistema MDM

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

UNIVERSIDAD CARLOS III DE MADRID

Capítulo 5. Cliente-Servidor.


IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS

MARCO METODOLÓGICO CAPITULO III

APLICACIONES MÓVILES NATIVAS

SERVICIOS. Reingeniería. Instalación / Puesta en marcha. Personalización. Cursos de formación. Servicio técnico. Servicio de mantenimiento

Unidad III. Software para la administración de proyectos.

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

1. INTRODUCCIÓN Y OBJETIVOS

BearSoft. SitodeCloud. Rafael Rios Bascón Web: Móvil:

Service Oriented Architecture: Con Biztalk?

Servicios Web con Java EE

Servicios Web con Java EE

Nuevas tendencias: Virtualización de computadores / servidores

Entre los más conocidos editores con interfaz de desarrollo tenemos:

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

CONCLUISIONES Y RECOMENDACIONES

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Tema 1. Introducción a JAVA

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Experiencias de la Televisión Digital Interactiva en Colombia - ARTICA

TALLER DE CONOCIMIENTOS APRENDICES JORGE LEONARDO MAZA CARLOS DAVID ZAMBRANO JOSE G. RODRIGUEZ PROFESOR RONALD MARTELO

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Análisis de aplicación: TightVNC

Curso S08 para Cavernícolas

CAPITULO II MANUAL DE USUARIO

UNIVERSIDAD DE SALAMANCA

Escuela Técnica Superior de Ingeniería Informática

Ventajas del software del SIGOB para las instituciones

Técnica 2(Instrumental)

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Capitulo 3. Desarrollo del Software

MINING SOLUTIONS LIMITADA

CAPÍTULO II. Gráficos Dinámicos.

SISTEMA DE INFORMACION PARA LA GESTION URBANA TERRITORIAL PROGRAMA NUESTRAS CIUDADES

UNIVERSIDAD TECNICA DEL NORTE

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

Arquitectura Von Neumann

CAPITULO 3 VRML-JAVA-WWW

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

COLEGIO COMPUESTUDIO

Diseño e Implementación de Web Server para telemetría de datos en procesos industriales por medio de protocolos TCP/IP y GPRS

Transcripción:

134 Un Middleware para las Redes Inalámbricas de Sensores Carlos A. Cota A., Leocundo Aguilar N., Guillermo Licea S. Facultad de Ciencias Químicas e Ingeniería, Universidad Autónoma de Baja California, Baja California CP-22390. TEL: +(664)6821033, ext. 5800, correo-e: ccota@uabc.mx, leo_aguilar@uabc.mx, glicea@uabc.mx. Resumen Se presenta un middleware, del tipo máquina virtual, y su implementación en la plataforma Tmote Sky, usada en las Redes Inalámbricas de Sensores, la cual fue diseñada para ejecutar un subconjunto de instrucciones binarias (código de byte) de la máquina virtual de Java. Esta máquina ha sido implementada en la plataforma bajo software embebido, permitiendo ejecutar los archivos ClassFile generados por un compilador estándar del lenguaje Java. La middleware está compuesta por módulos de software especializados en objetivos diferentes sobre el archivo class, pero en conjunto forman a la máquina virtual. La técnica utilizada para la ejecución de los códigos de byte es la interpretación. Además, se describen los resultados obtenidos en el desarrollo e implementación de la máquina y sus características finales. Abstract This document presents a middleware, of the virtual machine type, and its implementation on the Tmote Sky platform, used in the wireless sensor networks, which was designed to execute a binary instructions subset (bytecode) of the Java virtual machine. This is implemented under embedded software on the platform, allowing to execute the ClassFile generated by standard Java language compiler. The middleware is composed by specialized software modules in different objectives on the class file, but altogether forms the virtual machine. The used technique for bytecode execution is by interpretation. Additionally, the results obtained during the development and implementation as well its final features are explained. Descriptores Redes Inalámbricas de sensores, Java y wsn, máquina virtual, redes. A I. INTRODUCCIÓN lo largo del desarrollo de la tecnología el hombre siempre ha tenido la ambición de monitorear y controlar, en medida de lo posible, el medio que lo rodea para aprovechar al máximo los recursos que éste le ofrece, y para ello ha adaptado una serie de dispositivos electro-mecánicos llamados sensores[1] para la interpretación eléctrica de fenómenos del medio. Los sensores se han ido creando y adaptando acorde a lo que la tecnología existente lo permite, y hoy en día se presentan en una nueva idea que los expertos afirman que causara una revolución tecnológica de dimensiones tan grandes como la que causó la aparición de la Internet en la década de los 90 s[2]. En la actualidad, los sensores, se han adaptado en una serie de dispositivos autónomos, acoplables y espacialmente distribuidos, formando con ello una Red Inalámbrica de Sensores (WSN, por sus siglas en inglés)[3]. Este tipo de plataformas presentan retos únicos en la implementación de hardware y el desarrollo de software.

135 El presente trabajo se centra en la implementación de un middleware para la ejecución del software de manera independiente de la plataforma utilizada, permitiendo con ello que un componente desarrollado para un sistema pueda ser utilizado por cualquier otro especialmente de un desarrollador distinto, alcanzando con esto la interoperabilidad. II. LAS WSN Una red inalámbrica de sensores consiste de dispositivos autónomos espacialmente distribuidos que usan sensores para monitorear el entorno físico o condiciones ambientales de manera cooperativa, como lo es la temperatura, la vibración, el sonido, la presión, etc. en diferentes puntos de un área geográfica estableciendo comunicación entre ellos de manera inalámbrica. Una WSN (ver Figura 1) consiste de: conjunto de sensores distribuidos (1), interconexión de red (2), nodo central de almacenaje de información (3) y recursos para controlar, configurar y administrar la red (4). Figura 1. Componentes básicos de una Red Inalámbrica de Sensores. Originalmente fue desarrollada por la Agencia de Investigación Avanzada de Defensa (DARPA) de EUA para el monitoreo de posibles escenarios de batalla[2] y actualmente la comunidad científica ha encontrado un mayor uso dentro de las aplicaciones civiles. Algunas de las aplicaciones [12] que tienen las redes inalámbricas de sensores son: 1. Monitoreo de un hábitat. 2. Monitoreo del medio ambiente, observación del suelo o agua. 3. Mantenimiento de ciertas condiciones físicas. 4. Control de parámetros de agricultura. 5. Edificios inteligentes. 6. Asistencia militar o civil. 7. Control médico. 8. Líneas de ensamble, etc. A pesar de que tienen poco tiempo de existencia se pueden encontrar ya en el mercado una serie de plataformas como productos funcionales tales como: Telosb de CrossBow [4], TinyNode de ShockFish [5] y Tmote Sky de Moteiv [6] siendo esta última la plataforma de prueba para la middleware propuesta. Para los más optimistas el gran interés y desarrollo de estas redes puede interpretarse como la posibilidad de que pronto dichas redes inunden nuestra vida colectando, procesando y comunicando variables de estudio en nuestro entorno de vida; pero la realidad es otra ya que estas redes están aún en etapa experimental y hace falta la creación de un conjunto de elementos y estándares tanto en hardware como en software que permitan su desarrollo. III. EL SOFTWARE EN LAS WSN En la actualidad empresas, universidades y centros de investigación han desarrollado sus propias plataformas de sensores, y aunado a ello se han desarrollado o adaptado algunos sistemas operativos para soporte de las aplicaciones que operaran sobre ellas. Algunos ejemplos de estos sistemas operativos son: Bertha. Diseñada para modelar, probar y poner en marcha una red de sensores distribuida en nodos idénticos. Contiki. Sistema operativo de libre distribución para sistemas embebidos en microcontroladores. Cormos. Es el único sistema operativo desarrollado específicamente para redes inalámbricas de sensores. ecos. Sistema operativo gratuito en tiempo real, diseñado para aplicaciones y sistemas embebidos de un proceso solamente. TinyOS[8]. Sistema operativo creado por la universidad de Berkeley California utilizado en la programación del Tmote Sky [9]. Es uno de los sistemas operativos más usados en las redes inalámbricas de sensores. La programación de los nodos en la red es complicada, entre las dificultades está la limitada

136 capacidad de cálculo y cantidad de recursos. Además de la inexistencia de entornos prácticos y eficientes para depurar y simular como los que existen en los sistemas informáticos tradicionales. Sin embargo, se han desarrollado algunos lenguajes de programación de alto nivel como los siguientes: nesc [10]. Lenguaje basado en componentes y está directamente relacionado con el sistema operativo TinyOS[11]. Protothreads. Diseñado para la programación concurrente. Snack. Para diseño de componentes en WNS, enfocado al manejo de gran cantidad de información y cálculos. SQTL. Utilizado para realizar consultas sobre redes de motes. A pesar de la existencia de una variedad de software para implementar en las redes inalámbricas de sensores, existen aún varios retos como [7]: Estándares versus soluciones propietarias. Escalabilidad. Latencia. Programación de tareas. Acceso al canal de transmisión. Seguridad, etc. IV. LA PLATAFORMA TMOTE SKY Esta plataforma (ver Figura 2) fue desarrollada por la compañía Moteiv basado en el mote Telosb. Utiliza el procesador MSP430 de la compañía Texas Instruments y el chip CC2420 de la compañía Chipcon que integra el estándar 802.15.4 para comunicaciones inalámbricas. El consumo de potencia extremadamente bajo del procesador MSP430 lo ha hecho ideal para su uso en redes de sensores. Tmote Sky tiene integrado sensores, radio, antena y cuenta con capacidad de programación [13]. Conector USB a) Interruptores Controlador USB Sensor de Radiación Sensor de Temperatura b) Microcontrolador Texas Instrument MSP430F1611 Cristal de 32 KHz Memoria Flash de 1 MB Figura 2. La plataforma Tmote Sky a) Vista superior b) Vista Inferior. V. JAVA EN LAS WSN Java fue adoptado, con la explosión de las aplicaciones de Internet, como el lenguaje idóneo para el desarrollo de programas en redes híbridas, por la capacidad de ejecutarse de forma independiente de la arquitectura de la máquina; además fue diseñado en un principio para darle soporte de programación a una heterogénea lista de microcontroladores de consumo. Por ello no es de extrañar que se piense en Java cuando se trata de resolver los problemas en el ámbito del desarrollo de software, la tendencia es tan visible que compañías como Intel se han asociado a universidades de E.U.A. para el desarrollo de su tecnología[14] e inclusive la compañía Sun Microsystems, propietaria de Java, ha desarrollado su propia versión de motes (Sun SPOT) que basa su programación en Java [15] pero con el problema de que estas plataformas son de alto costo, en el caso de la compañía Sun el costo de un par de motes es 550 dólares americanos y una WSN funcional puede involucrar varias decenas de motes. VI. ARQUITECTURA DEL MIDDLEWARE PARA LAS WSN Existen varios tipos de middleware (ver Tabla 1) de acuerdo a su nivel de abstracción. En esencia el principal propósito de estas es facilitar el desarrollo de las aplicaciones siendo una capa de software intermedia entre la aplicación y el sistema operativo[9]. Indicadores LEDs Radio CC2420 Antena Tipo F

137 TABLA I. CLASIFICACIÓN DE LAS MIDDLEWARE POR SU NIVEL DE ABSTRACCIÓN Clásica Centro de datos Máquinas Virtuales Adaptativas Impala Cougar Mate MiLAN TinyLime TinyDB Smart Messages AutoSec EnviroTrack DSWare Agilla TinyCubus Mires SINA SensorWare Hood El propósito de implementar una middleware del tipo máquina virtual es dotar a la plataforma con la capacidad de ejecutar un subconjunto de instrucciones en el bytecode de Java, es decir, un sistema que sea capaz de interpretar un archivo compilado de manera estándar para la máquina virtual de Java[16] en las motes de una red inalámbrica de sensores. De esta forma se provee a la plataforma en uso, la capacidad de ejecución de aplicaciones creadas en entornos de desarrollo basados en el lenguaje Java[17], permitiendo además la posibilidad de realizar tareas de codificación, programación, depuración y simulación en una PC. Basándose en una máquina virtual desarrollada para el sistema SM80C188EB[18] en UABC (Universidad Autónoma de Baja California), la cual ha sido implementada en sistemas con recursos limitados, se diseño la arquitectura de la middleware para las redes de sensores inalámbricos. El middleware fue diseñado y probado basándose en la arquitectura del hardware de la plataforma Tmote Sky. Fue desarrollada en tres módulos de software especializados en una tarea sobre el archivo Classfile e intercomunicados[19]. Los módulos son: 1. Módulo de Manejo del ClassFile. 2. Módulo de Interpretación. 3. Módulo de Ejecución. La implementación (ver Figura 3) de la middleware en la plataforma permite una abstracción completa del hardware, y solamente a través de esta se puede acceder a los recursos físicos del mote. Consiste de una capa intermedia entre la aplicación, realizada en su totalidad en el lenguaje Java, y los recursos físicos de la plataforma. El acceso a los recursos es mediante la implementación de clases nativas contenidas en la middleware. Aplicación (ClassFile) Manejo del ClassFile Interpretación Ejecución Métodos Nativos Inicialización Lectura Escritura / Lectura Hardware CPU/Periféricos/Sensores RtM Registro PC Registro SP RtCP Registro Heap Middleware Figura 3. Modelo Lógico de la implementación. Los métodos nativos de la middleware son funciones extraídas y optimizadas del código generado por TinyOS al compilar la aplicación de nesc para el mote Sky. A. Herramientas. Para la programación del mote es necesaria la instalación de: controlador FTDI[20]. Convertidor de puerto USB a RS232. Compilador jdk1.4. Para el desarrollo de la aplicación en el lenguaje Java. La utilería msp430-bsl versión 1.39-telos-7 del compilador mspgcc[21]. Programa que carga un archivo binario en la memoria FLASH del microcontrolador y funciona en el ambiente Cygwin[22]. Es versión especial del programa adaptada por Moteiv para la programación de la plataforma Tmote Sky. La utilería CargaClass. Programa que se comunica con la middleware una vez cargada para transferir el archivo ClassFile a la plataforma.

138 B. La programación. Para la ejecución de la aplicación realizada en el lenguaje Java se tiene que cargar la middleware en el mote antes del archivo ClassFile, dicha carga se requiere hacerla una vez solamente. Para ello se usa la utilería msp430-bsl de la forma siguiente: msp430-bsl -telosb c 3 r e I p Middleware.ihex Con esta instrucción de línea se establece la comunicación vía puerto serie COM4 entre la computadora y el mote utilizando el protocolo BSL[23] el cual existe de manera nativa en el microcontrolador. Se hace un borrado general de la FLASH, se copia el archivo Middleware.ihex, (máquina virtual) a la dirección 4000H de la memoria y terminada la escritura del archivo se reinicia al microcontrolador. Una vez cargada la Middeware en la memoria del mote y reiniciado el microcontrolador entra en ejecución la inicialización de la máquina virtual, la cual busca en la dirección de memoria 8000H, (dirección de memoria que se designó para almacenar la aplicación) la bandera hexadecimal magic number CAFEBABE en los cuatro primeros bytes que todo archivos ClassFile de Java debe tener por definición. Si no es encontrada se entra en un estado donde se encienden y apagan periódicamente los tres indicadores LEDs como un código de error que significa que no existe un ClassFile a ejecutar y durante el cual está a la espera de recibir la aplicación por el puerto serie de la computadora. Es aquí donde se utiliza la aplicación CargaClass de la forma siguiente: CargaClass COM4 v r Prueba.class Con esta utilería se verifica que el archivo Prueba.class sea un archivo válido y ejecutable (parámetro -v), se establece la comunicación con el mote por el puerto COM4 (parámetro COM4) y se empieza a transmitir a 38400 baudios el archivo para su carga a partir de la dirección 8000H de memoria; una vez terminada la carga del ClassFile se le da la instrucción al microcontrolador para que se reinicie (parámetro r). C. Operación. Una vez cargada la middleware y la aplicación al microcontrolador (ver Figura4) entra en operación la máquina virtual. Como se comentó anteriormente, primero busca el archivo ClassFile en la dirección 8000H donde espera ver la bandera magic number, si encuentra dicha bandera inicializa los registros de la máquina virtual y empieza la ejecución del archivo. FFFFh FFE0h 8000h 4000h 38FFh 10FFh 0FFFh 0CFFh 09FFh 01FFh 0000h Vector de Interrupciones Aplicación ( ClassFile ) 32 KB Middleware ( 16 KB ) RAM ( 10 KB ) Información de Memoria Memoria BOOT RAM (espejo) 188Fh-1100h Periféricos 48 KB Memoria Flash Figura 4. Mapa de Memoria del MSP430F1611 una vez cargada el middleware y ClassfFile. VII. CONCLUSIÓN El desarrollo de las aplicaciones para la plataforma Tmote Sky pueden ser realizadas en el lenguaje Java bajo un compilador estándar, sin observarse ninguna diferencia en cuestión de funcionalidad entre estas y las versiones hechas en nesc. Mayor agilidad en el desarrollo, prueba y depuración de las aplicaciones al adoptarse un modelo de desarrollo orientado a objetos versus el modelo orientado a componentes. El tamaño de la máquina virtual no afecta de manera significativa el espacio para la memoria de la aplicación puesto que sus características son: 1. 16 KB de tamaño de la máquina virtual. 2. 1 KB de memoria RAM para pila y registros (SP, PC) de la máquina virtual. 3. 9 KB de memoria RAM para uso de HEAP y la aplicación hecha en Java. Los códigos de byte de Java son interpretados provocando que los tiempos de ejecución sean mayor con respecto a los tiempos de las instrucciones nativas del microcontrolador.

139 El archivo Class compilado en la PC no es modificado en ningún momento para su uso en el mote, aunque pudiera aplicarse una técnica de compactación descritas en [24]. La pila de la máquina virtual así como los registros están separados y reservados en un segmento de memoria independiente del usado por el microprocesador. La máquina virtual no maneja tipos de datos de punto flotante, sin embargo estos se puede implementar dentro de la clase aplicación. No posee enlazamiento tardío de clases. Aunque en este tipo de sistemas no se espera realizarlos ya que los motes no poseen unidades ajenas a la memoria de programa. La emigración de la máquina virtual a otras plataformas es viable, al ser escrita totalmente en C, y se escribirían los métodos nativos solamente. Las plataformas que sean desarrolladas en el futuro basándose en el MSP430 y se apeguen a los estándares de programación se les puede instalar la middleware. Figura 5. Gateway para Redes de Sensores Inalámbricas y Redes 802.11b VIII. TRABAJOS FUTUROS La middleware solamente realiza abstracción completa del hardware y no posee funciones propias de un sistema operativo, de tenerlas se llegaría a potencializar su uso en los motes. Para ello se pretende dar continuidad y lograr implementar las siguientes funcionalidades: Manejo de hilos de ejecución, para manejo de aplicaciones con métodos concurrentes. Creación de un sistema de archivos, para el encadenamiento tardío de clases. Portar la middleware a un Gateway para Redes Inalámbricas de Sensores [25] (ver Figura 5) desarrollado por la UABC el cual está basado en el microcontrolador Atmel128. REFERENCIAS [1] Junio 2007. http://en.wikipedia.org/wiki/sensor [2] K. Sohoraby, D. Minoli, Et. Al. Wireless sensor networks. Technology, protocols and applications, Editorial Wiley. [3] Junio2007 http://en.wikipedia.org/wiki/sensor_network [4] Julio 2007 http://www.xbow.com [5] Julio 2007 http://www.tinynode.com [6] Julio 2007 http://www.moteiv.com [7] M. S. Escolar Díaz. Wireless Sensor Networks. Estado del arte e Investigación [8] Agosto 2007 http://www.tinyos.net [9] C. Cota. Un Middleware para las Redes Inalámbricas de Sensores, Universidad Autónoma de Baja California. Noviembre 2007. [10] D. Gay, P. Levis, Et. Al. NesC 1.1 Language Reference Manual, May 2003. [11] P. Levis. TinyOS Programming, June 2006. [12] M. Ilyas and I. Mahgoub Handbook of sensor networks. Compact wireless and wired sensing systems, CRC Press 2005. [13] Tmote Sky, Ultra low power IEEE 802.15.4 compliant wireless sensor module. Datasheet. [14] Noviembre 2007,,http://www.intel.com/research exploratory/wireless_promise.htm [15] Diciembre 2007 https://www.sunspotworld.com/ [16] T. Lindholm, F. Yellin The Java Virtual Machine Specification, Addison Wesley, 1997. [17] J. Gosling, B Joy, G Steele Jr The Java language Specification, Addison Wesley, 1996. [18] C. Cota. Desarrollo de una máquina virtual para el sistema SM80C188EB, Noviembre 2004. [19] C. Cota, L. Aguilar. MiniMV: Una Máquina Virtual para el SM80C188EB, EnInvIE 2006. UAZ, Zacatecas, Zac, Abril, 2006 [20] Agosto 2007 http://www.ftdichip.com [21] Julio 2007 http://sourceforge.net/projects/mspgcc/ [22] Julio 2007 http://www.cygwin.com/ [23] Texas Instruments. Application Report. Application of Bootstrap Loader in MSP430 with Flash hardware and software proposal, SLAA096B- Julio 2007 [24] D. Rayside, E. Mamas, E. Hons, "Compact Java Binaries for Embedded Systems", Proceedings of the 9th NRC/IBM Centre for Advanced Studies Conference (CASCON'99), Toronto, November 1999. [25] V. Romero, L. Aguilar. Gateway para Redes de Sensores Inalámbricas y Redes 802.11b, EnInvIE 2006, UAZ, Zacatecas, Zac, Abril, 2006