Internet of Fun – Demostrando el concepto IoT

big-bang-t3e23-jaestevan

En un artículo anterior, hacía una introducción del concepto de Internet of Things (IoT, Internet de las Cosas) y por qué iba a ser relevante en el futuro en multitud de procesos empresariales, procesos que inevitablemente van a llegar al mundo del ERP en mayor o menor medida.

Uno de los factores que, en mi opinión, van a hacer que estas prácticas se disparen en un futuro cercano es su accesibilidad. La facilidad de desarrollarlos y el bajo coste con el que se puede empezar a hacer cosas útiles y de eso estamos hablando, ¿Verdad?… de cosas 🙂

En la demostración que empieza con este post vamos a crear un ejemplo funcional sencillo para comprobar las posibilidades de las que disponemos en cada caso, y comprobar lo sencillo que puede ser investigar y crear prototipos que luego podremos convertir en sistemas reales. Utilizaremos materiales de bajo coste para hacer pruebas, que luego podremos convertir en sistemas reales con material industrial equivalente.

Este artículo contará por lo menos con tres partes (puede que más, si el tema interesa) teniendo en cuenta los que para mi son los tres boques de estas técnicas: Sistemas que van a generar la información (las “cosas” del IoT), los consumidores que harán uso de esta información, y los canales que nos permitirán capturar, almacenar y procesar la información generada.

grafico-iot-jaestevan

Internet of ¿Things? Qué es y por qué debe interesarme

Si llevas en esta industria suficiente tiempo estarás acostumbrado a escuchar palabras nuevas prácticamente cada día. Algunos de estos buzzwords sólo pretenden presentar como novedades cosas que siempre han estado ahí, pero algunas llegan a ser realmente relevantes no solo para nuestra industria, sino para las que damos soporte desde los equipos TIC. Una de las que van a ser importantes es la llamada IoT (Internet of Things), o Internet de las cosas.

Internet de las ¿Cosas? ¿Qué es el IoT?

El término, como suele ocurrir, no es nuevo. La definición original y primer uso se atribuye a Kevin Ashton (1) en 1999, en una presentación sobre posibles utilidades de dispositivos RFID (ahora ampliamente utilizados en sectores clave como el retail), aunque no ha sido hasta que la capacidad de procesamiento y comunicaciones han crecido con la llegada del cloud que el término y sus utilidades han explotado pasando a primera línea en cualquier discusión técnica.

Para comprender el concepto hay que entender el contexto: la mayoría de la inmensa cantidad de información que conforma Internet actualmente (se estima en 50 petabytes -un petabyte son 1024 terabytes-) ha sido, de una forma u otra, generada por personas. Crear un documento, tomar una foto, hacer like, retuit, etc. son todas acciones realizadas por personas. Acciones que a menudo resultan en información que acaba en internet.

Sin embargo, potenciado en los últimos años entre otras cosas por el aumento notable de capacidad de procesamiento mediante servicios en la nube, mejoras en las comunicaciones y por el bajo coste de los componentes electrónicos (sensores), empezamos a tener gran cantidad de información no generada por personas, sino por “cosas. Sensores instalados en todas partes (en casa, en el coche, en el móvil, en las tiendas, en las carreteras, dispositivos wearables, …) y conectados a la red son capaces de enviar una inmensa cantidad de información de manera fiable y casi ininterrumpida a la red, creando una red interconectada de “cosas“, y de ahí el IoT.

Según varios estudios (2)(3) la cantidad de dispositivos conectados estimada para 2020 ronda los 26-30 billones (billions, miles de millones). Un aumento muy notable comparado con los 7.3B de ordenadores, tabletas y móviles que los mismos estudios estiman para las mismas fechas. Otro estudio de cisco (6) aumenta hasta 50B la previsión, estimando que en 2020 habrá 6.58 dispositivos conectados por persona, desde los 3.47 actuales.

Yo trabajo con datos empresariales ¿En qué me afecta ese cambio?

Si estas estimaciones se cumplen, es fácil darse cuenta de cómo la gran mayoría de la información será generada por dispositivos, aunque todavía queda para las personas la responsabilidad de procesarla, almacenarla y explotarla, y eso nos incumbe a todos los que trabajamos con datos de empresas. No tardaremos demasiado antes de ver este tipo de información aparecer en sistemas ERP, no sólo para la toma de decisiones sino en forma de previsiones en tiempo real, pudiendo utilizar directamente el ERP para corregir tendencias o responder rápidamente a cambios basados en estos datos. Son una herramienta clave para el BI junto a otras técnicas ya conocidas como el data mining o el machine learning.

El nuevo Microsoft Dynamics AX listo para desplegar

The New Microsoft Dynamics AX

Aunque ya llevamos tiempo hablando sobre la última versión de Microsoft Dynamics AX (aka “El nuevo”, “AX 7” o “Rainier“) no ha sido hasta esta semana durante la Microsoft Dynamics Technical Conference que se ha liberado una versión final, a falta del lanzamiento oficial que veremos la semana que viene (mas información aquí).

Hace un tiempo ya publiqué en este blog cómo desplegar en azure una instancia de desarrollo/demo del nuevo Microsoft Dynamics, y el procedimiento no ha cambiado nada salvo que ahora podemos ver una opción para desplegar la versión final. Te recomiendo revisar aquel artículo y empezar cuanto antes a jugar con el.

Si no quieres o no tienes una cuenta de Azure, también está disponible para descargar la versión autocontenida que siempre hemos tenido, se puede bajar de la página Connect (necesita un login de PartnerSource o CustomerSource), desde este enlace:

Y para ir abriendo boca aquí dejo algunos enlaces interesantes:

Microsoft Dynamics AX 7 Virtual Launch Event

AX 7 virtual launch

Como cabía esperar, el lanzamiento oficial del próximo Microsoft Dynamics AX se llevará a cabo a principios del mes que viene en un evento público y online que repetirá a diferentes horas para facilitar su asistencia desde todo el mundo.

Se puede encontrar más información en la web del evento pero aquí va lo básico:

  • Sesiones
    • March 8, 2016 / 6:00 pm – 7:00 pm PST (de 3h a 4h de la mañana en España)
    • March 9, 2016 / 8:00 am – 9:00 am PST (de 17h a 18h en España, si lo he convertido bien)
  • Agenda
    • Executive Welcome
    • Customer Demos & Insights
    • Transform business faster
    • Grow at your pace—evolve your business with the choice and flexibility of the cloud

Yo no me lo pierdo. ¿Y tu? 🙂

Desarrollo en Dynamics AX 7: La nueva arquitectura

Mientras esperamos que se publique la versión definitiva de “El Nuevo” AX o Dynamics AX 7, podemos empezar a comprender las bases del sistema utilizando la información publicada y la Preview pública. Antes de entrar a analizar los detalles de la nueva versión, que son muchos y nos va a llevar bastante tiempo, hay que comprender las bases que han motivado todos esos cambios y que nos van a permitir comprender mejor la nueva forma de desarrollar, que aunque utiliza herramientas parecidas a las versiones anteriores, veremos como son totalmente diferentes.

Model Store vs Local Repository

En versiones anteriores el código y los metadatos se almacenaban en ficheros de capa (AX 2009) y después en bases de datos, ya sea una base de datos dedicada (AX 2012 R2+) o en la propia base de datos de negocio (AX 2012 RTM). Este simple hecho condicionada las herramientas que podíamos utilizar para trabajar con este código y metadatos. Esto es, programar, crear nuevos objetos, hacer pruebas, compilar, etc…

En AX 7 el código se almacena en ficheros en el disco, como en la mayoría de lenguajes modernos, donde tenemos la versión de los ficheros que nosotros estamos modificando. No en ficheros XPO como en ficheros anteriores, sino en un formato nuevo del que hablaremos más adelante, y estos nuevos ficheros pueden abrirse desde Visual Studio utilizando Proyectos y Soluciones propias de este editor para organizar nuestros desarrollos.

Modelos vs Paquetes

Aparte de este cambio en el almacenaje y gestión de los metadatos, en la nueva versión X++ es un lenguaje completo y nativo de la plataforma .NET, y por tanto el compilador y la ejecución son la misma que en los lenguajes .NET. El resultado más evidente de este cambio es que el código compilado (que en la versión anterior se guardaba, también, en base de datos) genera ensamblados (librerías DLL) que se ejecutan en CLR, como el resto de la plataforma .NET.

packages models projects

Procesos BUILD automáticos con TFS y AX 2012 (2/2) (ALM-X)

En el artículo anterior de esta serie definimos el proceso principal para configurar una Build de Microsoft Dynamics AX 2012 en TFS, en resumen:

  • Instalar y configurar los componentes de TFS necesarios en el servidor de build (Agente, Controlador, etc.).
  • Crear un nuevo proyecto con las actividades personalizadas y la plantilla por defecto.
  • Subir todo esto al repositorio de código fuente en TFS o Team Services para que el Controlador pueda acceder a ellos.
  • Añadir estas referencias a Visual Studio para que éste reconozca las actividades nuevas.
  • Crear una nueva definición de Build utilizando la plantilla descargada.

Nos quedábamos ejecutando esta definición de Build recién creada con todas las opciones, actividades y plantilla por defecto, y tras todo lo cual recibíamos un error. Frustrante, ¿No? Puede que si, pero si lo pensamos es bastante lógico, veamos:

Una Build no es más que un workflow que ejecuta una serie de pasos en un determinado orden. Este workflow es la Plantilla (template) que nos hemos descargado, un fichero con extensión XAML que, si hemos seguido todos los pasos hasta aquí, podremos incluir en un proyecto o solución de Visual Studio y editarlo desde ahí, y que tiene este aspecto:

SimpleWorkflowTFS2013-Joris