21 Camel and the IoT

 

by Henryk Konsek

This chapters covers

  • Basic introduction to the Internet of Things (IoT)
  • Suggestions for purchasing base IoT hardware
  • IoT architecture
  • Reasons for using Camel for IoT applications
  • Camel gateway-to-data-center connectivity
  • Integrating Apache Camel and Eclipse Kura

The Internet of Things (IoT) is a term used to describe a certain class of distributed IT systems that work with clients located on distributed devices connected to back-end messaging systems. Imagine a centered back-end system with many devices connected to it (like the one in figure 21.1); this is pretty much what IoT is.

Figure 21.1 General view of the IoT architecture

c21_01.png

These connected devices can range from mobile phones, tablets, and Raspberry Pi boards to something as large as a car. The IoT is important for our industry, because the number of connected devices in the world is growing exponentially, and we need to find a way to deal with this kind of scale of distributed clients. In addition, market predictions indicate that sooner or later the majority of developers will be involved in an IoT project of some sort.

21.1 The Internet of Things shopping list

21.1.1 Raspberry Pi

21.1.2 SD card for Raspberry Pi

21.1.3 Power bank for Raspberry Pi

21.1.4 Camera for Raspberry Pi

21.1.5 TI SensorTag

21.2 The Internet of Things architecture

21.3 Why Camel is the right choice for the IoT

21.3.1 Components

21.3.2 Data formats

21.3.3 Redelivery

21.3.4 Throttling

21.3.5 Content-based routing

21.3.6 Client-side load balancing

21.3.7 Control bus

21.4 Gateway-to-data-center connectivity

21.4.1 Understanding the architecture

21.4.2 Choosing a protocol

21.5 Camel and Eclipse Kura

21.5.1 Starting Kura in emulator mode

21.5.2 Defining Camel routes using the Kura web UI

21.5.3 Next steps with Camel and Kura

21.6 Next steps with Camel and the IoT

LWM2M and the Eclipse Leshan project

Eclipse Hono

21.7 Summary