456005 (1) [Avatar] Offline
#1
Hi Dom and Vlad,

Thank you for a great book!

I am having preliminary talks with potential users of a WoT system that would monitor and control some industrial machines in a business critical environment.

Their primary objection is always "what happens if the internet goes down? Am I stuck?"

My question is how can I mitigate this risk? In section 7.4.5 (Chapter 7) you wrote:
...the best compromise for real-world WoT products is quite often to offer both local and cloud access.


Could you elaborate on that or would you have an example or case study to model?

In my project I would like to perform data storage, monitoring and analytics in the cloud, users would be able to see device data in real-time in a browser.

But if the internet is down at the client's premises, device data cannot be sent to the cloud, and they are operating in "local mode" because of that, I have the challenge of:

- having a local copy of the same web application that is deployed in the cloud
- synchronising everything with the application running in "cloud mode" whenever internet connectivity is restored.

I would love to know your thoughts on this.

Many thanks,
Daniele
Vlad Trifa (14) [Avatar] Offline
#2
Hi Daniele,

thanks for your message.

Our point is that you must ensure that the vital functions of your application don't need the Internet to work and can always be accessible locally (e.g. turning on/off the lamps in your living room) shouldn't be doable only via the cloud, although it's a nice feature to be able to control them from outside of your home.

You should think of the internet as an enhancer (or "add-on") for your product and design your product accordingly. You don't need to store years of historical data locally and do big data on it, you should obviously do this in the cloud, because it's not a core feature of your product, so the last thing you want is a carbon copy of your cloud on the device.

In the example you mention, if you need all the functionality to be available at the client site - why do you need a cloud then?

Or put it another way - a cheap fix is to add a second "emergency" modem via 4G that it used only when the Internet is down. Will be a million times cheaper than implementing the functionality you have in mindsmilie

Hope this helps!

33831 (8) [Avatar] Offline
#3
I hope you don't mind my adding to this. We use a Javascript framework called Meteor for all of our direct user interfaces and server side functions. Meteor is isomorphic meaning it can run client and server code where needed which supports a "pub/sub" delivery model which works whether the client is off-line or not because of local mongo store. On the IOT side we use a "pub/sub" model as well where the sensor/actuator will still function if it can connect to the network but when it can do so, updates the central record. To be honest, our "real-time" window is pretty broad (i.e. 1 hour) so having a sensor update the central data repository when it can works for our business case. I am not sure if this helps, but at least you have on example.
Vlad Trifa (14) [Avatar] Offline
#4
Hello, I understand the use case, but I don't think I understand your question. What is your challenge or problem you are facing? thanks