Distributed systems are beginning to play an integral part in many different industries, who require cost effective processing power which can match or even surpass the most ridiculously expense/powerful supercomputer.
However, what is a “Distributed System”???
After looking into the world of distributed systems, I felt a bit awed and overwhelmed with the amount of information that is available on the topic. However, after shifting through the mountain of information and breaking down the concept of Distributed Systems into more manageable bits of information, I came to realize that Distributed Systems are nothing more than a lot of software components that are stored on multiple computer hardware, which are linked together to run as a single system.
However, the most interesting thing about a Distributed System is that the computers that are linked together can be physically close together and connected by a local network, or they can be geographically distant and connected by a wide area network. Furthermore, A distributed system can consist of any number of possible configurations, such as mainframes, personal computers, workstations, minicomputers, and so on.
Furthermore, the most common method of organizing software to run efficiently on a distributed system is to separate the function of the software into two distinct parts – Clients and Servers.
Essentially, a client is an application which uses services that other applications provide. Whereas, the applications that provide the services are called servers. The way in which this configuration works is that the client makes a request for a service, and a server performs that service.
Despite working in close proximity of each other both Clients and Servers have their own distinct responsibilities. For example Servers are responsible for synchronizing and managing access to the available resources, and it must also respond to client requests with either data or status information. This means that a client does not need to be aware of any updates/changes that are made to the server or its resources. Whereas, Client applications typically handle user interactions and often request data or initiate some data modification on behalf of a user.
However, apart from the Client – Server architecture that is most commonly used there are various other architectures which are used to build Distributed Systems:-
3-tier architecture — Three tier systems move the client intelligence to a middle tier so that stateless clients can be used. This simplifies application deployment. Most web applications are 3-Tier.
N-tier architecture — N-Tier refers typically to web applications which further forward their requests to other enterprise services. This type of application is the one most responsible for the success of application servers.
Tightly coupled (clustered) — refers typically to a cluster of machines that closely work together, running a shared process in parallel. The task is subdivided in parts that are made individually by each one and then put back together to make the final result.
Peer-to-peer — an architecture where there is no special machine or machines that provide a service or manage the network resources. Instead all responsibilities are uniformly divided among all machines, known as peers. Peers can serve both as clients and servers.
Space based — refers to an infrastructure that creates the illusion (virtualization) of one single address-space. Data are transparently replicated according to application needs. Decoupling in time, space and reference is achieved.
At the end of the day it appears that Distributed Systems are indeed the way of the future as they hold the key to unlock the mysteries of the universe…………
Examples of Projects which have made use of the Distributed System concept are:-
1) Folding@Home,
Which is focused on simulations of protein folding to find disease cures and to understand biophysical systems
2) World Community Grid,
Which is an effort to create the world’s largest public computing grid to tackle scientific research projects that benefit humanity
3) SETI@home,
Which is focused on analyzing radio-telescope data to find evidence of intelligent signals from space,