We’ve recently been doing some work with a French company called Sigfox that has some ambitious goals for enabling the Internet of Things. Rather than using a general-purpose IP-based cellular network, which requires significant power and silicon for basic connectivity, they’ve developed a purpose-built network designed to meet the needs of millions or even billions of low-powered IoT devices. They believe they can reduce power requirements enough that many devices can run without batteries (powered by solar for example) and with a fraction of the communications silicon required to connect via other wireless networks. Exciting stuff!
At Solace, we have taken a similar approach to tackling the challenges of data movement by tackling the right tools for the right jobs. Sophisticated messaging and streaming in the back office, WAN optimization for efficient cloud synchronization and lightweight protocols and APIs for IoT devices.
This shared vision is what brought our two companies together and what has led to some of my efforts building a proof-of-concept application that shows the capabilities of our combined solutions. Sigfox brings best-in-class connectivity for sensors and devices, and Solace brings a flexible means of delivering that data to enterprise apps.
In the PoC, Sigfox device data is distributed to two databases (SAP Hana and Cloudant), as well as to a mobile application using MQTT. I have deployed these two databases in two different public cloud: SAP Hana in AWS and Cloudant in Buemix, as shown below:
This PoC features Solace open data movement and SigFox IoT network capabilities:
- Bridging low-powered devices with Enterprise applications
- Messaging protocol transformation
- Dynamic message and stream routing
- Fan in from many devices
- Fan out to many enterprise applications
- Easy configuration
- Decoupling consumers from producers
- Scalable and resilient architecture
- Choice of public clouds
I have worked with Sigfox to connect test devices to a Solace appliance deployed in our London offices. Messages sent by the devices are published to a topic that with subscribers in both SAP Hana and Cloudant.
Here’s the sensor data collection portal management site: https://www.sensit.io
Configuration in Solace for running this demo simply consists in:
- Activating REST and MQTT service ports
- Configuring HTTP(S) targets for sending messages to Hana and Cloudant. No coding is required.
Note: there is no need to configure anything for the MQTT mobile connectivity: by default, any message received by Solace is available to any supported protocol (if the security mechanisms permit). So, a MQTT client can easily subscribe to the messages posted by Sigfox.
It has been decided to include the sensor ID in the URI: Sigfox sends the sensor information to a URL like http://solace:port/<sensorID>
The configuration of the HTTP targets to send POST over HTTP (or HTTPS) messages is accomplished using the REST Delivery Point object which is bound to a REST Consumer and a Queue binding:
- The REST Consumer object defines the target of the POST over HTTP(S) message
- The Queue binding is used to attract messages (based on a topic namespace) to be sent by a REST Consumer.
The below schema summarizes the Solace configuration:
The same configuration has been done for Hana.
Let’s have a look at what happens when running the demo.
The sensor is configured to send light information every hour. This can be configured a more or less frequent update period – up to 8 messages per sliding hour, which is a limit by Sigfox network. Also, you can force the sensor to send information by pushing a button, which is handy for the demo.
At each update, the sensor data is sent by Sigfox to Solace, which then distributes to Hana, Cloudant and the Mobile MQTT client installed on my iPhone.
In Cloudant, there is a very easy and intuitive user interface showing all the database documents:
- The DeviceID displays the identifier of the sensor and the rest of the columns represent information sent by Sigfox sensor.
- Let’s have a look at the sensor information whose Sequence is #408:
- Now let’s start browsing Hana using Studio for Hana and search for this same sequence number. The selected row on the below screenshot corresponds to the same sequence number #408 and contains the same sensor information.
Finally, let’s have a look at the Mobile MQTT app for iPhone:
- First you need to fill in connectivity information to the Solace broker:
- Then, using the Subscribe menu, you type the sensor id:
- And finally the message with sequence number #408 is received:
Implementing Solace’s open data movement capabilities in conjunction with Sigfox’s innovative connectivity solution for sensors and devices has some serious potential. I look forward to seeing how our customers tap into the combination to link IoT devices with enterprise applications and business processes.