Actions

Difference between revisions of "Client Server Model"

m
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''client-server model''' is a [[framework]] for [[computer]] [[network]] communications in which a computer [[system]] called a “[[Server|server]]” provides requested services to more than one computer or [[Computer Program|program]], called a “client.” The client-server model has become the predominant framework for providing services like email and [[Internet]] access to multiple clients.<ref>What does Client Server Model Mean?[https://businessintelligence.com/dictionary/client-server-model/ Business Intelligence]</ref>
+
The '''client-server model''' is a framework for [[computer]] [[network]] communications in which a computer [[system]] called a “[[server]]” provides requested services to more than one computer or program, called a “client.” The client-server model has become the predominant framework for providing services like email and [[Internet]] access to multiple clients.<ref>What does Client Server Model Mean?[https://businessintelligence.com/dictionary/client-server-model/ Business Intelligence]</ref>
  
The client-server model is a distributed communication framework of network processes among [[service]] requestors, clients and [[Service Provider|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:
+
The client-server model is a distributed communication framework of network processes among service requestors, 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)|Hypertext Transfer Protocol (HTTP)]]
+
*Hypertext Transfer Protocol (HTTP)|Hypertext Transfer Protocol (HTTP)
*[[Domain Name System (DNS)]]
+
*Domain Name System (DNS)
*[[SMTP (Simple Mail Transfer Protocol)|Simple Mail Transfer Protocol (SMTP)]]
+
*SMTP (Simple Mail Transfer Protocol)|Simple Mail Transfer Protocol (SMTP)
 
*[[Telnet]]
 
*[[Telnet]]
Clients include [[Web Browser|Web browsers]], chat applications, and email software, among others. Servers include [[World Wide Web (WWW)|Web]], [[Database (DB)|database]], [[application]], chat and email, etc.<ref>Definition of Client Server Model [https://www.techopedia.com/definition/18321/client-server-model Techopedia]</ref>
+
Clients include Web browsers, chat applications, and email software, among others. Servers include [[World Wide Web (WWW)|Web]], [[Database (DB)|database]], [[application]], chat and email, etc.<ref>Definition of Client Server Model [https://www.techopedia.com/definition/18321/client-server-model Techopedia]</ref>
  
A common way of organizing [[Software|software]] to run on [[Distributed Computing|distributed systems]] is to separate functions into two parts: clients and servers. A client is a program that uses services that other programs provide. The programs that provide the services are called servers. The client makes a request for a service, and a server performs that service. Server functions often require some resource [[management]], in which a server synchronizes and manages access to the resource, and responds to client requests with either [[data]] or status information. Client programs typically handle user interactions and often request data or initiate some data modification on behalf of a user. For example, a client can provide a form onto which a user (a person working at a data entry terminal, for example) can enter orders for a [[product]]. The client sends this order information to the server, which checks the product database and performs tasks that are needed for billing and shipping. Typically, multiple clients use a single server. For example, dozens or hundreds of clients can interact with a few servers that [[control]] database access. The client is isolated from the need to know anything about the actual resource [[manager]]. If you change the database that you are using, the server possibly needs to be modified, but the client does not need to be modified. Because usually fewer copies exist of the server than of the client, and because the servers are often in locations that are easier to update (for example, on central machines instead of on PCs that are running on users' desks), the update procedure is also simplified. Also, this approach provides additional security. Only the servers, not the clients, need access to the data that the resource manager controls. Clients can also access several different servers, and the servers themselves can act as clients to other servers. Exactly how the functions are distributed across servers is an application [[design]] decision. For example, a single server could provide all the services that a client needs, or the client could access multiple servers to perform different requests. The application designer must consider items such as scalability, location, and security. For example, are the clients and servers local or is the application distributed over a wide geographic area? Do the servers need to be on machines that are physically secure? Some servers are part of an application and are referred to as application servers. Other servers are not part of a specific application. Instead, any application can use them. For example, the CICS® Structured File Server (SFS) provides record-oriented file access for applications.<ref>Explaining Client Server Model [https://www.ibm.com/support/knowledgecenter/en/SSAL2T_8.1.0/com.ibm.cics.tx.doc/concepts/c_clnt_sevr_model.html IBM]</ref>
+
A common way of organizing [[software]] to run on [[Distributed Computing|distributed systems]] is to separate functions into two parts: clients and servers. A client is a program that uses services that other programs provide. The programs that provide the services are called servers. The client makes a request for a service, and a server performs that service. Server functions often require some resource management, in which a server synchronizes and manages access to the resource, and responds to client requests with either data or status information. Client programs typically handle user interactions and often request data or initiate some data modification on behalf of a user. For example, a client can provide a form onto which a user (a person working at a data entry terminal, for example) can enter orders for a product. The client sends this order information to the server, which checks the product database and performs tasks that are needed for billing and shipping. Typically, multiple clients use a single server. For example, dozens or hundreds of clients can interact with a few servers that control database access. The client is isolated from the need to know anything about the actual resource manager. If you change the database that you are using, the server possibly needs to be modified, but the client does not need to be modified. Because usually fewer copies exist of the server than of the client, and because the servers are often in locations that are easier to update (for example, on central machines instead of on PCs that are running on users' desks), the update procedure is also simplified. Also, this approach provides additional security. Only the servers, not the clients, need access to the data that the resource manager controls. Clients can also access several different servers, and the servers themselves can act as clients to other servers. Exactly how the functions are distributed across servers is an application design decision. For example, a single server could provide all the services that a client needs, or the client could access multiple servers to perform different requests. The application designer must consider items such as scalability, location, and security. For example, are the clients and servers local or is the application distributed over a wide geographic area? Do the servers need to be on machines that are physically secure? Some servers are part of an application and are referred to as application servers. Other servers are not part of a specific application. Instead, any application can use them. For example, the CICS® Structured File Server (SFS) provides record-oriented file access for applications.<ref>Explaining Client Server Model [https://www.ibm.com/support/knowledgecenter/en/SSAL2T_8.1.0/com.ibm.cics.tx.doc/concepts/c_clnt_sevr_model.html IBM]</ref>
  
 
Most modern network programming is based on a client/server model. A client/server application typically stores large quantities of data on an expensive, high-powered server, while most of the program logic and the user interface is handled by client software running on relatively cheap personal computers. In most cases, a server primarily sends data, while a client primarily receives it, but it is rare for one program to send or receive exclusively. A more reliable distinction is that a client initiates a conversation, while a server waits for clients to start conversations with it. Figure 1 illustrates both possibilities. In some cases, the same program may be both a client and a server.
 
Most modern network programming is based on a client/server model. A client/server application typically stores large quantities of data on an expensive, high-powered server, while most of the program logic and the user interface is handled by client software running on relatively cheap personal computers. In most cases, a server primarily sends data, while a client primarily receives it, but it is rare for one program to send or receive exclusively. A more reliable distinction is that a client initiates a conversation, while a server waits for clients to start conversations with it. Figure 1 illustrates both possibilities. In some cases, the same program may be both a client and a server.
Line 18: Line 18:
  
  
Some servers [[process]] and analyze the data before sending the results to the client. Such servers are often referred to as “application servers” to distinguish them from the more common file servers and database servers. A file or database server will retrieve information and send it to a client, but it won’t process that information. In contrast, an application server might look at an order entry database and give the clients reports about monthly sales trends. An application server is not a server that serves files that happen to be applications.<ref>Understanding Client Server Model [https://www.safaribooksonline.com/library/view/java-network-programming/1565928709/ch02s05.html Second Edition by Elliotte Rusty Harold]</ref>
+
Some servers process and analyze the data before sending the results to the client. Such servers are often referred to as “application servers” to distinguish them from the more common file servers and database servers. A file or database server will retrieve information and send it to a client, but it won’t process that information. In contrast, an application server might look at an order entry database and give the clients reports about monthly sales trends. An application server is not a server that serves files that happen to be applications.<ref>Understanding Client Server Model [https://www.safaribooksonline.com/library/view/java-network-programming/1565928709/ch02s05.html Second Edition by Elliotte Rusty Harold]</ref>
  
  
 
'''How Client Server Model Works with Example'''<ref>How Client Server Model Works with Example [https://techterms.com/definition/client-server_model Techterms]</ref><br />
 
'''How Client Server Model Works with Example'''<ref>How Client Server Model Works with Example [https://techterms.com/definition/client-server_model Techterms]</ref><br />
When a client requests a connection to a server, the server can either accept or reject the connection. If the connection is accepted, the server establishes and maintains a connection with the client over a specific protocol. For example, an email client may request an SMTP connection to a mail server in order to send a message. The SMTP application on the mail server will then request [[authentication]] from the client, such as the email address and password. If these credentials match an account on the mail server, the server will send the email to the intended recipient. Online multiplayer gaming also uses the client-server model. One example is Blizzard's Battle.net service, which hosts online games for World of Warcraft, StarCraft, Overwatch, and others. When players open a Blizzard application, the game client automatically connects to a Battle.net server. Once players log in to Battle.net, they can see who else is online, chat with other players, and play matches with or against other gamers. While Internet servers typically provide connections to multiple clients at a time, each physical machine can only handle so much traffic. Therefore, popular online services distribute clients across multiple physical servers, using a technique called distributed computing. In most cases, it does not matter which specific machine users are connected to, since the servers all provide the same service.
+
When a client requests a connection to a server, the server can either accept or reject the connection. If the connection is accepted, the server establishes and maintains a connection with the client over a specific protocol. For example, an email client may request an SMTP connection to a mail server in order to send a message. The SMTP application on the mail server will then request authentication from the client, such as the email address and password. If these credentials match an account on the mail server, the server will send the email to the intended recipient. Online multiplayer gaming also uses the client-server model. One example is Blizzard's Battle.net service, which hosts online games for World of Warcraft, StarCraft, Overwatch, and others. When players open a Blizzard application, the game client automatically connects to a Battle.net server. Once players log in to Battle.net, they can see who else is online, chat with other players, and play matches with or against other gamers. While Internet servers typically provide connections to multiple clients at a time, each physical machine can only handle so much traffic. Therefore, popular online services distribute clients across multiple physical servers, using a technique called distributed computing. In most cases, it does not matter which specific machine users are connected to, since the servers all provide the same service.
  
  
 
'''Early History of Client Server Model'''<ref>Early History of Client Server Model [https://en.wikipedia.org/wiki/Client%E2%80%93server_model Wikipedia]</ref><br />
 
'''Early History of Client Server Model'''<ref>Early History of Client Server Model [https://en.wikipedia.org/wiki/Client%E2%80%93server_model Wikipedia]</ref><br />
An early form of client–server model is remote job entry, dating at least to OS/360 (announced 1964), where the request was to run a job, and the response was the [[output]]. While formulating the client–server model in the 1960s and 1970s, computer scientists building ARPANET (at the Stanford Research Institute) used the terms server-host (or serving host) and user-host (or using-host), and these appear in the early documents RFC 5 and RFC 4. This usage was continued at Xerox PARC in the mid-1970s. One context in which researchers used these terms was in the design of a computer network programming language called Decode-Encode Language (DEL). The purpose of this language was to accept commands from one computer (the user-host), which would return status reports to the user as it encoded the commands in network packets. Another DEL-capable computer, the server-host, received the packets, decoded them, and returned formatted data to the user-host. A DEL program on the user-host received the results to present to the user. This is a client–server transaction. Development of DEL was just beginning in 1969, the year that the United States Department of Defense established ARPANET (predecessor of Internet).
+
An early form of client–server model is remote job entry, dating at least to OS/360 (announced 1964), where the request was to run a job, and the response was the output. While formulating the client–server model in the 1960s and 1970s, computer scientists building ARPANET (at the Stanford Research Institute) used the terms server-host (or serving host) and user-host (or using-host), and these appear in the early documents RFC 5 and RFC 4. This usage was continued at Xerox PARC in the mid-1970s. One context in which researchers used these terms was in the design of a computer network programming language called Decode-Encode Language (DEL). The purpose of this language was to accept commands from one computer (the user-host), which would return status reports to the user as it encoded the commands in network packets. Another DEL-capable computer, the server-host, received the packets, decoded them, and returned formatted data to the user-host. A DEL program on the user-host received the results to present to the user. This is a client–server transaction. Development of DEL was just beginning in 1969, the year that the United States Department of Defense established ARPANET (predecessor of Internet).
  
  
 
'''Client-Server vs. Peer-to-Peer and Other Models'''<ref>Client-Server vs. Peer-to-Peer and Other Models [https://www.lifewire.com/introduction-to-client-server-networks-817420 Livewire]</ref><br />
 
'''Client-Server vs. Peer-to-Peer and Other Models'''<ref>Client-Server vs. Peer-to-Peer and Other Models [https://www.lifewire.com/introduction-to-client-server-networks-817420 Livewire]</ref><br />
The client-server model of networking was originally developed to share access to database applications among larger numbers of users. Compared to the [[mainframe]] model, client-server networking gives better flexibility as connections can be made on-[[demand]] as needed rather than being fixed. The client-server model also supports modular applications that can make the job of creating software easier. In so-called two tier and three tier types of client-server systems, software applications are separated into modular components, and each component is installed on clients or servers specialized for that subsystem. Client-server is just one approach to managing network applications. The primary alternative to client-server, peer-to-peer networking, treats all devices as having equivalent capability rather than specialized client or server roles. Compared to client-server, peer to peer networks offer some advantages such as better flexibility in expanding the network to handle a large number of clients. Client-server networks generally offer advantages over peer-to-peer as well, such as the ability to manage applications and data in one centralized location.
+
The client-server model of networking was originally developed to share access to database applications among larger numbers of users. Compared to the mainframe model, client-server networking gives better flexibility as connections can be made on-demand as needed rather than being fixed. The client-server model also supports modular applications that can make the job of creating software easier. In so-called two tier and three tier types of client-server systems, software applications are separated into modular components, and each component is installed on clients or servers specialized for that subsystem. Client-server is just one approach to managing network applications. The primary alternative to client-server, peer-to-peer networking, treats all devices as having equivalent capability rather than specialized client or server roles. Compared to client-server, peer to peer networks offer some advantages such as better flexibility in expanding the network to handle a large number of clients. Client-server networks generally offer advantages over peer-to-peer as well, such as the ability to manage applications and data in one centralized location.
  
  
Line 43: Line 43:
 
*Disadvantages
 
*Disadvantages
 
**Traffic congestion has always been a problem in the paradigm of C / S. When a large number of simultaneous clients send requests to the same server might cause many problems for this (to more customers, more problems for the server). On the contrary, P2P networks each node in the network server also makes more nodes, the better bandwidth you have.
 
**Traffic congestion has always been a problem in the paradigm of C / S. When a large number of simultaneous clients send requests to the same server might cause many problems for this (to more customers, more problems for the server). On the contrary, P2P networks each node in the network server also makes more nodes, the better bandwidth you have.
**The paradigm of C / S Classic does not have the robustness of a network P2P. When a server is down, [[customer]] requests cannot be met. In most part, P2P networks resources are usually distributed across multiple nodes of the network. Although some out or abandon download, others may still end up getting data download on rest of the nodes in the network.
+
**The paradigm of C / S Classic does not have the robustness of a network P2P. When a server is down, customer requests cannot be met. In most part, P2P networks resources are usually distributed across multiple nodes of the network. Although some out or abandon download, others may still end up getting data download on rest of the nodes in the network.
**The software and [[hardware]] of a server are usually very decisive. A regular computer hardware staff may not be able to serve a certain number of customers. Usually you need specific software and hardware, especially on the server side, to meet the work . Of course, this will increase the cost.
+
**The software and hardware of a server are usually very decisive. A regular computer hardware staff may not be able to serve a certain number of customers. Usually you need specific software and hardware, especially on the server side, to meet the work . Of course, this will increase the cost.
 
**The client does not have the resources that may exist on the server. For example, if the application is a Web, we cannot write the hard disk of the client or print directly on printers without taking before the print preview window of the browser.
 
**The client does not have the resources that may exist on the server. For example, if the application is a Web, we cannot write the hard disk of the client or print directly on printers without taking before the print preview window of the browser.
  
Line 52: Line 52:
 
*The number of people: In most client-server network, few servers are always involved which make the setup looks  like a waste of time. A client server network is quite difficult to set  up, so it requires lots of servers so as not to render the application useless.   
 
*The number of people: In most client-server network, few servers are always involved which make the setup looks  like a waste of time. A client server network is quite difficult to set  up, so it requires lots of servers so as not to render the application useless.   
 
*It requires skilled expertise: A lot of client-server network are not well build and managed. Setting up a client server network is so complex, so it requires skilled technician and maintenance engineers to handle it.  
 
*It requires skilled expertise: A lot of client-server network are not well build and managed. Setting up a client server network is so complex, so it requires skilled technician and maintenance engineers to handle it.  
*The servers are  quite expensive: The servers  are being designed to meet high [[standard]] for it to  be reliable  and have  better performance.  Getting the  good design  and [[architecture]] for the client-server  system, contributes to it being expensive.
+
*The servers are  quite expensive: The servers  are being designed to meet high standard  for it to  be reliable  and have  better performance.  Getting the  good design  and architecture for the client-server  system, contributes to it being expensive.
*Security: The most of all is the security issue. The client operating system is easily accessed by servers, and this expose the client system to a number of problems .  The message being exchange between the  client and  server leads  to lot  of security  challenges.  A  lot of  things are  encompassing by  the security challenges,  some  of  which  include: physical  damage,  threats  and  [[virus]] attack. In  other  to  have a  secured network, there are some basic rules to be followed such as;
+
*Security: The most of all is the security issue. The client operating system is easily accessed by servers, and this expose the client system to a number of problems .  The message being exchange between the  client and  server leads  to lot  of security  challenges.  A  lot of  things are  encompassing by  the security challenges,  some  of  which  include: physical  damage,  threats  and  virus  attack. In  other  to  have a  secured network, there are some basic rules to be followed such as;
 
**The Audit network
 
**The Audit network
 
**The discretionary control  
 
**The discretionary control  
Line 61: Line 61:
  
 
===See Also===
 
===See Also===
[[Client Server Architecture]]<br />
+
*[[Client Server Architecture]]
[[Client Maturity Model]]<br />
+
*[[Server Operating System]]
[[Client Outsourcing Maturity Model (COMM)]]<br />
 
[[Object Oriented Approach]]<br />
 
[[Object Oriented Design (OOD)]]<br />
 
[[Object Oriented Methodology (OOM)]]<br />
 
[[Object Oriented Modeling (OOM)]]<br />
 
[[Object Oriented Programming (OOP)]]<br />
 
[[Server-Side Rendering]]<br />
 
[[Server-Side Scripting]]<br />
 
[[Server Operating System]]<br />
 
[[Serverless Architecture]]<br />
 
[[Serverless Framework]]<br />
 
[[Serverless Computing]]<br />
 
  
  

Latest revision as of 21:25, 6 December 2022

The client-server model is a framework for computer network communications in which a computer system called a “server” provides requested services to more than one computer or program, called a “client.” The client-server model has become the predominant framework for providing services like email and Internet access to multiple clients.[1]

The client-server model is a distributed communication framework of network processes among service requestors, 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)|Hypertext Transfer Protocol (HTTP)
  • Domain Name System (DNS)
  • SMTP (Simple Mail Transfer Protocol)|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.[2]

A common way of organizing software to run on distributed systems is to separate functions into two parts: clients and servers. A client is a program that uses services that other programs provide. The programs that provide the services are called servers. The client makes a request for a service, and a server performs that service. Server functions often require some resource management, in which a server synchronizes and manages access to the resource, and responds to client requests with either data or status information. Client programs typically handle user interactions and often request data or initiate some data modification on behalf of a user. For example, a client can provide a form onto which a user (a person working at a data entry terminal, for example) can enter orders for a product. The client sends this order information to the server, which checks the product database and performs tasks that are needed for billing and shipping. Typically, multiple clients use a single server. For example, dozens or hundreds of clients can interact with a few servers that control database access. The client is isolated from the need to know anything about the actual resource manager. If you change the database that you are using, the server possibly needs to be modified, but the client does not need to be modified. Because usually fewer copies exist of the server than of the client, and because the servers are often in locations that are easier to update (for example, on central machines instead of on PCs that are running on users' desks), the update procedure is also simplified. Also, this approach provides additional security. Only the servers, not the clients, need access to the data that the resource manager controls. Clients can also access several different servers, and the servers themselves can act as clients to other servers. Exactly how the functions are distributed across servers is an application design decision. For example, a single server could provide all the services that a client needs, or the client could access multiple servers to perform different requests. The application designer must consider items such as scalability, location, and security. For example, are the clients and servers local or is the application distributed over a wide geographic area? Do the servers need to be on machines that are physically secure? Some servers are part of an application and are referred to as application servers. Other servers are not part of a specific application. Instead, any application can use them. For example, the CICS® Structured File Server (SFS) provides record-oriented file access for applications.[3]

Most modern network programming is based on a client/server model. A client/server application typically stores large quantities of data on an expensive, high-powered server, while most of the program logic and the user interface is handled by client software running on relatively cheap personal computers. In most cases, a server primarily sends data, while a client primarily receives it, but it is rare for one program to send or receive exclusively. A more reliable distinction is that a client initiates a conversation, while a server waits for clients to start conversations with it. Figure 1 illustrates both possibilities. In some cases, the same program may be both a client and a server.


A Client/Server Connection
Client Server Model
Figure 1. source: Elliotte Rusty Harold


Some servers process and analyze the data before sending the results to the client. Such servers are often referred to as “application servers” to distinguish them from the more common file servers and database servers. A file or database server will retrieve information and send it to a client, but it won’t process that information. In contrast, an application server might look at an order entry database and give the clients reports about monthly sales trends. An application server is not a server that serves files that happen to be applications.[4]


How Client Server Model Works with Example[5]
When a client requests a connection to a server, the server can either accept or reject the connection. If the connection is accepted, the server establishes and maintains a connection with the client over a specific protocol. For example, an email client may request an SMTP connection to a mail server in order to send a message. The SMTP application on the mail server will then request authentication from the client, such as the email address and password. If these credentials match an account on the mail server, the server will send the email to the intended recipient. Online multiplayer gaming also uses the client-server model. One example is Blizzard's Battle.net service, which hosts online games for World of Warcraft, StarCraft, Overwatch, and others. When players open a Blizzard application, the game client automatically connects to a Battle.net server. Once players log in to Battle.net, they can see who else is online, chat with other players, and play matches with or against other gamers. While Internet servers typically provide connections to multiple clients at a time, each physical machine can only handle so much traffic. Therefore, popular online services distribute clients across multiple physical servers, using a technique called distributed computing. In most cases, it does not matter which specific machine users are connected to, since the servers all provide the same service.


Early History of Client Server Model[6]
An early form of client–server model is remote job entry, dating at least to OS/360 (announced 1964), where the request was to run a job, and the response was the output. While formulating the client–server model in the 1960s and 1970s, computer scientists building ARPANET (at the Stanford Research Institute) used the terms server-host (or serving host) and user-host (or using-host), and these appear in the early documents RFC 5 and RFC 4. This usage was continued at Xerox PARC in the mid-1970s. One context in which researchers used these terms was in the design of a computer network programming language called Decode-Encode Language (DEL). The purpose of this language was to accept commands from one computer (the user-host), which would return status reports to the user as it encoded the commands in network packets. Another DEL-capable computer, the server-host, received the packets, decoded them, and returned formatted data to the user-host. A DEL program on the user-host received the results to present to the user. This is a client–server transaction. Development of DEL was just beginning in 1969, the year that the United States Department of Defense established ARPANET (predecessor of Internet).


Client-Server vs. Peer-to-Peer and Other Models[7]
The client-server model of networking was originally developed to share access to database applications among larger numbers of users. Compared to the mainframe model, client-server networking gives better flexibility as connections can be made on-demand as needed rather than being fixed. The client-server model also supports modular applications that can make the job of creating software easier. In so-called two tier and three tier types of client-server systems, software applications are separated into modular components, and each component is installed on clients or servers specialized for that subsystem. Client-server is just one approach to managing network applications. The primary alternative to client-server, peer-to-peer networking, treats all devices as having equivalent capability rather than specialized client or server roles. Compared to client-server, peer to peer networks offer some advantages such as better flexibility in expanding the network to handle a large number of clients. Client-server networks generally offer advantages over peer-to-peer as well, such as the ability to manage applications and data in one centralized location.


Advantages And Disadvantages of Client Server Model[8]

  • Advantages
    • Centralization of control: access, resources and integrity of the data are controlled by the dedicated server so that a program or unauthorized client cannot damage the system. This centralization also facilitates task of updating data or other resources (better than the networks P2P).
    • Scalability: You can increase the capacity of clients and servers separately. Any element can be increased (or enhanced) at any time, or you can add new nodes to the network (clients or servers).
    • Easy maintenance: distribute the roles and responsibilities to several standalone computers, you can replace, repair, upgrade, or even move a server, while customers will not be affected by that change (or minimally affect). This independence of the changes is also known as encapsulation.
    • There are technologies sufficiently developed, designed for the paradigm of C / S to ensure security in transactions, interface friendliness, and ease of use.
  • Disadvantages
    • Traffic congestion has always been a problem in the paradigm of C / S. When a large number of simultaneous clients send requests to the same server might cause many problems for this (to more customers, more problems for the server). On the contrary, P2P networks each node in the network server also makes more nodes, the better bandwidth you have.
    • The paradigm of C / S Classic does not have the robustness of a network P2P. When a server is down, customer requests cannot be met. In most part, P2P networks resources are usually distributed across multiple nodes of the network. Although some out or abandon download, others may still end up getting data download on rest of the nodes in the network.
    • The software and hardware of a server are usually very decisive. A regular computer hardware staff may not be able to serve a certain number of customers. Usually you need specific software and hardware, especially on the server side, to meet the work . Of course, this will increase the cost.
    • The client does not have the resources that may exist on the server. For example, if the application is a Web, we cannot write the hard disk of the client or print directly on printers without taking before the print preview window of the browser.


Issues And Challenges In Client-Server System[9]
There are lots of issues in a client-server system, some of which include:

  • The number of people: In most client-server network, few servers are always involved which make the setup looks like a waste of time. A client server network is quite difficult to set up, so it requires lots of servers so as not to render the application useless.
  • It requires skilled expertise: A lot of client-server network are not well build and managed. Setting up a client server network is so complex, so it requires skilled technician and maintenance engineers to handle it.
  • The servers are quite expensive: The servers are being designed to meet high standard for it to be reliable and have better performance. Getting the good design and architecture for the client-server system, contributes to it being expensive.
  • Security: The most of all is the security issue. The client operating system is easily accessed by servers, and this expose the client system to a number of problems . The message being exchange between the client and server leads to lot of security challenges. A lot of things are encompassing by the security challenges, some of which include: physical damage, threats and virus attack. In other to have a secured network, there are some basic rules to be followed such as;
    • The Audit network
    • The discretionary control
    • The object re-use
    • Authorization and identification


See Also


References

  1. What does Client Server Model Mean?Business Intelligence
  2. Definition of Client Server Model Techopedia
  3. Explaining Client Server Model IBM
  4. Understanding Client Server Model Second Edition by Elliotte Rusty Harold
  5. How Client Server Model Works with Example Techterms
  6. Early History of Client Server Model Wikipedia
  7. Client-Server vs. Peer-to-Peer and Other Models Livewire
  8. What are the Advantages And Disadvantages of Client Server Model? ESDS
  9. Issues And Challenges In Client-Server System Shakirat Haroon Sulyman


Further Reading