Progressive Web of things is a combination of Progressive web apps (PWA) + the Internet of Things. This results in the Progressive Web of Things. Here is an article for the developers who like to do more with PWA and IoT. This is a transcript of a talk session by the author during Open Source India 2019 at NIMHANS Convention centre, Bengaluru
Generally, application development can be done in two ways: native and web.
Native app development can have various platforms like Android, IOS, Windows, etc. However, it is a pain for developers to develop their apps separately so that they are compatible with each and every platform.
Native apps feature
● User experience engagement (for users)
● Offline Support (for users)
● Storage and installation (for users)
● Engagement access to native features (for developers)
● High efforts rolling upgrades (for developers)
● Less installation and reduction in users (for developers)
Below are the main features of a web applications
● No installation and additional storages (for users)
● User experience engagement (for users)
● Offline support (for users)
● Low Efforts in upgrades (for developers)
● Also, access to native app features (for developers)
Native applications are limited to some devices but web apps have no such limitation and can also work with the help of a URL.
Progressive Web Apps
Combining the best features of Native apps and Web apps give Progressive web apps.
Progressive web apps are web applications with a better native experience.
It has a hybrid set of features such as:
● Mobile like experience
● Progressive web design
● Re-engagement at its best (So that your clients/users don’t have to go through the pain of installing all the applications)
● They can also work offline (just as native apps do)
● Also, feature periodic synchronization, push notifications.
Understanding the combination of PWA with the Internet of Things
It is expected that by 2020, the number of IoT devices will cross 20 billion, which states that every human on earth will have more than 6 IoT devices on average.
IoT architecture consists of three layers:
(1) Perception Layer- Consisting of sensors and actuators
(2) Network Layers – Consisting of routers and gateways
(3) Application layer- Consisting of Cloud/Servers.
The combination of PWA with IoT happens in the application layer of the IoT architecture.
But the problem here is that the IoT industry is growing. Every company is building its own framework and standards for their IoT devices. Due to the lack of common, universal standards (in comparison to web apps), we can’t connect devices that come from different manufacturers that are compatible with different standards. Because of this, the connectivity of IoT devices is decreasing. By combining the Web with IoT, we can solve these issues by bringing in all good features of the open web to IoT. With this, we can increase the reach of IoT devices that are similar to the web.
As IoT devices are increasing, the collection of data and security threats are also increasing. Some people have vested interests in collecting information. For instance, data collected from roads and trees are fine (as it comes under public data) but at the same time, collecting data on personal profiles such as biometric data, the financial transactions are a threat. Every bit of data collected from the IoT devices that have been saved in the cloud including sensitive information.
20 years back, no company encouraged open-source platforms but today every company is trying to adopt open source. Why? The data is a key part of the evolving business. For instance, 10 – 20 years back, the main business in the software world was to sell proprietary software. The users who used this software didn’t know what type of information was being collected by companies. At that time, users used to own the machines but code was owned by companies. But over a period of time, the user communities started building alternative software to the proprietary ones in the name of open source. With the boom of the cloud industry, companies have now started to own the machines while the code remains with the communities. Companies are now changing their business model to open-source as a service, which refers to the code being no more a product but a service that is helping the company to enlarge their businesses.
If GitHub is owned by Microsoft, which claims to be an open source platform for developers, then by using GitHub, Microsoft can promote their services by offering Azure for the developers to build their open-source software.
Even though the business model changes, the collection of information doesn’t change. Previously, proprietary software used to be the main channels of surveillance, but it has now shifted to open surveillance.
By making the source code open, did we turn the world into utopian? No. The source code is open, but still, we have a big rival that is centralisation. Facebook has React, Google has Angular and Microsoft has GitHub. These are all open-sourced but they are centralised and controlled by their respective companies.
Let’s look at the darker side of data surveillance. All the data tracked by your GPS location or the sensors in your phone is available on the open web, as well as on the dark web. This can lead to an increase in criminal activities in the future.
So now, how to ensure privacy?
Decentralisation plays a very important role. With the help of open source and decentralisation, we can implement a secure platform without the worries of data leaks.
The cloud/servers in the application layer consist of cloud computing, edge computing, and fog computing. Despite cloud computing being much popular, it is recommended that you explore edge computing and fog computing as well for IoT. With the help of that, users can build their own ecosystems like smart offices, smart homes. The platform is pretty simple, the user needs to set up their own servers with Mozilla’s open-source web of things software and configure it with their devices. That’s all.
Typically, every IoT device is connected to centralised servers of vendors. To access the data stored in these servers, one has to go through their servers and gateways. But with Mozilla’s progressive web of things architecture, one can implement a decentralised, mini-server or a private server so that all your data stays within your reach, without surrendering it to any external server.
With the advent of new web standards, adding to the home screen, making mobile responsive are not only the features of PWA. You have different sensors on your mobile, with morden web APIs you can connect to all of them and operate them via the web of things. Additionally, modern web browsers provide us with capabilities to connect with other devices. The best part of PWA is that you can even get a push notification. You can have more info about mozilla WebThing at https://iot.mozilla.org/
This article is based on a talk session by the author during Open Source India 2019 at NIMHANS Convention centre, Bengaluru
Note: The talk session has been transcribed by Surya Teja of EFY editorial team. Also, the talk session ended with a live demo on how to create a web of things. Visit: Opensourceindia.in for more information on such sessions.