SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
CSN-341
Computer Networks
CLIENT SERVER MODEL
& DISTRIBUTED COMPUTING
Group 7 Members:
Abhishek Jaisingh (14114002)
Amandeep (14114008)
Amit Saharan (14114010)
Tirth Patel (14114036)
What is Client Server Model?
The client-server model is a distributed communication framework of network
processes among service requesters, clients and service providers. The client-server
connection is established through a network or the Internet.
The client-server model is a core network computing concept also building
functionality for email exchange and Web/database access. Web technologies and
protocols built around the client-server model are:
● Hypertext Transfer Protocol (HTTP)
● Domain Name System (DNS)
● Simple Mail Transfer Protocol (SMTP)
● Telnet
Clients include Web browsers, chat applications, and email software, among others.
Servers include Web, database, application, chat and email, etc.
A server manages most processes and stores all data. A client requests specified
data or processes. The server relays process output to the client. Clients sometimes
handle processing, but require server data resources for completion.
The client-server model differs from a peer-to-peer (P2P) model where
communicating systems are the client or server, each with equal status and
responsibilities. The P2P model is decentralized networking. The client-server
model is centralized networking.
Problems with Client-server Model
1. Network Blocking or Network Congestion
As the number of simultaneous client requests to a given server increases, the
server can become overloaded. Contrast that to a P2P network, where its
bandwidth actually increases as more nodes are added, since the P2P network's
2
overall bandwidth can be roughly computed as the sum of the bandwidths of
every node in that network. In addition to this, the server is also susceptible to
DOS(Denial of Service) attacks.
​2. Single Point of Failure
As the number of simultaneous client requests to a given server increases,
the server can become overloaded. Contrast that to a P2P network, where its
bandwidth actually increases as more nodes are added, since the P2P
network's overall bandwidth can be roughly computed as the sum of the
bandwidths of every node in that network. When a server goes down all the
operations associated with it are ceased.
​3. Lack of Scalability
As the number of simultaneous client requests to a given server increases,
the load on the server increases and hence it is not a scalable system. New
and better quality servers must be added to improve system performance,
which is a very tedious task. Scalability can only be done in the vertical
direction.
​4. High Costs
Servers are especially designed to be robust, reliable and high performance
and none of this is cheap. The operating system is also more costly that the
standard stand-alone types as it has to deal with a networked environment.
Distributed Computing
Distributed computing is a field of computer science that studies distributed
systems. A distributed system is a model in which components located on
networked computers communicate and coordinate their actions by passing
messages. The components interact with each other in order to achieve a common
goal. Three significant characteristics of distributed systems are: concurrency of
3
components, lack of a global clock, and independent failure of components.
Examples of distributed systems vary from SOA-based systems to massively
multiplayer online games to peer-to-peer applications.
There are many alternatives for the message passing mechanism, including pure
HTTP, RPC-like connectors and message queues.
A goal and challenge pursued by some computer scientists and practitioners in
distributed systems is location transparency; however, this goal has fallen out of
favour in industry, as distributed systems are different from conventional
non-distributed systems, and the differences, such as network partitions, partial
system failures, and partial upgrades, cannot simply be "papered over" by attempts
at "transparency" (CAP theorem).
Distributed computing also refers to the use of distributed systems to solve
computational problems. In distributed computing, a problem is divided into many
tasks, each of which is solved by one or more computers, which communicate with
each other by message passing.
4
a), (b): a distributed system.
(c): a parallel system.
5
Challenges in Distributed Computing
1. Fault Tolerance or Partition Tolerance
Failures are inevitable in any system. Some components may stop functioning
while others continue running normally. So naturally we need a way to:
● Detect Failures – Various mechanisms can be employed such as
checksums.
● Mask Failures – retransmit upon failure to receive acknowledgement
● Recover from failures – if a server crashes roll back to previous state
● Build Redundancy – Redundancy is the best way to deal with failures. It is
achieved by replicating data so that if one sub system crashes another may
still be able to provide the required information.
​2. Concurrency
Concurrency issues arise when several clients attempt to request a shared
resource at the same time. This is problematic as the outcome of any such
data may depend on the execution order, and so synchronisation is required.
A lot of research is also focussed on understanding the asynchronous nature
of distributed systems.
​3. Availability
Every request receives a response, without guarantee that if it contains the
most recent version of the information.
Achieving availability in a distributed system requires that the system
remains operational 100% of the time. Every client gets a response,
regardless of the state of any individual node in the system.
​4. Transparency
6
A distributed system must be able to offer transparency to its users. As a
user of a distributed system you do not care if we are using 20 or 100’s of
machines, so we hide this information, presenting the structure as a normal
centralized system.
■ Access Transparency – where resources are accessed in a uniform manner
regardless of location
■ Location Transparency – the physical location of a resource is hidden from
the user
■ Failure Transparency – Always try and Hide failures from users
​5. Security
The issues surrounding security are those of
■ Confidentiality
■ Availability
To combat these issues encryption techniques such as those of cryptography
can help but they are still not absolute. Denial of Service attacks can still
occur, where a server or service is bombarded with false requests usually by
botnets (zombie computers).
7
Client Server Model in Distributed System
The client-server model is basic to distributed systems. It is a response to the
limitations presented by the traditional mainframe client-host model, in which a
single mainframe provides shared data access to many dumb terminals. The
client-server model is also a response to the local area network (LAN) model, in
which many isolated systems access a file server that provides no processing
power.
Client-server architecture provides integration of data and services and allows
clients to be isolated from inherent complexities, such as communication protocols.
The simplicity of the client-server architecture allows clients to make requests that
are routed to the appropriate server. These requests are made in the form of
transactions. Client transactions are often SQL or PL/SQL procedures and functions
that access individual databases and services.
The system is structured as a set of processes, called servers, that offer services to
the users, called clients.
The client-server model is usually based on a simple request/reply protocol,
implemented with send/receive primitives or using ​remote procedure calls (RPC)
or ​remote method invocation (RMI)​.
RPC/RMI :
1. The client sends a request (invocation) message to the server asking for
some service
2. The server does the work and returns a result (e.g. the data requested) or an
error code if the work could not be performed.
Sequence of events :
8
1. The client calls the client stub. The call is a local procedure call, with
parameters pushed on to the stack in the normal way.
2. The client stub packs the parameters into a message and makes a system call
to send the message. Packing the parameters is called marshalling.
3. The client's local operating system sends the message from the client
machine to the server machine.
4. The local operating system on the server machine passes the incoming
packets to the server stub.
5. The server stub unpacks the parameters from the message. Unpacking the
parameters is called unmarshalling.
6. Finally, the server stub calls the server procedure. The reply traces the same
steps in the reverse direction.
9

Mais conteúdo relacionado

Mais procurados

Chapter 4 a interprocess communication
Chapter 4 a interprocess communicationChapter 4 a interprocess communication
Chapter 4 a interprocess communication
AbDul ThaYyal
 
Fault tolerance in distributed systems
Fault tolerance in distributed systemsFault tolerance in distributed systems
Fault tolerance in distributed systems
sumitjain2013
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based system
Chetan Selukar
 
Chapter 14 replication
Chapter 14 replicationChapter 14 replication
Chapter 14 replication
AbDul ThaYyal
 
Deadlock in distribute system by saeed siddik
Deadlock in distribute system by saeed siddikDeadlock in distribute system by saeed siddik
Deadlock in distribute system by saeed siddik
Saeed Siddik
 
Introduction to distributed file systems
Introduction to distributed file systemsIntroduction to distributed file systems
Introduction to distributed file systems
Viet-Trung TRAN
 

Mais procurados (20)

Distributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communicationDistributed System-Multicast & Indirect communication
Distributed System-Multicast & Indirect communication
 
Data warehouse physical design
Data warehouse physical designData warehouse physical design
Data warehouse physical design
 
Trends in distributed systems
Trends in distributed systemsTrends in distributed systems
Trends in distributed systems
 
Tcpip services and applications
Tcpip services and applicationsTcpip services and applications
Tcpip services and applications
 
Chapter 4 a interprocess communication
Chapter 4 a interprocess communicationChapter 4 a interprocess communication
Chapter 4 a interprocess communication
 
distributed Computing system model
distributed Computing system modeldistributed Computing system model
distributed Computing system model
 
Physical and Logical Clocks
Physical and Logical ClocksPhysical and Logical Clocks
Physical and Logical Clocks
 
Agreement Protocols, distributed File Systems, Distributed Shared Memory
Agreement Protocols, distributed File Systems, Distributed Shared MemoryAgreement Protocols, distributed File Systems, Distributed Shared Memory
Agreement Protocols, distributed File Systems, Distributed Shared Memory
 
Fault tolerance in distributed systems
Fault tolerance in distributed systemsFault tolerance in distributed systems
Fault tolerance in distributed systems
 
Common Standards in Cloud Computing
Common Standards in Cloud ComputingCommon Standards in Cloud Computing
Common Standards in Cloud Computing
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based system
 
Security models
Security models Security models
Security models
 
Chapter 14 replication
Chapter 14 replicationChapter 14 replication
Chapter 14 replication
 
Deadlock in distribute system by saeed siddik
Deadlock in distribute system by saeed siddikDeadlock in distribute system by saeed siddik
Deadlock in distribute system by saeed siddik
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
 
Distributed DBMS - Unit 6 - Query Processing
Distributed DBMS - Unit 6 - Query ProcessingDistributed DBMS - Unit 6 - Query Processing
Distributed DBMS - Unit 6 - Query Processing
 
System and network administration network services
System and network administration network servicesSystem and network administration network services
System and network administration network services
 
Cloud Security, Standards and Applications
Cloud Security, Standards and ApplicationsCloud Security, Standards and Applications
Cloud Security, Standards and Applications
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
 
Introduction to distributed file systems
Introduction to distributed file systemsIntroduction to distributed file systems
Introduction to distributed file systems
 

Semelhante a Client Server Model and Distributed Computing

Client Server Architecture
Client Server ArchitectureClient Server Architecture
Client Server Architecture
suks_87
 
Client server computing
Client server computingClient server computing
Client server computing
jorge cabiao
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11
Tech_MX
 

Semelhante a Client Server Model and Distributed Computing (20)

Distributed system
Distributed systemDistributed system
Distributed system
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
CHP-4.pptx
CHP-4.pptxCHP-4.pptx
CHP-4.pptx
 
Client server computing
Client server computingClient server computing
Client server computing
 
Client Server Architecture
Client Server ArchitectureClient Server Architecture
Client Server Architecture
 
SOFTWARE COMPUTING
SOFTWARE COMPUTINGSOFTWARE COMPUTING
SOFTWARE COMPUTING
 
unit 4-1.pptx
unit 4-1.pptxunit 4-1.pptx
unit 4-1.pptx
 
Topic 5- Communications v1.pptx
Topic 5- Communications v1.pptxTopic 5- Communications v1.pptx
Topic 5- Communications v1.pptx
 
client server protocol
client server protocolclient server protocol
client server protocol
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
Client server computing
Client server computingClient server computing
Client server computing
 
02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf02 Models of Distribution Systems.pdf
02 Models of Distribution Systems.pdf
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
 
Chapeter 2 introduction to cloud computing
Chapeter 2   introduction to cloud computingChapeter 2   introduction to cloud computing
Chapeter 2 introduction to cloud computing
 
Chapter 3-Processes.ppt
Chapter 3-Processes.pptChapter 3-Processes.ppt
Chapter 3-Processes.ppt
 
Clientserver
ClientserverClientserver
Clientserver
 
Client computing evolution ppt11
Client computing evolution ppt11Client computing evolution ppt11
Client computing evolution ppt11
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
 
Distributed Computing system
Distributed Computing system Distributed Computing system
Distributed Computing system
 
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.pptcharacteristicsofdistributedsystem-121004123308-phpapp02.ppt
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
 

Mais de Abhishek Jaisingh

Mais de Abhishek Jaisingh (10)

Movie recommendation project
Movie recommendation projectMovie recommendation project
Movie recommendation project
 
Deep Q-learning Flappy Bird
Deep Q-learning Flappy BirdDeep Q-learning Flappy Bird
Deep Q-learning Flappy Bird
 
Traffic Lights Controller in VHDL
Traffic Lights Controller in VHDLTraffic Lights Controller in VHDL
Traffic Lights Controller in VHDL
 
Airline Database Design
Airline Database DesignAirline Database Design
Airline Database Design
 
Snake Game Report
Snake Game ReportSnake Game Report
Snake Game Report
 
Forget Me Not Report
Forget Me Not ReportForget Me Not Report
Forget Me Not Report
 
Skype
SkypeSkype
Skype
 
Quantum Computing Report
Quantum Computing ReportQuantum Computing Report
Quantum Computing Report
 
Quantum Computing
Quantum ComputingQuantum Computing
Quantum Computing
 
Innovative Business Models Presentation
Innovative Business Models PresentationInnovative Business Models Presentation
Innovative Business Models Presentation
 

Último

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Client Server Model and Distributed Computing

  • 1. CSN-341 Computer Networks CLIENT SERVER MODEL & DISTRIBUTED COMPUTING Group 7 Members: Abhishek Jaisingh (14114002) Amandeep (14114008) Amit Saharan (14114010) Tirth Patel (14114036)
  • 2. What is Client Server Model? The client-server model is a distributed communication framework of network processes among service requesters, clients and service providers. The client-server connection is established through a network or the Internet. The client-server model is a core network computing concept also building functionality for email exchange and Web/database access. Web technologies and protocols built around the client-server model are: ● Hypertext Transfer Protocol (HTTP) ● Domain Name System (DNS) ● Simple Mail Transfer Protocol (SMTP) ● Telnet Clients include Web browsers, chat applications, and email software, among others. Servers include Web, database, application, chat and email, etc. A server manages most processes and stores all data. A client requests specified data or processes. The server relays process output to the client. Clients sometimes handle processing, but require server data resources for completion. The client-server model differs from a peer-to-peer (P2P) model where communicating systems are the client or server, each with equal status and responsibilities. The P2P model is decentralized networking. The client-server model is centralized networking. Problems with Client-server Model 1. Network Blocking or Network Congestion As the number of simultaneous client requests to a given server increases, the server can become overloaded. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network's 2
  • 3. overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. In addition to this, the server is also susceptible to DOS(Denial of Service) attacks. ​2. Single Point of Failure As the number of simultaneous client requests to a given server increases, the server can become overloaded. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. When a server goes down all the operations associated with it are ceased. ​3. Lack of Scalability As the number of simultaneous client requests to a given server increases, the load on the server increases and hence it is not a scalable system. New and better quality servers must be added to improve system performance, which is a very tedious task. Scalability can only be done in the vertical direction. ​4. High Costs Servers are especially designed to be robust, reliable and high performance and none of this is cheap. The operating system is also more costly that the standard stand-alone types as it has to deal with a networked environment. Distributed Computing Distributed computing is a field of computer science that studies distributed systems. A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of 3
  • 4. components, lack of a global clock, and independent failure of components. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications. There are many alternatives for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues. A goal and challenge pursued by some computer scientists and practitioners in distributed systems is location transparency; however, this goal has fallen out of favour in industry, as distributed systems are different from conventional non-distributed systems, and the differences, such as network partitions, partial system failures, and partial upgrades, cannot simply be "papered over" by attempts at "transparency" (CAP theorem). Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers, which communicate with each other by message passing. 4
  • 5. a), (b): a distributed system. (c): a parallel system. 5
  • 6. Challenges in Distributed Computing 1. Fault Tolerance or Partition Tolerance Failures are inevitable in any system. Some components may stop functioning while others continue running normally. So naturally we need a way to: ● Detect Failures – Various mechanisms can be employed such as checksums. ● Mask Failures – retransmit upon failure to receive acknowledgement ● Recover from failures – if a server crashes roll back to previous state ● Build Redundancy – Redundancy is the best way to deal with failures. It is achieved by replicating data so that if one sub system crashes another may still be able to provide the required information. ​2. Concurrency Concurrency issues arise when several clients attempt to request a shared resource at the same time. This is problematic as the outcome of any such data may depend on the execution order, and so synchronisation is required. A lot of research is also focussed on understanding the asynchronous nature of distributed systems. ​3. Availability Every request receives a response, without guarantee that if it contains the most recent version of the information. Achieving availability in a distributed system requires that the system remains operational 100% of the time. Every client gets a response, regardless of the state of any individual node in the system. ​4. Transparency 6
  • 7. A distributed system must be able to offer transparency to its users. As a user of a distributed system you do not care if we are using 20 or 100’s of machines, so we hide this information, presenting the structure as a normal centralized system. ■ Access Transparency – where resources are accessed in a uniform manner regardless of location ■ Location Transparency – the physical location of a resource is hidden from the user ■ Failure Transparency – Always try and Hide failures from users ​5. Security The issues surrounding security are those of ■ Confidentiality ■ Availability To combat these issues encryption techniques such as those of cryptography can help but they are still not absolute. Denial of Service attacks can still occur, where a server or service is bombarded with false requests usually by botnets (zombie computers). 7
  • 8. Client Server Model in Distributed System The client-server model is basic to distributed systems. It is a response to the limitations presented by the traditional mainframe client-host model, in which a single mainframe provides shared data access to many dumb terminals. The client-server model is also a response to the local area network (LAN) model, in which many isolated systems access a file server that provides no processing power. Client-server architecture provides integration of data and services and allows clients to be isolated from inherent complexities, such as communication protocols. The simplicity of the client-server architecture allows clients to make requests that are routed to the appropriate server. These requests are made in the form of transactions. Client transactions are often SQL or PL/SQL procedures and functions that access individual databases and services. The system is structured as a set of processes, called servers, that offer services to the users, called clients. The client-server model is usually based on a simple request/reply protocol, implemented with send/receive primitives or using ​remote procedure calls (RPC) or ​remote method invocation (RMI)​. RPC/RMI : 1. The client sends a request (invocation) message to the server asking for some service 2. The server does the work and returns a result (e.g. the data requested) or an error code if the work could not be performed. Sequence of events : 8
  • 9. 1. The client calls the client stub. The call is a local procedure call, with parameters pushed on to the stack in the normal way. 2. The client stub packs the parameters into a message and makes a system call to send the message. Packing the parameters is called marshalling. 3. The client's local operating system sends the message from the client machine to the server machine. 4. The local operating system on the server machine passes the incoming packets to the server stub. 5. The server stub unpacks the parameters from the message. Unpacking the parameters is called unmarshalling. 6. Finally, the server stub calls the server procedure. The reply traces the same steps in the reverse direction. 9