Laptops in 2005, nearly a decade ago were single processors with 512MB of RAM and 30-60 GB of hard-disk. Cellular phones had bare minimum processors with less than a GB of space. Looking at the laptops in 2015, they have 2 to 4 processors with 8 GB to 12GB of RAM with 1 TB of hard-disk. Smartphones have 1 to 2 processors with 32 GB of storage. Things have changed drastically with the growth or innovation in the hardware industry. Devices are improving in performance and storage is following Moore’s law with growth doubling every 18 months. The number of processing devices around us is also increasing with years. Given the IoT (Internet of Things) wave in 2014 & 2015 with prediction of billions of devices or having several smart devices around us means huge number of mini-computers are going to surround us by 2020.
The world of internet, nearly 15 years ago, started changing with the usage of software and evolution of cloud happened. Nearly in 2000, when the on-premise software cost became the concern of companies and maintaining software for the peak traffic became expensive (companies had to invest heavily for taking care of peak load situation), this brought software industry to start thinking into elastic adoption of hardware and software. With the challenges of growth of the individual companies and quick go to market strategies, the cloud architecture evolved as the solution of the future.
One core challenge for cloud model had been network / communication, with the growth of network and investment into establishing communication network helped cloud architecture. With the world starting to come close with great connectivity via internet enabled communication, SaaS (software as a service) or utility kind of consumption became the reality. Not just software but the hardware model too changed with Amazon pioneering into IaaS (Infrastructure as a Service) model. Simplicity / easy business implementation or start became the norm and many companies invested into building scalable businesses around cloud model. Today SAP, Microsoft, Amazon, Google, etc… all have cloud strategies in big way and provide end to end solutions which tied into cloud development, testing, business, applications, etc.
Many companies which invested in early 2000 to 2005 and created a SaaS kind of business are reaping the benefit of millions of customers, who could not effort huge investment upfront and are happy in providing a meager monthly amount to SaaS provider. This amount is termed as a monthly subscription and works on a model of pay as you go further in each month. Cloud has been a great model of business and mostly app software or IT companies today have a clear strategy to continue in this direction.
With the growth of devices around the end user or within companies, one needs to introspect the power of hardware around us. The devices near us are called edge devices and hardware in the data center which is used by cloud is called central processors. With the growth in computing power and storage of edge devices, software engineers have to start thinking about making intelligent choice of platforms for future.
The new thoughts are to really look at the growth of data due to increased edge devices. For example in every home we have TV setup Box which has a storage capacity in 1 TB (Tera Byte) or 750+ hours of storing the HD (high Definition) multi-media content. In most cases we have laptop or desktop with high computing power and nearly a TB of memory available. If the future of home is many sensor devices or raspberry chips or smart phones in close vicinity, then it is a good idea to send the details to cloud to make decision such as notification to end user. For example the sensor data for a day can be pushed to devices such as setup box or laptop or desktop (whichever is available) and its analysis can be done using the nearby devices to trigger a notification or alarm or action by other devices without the need of really going to cloud server or data center via internet. Few Software/IT researchers predict the evolution of such shared computing, storage and communication platforms which would once again change or transform the way we think of software today. This would mean the efficient usage of hardware (computing, storage & network) within the close vicinity to process, store and communicate. For example if we are fetching some data from cloud server it would be great if we can cache such results within TV setup box so that the searches next time would be fast. This would not only reduce the load of internet traffic which otherwise (with the IoT in picture, as shown in Figure 1) is humungous and predict traffic congestion situation in near future with billions of devices pushing and receiving data at peak hours.
Figure1, IoT (Internet of Thing) devices sending data
Communication protocol such as Bluetooth, WiFi Direct, etc, would play a vital role in the evolution of neighbor / nearby communication network / local network communication. Peer-2-Peer network such as Napster, BitTorrent had been an example of such system tried in past. The concept of distributing the task and trying to process the execution on client side and seamlessly connecting with each other would help in reducing the overall load on internet and maximize the usage of local network. All these networks tried to work on the principle of leveraging the power which existed and operationally doing better.
Recent research in FOG Network claims the architecture which leverages the nearby/local hardware for computing, storage and communication seamlessly. FOG does not eliminate the cloud but supplements the cloud network. The concept of FOG platform is to leverage the edge client for various tasks or activity instead of routing every data or processing for cloud. Figure 2 shows the FOG Network where each device can connect with other and communicate with others and perform computing task on laptop and can use TV Setup Box for storage or processing.
Figure 2, FOG Network
It is much harder to implement than being presented theoretically as a concept, since having a platform which would leverage nearby power of hardware, storage and communication is challenging. This would mean that helping /supporting devices need to have secured handshake mechanism, also they need to have clearly defined benefits with smart pricing. Compliance or regulatory system needs to be looked into while leveraging the communication capability from other devices. For example in a situation where a device is experiencing a problem in internet connection can seek help from other devices for connectivity and get the necessary content. In such a case, the devices would charge other devices accordingly but first one need to have agreement with cellular network companies in terms of compliance or legality.
Software / IT engineers/researchers believe that with the growth of IoT within industry, such platforms would be a necessity to handle, not only traffic of internet but also for making real-time decision within the local network. This definitely seems sensible solution to individuals and companies who already have legacy hardware and kind of resonate well with hybrid model of cloud , in which most of your operations are within your premise and few are in the cloud. The platform which localizes many of the operations to nearby available hardware and passes few task /activity to cloud. Cloud becomes the last steps in processing (mainly for high computational things) and archive for storage.
Such platforms would makes real-time decisions real fast, for example generating a data report, instead of computing the analysis in cloud one can perform the same task by using the computation of laptop or desktop or any other device nearby. Social media would be fast, since you can store lot of past content within the storage of TV setup box and can quickly browse through them, so instead of storing content on smartphone for few hours one can have 1 month historical data within home. This would enable quick search or information of friend and social network. This kind of makes sense, that the user need not to travel back to facebook/whatsapp server for information on past data when the end user has nearly TB of memory storage left unused. Let us take an example of whatsapp, given that you have 20 friends on a whatsapp group, at the time of you sharing the picture with your group you have 5 of them within 10 /few meter range (within office or society), in this case does it make sense these friends who are sitting right next to you to get the post from all the way from whatsapp server located across the world or should we have the direct delivery via local network. If we directly deliver such message to 5 and only send the rest from internet we help in reducing the traffic of the network for 5 of his friends checking the app.
The concept of FOG Network or cloudlets (Having a server in-between edge device and cloud, such as server in each store which does computing for mobile phone within the store) all around is great but has its own challenges which would require years of research and only time would state the changes which industry would go through in years to come. With this blog I wanted to convey another approach to existing IoT implementation instead of only relying on cloud. The future platform would enable edge based IoT implementation and this could make quick decision. For example to turn off the heater or AC when people leave house. We don’t need to make this decision in cloud when this can very well be processed or analyzed within the processing power present in house (laptop or desktop).
FOG platform would also enable both offline and online mode of operations as this would utilize the storage and processors nearby and when connected to internet, would pass the information to cloud for storage or high computing. In a way this might be the future for security concern where secured data can reside near the edge device itself and computing can be transferred from cloud to edge device as software. This would mean the data is not passed to internet but resides in local network and computation is passed from server to edge client for processing the data within the edge devices in the single or distributed way within the local network.
Knowing the future is always going to remain a challenge but getting to know such development in technology is necessary so that the companies can create flexible architecture which can not only cater to existing one but also blends well with the future which might happen. The best would be to plan a flexible architecture of platform strategy, solution, IoT scenario and user interface and make companies immune to change.
FOG Network course on coursera.org: https://class.coursera.org/fog-001