The Internet of Things (IoT) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. The term Internet of Things was proposed by Kevin Ashton in 1999 though the concept has been discussed in the literature since at least 1991. The concept of the Internet of Things first became popular through the Auto-ID Center at MIT and related market analysis publications. Radio-frequency identification (RFID) was seen as a prerequisite for the Internet of Things in the early days. If all objects and people in daily life were equipped with identifiers, they could be managed and inventoried by computers. Besides using RFID, the tagging of things may be achieved through such technologies as near field communication, barcodes, QR codes and digital watermarking.
I got this text from wikipedia and actually wondering what it means. As I read this, its about:
- Little volatile data
- High volume
- Small devices (with little computing power and easy to carry)
- Everybody will have one
- Some form of network
- Being able to gather all this data
- Being able to investigate all this data
- Being able to make sensible conclusions with this data
Although wikipedia is using a broad definition, basically the internet of things is:
- People or things are sending out data
- Using a widely used, simple and lightweight messaging protocol
- To other people or things that are interested (if they decide they are)
- Investigate this data (and do useful and sensible things with it)
When looking a bit further, I found these articles:
- http://www.infoworld.com/t/applications/oasis-mqtt-be-the-protocol-the-internet-of-things-217413
MQTT is a publish/subscribe messaging protocol particularly well-suited for working with limited computational power and lean network connectivity. IBM and systems provider Eurotech first developed MQTT, and then contributed the protocol to OASIS. The protocol is already used in a wide variety of embedded systems. Hospitals use the protocol to communicate with pacemakers and other medical devices. Oil and gas companies use MQTT to monitor thousands of miles of oil pipelines. - http://asmarterplanet.com/blog/2013/04/a-giant-step-forward-for-the-internet-of-things-and-big-data.html
Until now, companies that provide the technology for sensor networks have either used HTTP, which is quite inefficient, or they use proprietary technology, which makes it difficult for data from different sources of data to be integrated with one another. MQTT makes it possible to move data around super-efficiently, which is essential when you have millions or billions of sensors hooked up to the network. It also side-steps the Tower of Babel problem caused by the use of proprietary technologies. - http://www.remotemagazine.com/main/articles/enhanced-scada-access-and-big-data-lead-to-new-analytics-optimization-capabilities/
Stream computing is a new way of analyzing high-frequency data for real-time complex-event-processing (CEP) and for scoring data against a physics-based or empirical model for predictive analytics, without having to store the data
It looks like MQTT is becoming the messaging protocol used is small and large environment. Even possible to use at home:
Besides messaging there is also a need to investigate this data in motion (or in stream if you like). To shine a light on these concepts (or at least to shine my light on these concepts) I will be posting a few scenarios on this blog related to the internet of things: starting small but eventually getting to a more realistic (or complex) presentation. This being the first scenario, it will also be the simplest. Subsequent scenarios will be based upon this one, but extending with new solutions and/or more detail.
Scenario
We will start of with a small device. I tried to find the definition of a “small device” but could not find one. So I have to refer to the definition of device. I guess a small device is:
- Usually a constructed tool
- (Very) Portable
- Bound to a person or thing
- Gathering information (on the person or thing it is bound to)
- And both Apple and Google will tell you: It can be used as a phone as well!
For the purpose of this blog, I will implement a small device with Arduino. Our flow of data will be implemented with MQTT. When doing so there are three parties involved: a sender, a broker (a broker’s prime responsibility is to bring senders and receivers together and thus a broker is the third-person facilitator between a sender and a receiver) and a receiver. When using MQTT there a few brokers available. In this case I will use Mosquitto. The small device will be acting a sender.
Finally the receiver will be implemented with IBM InfoSphere Streams. Although very capable for analyzing data in motion, in this case it will be simple used as a reveicer: storing received data in a file.
Implementation
The following topics implement this scenario (in given order):