Distributed Computing
Distributed Computing
2. Data Consistency
Issue: In distributed computing, maintaining data consistency is a significant
concern, particularly when multiple copies of data are spread across different
nodes. Different nodes might read or write data concurrently, which can lead
to inconsistencies.
4. Scalability
Issue: One of the primary motivations behind distributed computing is
scalability—being able to increase system capacity by adding more nodes.
However, as more nodes are added, the system may experience diminishing
returns due to increased overhead in coordinating and managing the nodes.
Challenge: Scaling efficiently involves not just adding more hardware but also
ensuring that the software architecture can handle the additional complexity.
For example, adding more nodes increases the number of messages that
must be exchanged between them, which can lead to congestion and
bottlenecks. Load balancing, dynamic resource allocation, and distributed
algorithms that minimize inter-node communication are necessary to ensure
the system scales effectively.
6. Security Concerns
Issue: Distributed systems expose data and computations across multiple
nodes, often over untrusted networks, which significantly increases the
system's vulnerability to attacks such as data breaches, eavesdropping, and
distributed denial of service (DDoS) attacks.
7. Heterogeneity of Nodes
Issue: Distributed systems often consist of nodes with varying hardware,
operating systems, and configurations, especially in environments like cloud
computing or edge computing, where resources are pooled from multiple
providers or locations.
OMG:
Overview of OMG:
The Object Management Group (OMG) is an international, open
membership, not-for-profit consortium that works to create standards for distributed
object computing. OMG's standards are designed to ensure interoperability and
integration of different systems and technologies.
OMG's Impact:
Interpertobility
Flexibility
Innovation
COBRA:
CORBA (Common Object Request Broker Architecture) is a standard designed by
OMG to enable communication between objects in a distributed system. It
allows applications and services to communicate with each other regardless of
where they are located, the programming languages they are written in, or the
platforms they are running on.
CORBA is based on the idea of an Object Request Broker (ORB), which acts
as a middleman to handle the communication and method calls between
distributed objects across different systems. Essentially, CORBA enables object-
oriented programming in a distributed environment by abstracting the
complexities of network communication.
KEY CONCEPTS:
Object Request Broker (ORB):
The ORB is the core of CORBA. It enables objects to send requests
and receive responses in a transparent manner, without needing to know where the
object resides (locally or remotely) or what language it's implemented in.
CORBA Architecture
The CORBA architecture consists of several components:
2. Server: The entity that provides services by hosting the remote objects and
responding to client requests.
CORBA Features:
Language and Platform Independence
Transparency
Scalability
RPC:
RPC (Remote Procedure Call) is a communication paradigm where a program
(the client) can request a service or procedure from a program (the server)
located on a remote system, in a way that looks like a regular procedure call in
the local system. The goal of RPC is to hide the complexities of remote
communication, such as message passing, from the programmer .
Client Stub
Server Stub
Server Application
Server Stub
| Marshals Response
Client Stub
| Unmarshals Response
Client Application
Types of RPC:
Synchronous RPC
Asychronous RPC
DCOM:
DCOM (Distributed Component Object Model) is a Microsoft
technology that extends the Component Object Model (COM) to
support communication between objects across network boundaries,
allowing for distributed applications in a networked environment. It
was designed to enable software components to communicate with
each other regardless of whether they are on the same machine or
across a network, making it an essential technology in the context of
distributed computing, especially within Windows environments.
Steps of a Typical DCOM Interaction
1. Client Object Reference: The client obtains a reference to the
remote object, either by querying a directory service or by
receiving the object reference from another component.
6. Execution: The server object executes the method and returns the
result.
8. Result: The client receives the result of the method call as if the
object were local.
DCOM Architecture
The DCOM architecture extends the core COM architecture with the
following key components:
2. Server-Side Stub: The stub handles the method call on the server
side, translating network messages into method invocations on the
actual object.
PMI Versions
There have been multiple versions of the PMI specification, each introducing
improvements and new features to better support the needs of parallel and
distributed computing:
1. PMI-1: The first version of the PMI specification provided basic functionality
for launching and managing processes in MPI programs. It introduced
mechanisms for process startup, communication, and coordination.
Components of PMI
PMI typically consists of the following components:
1. PMI Server: The PMI server is responsible for coordinating the startup
and initialization of processes. It acts as a central authority that
processes can communicate with during the initialization phase to
exchange information such as process ranks and network addresses.
2. PMI Client: Each process in the MPI program runs a PMI client that
communicates with the PMI server. The PMI client is responsible for
registering the process with the PMI server, retrieving information
about other processes, and participating in collective operations such
as barrier synchronization.