Personal tools
You are here: Home Research Trends & Opportunities New Media and New Digital Economy Future Compute and Microelectronics Distributed Computing and Applications

Distributed Computing and Applications

US Capitol_122521A
[US Capitol - Department of Agriculture]
 

- Overview

Distributed computing is a field of computer science that involves the study of distributed systems. A decentralized system is a network of computers that communicate and coordinate their behavior by passing messages to each other. Each individual computer (called a node) works toward a common goal but operates independently, processing its own set of data. 

The primary goal of distributed computing is to improve the efficiency and effectiveness of computing tasks. It does this by dividing large tasks into smaller subtasks and distributing these subtasks across multiple computers. This approach can significantly speed up processing time because multiple nodes handle different parts of the task simultaneously.

Distributed systems can be found in a variety of environments, from small networks connecting computers within an organization to large-scale cloud computing operations. They are critical for handling large-scale computations that are beyond the reach of a single computer, such as data processing in big data applications, scientific simulations, and complex web services.

For example, distributed computing can encrypt large amounts of data; solve multivariable physical and chemical equations; and render high-quality three-dimensional video animations. The terms distributed systems, distributed programming, and distributed algorithms all refer to distributed computing. 

Please refer to the following for more information:

 

- Key Features and Characteristics of Distributed Computing

Distributed computing is a method of enabling multiple computers to work together to solve a common problem. It makes a computer network look like a powerful single computer that can provide massive resources to solve complex challenges. 

Some characteristics of distributed computing include:

  • Scalability: Distributed systems can be scaled by adding more nodes to the system. This allows the system to grow to handle more volume.
  • Concurrency: Multiple nodes can perform tasks at the same time. In distributed databases, concurrency control ensures that transactions on different nodes don't interfere with each other.
  • Resource sharing: Nodes can share resources like data, storage, and processing power. This helps keep the system's performance optimal.
  • Fault tolerance: Distributed systems can continue to operate even if one or more nodes fail.
  • Openness: The services provided by the system are displayed through interfaces. These interfaces use Interface Definition Languages (IDL) to provide the syntax of the services.
  • Communication: Distributed systems are made up of multiple computers that need to exchange data and information. This communication usually takes place over a network.
  • Distributed networking: Software, data, and computer programming are spread out across multiple computers, which communicate through their nodes.
  • Distributed algorithm: The elements of a distributed system are less dependent on the operating system, hardware instruction set, and programming language. Instead, they are more dependent on the interfaces, communication style, and how the elements interact.
  • Synchronization: In distributed databases, data is spread across multiple sites and needs to be synchronized to ensure consistency.
  • Transparency: The system appears to the user as a single coherent system, rather than a collection of distinct nodes.
  • Performance: Distributed computing combines the power of multiple machines to improve the performance of large-scale projects

 

- Types of Distributed Computing Architecture

As the use of cloud and serverless computing continues to grow, there has been a broad shift in the way we design and build software systems - various technologies in a single architecture used to be more of a problem than a common scenario. We are seeing a shift from traditional monolithic architectures, where all components of an application are tightly coupled and run on a single server, to a more flexible and scalable approach: decentralized architectures.

As the need for high performance and reliability becomes the default, understanding the principles and benefits of decentralized architecture is critical for architects and developers to build applications that meet customer needs.

Here are some types of distributed computing architecture:

  • Peer-to-peer systems: Allows network devices to share files and folders without a separate server.
  • Client-server systems: A straightforward type of distributed system where clients request services from servers.
  • Distributed file systems: Stores and accesses data across a cluster of machines, making it appear as one.
  • Cloud computing: Breaks down a large data processing program into smaller programs that are processed by a system of multiple servers.
  • Service-oriented architecture (SOA): An evolution of distributed computing that modularizes an application's business logic into services for client applications.
  • Event-driven systems: A popular distributed asynchronous architecture style that can be used for small and large applications.
  • Fault tolerance: An important aspect of distributed file systems that involves replicating data at multiple sites.

 

- Distributed Computing Models

A distributed computing model is a system that uses multiple computers to work together to solve a problem. The model is also known as distributed systems, distributed programming, or distributed algorithms. 

In a distributed computing model, each computer, or node, works independently to process its own data while still working towards a common goal. The computers communicate with each other by sending messages to coordinate their actions. 

Distributed computing models are used to solve complex problems that are too large for a single computer to handle. Some examples of how distributed computing models are used include:

  • Data processing: Distributed computing models can process large amounts of data.
  • Scientific simulations: Distributed computing models can simulate complex systems, such as the behavior of liquids in cars or aircraft.
  • Video rendering: Distributed computing models can render high-quality 3D video animations by splitting the video into frames and assigning each frame to a different computer to render.

Boston_MA_092522A
[Boston, Massachusetts]

- Distributed vs Centralized Systems

Centralized systems and distributed computing models differ in how they manage data, how they are structured, and how they handle failure:

  • Structure: Centralized systems are run from a single machine or location, while distributed computing models use multiple computers that work together.
  • Data management: Centralized systems manage a single database, while distributed systems manage multiple databases across multiple systems.
  • Failure: Centralized systems have a single point of failure, while distributed systems do not.
  • Data access: In a centralized system, a single user with access to the server can add, modify, or delete any data. In a distributed system, changes made to data on one computer are reflected on all the computers in the network.
  • Security: Distributed systems can make data security more challenging.
  • Scalability: Centralized business models can become more difficult to manage as a business grows.


Here are some other differences between centralized and distributed systems:

  • Operating systems: Centralized systems often use a single operating system to handle many tasks.
  • Network congestion: In a centralized system, all nodes access the central node, which can lead to network congestion.
  • Cost: Centralized systems can be cost-efficient and affordable because they can reduce licensing fees, IT costs, and other operational expenses. 
  • Scalability: The system can be easily expanded by adding more nodes.
  • Redundancy: If one node is unavailable, the work can continue because other nodes can provide the same services.
  • Parallel processing: Multiple nodes can work on different parts of a task at the same time.

 

- Applications of Distributed Computing 

Some applications of distributed computing include:

  • Distributed databases: A type of distributed computing that distributes specific data operations to multiple machines
  • Cloud computing: A type of distributed computing that shares resources and applications over the internet. Authorized users can access applications from different locations without needing infrastructure.
  • Grid computing: A type of distributed computing where multiple clusters of nodes work together to complete tasks. For example, physicists can submit jobs to the grid, which then determines which nodes to use to process the job.
  • Edge computing: A distributed computing model that stores data and performs computations closer to the device's location. Edge computing works in conjunction with cloud computing, which is where big data is processed.
  • Distributed file systems: A type of distributed data store that stores and accesses large amounts of data across a cluster of machines.
  • Distributed algorithms: A type of parallel algorithm designed to work in distributed computing environments.

 

[More to come ...]



Document Actions