Remote Gateway Management: Benefits, and how we make it happen

Key features of the AGILE gateway include the ability to provide data and device management, execution of Internet of Things (IoT) applications and, importantly, communicate with the Cloud to enable a plethora of use-cases. But there is also features that are provided “under the hood”, features such as security.

Resin.io: a not-so-silent force working alongside the AGILE gateway

For AGILE to enable user application deployment, remote updates, and monitoring of connected gateways, we are customising and will utilise a software technology built by one of the project partners called Resin.io – it is a Remote Gateway Management interface that is deployed in the Cloud, and has, amongst others, a local component that will be running on each gateway called “Agent”.

Resin.io Container used in AGILE: Enables remote management features

The Resin.io Agent works on container level, with elevated privileges to manage both the underlying Operating System (OS), but also the user-space (any applications installed). In simple scenarios, it downloads the changed layers of any application container images, stops the old versions of those applications, and starts the new ones. As the process is ongoing, you can see the overall progress of the process in a dashboard. It is fully interactive, and allows clicking on any specific gateway devices to see more detailed information about the device, such as logs.

Dashboard

Staying up-to-date: A dashboard allows you to see the current status of a gateway

The Agent, which we are customising for use in pilots and use-cases adopted by AGILE, also contains the necessary components to keep a persistent, always-on connection to the Cloud environment which controls it (over secure VPN, as we are paranoid about security!). The Agent allows, upon authorisation, anything from updating the AGILE gateway on the fly, restarting modules and applications, adding functionality as well as providing monitoring information (such as OS logs) automatically and upon request. It also enables a streamlined approach to defining environment variables or other configuration options on the gateway.

Security, as always, is paramount

By far the most important feature is its ability to receive over-the-air updates. And we believe this is extremely important on any IoT application for security reasons. Imagine your gateway, end-devices and deployed applications suffering from a bug whilst you are unable to deploy a fix remotely – and now imagine if it’s not an issue with your own code, but rather an urgent OS security vulnerability! A popular real-world example of this is the U.S. Traffic Safety Administration car recall announcement, one from Tesla Motors, and one from GM. Both are related to problems that could cause fires. Tesla’s fix can be conducted as an “over the air” software update and doesn’t require owners to bring their cars to the dealer (more on this on the Wired article here). And there are recent cases of cameras being hijacked, armies of devices used for Distributed Denial of Service (DDoS) attacks… so let’s just say that it’s important for us to “have the users covered” as part of the AGILE project.

Of course, there is even more urgent need for these solutions to be secure (after all, any device which is why we are dedicating months of work, and the expertise of research and industry partners, in making sure the hardware and software stack behind AGILE is secure, end-to-end.

What does the management interface it look like?

As one our principles is to make things as easy as possible for our users, we are utilising the latest standards in Web development, User Interface (UI) design, and User Experience (UX).

Here is what you should expect to see once you get your hands on an AGILE gateway:

Device management interface: Environment Variables, Terminal, Actions (e.g. reboot)

Gateway Management

Multi-gateway management: Information on OS updates, availability, monitoring/logs

Let us know your thoughts

The AGILE consortium comprises pioneering partners in hardware and software for IoT. Resin.io has been built to bring the Cloud deployment workflow to the world of embedded devices, and the customisation for use in AGILE with an AGILE-specific gateway management system, is no exception. Along the lines, we discover and assimilate interesting ideas from the Cloud or embedded worlds, or even invent ideas that only apply to the new paradigm the project represents.

There is a lot going on behind the scenes, and we are very keen to hear from the community about features they would like to see on the Remote Gateway Management interface. The consortium partners are organising pilots that will allow IoT device manufacturers (devices that will be controlled by the AGILE gateway through its integrated network modules), as well as developers and end-users to get hands-on with our early prototypes and final hardware gateway.

Author
Georgios Michalakidis, R&D Manager, Resin.io

The AGILE Maker’s shield: Onboard sensors, expansion sockets and main features

The AGILE Gateway is intended to be a platform the community can take part on. From that intention comes the necessity of a quick development hardware where makers can test their ideas and contribute to the project.

The AGILE Maker’s shield integrates with the Raspberry Pi, following the Raspberry Pi HATs specification, and allows the AGILE software to run on it, making it a cheap and portable development hardware where testing sensors and communication modules is as easy as plug or unplug them, leaving the makers plenty of time to fulfill their creativity instead of worrying about specifications and configurations.

In order to allow the integration of the most used communication modules in the IoT market, two expansion sockets are included. These sockets come in a XBee form factor and let the connection of communication modules such as ZigBee, LoRaWAN, 802.15.4 or Z-Wave. Due to the nature of the Raspberry Pi, other communication technologies like WiFi, Bluetooth or 3G/4G can also be used. For the most power demanding modules, there is a 9V input plug.

makers_shieldAlpha version of the Maker’s shield

Furthermore, the shield uses an I²C bus to speak with the Raspberry Pi, thus keeping most of the Raspberry GPIOs (including the UART ones) unused, and letting the makers take advantage of them in their projects.

But the shield is not only a connector for sensors and communication modules, as it includes sensors for meassuring temperature, humidity and pressure, and an analog to digital conversor. Of course, it also includes several programmable LEDs.

All of the software developed for AGILE is open source and can be found in the AGILE IoT Github page, including the schematics of the alpha version of the Maker’s shield and some working libraries already developed for various modules (ZigBee, XBee and LoRaWAN).

Author
David Remon, Libelium

Microservices for Internet of Things Edge Devices

Microservices and virtualization have recently revolutionized the world of software development bringing agility and innovation in this domain. Microservices promote the use of fine grained and independent services that are implemented as autonomous entities interacting each other through well known APIs: independent software modules ease the maintenance process and reliability, making it easier to identify which components fail, restart failed services or correct the identified problems. Virtualization helps instead to decouple hardware resources from software: software can run on multiple hardware architectures and can be easily moved and shifted from one server to another. With the advent of containerization technologies (such as Docker for example) microservices can be realized as “containers” that result to be extremely fast to start up and can be easily deployed (using a common packaging mechanism) and can be easily released and shared via common repositories (like the Docker Hub).

Continue reading

Using the IoTivity Protocol on an AGILE Gateway

iotivity

Nowadays, Open Source is becoming more and more popular, even in the corporate world. Many companies are merging into consortium in order to define common specifications and standards for their products. One of the main consortium is the Open Connectivity Foundation and it is currently defining OCF specifications for the emerging needs of the Internet of Things (IoT). Company members of the consortium include Samsung, Intel, Qualcomm, Mediatek, and others. From these specifications, an open source framework, called IoTivity is being developed.

Sponsored by the OCF and hosted by the Linux Foundation, IoTivity’s goal is to create a new commercial standard that creates a robust and extensible architecture for smart and thin devices. It enables device-to-device and device-to-internet communications by supporting different protocol stacks like BLE, NFC, BlueTooth, IPv4/IPv6.

In particular for constrained devices, there is a stripped down version called IoTivity-Constrained that runs on Realtime Operating Systems like RIOT-OS, Contiki, Zephyr, and Linux. RIOT is now an official operating system supporting IoTivity.

In order to make developers life easy while developing smart objects that are able to talk IoTivity, a special RIOT-OS package has been developed. It allows the creation of IoTivity-based applications that are interoperable with commercial solutions.

The AGILE Gateway also supports IoTivity devices. We have developed a simple step-by-step tutorial in order to demonstrate the communication between an AGILE makers gateway (Raspberry Pi device) and a 802.14.5 node.