Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

image0172

 

Uno de los objetivos fundacionales de la Plataforma Sofia2 es el de simplificar y agilizar el desarrollo de todo tipo de aplicaciones, desde aplicaciones IoT en las que intervienen Gateways o dispositivos móviles a grandes sistemas Big Data, sin olvidar las aplicaciones web puras de gestión, para las que Sofia2 es un facilitador.

En este ámbito se ha añadido en la sección de Documentación  de la web sofia2.com una nueva guía que explica paso a paso cómo construir aplicaciones web (en la guía basadas en Spring Boot y Angular):

image0172

 

Complementando la guía se ha generado un entorno de desarrollo empaquetado como un ZIP que contiene todas las herramientas necesarias para construir estas soluciones (incluyendo JVM Java, IDE Eclipse, Maven, Apache Tomcat,…)

Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

Integración instancia GIT en GitLab con instancia de Plataforma Sofia2

asoc-git-01
Se ha incorporado una nueva funcionalidad a la plataforma consistente en la asociación de una instancia de SCM GIT sobre GitLab con la instancia de plataforma Sofia2 para poder utilizar dicho repositorio como repositorio SCM de nuestros desarrollos sobre plataforma, además de futuras incorporaciones de automatizaciones para la gestión de funcionalidades como la exportación e importación de configuración y datos, proyectos web, etc.
No todas las instancias de plataforma tendrán disponible la funcionalidad, puesto que está pensado más bien para su uso con instancias que se utilicen como entorno de desarrollo o pruebas, más que con instancias productivas. Para que la funcionalidad esté disponible se debe de habilitar por configuración en la propia instalación de la instancia.
Lo primero que hay que hacer para poder hacer uso de la funcionalidad es crear la asociación. Para ello, accedemos con usuario administrador a la consola de plataforma y en el menú de administración, pulsamos sobre la opción repositorio GIT
asoc-git-01
Y creamos la asociación:
asoc-git-02
Introducimos los datos de URL del repositorio GIT, usuario, password y el private token del usuario administrador para la integración y marcamos la integración como activa:
asoc-git-03
Para poder realizar el enlace correctamente en el repositorio GIT debe de existir un usuario “project_sofia2” (del que debemos conocer su password y el private token) con rol administrador y un grupo llamado “ProjectSOFIA2” con el usuario administrador anterior como propietario.
asoc-git-04asoc-git-05
Solo se permitirá una configuración de Repositorio GIT por instancia y su activación/desactivación, pero no el borrado:
asoc-git-06
En la ventana de visualización se pueden ver los proyectos existentes en el grupo “ProjectSOFIA2”
asoc-git-07
A partir de este paso, cuando un usuario crea un proyecto en Sofia2, automáticamente se crea un proyecto en el repositorio GIT dentro del grupo ProjectSOFIA2 y el usuario correspondiente al usuario Sofia2 que crea el proyecto como owner del proyecto y añadido al grupo, además de crear una estructura base de proyecto a partir de un template.
Creamos el proyecto en Sofia2 Control Panel:
asoc-git-08
Y se crea proyecto en GIT, en el grupo ProjectSOFIA2:
asoc-git-09
Cada proyecto creado en Git se define con:
asoc-git-10
Finalmente, se crean los usuarios asociados con el proyecto:
  • Un usuario con rol owner en Git para el usuario que crea el proyecto
  • Un usuario con rol developer en Git por cada usuario asociado al proyecto Sofia2
  • Todos los usuarios quedarán asociados al grupo de usuarios del proyecto
A partir de este paso, cuando se añaden usuarios al proyecto Sofia2 con repositorio asociado, se crean y añaden usuarios al repositorio y grupo en GIT.
     – Los datos de los usuarios de Git se tomarán de los datos de usuarios de Sofia2.
     – Datos de usuario en Sofia2: Usuario, Nombre Completo, Email
     – Datos de usuario en GitLab: Usuario, Nombre, Email
     – Contraseña: se envía link al mail desde el API de GitLab con contraseña autogenerada para repositorio.
Si un proyecto ya existiera previa a la asociación del repositorio GIT con la Plataforma se tendría que editar el proyecto para que se realizara todo el proceso igual que si se creara de cero con el enlace a GIT activado.

En posteriores versiones se evolucionará la funcionalidad con algunas mejoras:
  • Marcador a nivel de proyecto para indicar si se quiere asociar o no el proyecto a repositorio GIT.
  • Visualizado de datos de enlace a Git con los datos de Grupo/proyecto y usuarios en Git dentro de la ventana de proyecto.
  • Visualización datos básicos de información de repositorio: Branches, Tags, Files, Activity, Commits, Graph, Compare, etc.
  • Funcionalidades para poder guardar contenidos desde consola en dicho repositorio por cada usuario de proyecto. Se hará especifico en cada una de las funcionalidades, por ejemplo, export/import, proyecto web, notebooks, etc.
Integración instancia GIT en GitLab con instancia de Plataforma Sofia2

Mejoras documentación de ontologías

 doc-ontologias-03
Se incluyen en la plataforma una serie de mejoras de cara a la documentación de nuestro modelo de dominio basado en ontologías.
La primera de ellas consiste en poder incluir una descripción a los atributos de una ontología en la pantalla de creación/edición de la misma y cuyo contenido quede incluido en el propio esquema JSON de ésta.
doc-ontologias-01doc-ontologias-02doc-ontologias-03doc-ontologias-04doc-ontologias-05
Se ha incluido en la pantalla de consulta de las ontologías una vista de documentación para mostrar solamente la información documental de una ontología en un formato más amigable que un json-schema y con posibilidad de exportar como pdf documental.
doc-ontologias-06doc-ontologias-07doc-ontologias-08doc-ontologias-09
En posteriores versiones se evolucionará la funcionalidad de creación de ontologías mediante modelado UML para poder modelar todas las entidades de un proyecto Sofia2 o Space en un único diagrama y poder representar relaciones lógicas entre ellas a nivel de espacio, generando las ontologías a partir de dicho modelo y de forma inversa poder obtener dicho diagrama a partir de los esquemas de las ontologías creados mediante otros modos y del esquema de relaciones. Con esta funcionalidad se dispondrá de una vista del modelo de dominio completo para un proyecto o Space pudiendo generar un reporte completo documental del mismo siempre actualizado.
doc-ontologias-10doc-ontologias-11
Mejoras documentación de ontologías

¿Cómo garantiza Sofia2 la independencia del proveedor?

¿Por qué seleccionar Sofia2 IoT Platform como plataforma Internet de las Cosas corporativa en una organización? y cómo la plataforma permite a la organización mantener la independencia del fabricante.

Definición de Plataforma IoT

Una Plataforma IoT es un software que puede ofrecerse para instalar en un CPD privado (On Premise) o bien consumirse como servicio en la nube (PaaS), que supervisa y gestiona diversos tipos endpoints IoT (sensores), Gateways IoT y que permite construir aplicaciones de negocio.

De esta forma, la mayoría de las plataformas IoT tienen la capacidad de:

  • Supervisar los flujos de eventos generados por sensórica
  • Permitir la agregación de datos
  • Realizar análisis especializados en tiempo real de información masiva
  • Habilitar el desarrollo de aplicaciones, mediante disponibilidad de interfaces
  • Permitir la integración con sistemas y servicios TI de back-end

Situación actual de Plataformas IoT

Conforme indican algunos analistas, para 2020, el 65% de las compañías adoptarán plataformas IoT para la construcción de aplicaciones de negocio que involucren sensórica y puente para el control del mundo físico y el digital.

Actualmente existen muchos fabricantes en el mercado que ofrecen plataforma IoT. Construir una diferenciación competitiva basada exclusivamente en la capacidad tecnológica no suficiente. Es un error no considerar otros factores más vinculados al negocio, que incluyen: aspectos económicos, agilidad en el desarrollo, capacidad de extensión, evitar vinculación con la tecnología de base (compatibilidad de las soluciones desarrolladas sobre la plataforma), pero sobre todo, poder contar con un socio que adapte su propuesta al modelo de negocio que se pretende implantar en la compañía.

En este momento, el mercado está muy fragmentado. No existe un claro dominante. Ni siquiera un esquema de fabricante líder, ya que el espacio se reparte entre startups, compañías industriales, integradores de sistemas, empresas tradicionales de TI y grandes fabricantes de Software. Siendo que la tecnología es relativamente novedosa, esto supone una contradicción en el sector, ya que existen muchas opciones, pero ninguna que resuelva de forma completa todos los posibles usos y soluciones verticales (de negocio), lo cual incide en la especialización o verticalización por mercado o sector.

¿Qué recomendaciones tomar?

En esta situación de mercado, nuestra recomendación siempre es la misma hacia nuestros clientes, e incluyen las siguientes consideraciones:

  • Establecer una arquitectura a corto plazo para unificar los proyectos IoT existentes en las unidades de negocio y su relación con los sistemas TI disponibles, equilibrando los elementos basados en la nube y los elementos on-premise, en función de las inversiones previstas.
  • Examinar las plataformas IoT candidatas. A corto plazo, poner el foco en el aspecto funcional y de precio, considerando requisitos de proyectos concretos y, a largo plazo, en la escalabilidad y la alineación sobre una arquitectura global IoT.
  • Es importante disponer de equipo formado. Ya que seguro que va a tocar configurar, ampliar y personalizar la plataforma IoT para cumplir con las metas e integrarlo en otras soluciones.
  • Pensar en una arquitectura para soluciones de negocio IoT de extremo a extremo.
  • No tomar decisiones corporativas hasta no realizar pruebas de valor. Habitualmente con varias opciones y que permitan experimentar con distintas alternativas.
  • Las plataformas IoT desempeñan un papel muy relevante como “hubs” de datos que permiten: la integración de datos, almacenamiento, análisis y visualización. Por tanto, es conveniente evaluar si estas capacidades facilitan el desarrollo de aplicaciones tradicionales de forma ágil integrando datos, dispositivos y servicios.

PROPUESTA INDEPENDENCIA Sofia2 IoT Platform

Desde Sofia2 buscamos ofrecer a nuestros clientes una propuesta de valor que cubre el extremo a extremo, aportando desde el conocimiento de negocio, hasta la operación de los sistemas, en un formato de socio tecnológico.

Estrategia Open Source

El 70% del código de la plataforma Sofia2 está basado en software open-source ampliamente utilizado en la industria. Esto permite:

  • Simplificar la curva de aprendizaje de los equipos que la mantienen y desarrollan sobre ella, ya que están familiarizados con las tecnologías estándar de mercado (Java, Spring, Angular, Hadoop, MongoDB, Spark, Apache Zeppelin, etc..). Contrario a otras propuestas donde se utilizan mayoritariamente desarrollos propietarios (casos como Amazon WS, Azure IoT, etc..)
  • Conseguir de forma más eficiente personal en el mercado con conocimiento. Por tanto mejorar la captación y la competitividad en precio de consultores que no necesitan tanta especialización (otras plataformas requieren cursos de certificación largos y costosos).
  • Mejorar los procesos de despliegue y operación, que utilizan técnicas estándar para su instalación y componentes “conocidos” basados en Open Source para su ejecución.
  • El otro 30% corresponde con código propio Sofia2, destinado fundamentalmente a unir las piezas y componentes y a la consola de administración unificada de la plataforma. Esta característica nos permite:
  • Sustituir componentes de la arquitectura base, por otros (comerciales u Open Source), sin impactar en los desarrollos de las soluciones que se ejecutan en la plataforma.
  • eutilizar base instalada en nuestros clientes, de muchos de los desarrollos ya realizados
  • Simplificar la integración de componentes y disponibilizar un único punto de administración y control de toda la plataforma. Sin necesidad de utilizar diferentes “consolas” de administración como sucede con otras plataformas.

Adicionalmente, disponemos de una versión Open Source, que aunque no tiene todas las capacidades avanzadas, está referenciada como una de las principales por Gartner (“Use Open Source to Jump-Start IoT Projects and Make IoT Vendor Decisions” June 2017):

Mecanismos de extensión de la plataforma

Nuestra experiencia en el desarrollo y operación de grandes sistemas, nos obliga a conceptualizar la plataforma para que se pueda extender en varios puntos y por diferentes equipos (y roles).

Todos los módulos de la plataforma disponen de un API REST que permiten que se interactúe con ellos.

Para extensiones más avanzadas, el principal mecanismo disponible se modela sobre el concepto de plugin. Los plugins permiten extender de forma sencilla los diferentes módulos de la plataforma. Los plugins se escriben en Java y permiten:

· Interceptar todas las peticiones de la plataforma. Pudiendo extender con código ad-hoc (específico para las necesidades del negocio), sin afectar al core de los servicios ofrecidos por la plataforma.

  • Ampliar/modificar el flujo de procesado de mensajes.
  • Adaptar/personalizar la seguridad de la plataforma
  • Incluir nuevos módulos

Los plugins pueden ser desarrollados por el equipo de plataforma en base a las necesidades del cliente, o directamente por el cliente. Indra por su parte certifica los plugins, validando su correcto desarrollo y que no afecten el rendimiento/estabilidad de la plataforma. Además, si se trata de un plugin genérico y el cliente está interesado, estos plugins se pueden incluir en el core de la plataforma, lo que garantiza la mantenibilidad y evolución de los mismos.

Despliegue OnPremise o Cloud

Un aspecto que aporta independencia y flexibilidad es la capacidad para desplegar la plataforma Sofia2 en un CPD privado (On Premise) o en la nube, o mantener una combinación de ambos en utilizando un esquema Hibrido. Esta capacidad permite la independencia del cliente aportando capacidad para decidir. Y utilizar el esquema más adecuado para el modelo de negocio de la solución o del servicio. O incluso utilizar varios en función de los requerimientos. P.e:

  • Es un servicio Core para mi negocio y clientes y quiero tener el control completo (tanto a nivel de custodia de la información, como a nivel de operación), además amortizaré mis infraestructuras porque es un proyecto a largo plazo. Probablemente convenga un escenario On premise.
  • Mi modelo de negocio es incipiente. No tengo claro que vaya a resultar y tampoco sé si va a escalar adecuadamente. Necesito probar y asegurar un buen coste de servicio pero no sé qué me voy a encontrar al menos en el corto/medio plazo. Probablemente sea conveniente explorar un modelo en Cloud.

De las grandes plataformas, prácticamente ninguna de ellas puede desplegarse On Premise. Sofia2 permite los 2 modelos y la combinación de ambos.

MultiIaaS y MultiPaaS

Relacionado con el consumo en nube, hay un aspecto relevante de la plataforma Sofia2 que también aporta independencia para el negocio. Se trata de la capacidad para poder desplegar y consumir servicios de diferentes nubes. De forma que podamos ejecutar la plataforma sobre distintas infraestructuras (IaaS) y consumir plataforma como servicio (PaaS). Esta capacidad permite evitar el vendor lock-in y generar independencia del fabricante.

La mayoría de las plataformas de mercado sólo pueden ejecutar en el Cloud del fabricante. Esto dificulta la capacidad de negociar los precios con el fabricante, al estar sometido a su consumo de forma permanente y plantearse migraciones si se pretende cambiar de proveedor.

Sofia2 logra su independencia utilizando componentización estándar (Docker) de los módulos que la forman, permitiendo su despliegue en la mayoría de las nubes. En ese sentido tenemos referencias de la plataforma desplegadas en: Azure IaaS, Amazon IaaS, Google CE, PaaS BlueMix, PaaS OpenShift.

Modelo de suscripción

Tenemos la capacidad de adaptarnos para buscar la mejor propuesta alineada con los objetivos del cliente. En este sentido disponemos de una política de licenciamiento flexible, que puede ser revisada para encontrar el mejor encaje. Por defecto, la plataforma puede adquirirse:

  • Como servicio ofrecido en nube, en cuyo caso se factura un precio mensual por la plataforma. El precio depende de la infraestructura sobre la que se provisiona, de los módulos que se utilicen y de los SLAS que se definan (8×5, 24×7,…). Damos la opción de ser operada por el cliente o por nosotros.
  • Como despliegue On Premise: en DataCenter del cliente. El cliente paga en función del número de máquinas (nodos – no cores) y nivel de soporte, lo que le da derecho a actualizaciones, parches, formación, manuales Premium. En Ofrecemos 2 modelos:
    • Modelo de suscripción. Con facturación mensual y compromiso mínimo de 1 año.
    • Modelo tradicional. Pago inicial y mantenimiento anual.

Adicionalmente, podemos trabajar otros modelos que permitan una comercialización conjunta (reseller) a terceros con condiciones de descuesto especiales, en función del número de clientes finales o el modelo de negocio.

Modelo de certificaciones de la plataforma

Disponemos de un programa de certificación en la plataforma Sofia2 que ofrece un conjunto de ventajas, tanto para las personas que se certifican, como para los clientes de la plataforma:

Ventajas para la persona certificada Ventajas para cliente de la plataforma
1.Diferenciación en competencias IoT de gran demanda en la actualidad

2.Credibilidad ante la empresa propietaria de la plataforma, partners comercializadores e implantadores de la plataforma y clientes que usan la plataforma

3.Formar parte de la comunidad Sofia2

1.Validar la experiencia y conocimientos en la contratación de personas o empresas para desarrollar sobre la plataforma

2.Independencia de proveedor de la plataforma

3.Acelerar productividad en tiempo y coste de implantación de la solución de la plataforma

Las certificaciones se han estructurado en 3 itinerarios formativos:

Desarrollo

Arquitectura

Administración & Operación

Aprenda a desarrollar sobre la plataforma, tanto en capa dispositivo, aplicaciones y analítica Aprenda a diseñar soluciones IoT completas sobre la plataforma. Aprenda a instalar y operar la plataforma

Disponemos también de un programa específico por rol, considerando perfiles y requerimiento mínimos (indicado en el anexo B).

Modelo de partners e integradores

Complementando el modelo de certificaciones sobre la plataforma existe todo un ecosistema de partners e integradores que amplían y mejoran la plataforma, buscando un modelo win-win de comercialización conjunta.

Este ecosistema lo forman distintos tipos de partners, donde se incluyen:

  • Compañías de TI, startups y emprendedores, que desarrollan e integran soluciones sobre la plataforma: y que están a disposición de los clientes de la plataforma con un precio y tiempo de implantación cerrado
  • Empresas SW que fabrican herramientas y extensiones sobre la plataforma
  • Empresas de HW que tienen appliance personalizados para la plataforma y que integran sus dispositivos utilizando las APIs de la plataforma (sensores y Gateways IoT)
  • Socios comerciales con los que trabajamos en diferentes oportunidades
  • Universidades y centros de investigación que lo utilizan con fines docentes

Vinculado a este concepto de ecosistemas, disponemos de entornos de experimentación gratuitos, que permites a todos nuestros partners utilizar la versión Enterprise de la plataforma servida desde la nube. Esta instancia se encuentra accesible a través de la web en el site: http://sofia2.com, donde ya se han registrado más de 1.500 usuarios y se han procesado más de 550 millones de mensajes.

Por esta iniciativa hemos recibido premios internacionales reconociendo el modelo abierto. Los más recientes: TMForum Open Digital Ecosystem Platform of the year 2016 (reconocimiento recibido en Niza) y Microsoft Citynext Global partnert of the year finalist 2017 (reconocimiento recibido en Washington D.C)

Compromiso con la innovación y los estándares

Somos una de las 3 plataformas IoT referenciadas en el programa Horizon 2020 de la Comisión Europea. Lo cual nos permite mantener un compromiso con la innovación, complementando de esta forma nuestro roadmap comercial.

Mantenemos relación con diferentes grupos de estandarización nacionales: Co-definimos y cumplimos la norma de plataformas e interoperabilidad para ciudades inteligentes coordinada por AENOR y Ministerio de Energía, Turismo, e internacionales: colaborando con la AIOT Europea como principal organismo de estandarización de tecnologías IoT, donde también aparecemos referenciados en el landscape de plataforma IoT.

Garantía de continuidad

Sofia2 garantiza la continuidad de la plataforma. De forma que si se decidiera discontinuar el proyecto/plataforma, se podrá a disposición de todos los clientes de la plataforma el código fuente de la última versión publicada.

EJEMPLOS DE NUESTRA PROPUESTA

Con el fin de concretar algunos ejemplos de independencia, describimos varias referencias relevantes, mostrando ejemplos de lo que diferentes clientes y partners han realizado de forma autónoma, sin requerir una involucración continua por parte de Indra. En muchos casos solo formación básica inicial.

Plataforma IoT para Ecosistemas locales

En la plataforma Smart City de la ciudad de Coruña (Smart Coruña) Sofia2 actúa como la plataforma IoT de la ciudad. Con el objetivo de buscar la independencia de plataforma y certificar que otras empresas podían desarrollar sobre esta, el equipo de plataforma no ejecutó ninguno de los proyectos verticales que se desarrollaron sobre la plataforma.

Se ejecutaron hasta un total de 14 proyectos que incluyen la construcción e integración de sistemas dedicados a: gestión de la movilidad urbana, seguridad, medio ambiente, gestión del ciclo del agua, riego inteligente, etc… con un soporte facilitado por la oficina de proyectos (no compuesta por equipo de Indra) el soporte de nivel 1 y 2. Indra participó en el soporte de nivel 3 puntualmente con un formato basado en bolsa de horas.

Esta experiencia demuestra que la plataforma permite el desarrollar sobre ella a otras empresas, sin un conocimiento previo, ni vinculación con la plataforma.

La Plataforma está en producción desde diciembre de 2014 y a día de hoy el Ayuntamiento opera una versión completa de la plataforma de forma autónoma.

Plataforma IoT como palanca de Innovación I+D europeo

Sofia2 se usa como Plataforma IoT en diversos proyectos I+D, en los que Indra simplemente disponibiliza la plataforma, para que otras entidades y empresas desarrollen sobre esta.

Más de 15 compañías Europeas han trabajado con la plataforma Sofia2 en el marco de proyectos I+D pertenecientes al programa H2020, en el cual se han construido sistemas de diferentes tamaños y coberturas. A modo de ejemplo destacamos 2 de ellos, en los que Indra participa proporcionando la plataforma y el desarrollo ha sido desarrollado por un tercero.

  • eVACUATE: Ejemplo de sistema grande y amplia cobertura

Sofia2 se ha usado como Plataforma de interoperabilidad sobre la que desarrollan diversos sistemas de gestión inteligente de evacuaciones:

  • CPSE-Labs Sofia2 es la plataforma Smart Cities a nivel europeo sobre las que otras empresas desarrollan soluciones, entre estas soluciones por ejemplo tenemos:
  • iWesla. Ejemplo de sistema pequeño y solución de nicho

En este caso, empresas locales españolas como a-c ing y Libelium, desarrollaron un sistema de forma autónoma sobre la plataforma Sofia2 para la optimización del consumo del agua.

Plataforma IoT para Universidades y Entornos de Experimentación

La Plataforma ofrece un entorno gratuito en el que cualquier usuario puede desarrollar sus aplicaciones sin restricciones de tiempo, volumen, uso ni coste

Este entorno se ofrece a diferentes tipos de usuarios y entidades, donde las universidades juegan un papel clave. Se han mantenido acuerdos con distintas Universidades nacionales e internacionales, donde destacan: UPM (España), UC3 (España), Andres Belló (Chile), S. Bahia (Brasil), Jackson (USA).

En virtud de estos acuerdos, Sofia2 se utiliza como entorno de experimentación para que los alumnos y personal docente puedan desarrollar de manera autónoma, proyectos finales de carrera, pilotos y prototipos, masters con pruebas prácticas.

En este sentido destaca la Jackson State University, donde los alumnos del departamento de ingeniería han presentado diferentes prototipos, desarrollados por ellos. La más reciente en la 15th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Global Partnerships for Development and Engineering Education”, 19-21 July 2017, Boca Raton Fl, United States. Sobre la Gestión de parking inteligente.

Plataforma IoT para Proyectos Singulares

Adicionalmente como integrador, Indra suministra plataforma para el desarrollo de proyectos singulares en prácticamente todos los mercados y sectores de actividad.

En este sentido la plataforma es base de desarrollos a medida realizados para distintas entidades públicas y privadas, de ámbito nacional e internacional.

Presentamos varios ejemplos de entidades que han confiado en Indra para desarrollar sobre Sofia2 sus sistemas más innovadores:

  • Logística Sostenible y Red de Proveedores Virtuales. Plataforma para habilitar los recursos compartidos entre minoristas, cargadores, transportistas, desarrollada para el World Bank Group y pilotado en Albania.
  • Monitorización Remota y Tele-asistencia de pacientes crónicos para el Servicio Gallego de Salud, reduciendo el 40% del número de viajes de pacientes al hospital y del 30% del costo asistencia.
  • Mejora de la trazabilidad y logística inversa en el transporte de mercancías, para mantener el control de los elementos y calidad de los contenidos.
  • Plataforma para la Ciudad Inteligente de Logroño, cuyo objetivo es incremente la calidad de vida de sus ciudadanos y asegurar la sostenibilidad económica, social y medio ambiental de la ciudad
  • Diseño y desarrollo de plataforma IoE (Internet of Everything), que permita a las ciudades europeas la co-creación de servicios ciudad a gran escala en entornos urbanos.

Anexo A. Componentes Open Source

Como se ha comentado, es parte fundamental de nuestra estrategia la utilización de componentes Open Source. El siguiente diagrama muestra el detalle de alguno de ellos:

Entre los componentes principales utilizados por la plataforma, destacan los siguientes:

  • Eclipse IoT Moquette como Broker MQTT
  • Spring y todo su ecosistema como framework de desarrollo principal de la plataforma
  • JQuery, Thymeleaf, AngularJS, Bootstrap como tecnologías para construir el Control Panel
  • Hazelcast como DataGrid en memoria
  • Node-red como motor de flujos
  • Siddhi CEP como motor CEP
  • MongoDB, ElasticSearch, Kudu, HBase, HIVE, Impala,… como motores de persistencia y consulta
  • Apache Zeppelin como motor de nuestros Notebooks
  • StreamSets como motor de DataFlow
  • Quasar como motor analítico SQL para MongoDB
  • Apache Drill como motor DataLink
  • Spark como motor de procesamiento en streaming
¿Cómo garantiza Sofia2 la independencia del proveedor?

Seguimos jugando con Zapier y Sofia2

Hemos aprovechado un ratillo suelto para hacer otro ejemplo “resultón”, combinando las capacidades de Sofia2 Platform y Zapier.

Me estaba preguntando: “cuantas noticias IoT se publicarán en Internet, y en cuantas de ellas se menciona nuestra plataforma?”. Os voy a contar cómo lo he configurado para tener la respuesta después de unos días de escucha automatizada.

 

Primero he configurado en Sofia2 un ontología de Feeds, donde almacenaré las noticias publicadas:

1CreacionOntoCaptura

con los siguientes datos para cada una de ellas:

2CreacionOntoCaptura

y por último me he configurado un ThinKP para poder acceder a mi ontología de manera segura desde fuera de la plataforma:

3configuracionKP

 

Lista la configuracion en Sofia2! Ahora vamos a definirnos nuestro ZAP, que se compondrá de los siguientes pasos:

  1. Como trigger, un listener de RSS, En mi caso he configurado los tres que me han parecido más relevantes.4FeedsTrigger
  2. Un filtro que permite que el flujo continúe sólo si se encuentran las palabras clave en las que estoy interesada (en mi caso BigData, “IoT” y sus variantes):

5.Filter

3. Sobre el resultado, llegados a este punto, vamos a ejecutar la acción ‘formatter’ (si te interesa ver la potencia completa de este componente, la puedes encontrar aquí), para buscar la cadena de texto ‘Sofia2’ en el contenido de las noticias filtradas:

6Insert

4. Por último, insertamos los datos de la noticia, y de las ocurrencias de la palabra clave “Sofia2” en nuestra ontología, usando la app Zapier Sofia2:

7configInsert

y ya está!! Dejamos activo el ZAP y a esperar la recolecta de información para ponernos a analizar los datos, hacer dashboards, identificar el sentimiento de las noticias (en las que estemos mencionados)… se me ocurren muchas aplicaciones.

8ZAPon

Puedes encontrar la descripción completa de la app Zapier Sofia2 para montarte tu ZAP en minutos en nuestro anterior post sobre este tema.

 

Seguimos jugando con Zapier y Sofia2

Integración de Sigfox con Sofia2

A través de las herramientas de Sofia2 la integración entre Sofia2 y Sigfox es relativamente sencilla (leer post Qué es Sigfox)

A  continuación se realiza una explicación diferenciando el desarrollo sobre la plataforma Sigfox y sobre la plataforma Sofia2.

Captura0.PNG

 Configuración en Sofia2:

Para preparar la integración en Sofia2, primero crearemos la Ontología donde almacenaremos los datos procedentes del dispositivo en crudo.

En nuestro caso, y conociendo todos los parámetros que nos envía Sigfox, creamos la ontología a partir de esta información.

Los campos serán los siguientes:

propierdades

Una vez creada nuestra ontología, la forma más sencillo es levantar un API REST para realizar la ingesta de los datos .Para ello en el apartado de API Manager en la consola de Sofia2 procedemos a crear dicha API, enlazada a la ontología que hemos generado anteriormente.

api1

Una vez creado y publicado el API con una operación POST, disponemos del servicio al cual llamará el dispositivo para enviar la información.

api2

Configuración Backend Sigfox:

Una vez logados en la plataforma de Sigfox, y con los dispositivos activados y agrupados, seleccionaremos el grupo en el cual queremos crear un nuevo callback, el cual afectará a todos los dispositivos agrupados. En este caso configuraremos el envío para los dispositivos  Sigfox Wifi  Geoloc.

sigfoxTIPOS

En la nueva pantalla que se nos muestra, seleccionamos a la izquierda “CALLBACKS”, y creamos una nueva.

Disponemos de  varias opciones para crear callbacks , en este caso seleccionamos “Custom callback” donde tendremos varios tipos de llamadas, dependiendo de la llamada que elijamos enviaremos unos datos u otros. En esta integración, nos interesa geolocalizar los dispositivos y de este modo controlar la posición de los mismos. Por ello generamos un callback de tipo GEOLOC, el cual podrá enviarnos los datos que necesitamos. Como vemos en la siguiente captura, introducimos únicamente los headers y el end point del API que hemos creado anteriormente.

Captura2

En el campo body, se crea el mensaje a enviar, donde seguiremos la estructura de la ontología, señalando aquellos datos que queremos que se envíen. Sigfox parsea los datos de las variables predefinidas entre paréntesis.

En este caso el body que enviamos es el siguiente:

Captura3

Una vez completados estos pasos, y habilitando el callback, nuestros dispositivos Sigfox estarán enviando la información a Sofia2. Puedo revisar el funcionamiento de las llamadas en el apartado de cada dispositivo independientemente, en el menu “MESSAGES”.

Captura4.PNG

Una vez comprobado que el sistema está funcionando, guardando los datos de manera correcta, podemos decir que hemos integrado los dispositivos Sigfox con Sofia2 de manera rápida y sencilla!!!

 

Integración de Sigfox con Sofia2

Tecnologías Soporte RI Sofia2 IoT Platform

En Sofia2 IoT Platform hablamos del concepto de Implementación, para referirnos a las tecnologías subyacentes que dan soporte a la plataforma.

Sofia2 tiene una RI (Reference Implementation) basada 100% en software Open-Source sin licencia vírica.

En el siguiente diagrama se muestran las principales tecnologías que componen esa implementación de referencia de la Plataforma:

En futuros posts mostraremos las tecnologías que usan en otras implementaciones de la Plataforma, por ejemplo en la implementación basada en el stack de Amazon AWS o con piezas de la plataforma SAP HANA.

Tecnologías Soporte RI Sofia2 IoT Platform