Today, dis­trib­uted computing is an integral part of both our digital work life and private life. Anyone who goes online and performs a Google search is already using dis­trib­uted computing. Dis­trib­uted system ar­chi­tec­tures are also shaping many areas of business and providing countless services with ample computing and pro­cessing power. In the following, we will explain how this method works and introduce the system ar­chi­tec­tures used and its areas of ap­plic­a­tion. We will also discuss the ad­vant­ages of dis­trib­uted computing.

What is dis­trib­uted computing?

The term ‘dis­trib­uted computing’ describes a digital in­fra­struc­ture in which a network of computers solves pending com­pu­ta­tion­al tasks. Despite being phys­ic­ally separated, these autonom­ous computers work together closely in a process where the work is divvied up. The hardware being used is secondary to the method here. In addition to high-per­form­ance computers and work­sta­tions used by pro­fes­sion­als, you can also integrate minicom­puters and desktop computers used by private in­di­vidu­als.

Dis­trib­uted hardware cannot use a shared memory due to being phys­ic­ally separated, so the par­ti­cip­at­ing computers exchange messages and data (e.g. com­pu­ta­tion results) over a network. This inter-machine com­mu­nic­a­tion occurs locally over an intranet (e.g. in a data centre) or across the country and world via the internet. Messages are trans­ferred using internet protocols such as TCP/IP and UDP.

In line with the principle of trans­par­ency, dis­trib­uted computing strives to present itself ex­tern­ally as a func­tion­al unit and to simplify the use of tech­no­logy as much as possible. For example, users searching for a product in the database of an online shop perceive the shopping ex­per­i­ence as a single process and do not have to deal with the modular system ar­chi­tec­ture being used.

In short, dis­trib­uted computing is a com­bin­a­tion of task dis­tri­bu­tion and co­ordin­ated in­ter­ac­tions. The goal is to make task man­age­ment as efficient as possible and to find practical flexible solutions.

How does dis­trib­uted computing work?

In dis­trib­uted computing, a com­pu­ta­tion starts with a special problem-solving strategy. A single problem is divided up and each part is processed by one of the computing units. Dis­trib­uted ap­plic­a­tions running on all the machines in the computer network handle the op­er­a­tion­al execution.

Dis­trib­uted ap­plic­a­tions often use a client-server ar­chi­tec­ture. Clients and servers share the work and cover certain ap­plic­a­tion functions with the software installed on them. A product search is carried out using the following steps: The client acts as an input instance and a user interface that receives the user request and processes it so that it can be sent on to a server. The remote server then carries out the main part of the search function and searches a database. The search results are prepared on the server-side to be sent back to the client and are com­mu­nic­ated to the client over the network. In the end, the results are displayed on the user’s screen.

Mid­dle­ware services are often in­teg­rated into dis­trib­uted processes. Acting as a special software layer, mid­dle­ware defines the (logical) in­ter­ac­tion patterns between partners and ensures com­mu­nic­a­tion, and optimal in­teg­ra­tion in dis­trib­uted systems. It provides in­ter­faces and services that bridge gaps between different ap­plic­a­tions and enables and monitors their com­mu­nic­a­tion (e.g. through com­mu­nic­a­tion con­trol­lers). For op­er­a­tion­al im­ple­ment­a­tion, mid­dle­ware provides a proven method for cross-device inter-process com­mu­nic­a­tion called remote procedure call (RPC) which is fre­quently used in client-server ar­chi­tec­ture for product searches involving database queries.

This in­teg­ra­tion function, which is in line with the trans­par­ency principle, can also be viewed as a trans­la­tion task. Tech­nic­ally het­ero­gen­eous ap­plic­a­tion systems and platforms normally cannot com­mu­nic­ate with one another. Mid­dle­ware helps them to “speak one language” and work together pro­duct­ively. In addition to cross-device and cross-platform in­ter­ac­tion, mid­dle­ware also handles other tasks like data man­age­ment. It controls dis­trib­uted ap­plic­a­tions’ access to functions and processes of operating systems that are available locally on the connected computer.

What are the different types of dis­trib­uted computing?

Dis­trib­uted computing is a mul­ti­fa­ceted field with in­fra­struc­tures that can vary widely. It is thus nearly im­possible to define all types of dis­trib­uted computing. However, this field of computer science is commonly divided into three subfields:

  • cloud computing
  • grid computing
  • cluster computing

Cloud computing uses dis­trib­uted computing to provide customers with highly scalable cost-effective in­fra­struc­tures and platforms. Cloud providers usually offer their resources through hosted services that can be used over the internet. A number of different service models have es­tab­lished them­selves on the market:

  • Software as a service (SaaS): In the case of SaaS, the customer uses the cloud provider’s ap­plic­a­tions and as­so­ci­ated in­fra­struc­ture (e.g. servers, online storage, computing power). The ap­plic­a­tions can be accessed with a variety of devices via a thin client interface (e.g. a browser-based web app). Main­ten­ance and ad­min­is­tra­tion of the out­sourced in­fra­struc­ture is handled by the cloud provider.
  • Platform as a service (PaaS): In the case of PaaS, a cloud-based en­vir­on­ment is provided (e.g. for de­vel­op­ing web ap­plic­a­tions). The customer retains control over the ap­plic­a­tions provided and can configure cus­tom­ized user settings while the technical in­fra­struc­ture for dis­trib­uted computing is handled by the cloud provider.
  • In­fra­struc­ture as a service (IaaS): In the case of IaaS, the cloud provider supplies a technical in­fra­struc­ture which users can access via public or private networks. The provided in­fra­struc­ture may include the following com­pon­ents: servers, computing and net­work­ing resources, com­mu­nic­a­tion devices (e.g. routers, switches, and firewalls), storage space, and systems for archiving and securing data. As for the customer, they retain control over operating systems and provided ap­plic­a­tions.

Grid computing is based on the idea of a su­per­com­puter with enormous computing power. However, computing tasks are performed by many instances rather than just one. Servers and computers can thus perform different tasks in­de­pend­ently of one another. Grid computing can access resources in a very flexible manner when per­form­ing tasks. Normally, par­ti­cipants will allocate specific resources to an entire project at night when the technical in­fra­struc­ture tends to be less heavily used.

One advantage of this is that highly powerful systems can be quickly used and the computing power can be scaled as needed. There is no need to replace or upgrade an expensive su­per­com­puter with another pricey one to improve per­form­ance.

Since grid computing can create a virtual su­per­com­puter from a cluster of loosely in­ter­con­nec­ted computers, it is spe­cial­ized in solving problems that are par­tic­u­larly com­pu­ta­tion­ally intensive. This method is often used for ambitious sci­entif­ic projects and de­crypt­ing cryp­to­graph­ic codes.

Cluster computing cannot be clearly dif­fer­en­ti­ated from cloud and grid computing. It is a more general approach and refers to all the ways in which in­di­vidu­al computers and their computing power can be combined together in clusters. Examples of this include server clusters, clusters in big data and in cloud en­vir­on­ments, database clusters, and ap­plic­a­tion clusters. Computer networks are also in­creas­ingly being used in high-per­form­ance computing which can solve par­tic­u­larly demanding computing problems.

Different types of dis­trib­uted computing can also be defined by looking at the system ar­chi­tec­tures and in­ter­ac­tion models of a dis­trib­uted in­fra­struc­ture. Due to the complex system ar­chi­tec­tures in dis­trib­uted computing, the term dis­trib­uted systems is more often used.

The following are some of the more commonly used ar­chi­tec­ture models in dis­trib­uted computing:

  • client-server model
  • peer-to-peer model
  • mul­tilayered model (multi-tier ar­chi­tec­tures)
  • service-oriented ar­chi­tec­ture (SOA)

The client-server model is a simple in­ter­ac­tion and com­mu­nic­a­tion model in dis­trib­uted computing. In this model, a server receives a request from a client, performs the necessary pro­cessing pro­ced­ures, and sends back a response (e.g. a message, data, com­pu­ta­tion­al results).

A peer-to-peer ar­chi­tec­ture organizes in­ter­ac­tion and com­mu­nic­a­tion in dis­trib­uted computing in a de­cent­ral­ized manner. All computers (also referred to as nodes) have the same rights and perform the same tasks and functions in the network. Each computer is thus able to act as both a client and a server. One example of peer-to-peer ar­chi­tec­ture is crypto­cur­rency block­chains.

When designing a mul­tilayered ar­chi­tec­ture, in­di­vidu­al com­pon­ents of a software system are dis­trib­uted across multiple layers (or tiers), thus in­creas­ing the ef­fi­ciency and flex­ib­il­ity offered by dis­trib­uted computing. This system ar­chi­tec­ture can be designed as two-tier, three-tier or n-tier ar­chi­tec­ture depending on its intended use and is often found in web ap­plic­a­tions.

A service-oriented ar­chi­tec­ture (SOA) focuses on services and is geared towards ad­dress­ing the in­di­vidu­al needs and processes of company. This allows in­di­vidu­al services to be combined into a bespoke business process. For example, an SOA can cover the entire process of “ordering online” which involves the following services: “taking the order”, “credit checks” and “sending the invoice”. Technical com­pon­ents (e.g. servers, databases, etc.) are used as tools but are not the main focus here. In this type of dis­trib­uted computing, priority is given to ensuring that services are ef­fect­ively combined, work together well, and are smartly organized with the aim of making business processes as efficient and smooth as possible.

In a service-oriented ar­chi­tec­ture, extra emphasis is placed on well-defined in­ter­faces that func­tion­ally connect the com­pon­ents and increase ef­fi­ciency. These can also benefit from the system’s flex­ib­il­ity since services can be used in a number of ways in different contexts and reused in business processes. Service-oriented ar­chi­tec­tures using dis­trib­uted computing are often based on web services. They are im­ple­men­ted on dis­trib­uted platforms, such as CORBA, MQSeries, and J2EE.

The ad­vant­ages of dis­trib­uted computing

Dis­trib­uted computing has many ad­vant­ages. It allows companies to build an af­ford­able high-per­form­ance in­fra­struc­ture using in­ex­pens­ive off-the-shelf computers with mi­cro­pro­cessors instead of extremely expensive main­frames. Large clusters can even out­per­form in­di­vidu­al su­per­com­puters and handle high-per­form­ance computing tasks that are complex and com­pu­ta­tion­ally intensive.

Since dis­trib­uted computing system ar­chi­tec­tures are comprised of multiple (sometimes redundant) com­pon­ents, it is easier to com­pensate for the failure of in­di­vidu­al com­pon­ents (i.e. increased partition tolerance). Thanks to the high level of task dis­tri­bu­tion, processes can be out­sourced and the computing load can be shared (i.e. load balancing).

Many dis­trib­uted computing solutions aim to increase flex­ib­il­ity which also usually increases ef­fi­ciency and cost-ef­fect­ive­ness. To solve specific problems, spe­cial­ized platforms such as database servers can be in­teg­rated. For example, SOA ar­chi­tec­tures can be used in business fields to create bespoke solutions for op­tim­iz­ing specific business processes. Providers can offer computing resources and in­fra­struc­tures worldwide, which makes cloud-based work possible. This allows companies to respond to customer demands with scaled and needs-based offers and prices.

Dis­trib­uted computing’s flex­ib­il­ity also means that temporary idle capacity can be used for par­tic­u­larly ambitious projects. Users and companies can also be flexible in their hardware purchases since they are not re­stric­ted to a single man­u­fac­turer.

Another major advantage is its scalab­il­ity. Companies are able to scale quickly and at a moment’s notice or gradually adjust the required computing power to the demand as they grow or­gan­ic­ally. If you choose to use your own hardware for scaling, you can steadily expand your device fleet in af­ford­able in­cre­ments.

Despite its many ad­vant­ages, dis­trib­uted computing also has some dis­ad­vant­ages, such as the higher cost of im­ple­ment­ing and main­tain­ing a complex system ar­chi­tec­ture. In addition, there are timing and syn­chron­iz­a­tion problems between dis­trib­uted instances that must be addressed. In terms of partition tolerance, the de­cent­ral­ized approach does have certain ad­vant­ages over a single pro­cessing instance. However, the dis­trib­uted computing method also gives rise to security problems, such as how data becomes vul­ner­able to sabotage and hacking when trans­ferred over public networks. Dis­trib­uted in­fra­struc­tures are also generally more error-prone since there are more in­ter­faces and potential sources for error at the hardware and software level. Problem and error troubleshoot­ing is also made more difficult by the in­fra­struc­ture’s com­plex­ity.

What is dis­trib­uted computing used for?

Dis­trib­uted computing has become an essential basic tech­no­logy involved in the di­git­al­iz­a­tion of both our private life and work life. The internet and the services it offers would not be possible if it were not for the client-server ar­chi­tec­tures of dis­trib­uted systems. Every Google search involves dis­trib­uted computing with supplier instances around the world working together to generate matching search results. Google Maps and Google Earth also leverage dis­trib­uted computing for their services.

Dis­trib­uted computing methods and ar­chi­tec­tures are also used in email and con­fer­en­cing systems, airline and hotel re­ser­va­tion systems as well as libraries and nav­ig­a­tion systems. In the working world, the primary ap­plic­a­tions of this tech­no­logy include auto­ma­tion processes as well as planning, pro­duc­tion, and design systems. Social networks, mobile systems, online banking, and online gaming (e.g. mul­ti­play­er systems) also use efficient dis­trib­uted systems.

Ad­di­tion­al areas of ap­plic­a­tion for dis­trib­uted computing include e-learning platforms, ar­ti­fi­cial in­tel­li­gence, and e-commerce. Purchases and orders made in online shops are usually carried out by dis­trib­uted systems. In met­eor­o­logy, sensor and mon­it­or­ing systems rely on the computing power of dis­trib­uted systems to forecast natural disasters. Many digital ap­plic­a­tions today are based on dis­trib­uted databases.

Par­tic­u­larly com­pu­ta­tion­ally intensive research projects that used to require the use of expensive su­per­com­puters (e.g. the Cray computer) can now be conducted with more cost-effective dis­trib­uted systems. The volunteer computing project SETI@home has been setting standards in the field of dis­trib­uted computing since 1999 and still are today in 2020. Countless networked home computers belonging to private in­di­vidu­als have been used to evaluate data from the Arecibo Ob­ser­vat­ory radio telescope in Puerto Rico and support the Uni­ver­sity of Cali­for­nia, Berkeley in its search for ex­tra­ter­restri­al life.

A unique feature of this project was its resource-saving approach. The analysis software only worked during periods when the user’s computer had nothing to do. After the signal was analyzed, the results were sent back to the headquar­ters in Berkeley.

Tip

On the YouTube channel Education 4u, you can find multiple edu­ca­tion­al videos that go over the basics of dis­trib­uted computing.

Go to Main Menu