Why an IOT Cloud is essential in internet of things
IOT Cloud is an essential part of the internet of things. Because the command that we need to send to our remote processor and/or reading sensor values from another remote source, should come and go through the Cloud. If it is local, for example, WiFi in local server/intranet or communicating locally, it is more like a wireless communication rather than IOT. We can even use Bluetooth or Zigbee for those use cases. So it is important to know how the cloud works and why it is important.
Advantage of Cloud
One of the main advantages of a Cloud hosting over a regular hosting is its ‘Scaling Feature’. So, we can eventually build an IOT platform/processing pipeline in any regularly hosted server. And we can build our own libraries and stuff on that. But we will have not that scaling feature in regular hosting that Cloud can offer. It is important because when sensors and devices connect to the server (to communicate, GET, POST to the API) increases, the server needs to scale up or expand. Otherwise, it can not handle the request that needs to respond in a certain amount of time.
Clouds are in fact Data Centers or Clusters of thousand of computer instances instead of just one or two. The latter one is the case for regular hosting. We can expand the regular server. But by the time IOT sensors or device will grow, it would be difficult to expand or manage server infrastructure at that rate. That expansion also involves cost and other form factors. To overcome this, Cloud came in handy. Cloud vendor has their Algorithm to scale up the computer instances according to the increasing rate of the sensor or device additions to the platform.
Cloud Vendor Solutions for IOT
- Thinkspeak: This a very popular IOT cloud. This is supported by Matlab, the legendary engineering software for numerical analysis and data acquisition. I have a plan to build IOT project using Thinkspeak.
- Particle Cloud: This is one of the best IOT Cloud. It has an amazing community. Particle builds cloud hardware / micro-controller alongside with the infrastructure, APIs, and SDK. With their cloud, library, and hardware it is almost an end to end solution for any IOT products.
- IBM Bluemix and IOT Foundation: Regular Cloud vendor like IBM also have their IOT cloud or IOT version of their cloud. Bluemix is the tag name of their regular cloud service and IOT Foundation is used for organization and device registration. For example, we have a temperature sensor that shows temperature periodically. So, all the sensors would be registered under IOT foundation and the app that shows some graph or send some alert could be hosted in Bluemix.
- There are hundreds of IOT cloud vendor these days. Amazon also has their service for IOT cloud. Google Cloud has real-time database Firebase, that I have a plan to show how we can use that in our IOT project.
- As I said, there are many IOT Cloud Platform and these number are growing. There are temboo, telit. Arduino has also an IOT Cloud of their own. Almost everybody in this giant industry humping over IOT. Oracle, salesforce etc. also have their IOT solution for their users.
IOT Cloud Database
Another very important part of IOT Cloud is its database. This database is unlike the regular databases. Most of the cases it should be real time. There is a well-known term “consistency” related to databases. Strong consistency means that it would take the time to replicate the data all over the networks and it will not be available until the replication is finished (to demonstrate strong consistency). Eventual Consistency means data will be available as soon as they have written over that particular instance of databases. So, if databases A’s data is updated it will show the updated value while database ‘B’ can still show the previous value. I have a post to demonstrate the consistency of Google App Engine Datastore. There is a good article about Google Cloud Datastore Consistency.
The IOT cloud database should demonstrate the “Strong Consistency” with no or very little time, meaning almost real-time. Because, if a sensor value changes and some action depend on that sensor value it should reflect immediately or as soon as possible. That sensor value or reading should populate the database in a short time so that other devices or processors in remote places connected to the cloud take the decision based on that sensor reading. As I work on cloud and still learning, I have few posts with practical working examples IOT Cloud. Let me know your comments on this post.