Computers and Computer network technologies have seen a drastic improvements over the last couple of decades. With the advent of the Internet, computers and its networking has proven to show marvelous advancements like the topic of the day – Distributed Computing and the Cloud Computing. The phrases Distributed Systems and Cloud Computing Systems refer to different things slightly, but the concept underlying for both of them is just the same. For better understanding of the concepts for both of them, it is very much necessary to have good knowledge about the Distributed Systems and also knowledge on how they differ from the Centralized Computing Systems.
You might be seeing the usage of Cloud Computing service either directly or indirectly in most of the Organizations today. For an instance, when we are using any of the services provided by Google or Amazon, we are directly accessing the resources that are being stored into the cloud environments of Google or Amazon. Twitter is another example, where our tweets are stored on Twitter cloud. Processing the data faster and the networking of Computers can be understood as the need for the emergence of these novel computing technologies.
IBM’s mainframes have been around ages in this technological computation space and form a set of examples for the Centralized Computing Systems. One Central computer holds all the cards in controlling all the peripheral and computes the complex computations and hence the name, Centralized Computing. Having said that, it was a costly affair and ineffective when it had to process huge volumes of transactional data and for concurrent usage of tons of online users. From these drawbacks came the advent of Cloud and Distributed computing to exploit the parallel processing technology commercially.
According to the book “Distributed Systems-Principles and Paradigm”, the phrase Distributed Computing can be defined as a Collection of independent computers that appear to its users as a Single Coherent system. And by this definition, Distributed Computing can be defined as the use of Distributed Systems to resolve a problem into multiple chunks, where each of the chunk of task is computed by an individual computer of a Distributed System.
A Distributed Systems contains more than one computer which communicate with others through an interconnected network. All the computers that are interconnected via the network, work towards achieving the common goal using all their own resources. On the contrary, different users of a computer having different requirements and according to these, the distributed systems will tackle these with the coordination of shared resources helping communicate with other nodes. Hence the individual tasks of these are achieved in such a manner.
In case of individual computer failures, the toleration mechanisms are in place to handle such scenarios. However the cardinality, topology and the structure of the system are unknown factors beforehand, hence everything tends to become dynamic. Following are the examples best known to everyone (Distributed Computing):
* The World Wide Web (WWW)
* Social media giants like Facebook
* Hadoop’s Distributed File System (HDFS)
* Cloud Network Systems (which are the specialized form of Distributed Computing Systems)
* Google Bots, Google Web Server, Google Indexing Server
Let us consider Google’s Web Server as an example in understanding Distributed Systems, when a user submits a search query to Google then Google Web Server as a Single system handles this request. What happens in the background is a Distributed Computing technology implementation by Google, where several servers come together to address distribution of data into different geographical locations to provide the search results in split seconds.
* There are many advantages and benefits of Distributed Computing, but we will the most important ones here:
* They provide better performance ration when compared with a Centralized computer, because adding an additional microprocessor is much more economical than adding additional mainframes.
* They have more computational power than a Centralized system. They provide incremental growth so that Organizations the computational power can be increased as and when the business needs demand.
Today it is all about performance and if you don’t perform well, then you are out of competition. Remember the days when Google used to provide their Social Media services by name Orkut, Facebook took over that space because Google couldn’t scale in competition with Facebook. Applications running should be having a close to zero downtime and irrespective of the geographical locations of the users, the service should be up 24/7, 365 days of a year. Mainframes in such a situation, can’t really scale upon reaching a limit. This has then paved way for the advent of Cloud computing technology that enables business processes to perform business critical functionalities on relatively larger datasets with utmost ease.
Cloud Computing can be best understood as a style of computing where massively scalable and flexible IT capabilities to the services are provided and delivered using Internet technology. The services that we discuss here may be any of the following – infrastructure, platform, applications, storage space and etc. Users will be paying for using these services based on the usage incurred, which will refrain them from building their own infrastructure for any of the services that they require.
Cloud computing enables users to consume the services / resources as a utility (just like Electricity), rather than building and maintaining the computing infrastructure in-house. It usually refers to providing services using the Internet as the medium. The services can range from business softwares accessible via internet or Computing resources. Following are the examples of Cloud computing that we can think of:
* YouTube, the host of millions of videos
* Picasa or Flickr that hosts millions and millions of pictures
* Google Drive or Dropbox that hosts millions of documents, spreadsheets and etc
There are many advantages and benefits of Cloud Computing, but we will the most important ones here:
* Cloud computing globalizes workforce at a cost that is economical to Organizations, making the internet connectivity the best resource to connect via Organization’s Cloud offerings
* Organizations can leverage on their Cloud offerings to share knowledge between employees instead of the traditional or orthodox usage of emails and file sharing
With the understanding that we have about these two concepts, namely Cloud Computing and the Distributed Computing let us now try to differentiate these two and understand the pros and cons of each of these technologies.
The goal of Distributed Computing is to provide a collaborative resource sharing by users. It strives to provide administrative scalability, size scalability, and geographical scalability.
The goal of Cloud Computing is delivering services in an on-demand environment achieving increased scalability, transparency, security, monitoring and management.
Distributed Computing is classified into 3 types:
To distribute information across servers through communication models like RMI, RPC
Make use of embedded computer devices such as cameras, PDAs, Sensors and Mobile devices.
Computers connected within a network communicate with others through messages keeping track of their own actions.
Cloud Computing is classified into 4 different types of Cloud offerings:
Cloud offerings dedicated for the usage of a specific Organization and to no one else other than them (without the fear of any security breach)
A Cloud infrastructure that has been hosted by service providers and is made available for general public. Eg: Google Drive, Microsoft OneDrive
Cloud infrastructure that is shared amongst several IT Organizations
Combination of 2 or more kinds of cloud offerings qualifies to be called as Hybrid Cloud.
In Distributed Computing, task is distributed amongst available computers for computational functions using Remote Method Invocation (RMI) or Remote Procedure Calls (RPC).
In Cloud Computing, on demand network model is used to provide the necessary access to the shared pool of configurable computing resources
In this article, we have seen what is Distributed Computing and also Cloud Computing. We have understood these concepts individually and then took on to a differentiation between these kinds of computing to understand the pros and cons of each of these Computing technologies.
Distributed Cloud Computing has become the buzz-phrase of IT with vendors and analysts agreeing to the fact that distributed cloud technology is gaining traction in the minds of customers and service providers. Distributed Cloud Computing services are on the verge of helping companies to be more responsive to market conditions while restraining IT costs.
Get Updates on Tech posts, Interview & Certification questions and training schedules