IoT device management and multiprotocol messaging platforms demand specific architectural decisions and high-concurrency approaches due to the massive number of expected devices. IoT platforms are most often used as a middleware, as a software server (a set of servers, in fact) that provides several functionalities and services that are usually needed in designing IoT applications. They often have following roles:
Most often these platforms need to be multiprotocol in order to support the many networking protocols that proliferate in the IoT world (HTTP, WebSocket, MQTT, CoAP, etc.).
Drasko Draskovic and Janko Isidorovic share an architecture, implementation, and testing procedures needed to create an industry-grade IoT platform based on microservices and Docker containers, using popular open source project Mainflux as an example. Mainflux provides a set of clean and open APIs to easily connect, monitor, manage, and provision any device or sensor, enabling IoT products and systems and simplifying the entire IoT development process.
In order to enable the high scalability needed for IoT stampede of devices, Mainflux has been written in highly concurrent languages, notably Go (with some Erlang components). The system has been secured with access control policies and JWTs used for device API keys as well as OAuth 2.0 on the application side. There is ongoing development to introduce PKI Diffie-Hellman ECC device certificates for the highest security applications. Being device and protocol agnostic, Mainflux can be used for development of various IoT use cases. One particularly interesting scenario is using a Mainflux-based network as LoRaWAN LPWAN networking infrastructure—a low-power wide area network that supports low-cost, mobile, and secure bidirectional communication for internet of things (IoT), machine-to-machine (M2M), smart city, and industrial applications.
Drasko is an IoT expert with over 15 years of professional experience. He hacked embedded Linux SW and HW device drivers, designing complex wireless systems in telecom industry. Drasko earned his reputation in open-source community as an author of numerous projects – like WeIO (http://we-io.net) or Mainflux (https://www.mainflux.com/). He is one of the main contributors of the Linux Foundation’s EdgeX Foundry project. Drasko is also author of the book “Scalable Architectures for the Internet of Things” published by O’Reilly and a vivid conference speaker. He holds a MSc in Electrical Engineering from Belgrade University.
Janko Isidorovic is COO of Mainflux. Previously, Janko was an ERP specialist at NELT, southern Europe’s biggest logistic and distribution company, an IT specialist for warehouse operations, and an application and systems engineer. He worked on SAP’s BC implementation team, where he was responsible for SAP landscape design and conceptual design of the business processes and design of interfaces for the MM module. Janko also has significant experience as a project manager; he worked on the GO4YU project, a joint venture between NELT and Telekom Srbija that aimed to provide a mobile, VoIP, and live TV and video on demand streaming platform for Serbian expats in the US and Canada. In 1994, Janko won the First Step to Nobel Prize in Physics, an international competition for high school students organized by the European Physics Society. He holds an MSc in electrical engineering from Belgrade University.
©2017, O’Reilly UK Ltd • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org