Nuestros artículos imprescindibles

18 marzo 2013

Potencial de desarrollo de las aplicaciones machine-to-machine (M2M)




El potencial de las aplicaciones de la tecnología machine-to-machine incluye telemática en automoción, alarmas, rastreo de activos, medición de las distribuidoras de energía y muchas más. Herramientas basadas en la web proporcionan un vehículo ideal para vendedores y usuarios finales para interactuar con estos dispositivos, permitiendo funciones tales como la supervisión remota, informes y además ayudan en las aplicaciones de prototipaje, desarrollo y mantenimiento.

Los desarrolladores de aplicaciones web para ambientes desktop favorecen los lenguajes de programación interpretada tales como PHP, Perl, Python o Ruby. Particularmente atractivas son las características de conveniencia de la programación de alto nivel que reducen el tiempo de desarrollo. Por supuesto, también están disponibles lenguajes que proporcionan la tecnología de contenido dinámico para la web.

Sin embargo, un lenguaje dinámico que ofrece valor a los desarrolladores M2M debe ser invendible, y el recurso de memoria y CPU de la mayoría de los recursos disponibles es demasiado alto. Los desarrolladores M2M necesitan también un lenguaje capaz de asegurar la respuesta en tiempo real.

Algunos vendedores de plataformas M2M han presentado un lenguaje interpretado tal como Python para soportar un rápido diseño de aplicaciones basadas en el web y acelerar la programación. Sin embargo, para alcanzar un resultado que es conveniente para embebido, los desarrolladores tienen que reducir dramáticamente las librerías soportando Python, además de quitar apoyo para instrucciones específicas. Estos ajustes comprenden la potencia del lenguaje, creando una solución de aplicación embebida que es capaz sólo de realizar operaciones simples tales como control de modem pero con valor limitado para funciones de nivel de aplicaciones poderosas.

Como un compromiso entre C y un lenguaje dinámico real, Java ha sido exitosamente presentado a un gran número de plataformas celulares de consumidor. De nuevo, sin embargo, la diferencia entre la liberación original y subsecuentes variantes embebidas introduce ciertas limitaciones. En el caso de Java, su portabilidad para adaptarse a plataformas de hardware diferentes no están disponibles rápidamente y fácilmente en J2ME, la versión embebida de Java.

Los desafíos de velocidad asociados usando una máquina virtual para hacer funcionar el bytecode Java semi-compilado han restringido a los desarrolladores trabajando con Java en diseños embebidos. Aunque la compilación dinámica ha extraído con éxito un rendimiento más alto, Java no es una elección poderosa para los desarrolladores buscando el rendimiento en tiempo real.

Para satisfacer las demandas en rendimiento en tiempo real en aplicaciones M2M, una solución puede ser usar una combinación de un lenguaje interpretado embebido para funciones de alto nivel con un lenguaje más conveniente tal como C/C++ para las tareas de bajo nivel de tiempo real.

Para satisfacer la demanda del rendimiento en tiempo real en aplicaciones M2M, una solución puede ser usar una combinación de un lenguaje embebible para funciones de alto nivel con un lenguaje más conveniente tal como C/C++ para las tareas de bajo nivel y en tiempo real.

Lua es un lenguaje interpretado cuya API se concibe para permitir integración con código escrito en lenguajes de nivel más bajo, especialmente C/C++, permitiendo a los desarrolladores conmutar entre C/C++ y Lua como aplicaciones ideales para aplicaciones M2M que requieren tanto rendimiento en tiempo real como productividad de alto nivel.

Escribir las funciones de alto nivel en Lua proporciona los beneficios del código compacto y alta productividad, mientras que el uso estratégico del código C/C++ permite rendimiento en tiempo real e implementación eficiente de funciones relacionadas con el hardware.

Para aplicaciones M2M, las capacidades de networking de Lua y capacidades para soportar funciones basadas en TCP/IP tales como Telnet o servidores web vienen con las ventajas de baja footprint de memoria.

Bibliografía

  • Taking the brakes off developing machine-to-machine applications. European Electronics engineer July 2009

1 comentarios:

Harry Tuttle dijo...

Está bien pero el artículo está un poco anticuado, con la caida en picado de las placas ARM no es un problema integrar lenguajes de alto nivel en una solución en tiempo real, sobre todo con soluciones como remoteproc (http://www.mjmwired.net/kernel/Documentation/remoteproc.txt) de linux.