0% found this document useful (0 votes)
5 views

(a) Introduction to Compute

Uploaded by

aradhya mittal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

(a) Introduction to Compute

Uploaded by

aradhya mittal
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

OVERVIEW OF MODERN

COMPUTING CONCEPTS
WHAT IS COMPUTE?

▪ Definition: Execution of instructions by a computer to perform various tasks.

▪ Components: CPU, GPU, and specialized processors.

▪ Importance: Critical for performance in data-intensive fields.


Distributed
Grid Computing
Computing

Client-Server Three-Tier
Computing Architecture

OVERVIEW OF COMPUTING TYPES


CENTRALIZED COMPUTING
ADVANTAGES OF CLIENT SERVER COMPUTING
• All the required data is concentrated in a single place i.e. the server.
So it is easy to protect the data and provide authorisation and authentication.
• The server need not be located physically close to the clients. Yet the data can be
accessed efficiently.
• It is easy to replace, upgrade or relocate the nodes in the client server model because
all the nodes are independent and request data only from the server.
• All the nodes i.e clients and server may not be build on similar platforms yet they can
easily facilitate the transfer of data.
DISADVANTAGES OF CLIENT SERVER COMPUTING
• If all the clients simultaneously request data from the server, it may get overloaded.
This may lead to congestion in the network.
• If the server fails for any reason, then none of the requests of the clients can be
fulfilled. This leads of failure of the client server network.
• The cost of setting and maintaining a client server model are quite high.
DECENTRALIZED COMPUTING
DECENTRALIZED COMPUTING
DISTRIBUTED COMPUTING
CENTRALIZED VS. DISTRIBUTED COMPUTING

Early computing was performed on a single processor. Uni-processor computing


can be called centralized computing.
DISTRIBUTED COMPUTING
Definition: Components distributed across multiple computers.
• Field of computing science that studies distributed system.
• Use of distributed systems to solve computational problems.

Distributed system
–Wikipedia
• There are several autonomous computational entities, each of which has its own
local memory.
• The entities communicate with each other by message passing.

–Operating System Concept


• The processors communicate with one another through various communication
lines, such as high-speed buses or telephone lines.
• Each processor has its own local memory.
EXAMPLE DISTRIBUTED SYSTEMS
• Internet
• ATM (bank) machines
• Intranets/Workgroups
• Computing landscape will soon consist of ubiquitous network-connected devices
• Apache Hadoop, which distributes data and processing tasks across clusters of computers.

COMPUTERS IN A DISTRIBUTED SYSTEM


• Workstations: Computers used by end-users to perform computing
• Server Systems: Computers which provide resources and services
• Personal Assistance Devices: Handheld computers connected to the system via a
wireless communication link.
CLIENT-SERVER COMPUTING

▪ In client server computing, the clients


requests a resource and the server provides
that resource. A server may serve multiple
clients at the same time while a client is in
contact with only one server. Both the client
and server usually communicate via
a computer network but sometimes they may
reside in the same system.

▪ An illustration of the client server system is


given as follows −
COMMON PROPERTIES OF DISTRIBUTED COMPUTING
–Fault tolerance
• When one or some nodes fails, the whole system can still work fine except
performance.
• Need to check the status of each node
–Each node play partial role
• Each computer has only a limited, incomplete view of the system.
• Each computer may know only one part of the input.
–Resource sharing
• Each user can share the computing power and storage resource in the system with
other users
–Load Sharing
• Dispatching several tasks to each nodes can help share loading to the whole system.
–Easy to expand
• We expect to use few time when adding nodes. Hope to spend no time if possible.
–Performance
• Parallel computing can be considered a subset of distributed computing
GRID COMPUTING
▪ Definition:
❑ Network of distributed computers working together.
❑ Grid computing means that mixed groups of storage
systems, servers, and networks are grouped jointly in a
virtualized system displayed as the only computing
unit to the user.

▪ Characteristics:
▪ - Resource sharing
▪ - Scalability
▪ - Heterogeneity

▪ Example: SETI@home, which uses idle processing


power from personal computers worldwide.
Feature/Dim Client-Server Distributed
Cluster Computing Grid Computing Three-Tier Architecture
ension Computing Computing
A model in which A type of distributed computing
A computing model where A type of computing where a group A client-server architecture where the user
components located on that involves a network of
the client requests services of tightly-coupled and interface, functional process logic, and data
Definition networked computers loosely-coupled, heterogeneous,
and the server provides homogeneous computers work storage are developed and maintained as
communicate and coordinate and geographically dispersed
them. together as a single system. independent modules on separate platforms.
to achieve a common goal. resources.
Centralized, typically homogeneous, Decentralized, can be
Two layers: Clients and Decentralized and often
Architecture and located in a single physical heterogeneous and geographically Three layers: Presentation, Logic, and Data tiers.
Servers. heterogeneous.
location. distributed.
Resource Managed by middleware or Managed by a centralized scheduler Managed by grid middleware (e.g., Managed by middleware that connects the three
Managed by the server.
Management decentralized protocols. or cluster management software. Globus Toolkit). tiers.
High, but typically limited to the Very high, can utilize vast amounts
Moderate, can scale High, can scale across multiple
Scalability physical constraints of a single of resources from different Moderate, can scale each tier independently.
vertically or horizontally. geographic locations.
location. organizations.
Fault Low to Moderate, depends High, with redundancy and High, with redundancy and failover High, due to distributed nature and Moderate, depends on redundancy and failover
Tolerance on server redundancy. decentralized management. mechanisms within the cluster. resource pooling. mechanisms in place.
Moderate, costs associated Can vary, often lower due to Higher, due to dedicated Lower, as it leverages existing
Cost Moderate, involves maintaining separate tiers.
with server maintenance. use of existing resources. infrastructure and maintenance costs. infrastructure.
Scientific research, large-scale
Simple applications, file Enterprise applications, web High-performance computing (HPC), Web applications, enterprise systems, and
Use Cases computations, collaborative
sharing, email servers. services, cloud computing. simulations, data processing. services.
projects.
Email clients and servers, Microservices architectures, HPC clusters, Google's data centers, SETI@home, Folding@home, Web apps (e.g., online retail), enterprise apps
Examples
database access. cloud platforms (AWS, Azure). university supercomputers. CERN's LHC computing grid. (e.g., ERP systems).
Resource Owned and maintained by a Resources are often owned by Resources are typically owned by a Resources are owned by multiple Typically owned and maintained by a single
Ownership single organization. different entities. single organization. organizations. organization.
None or minimal middleware Examples include Apache Examples include Apache Hadoop Examples include Globus Toolkit, Application servers, web servers, database
Middleware
required. Kafka, Apache Zookeeper. YARN, Kubernetes. HTCondor. servers.
Varies, requires robust security Varies, often requires stringent
Moderate to High, depending Generally higher, with controlled
Security protocols for communication security measures due to public High, with security protocols for each tier.
on server security. access and dedicated infrastructure.
and data. internet usage.
THREE-TIER ARCHITECTURE
Definition: A software architecture pattern that divides an application into three
layers:
❑ presentation,
❑ business logic, and
❑ data access.

Characteristics:
▪ Separation of Concerns: Each layer handles specific responsibilities, making the
system easier to manage and maintain.
▪ Scalability: Each layer can be scaled independently to handle increased load.
▪ Flexibility: Changes in one layer don’t affect the others, facilitating easier updates
and maintenance.

Example:
❖Presentation Layer: The user interface, typically a web browser or mobile app.
❖Business Logic Layer: The server-side application logic, often running on a web
server.
❖Data Access Layer: The database server that stores and retrieves data.
WHAT IS WEB SOCKET AND HOW IT’S DIFFERENT FROM HTTP?
▪ HTTP and WebSocket both are communication protocols used in client-server communication.
▪ HTTP protocol: HTTP is unidirectional where the client sends the request and the server sends
the response.
▪ Let’s take an example when a user sends a request to the server this request goes in the form of
HTTP or HTTPS, after receiving a request server send the response to the client, each request is
associated with a corresponding response, after sending the response the connection gets closed,
each HTTP or HTTPS request establish the new connection to the server every time and after
getting the response the connection gets terminated by itself.
▪ HTTP is a stateless protocol that runs on top of TCP which is a connection-oriented protocol it
guarantees the delivery of data packet transfer using the three-way handshaking methods and re-
transmits the lost packets.
▪ When a client sends an HTTP request to the server, a TCP connection is open between the client
and server and after getting the response the TCP connection gets terminated, each HTTP request
opens a separate TCP connection to the server, for e.g. if the client sends 10 requests to the server
the 10 separate TCP connection will be opened. and get closed after getting the response/fallback.
WHAT IS WEB SOCKET AND HOW IT’S DIFFERENT FROM HTTP?
WHAT IS WEB SOCKET AND HOW IT’S DIFFERENT FROM HTTP?
▪ WebSocket is a computer communications protocol, providing a simultaneous two-
way communication channel over a single Transmission Control Protocol (TCP)
connection.
▪ WebSocket is bidirectional, a full-duplex protocol that is used in the same scenario of
client-server communication, unlike HTTP it starts from ws:// or wss://. It is a stateful
protocol, which means the connection between client and server will keep alive until it is
terminated by either party (client or server). After closing the connection by either of the
client and server, the connection is terminated from both ends.
▪ Let’s take an example of client-server communication, there is the client which is a web
browser and a server, whenever we initiate the connection between client and server, the
client-server made the handshaking and decide to create a new connection and this
connection will keep alive until terminated by any of them. When the connection is
established and alive the communication takes place using the same connection channel
until it is terminated.
▪ This is how after client-server handshaking, the client-server decide on a new connection
to keep it alive, this new connection will be known as WebSocket.
WHAT IS WEB SOCKET AND HOW IT’S DIFFERENT FROM HTTP?
▪ Once the communication link establishment and the connection are opened, message
exchange will take place in bidirectional mode until connection persists between client-
server.
▪ If anyone of them (client-server) dies or decide to close the connection is closed by both
of the party. The way in which socket works is slightly different from how HTTP works,
the status code 101 denotes the switching protocol in WebSocket.
WHAT IS WEB SOCKET AND HOW IT’S DIFFERENT FROM HTTP?
WebSocket Connection HTTP Connection
WebSocket is a bidirectional communication
The HTTP protocol is a unidirectional protocol that
protocol that can send the data from the client to the
works on top of TCP protocol which is a connection-
server or from the server to the client by reusing the
oriented transport layer protocol, we can create the
established connection channel. The connection is
connection by using HTTP request methods after
kept alive until terminated by either the client or the
getting the response HTTP connection get closed.
server.
Almost all the real-time applications like (trading,
monitoring, notification) services use WebSocket to Simple RESTful application uses HTTP protocol
receive the data on a single communication which is stateless.
channel.
When we do not want to retain a connection for a
All the frequently updated applications used
particular amount of time or reuse the connection for
WebSocket because it is faster than HTTP
transmitting data; An HTTP connection is slower than
Connection.
WebSockets.
REMOTE PROCEDURE CALL (RPC)
▪ A remote procedure call is an interprocess communication technique that is used for client-server based
applications. It is also known as a subroutine call or a function call.
▪ A client has a request message that the RPC translates and sends to the server. This request may be a
procedure or a function call to a remote server. When the server receives the request, it sends the required
response back to the client. The client is blocked while the server is processing the call and only resumed
execution after the server is finished.
▪ The sequence of events in a remote procedure call are given as follows −
✓ The client stub is called by the client.
✓ The client stub makes a system call to send the message to the server and puts the parameters in the
message.
✓ The message is sent from the client to the server by the client’s operating system.
✓ The message is passed to the server stub by the server operating system.
✓ The parameters are removed from the message by the server stub.
✓ Then, the server procedure is called by the server stub.
*** Client stub and server stub are pieces of code that convert parameters during a remote procedure call.***
REMOTE PROCEDURE CALL (RPC)
REMOTE METHOD INVOCATION (RMI)
Java API for object communication over a network.

▪ RMI applications offers two separate programs, a server and a client.

▪ There are some tasks which are performed by the server program i.e., to creates some
remote objects, to make references to this objects and also wait for the clients so that they
invoke methods on these objects.
▪ A client program obtains a remote reference to one or more remote objects on a server and
invokes methods on them. Basically, RMI provides the mechanism through which server
and client can communicate and pass information back and forth.
▪ The RMI consists of three layers :
• Stub/Skeleton layer
Example: Java distributed computing tasks.
• Remote Reference layer
• Transport layer
REMOTE METHOD INVOCATION (RMI)
MESSAGE QUEUES AND MESSAGE BROKERS

Message Broker
• Type: Middleware system
• Use Case: Facilitating communication between different applications, systems, or services
• Core Features: Routing, transformation, and integration of messages

Message Queue
• Type: Form of message broker or a component within a message broker

• Use Case: Managing and maintaining the order and delivery of messages
• Core Features: Temporary storage and management of messages until they are processed
Differences

Feature Message Broker Message Queue


Broader, includes routing and transforming
Functionality Primarily focused on storing messages in a queue
messages
More complex, offering various patterns Simpler, usually operates on FIFO (First In First
Complexity
(pub/sub, request/reply) Out) basis

Integration Integrates diverse protocols and formats Typically specific to a certain protocol or system

Designed to handle high throughput and Scalable but mainly in the context of message
Scalability
diverse workloads storage and delivery

Can perform complex transformations and Focused on reliable message delivery without
Flexibility
apply business logic transformation

Suitable for complex enterprise systems Ideal for scenarios where order and delivery
Use Case
requiring integration guarantees are critical

You might also like