SDK Sofia2 y API Java (I)

Comenzamos una serie de post que intentarán explicar como desarrollar APPs Sofia2 en píldoras que nos permitan comenzar a trabajar con la plataforma de inmediato.

1.1 Instalar SDK Sofia2

Para descargar el SDK de Sofia2 iré al menú de Desarrolladores de Sofia2: http://sofia2.com/desarrollador.html

En la sección DESCARGAS accederé al SDK para mi Sistema Operativo, para el ejemplo usare el SDK Windows:

El SDK de Windows se suministra en formato ZIP y contiene todo lo necesario para desarrollar APPS Sofia2 sin necesidad de instalar nada en la máquina, esto es:

  • IDE Eclipse configurado
  • JVM Java 7
  • Maven 3
  • Scripts para lanzar todos los

Los pasos para instalarlo son:

  1. Descargar SDK Sofia2 (Windows) en http://sofia2.org/sdk/SOFIA2_SDK_WIN.zip
  2. Una vez descargado el ZIP lo descomprimo en una carpeta, nosotros usaremos c:SOFIA2_SDK_WIN

Tras descomprimirse:

Se habrá generado la carpeta con este contenido:

El fichero LEEME_WINDOWS.txt describe los pasos a seguir para configurar y lanzar el SDK y ejecutar los ejemplos.

  1. Una vez descomprimido voy a la carpeta (c:SOFIA2-SDK_WIN) y ejecuto el script Sofia2_SDK-START.bat. Esto debe abrir una línea de comandos sobre S: con esta información:

1.2 Abrir IDE Sofia2

Una vez instalado el SDK ya puedo lanzar el IDE Eclipse incluido.

Para eso:

  1. Desde la unidad S: ejecuto S:Sofia2_IDE.bat, esto lanzará una ventana de comandos:

Y finalmente se abrirá un Eclipse.

  1. Ahora voy a configurar el repositorio de Maven de Eclipse. Para eso voy a Window>Preferences>Maven>User Settings

y en User Settings selecciono: s:SOFIA2-SDKMAVENconfsettings.xml y selecciono Update Settings. Luego pincho OK.

1.3 Lanzar ejemplo de API Java Sofia2

Ahora vamos a cargar en el IDE un ejemplo Java incluido en el API Java Sofia2.

Para eso

  1. Desde el menú de Desarrollador de la web de Sofia2 http://sofia2.com/desarrollador.html en la sección Descargas selecciono el API Java:

http://sofia2.org/apis/SOFIA2_API_JAVA/SOFIA2_API_JAVA.zip

  1. Descargo el API Java en el directorio donde previamente instalé el SDK (en nuestro caso c:SOFIA2_SDK_WIN)

Y lo descomprimo directamente en esa carpeta. Tendré al final una carpeta c:SOFIA2_SDK_WINSOFIA2_API_JAVA_30102014 :

  1. Si no lo tenía ya lanzado lanzo el IDE que contiene el SDK de Sofia2 con el comando s:Sofia2_IDE.bat.

Al cabo de un tiempo debe lanzarse un Eclipse.

  1. Lo siguiente es cargar en el IDE el ejemplo más básico incluido en el API Java. Para eso selecciono en Eclipse File>Import>General>Existing Projects into Workspace>" “s:SOFIA2_API_JAVA_30102014EjemplosSofia2_KP_Eclipse"

Y pulso Finish.

Veré el proyecto cargado y compilado sin problemas:

  1. En el proyecto tengo 3 clases:

KpGatewayRestFuncional conecta vía REST con la instancia de Sofia2 en la nube.

KpMqttFuncional conecta vía MQTT con la instancia de Sofia2 en la nube.

KpWebSocketFuncional conecta vía MQTT con la instancia de Sofia2 en la nube.

  1. Estas 3 clases están implementadas como Tests JUnit y tienen configuradas los Tokens necesarios para insertar en la instancia de Sofia2 en la nube. Para probarlas seleccionaré botón derecho sobre cualquiera de ellas y Run As>JUnit Test

Al ejecutarlas obtendré:

Revisando el contenido de las clases puedo ver que se están lanzando contra el SIB de Sofia2 operaciones de:

  • JOIN para autenticar
  • Insert en modo nativo (insertando la ontología):

Con

  • Insert a través de SQL

  • Update nativo y SQL
  • Query en SQL, Query a la BDC (Assets)
  • BULK para enviar varios mensajes en un solo mensaje SSAP.
SDK Sofia2 y API Java (I)

PUBLICADA RELEASE 2.13.0 DE SOFIA2

Ya está disponible la release 2.13.0 deSOFIA2, esta release también se ha disponibilizado en la Plataforma de Experimentación SOFIA2 In-Cloud.

Esta versión añade a la Plataforma las siguientes funcionalidades:

· Nuevo Look&Feel Web de Configuración Sofia2 se han hecho diversos cambios y mejoras en la consola de configuración con el objetivo de mejorar la usabilidad de esta web y su adaptación a los diferentes dispositivos. En este sentido destaca adaptación a estilo líquido, menús colapsables, nuevas cabecera y pie y mejoras en la compatibilidad con navegadores IE8+.

· Demostración integración con Redes Sociales con Demo Streaming Twitter con objetivo de demostrar la capacidad de procesado de datos en tiempo real de la Plataforma esta demo permite cargar datos en tiempo real de la red social por excelencia: Twitter y representarlos en un mapamundi en tiempo real desde la plataforma.

Puede verse el vídeo demostrativo https://www.youtube.com/watch?v=6eTy6kjYuCg

· Demostración Smart Home con Demo donde se muestra la capacidad de la plataforma para controlar elementos dómoticos como un watorímetro, un sensor de temperatura y un sensor de humeddad desde un entorno web de una forma muy sencilla.

En breve se publicará el manual de cómo construir el entorno demostrador (Raspberry + Sensores Zigbee) y el software que ejecuta en él.

Puede verse el vídeo demostrativo https://www.youtube.com/watch?v=o8FNrtQ9S6s&feature=youtu.be

· Gestión de Assets Externos esta funcionalidad permite que el concepto de Asset manejado por la plataforma pueda estar definido a través de uno o varios Servicios externos (Servicios REST). La plataforma devolverá en estos casos los Assets manejados por ese servicio en lugar de los gestionados internamente.

· API REST de Gestión del Sofia2 API Manager en esta versión el API Manager incorpora un API REST de Gestión que permite que las APIS gestionadas por este puedan definirse a través de sistemas externos y no sólo desde la consola

· Mejora en la detección de ausencia de eventos en Motor CEP se ha incluido una extensión a la sintaxis existente de modo que las reglas CEP para capturar ausencia de eventos en un tiempo sea más sencilla, a partir de ahora puede hacerse:

from EVENTO_1[TRAINSET_SHORT__TRAINSET__TOTALVEHICLES == ’20’]#window.sofia:eventAbsence(20000)

select COUNT(TRAINSET_SHORT__TRAINSET__TOTALVEHICLES) as COCHES_TOTALES

insert into SALIDA_1

· Nuevo Gadget último valor este nuevo gadget permite mostrar el último valor en un gadget embebible en el dashboard

· Nueva API C/C++: en el nuevo API C/C++ se ha añadido soporte para compilación en Windows (Visual Studio) e incorporación de mensaje SSAP BULK.

· Mejoras Rendimiento en módulo Paso BDTR a BDH se ha refactorizado este módulo incorporando mejoras en el rendimiento y en la capacidad de proceso.

· Incorporación de nuevas APIS REST de Gestión de elementos incluyendo APIS REST para reglas CEP y Script.

· Nuevas Pruebas de Rendimiento de la Plataforma se ha elaborado un informe en el que se detallan el número de mensajes capaces de procesarse por segundo, el número de reglas CEP capaces de ejecutarse por segundo y el número de scripts a ejecutar por segundo. Estas pruebas pueden solicitarse a través del correo de contacto de la plataforma.

En estas pruebas también se han extraído los porcentajes dedicados a cada una de las labores en el procesado de un mensaje:

PUBLICADA RELEASE 2.13.0 DE SOFIA2

SOFIA2 RELEASE 2.13.0 PUBLISHED

Sofia2 new release 2.13.0 is now available. This release has also been deployed in the experimentation platform Sofia2 In-Cloud.

This new version adds the following features to the platform:

· New Sofia2 Configuration Console Look & Feel: ​​many changes and improvements has been made in the configuration console in order to improve its usability and adaptation to different devices. In this sense emphasizes Its adaptation to fluid style, collapsible menus, new header and footer and improved compatibility with IE8 +.

· Integration with Social Networking. A new Twitter Streaming Demo aims to demonstrate the platform’s ability to process data in real-time. This demo allows loading real time data from the ultimate social network: Twitter and represent them on a real time world map from the platform.

A video showing this functionality is available at https://www.youtube.com/watch?v=6eTy6kjYuCg

· Demo Smart Home: The capacity of the platform is shown to control home automation components as a watt., a temperature sensor and humidity sensor using a web app easily. A manual on how to build the demo environment (Raspberry + Zigbee sensors) and software running on it is going to be published soon.

A video showing this functionality is available at https://www.youtube.com/watch?v=o8FNrtQ9S6s&feature=youtu.be

· External Assets Management: This functionality allows to handle the concept of Asset by one or more external services (REST services). The platform will return in these cases Assets managed by the service instead of the internally managed Assets.

· API Manager management via RESTFUL Services. This version incorporates a new REST API than enables the management of APIs from external services without the use of the Sofia2’s web configuration console.

· Event’s absence detection Improvement by CEP engine: A new extension has been included to the existing syntax so that the CEP rules can acquire the absence of eventsduring certain time easily. From now it can be done as follows:

from EVENTO_1[TRAINSET_SHORT__TRAINSET__TOTALVEHICLES == ’20’]#window.sofia:eventAbsence(20000)

select COUNT(TRAINSET_SHORT__TRAINSET__TOTALVEHICLES) as COCHES_TOTALES

insert into SALIDA_1

· “Last value” new Gadget: This new gadget allows to show the last value on a embeddable gadget in the dashboard.

· New C/C++ API: the new C/C++ API supports now Windows compilation (Visual Studio). Also the SSAP BULK message support has been added.

· BDTR to BDH module performance improvements: This module has been refactorized incorporating improvements in performance and process capability.

· New RESTFUL APIs: including CEP rules and Scripts.

· Performance Platform Testing: A report has been produced in which is detailed, among others, the number of processed messaged, the number of running CEP rules and the number of running scripts, per second. This report may be ordered through the platform’s contact mail.

These tests also details the percentages of time dedicated to each tasks in the processing of a message:

SOFIA2 RELEASE 2.13.0 PUBLISHED

STREAMING DE TWITTER SOBRE SOFIA2

Se ha desarrollado una nueva demo de integración entre el servicio streaming de Twitter y el SIB de SOFIA2.

Se puede acceder a ella a través de la sección desarrollador de la web de SOFIA2:

screenshot-by-nimbus

http://sofia2.com/Kp_TwitterReglaLexico/


La aplicación permite recibir un streaming de tweets que contengan aquellas palabras clave que el usuario introduzca, representando los resultados obtenidos alrededor del mundo sobre un visor de Google Maps.

Los listeners registrados resultan de especial interés para conocer la tendencia u opinión sobre un determinado tema. A continuación, se muestra un ejemplo de uso para uno de los temas de mayor actualidad, “ebola”:

STREAMING DE TWITTER SOBRE SOFIA2