We see various kinds of enterprise level application software around us and these application soft-wares are being used for different industries like in technology, business, research, finance and many more. But all these application software runs upon a core infrastructure: hardware, storage (internal/external) and one specialized software operating system(OS). We all know OS is specialized software which provides the environment or you can say, it facilitates to other app software so that they can run on shared resources with optimal performance. In a nutshell, all application software depends up one specialized software – operating system. And finally operating system is layer on hardware.
If you see closely ,all these three make a tightly coupled system and why tightly coupled- suppose if there is any error in hardware , then that error can impact operating system and finally operating system will effect application software. Any error in operating system, can leads to shutdown of application software. Means error in a hardware component will propagate to OS and finally to application package. Similarly error in OS will propagate to application software. We come across these situations due to error in hardware or bug in any lib of operating system – finally we hit application software and this leads to take the downtime for application. Application package is highly impacted with OS as well as hardware problems.
Now the question is , can I think a system where these three components are loosely coupled. Can we make a system where If we can reboot the operating system and the process running on top of that will be intact. Is this really possible? If We can replace a hardware but there would not be any interruption in operating system and application software. Looking weird thought na? But, can we really imagine a system like this? Does cloud provide similar kind of infrastructure to us? We definitely need this kind of system in this fast demanding world and we need to come up with something in this direction.
Now the question is – Is that really possible? I am not sure whether it is possible are not but we definitely have problem with these tightly coupled software architecture , and definitely we need a brain storming on this. One potential thought can be – Can we transport process from one system to other system before taking a downtime of system? And This was the Title of discussion. Can we transport the processes from one system to another without much impacting the application package. Can we make the top layer – application software layer independent of OS and hardware? This is one possible pointer , we can have many more like this, isn’t it? What do you think?