The flowchart below illustrates the choices that should be made to make a cloud set-up possible.
Defining the product
Initially, the service / product must be defined by the provider / manufacturer of that service or product:
- “What is the product / the service?”
- “Which kind of information do we want to make available (e.g. amount of steps, body heat, …)?”
This data usually comes from sensors, see here.
- “What kind of information is already available?” (e.g. through an API)
“Are the necessary sensors already present?”
“What sensors are still needed?”
- “In what form do we want to make the data available?” (e.g. a dashboard with calculated results, a mobile pedometer app that alerts an elderly patient that he or she didn’t walk enough today, …)
Once there is an idea of what the possibilities of the product are, one can look at how certain things in the cloud are set-up.
How is the data formatted?
The first choice that should be made is how the input data is represented and structured. Usually in IoT-applications, obtained sensory data strongly relates to time. This timestamped data is what they call time series. When the data looks different, it probably will need another approach to process and to store it. At this point, it is important to have an idea how this input data will be reformatted and structured, or at least, how this will be done within the next steps.
Processing and saving the data?
“Is a relative big amount of data produced in a short span of time, or are there only a few data samples per day?”
“Do we require (near) real-time processing, or is one analysis per day enough?”
These questions should always be asked since they determine the used technology for processing and saving the sensory data. Some components are better suited for one type of processing / saving than the other. Note that the same application can have multiple requirements considered to the processing. A portion of the data can be analyzed in real-time, while other analysis is only done once a week.
Where is the data processed?
Multiple steps of processing can exists at different locations. It is entirely possible to send different parts of the data to different components / locations, based on processing and saving requirements, omitting the data we do not need.
Processing can either / both be locally or in the cloud. For example: values are (pre-)processed on the PCB itself, afterwards these processed values are transmitted to a smartphone and (pre-)processed there. An average over a specific time is calculated, or the raw data is sent immediately to the cloud for further processing. Furthermore, it is important to think about how extensive the data is, how much computing power is required to process the data, how to deal with potential data loss, etc.
Where will the data be made available?
It is not obligatory to make everything available within the cloud. One can process and store the data in the cloud, while making it available on-premises.
How will the data be presented?
When wanting to present data on a smartphone, other technologies are used compared to building a web interface or a desktop application. Another possibility is that the application serves only as an abstraction layer for an external consumer.