Client–server model: Difference between revisions

Content deleted Content added
m Server-side: added citation
 
(8 intermediate revisions by 6 users not shown)
Line 32:
 
=== General concepts ===
"Server-side software" refers to a [[computer application]], such as a [[web server]], that runs on remote [[server (computing)#Hardware|server hardware]], reachable from a [[user (computing)|user]]'s local [[computer]], [[smartphone]], or other device.<ref>{{cite web |url=https://www.cloudflare.com/en-gb/learning/serverless/glossary/client-side-vs-server-side/ |title=What do client side and server side mean? Client side vs. server side |publisher=Cloudflare |access-date=17 April 2025 |url-status=live}}</ref>. Operations may be performed server-side because they require access to information or functionality that is not available on the [[client (computing)|client]], or because performing such operations on the [[client-side|client side]] would be slow, unreliable, or [[computer security|insecure]].
 
Client and server programs may be commonly available ones such as free or commercial [[web server]]s and [[web browser]]s, communicating with each other using standardized [[protocol (computing)|protocols]]. Or, [[programmer]]s may write their own server, client, and [[communications protocol]] which can only be used with one another.
Line 81:
The client-server model does not dictate that server-hosts must have more resources than client-hosts. Rather, it enables any general-purpose computer to extend its capabilities by using the shared resources of other hosts. [[Centralized computing]], however, specifically allocates a large number of resources to a small number of computers. The more computation is offloaded from client-hosts to the central computers, the simpler the client-hosts can be.<ref name="Columbia">{{cite journal |last1=Nieh |first1=Jason |last2=Yang |first2=S. Jae |last3=Novik |first3=Naomi |title=A Comparison of Thin-Client Computing Architectures |journal=Academic Commons |date=2000 |doi=10.7916/D8Z329VF |url=https://academiccommons.columbia.edu/doi/10.7916/D8Z329VF |access-date=28 November 2018 |language=en}}</ref> It relies heavily on network resources (servers and infrastructure) for computation and storage. A [[diskless node]] loads even its [[operating system]] from the network, and a [[computer terminal]] has no operating system at all; it is only an input/output interface to the server. In contrast, a [[rich client]], such as a [[personal computer]], has many resources and does not rely on a server for essential functions.
 
As [[microcomputer]]s decreased in price and increased in power from the 1980s to the late 1990s, many organizations transitioned computation from centralized servers, such as [[Mainframe computer|mainframe]]s and [[minicomputer]]s, to rich clients.<ref>{{Cite book | last1 = d'Amore | first1 = M. J. | last2 = Oberst | first2 = D. J. | doi = 10.1145/800041.801417 | chapter = Microcomputers and mainframes | title = Proceedings of the 11th annual ACM SIGUCCS conference on User services - SIGUCCS '83 | pages = 7 | year = 1983 | isbn = 978-0897911160 | s2cid = 14248076 }}</ref> This afforded greater, more individualized dominion over computer resources, but complicated [[information technology management]].<ref name="Columbia"/><ref name="tolia">{{Cite journal |last1 = Tolia |first1 = Niraj |last2 = Andersen |first2 = David G. |last3 = Satyanarayanan |first3 = M. |title = Quantifying Interactive User Experience on Thin Clients |journal = [[Computer (magazine)|Computer]] |volume = 39 |pages = 46–52 |number = 3 |date = March 2006 |publisher = [[IEEE Computer Society]] |url = https://www.cs.cmu.edu/~dga/papers/tolia06-ieee.pdf |doi = 10.1109/mc.2006.101 |s2cid = 8399655 }}</ref><ref>{{cite web |url=http://sqlmag.com/cloud/cloud-really-just-return-mainframe-computing |title=Is the Cloud Really Just the Return of Mainframe Computing? |last=Otey |first=Michael |date=22 March 2011 |website=[[SQL Server Pro]] |publisher=[[Penton Media]] |access-date=1 December 2013 |archive-url=https://web.archive.org/web/20131203011958/http://sqlmag.com/cloud/cloud-really-just-return-mainframe-computing |archive-date=3 December 2013 |url-status=dead }}</ref> During the 2000s, [[web application]]s matured enough to rival [[application software]] developed for a specific [[microarchitecture]]. This maturation, more affordable [[mass storage]], and the advent of [[service-oriented architecture]] were among the factors that gave rise to the [[cloud computing]] trend of the 2010s.<ref>{{Cite journal | last1 = Barros | first1 = A. P. | last2 = Dumas | first2 = M. | doi = 10.1109/MITP.2006.123 | title = The Rise of Web Service Ecosystems | journal = IT Professional | volume = 8 | issue = 5 | pages = 31 | year = 2006 | s2cid = 206469224 }}</ref>{{failed verification|date=March 2024}}
 
==Comparison with peer-to-peer architecture==
Line 90:
Load balancing is defined as the methodical and efficient distribution of network or application traffic across multiple servers in a server farm. Each load balancer sits between client devices and backend servers, receiving and then distributing incoming requests to any available server capable of fulfilling them.
 
In a [[peer-to-peer]] network, two or more computers (''peers'') pool their resources and communicate in a [[decentralized system]]. Peers are coequal, or equipotent [[Node (networking)|nodes]] in a non-hierarchical network. Unlike clients in a client-server or [[client-queue-client]] network, peers communicate with each other directly. <ref>{{Cite journal | last1 = Alharbi | first1 = A. | last2 = Aljaedi | first2 = A. | title = Peer-to-Peer Network Security Issues and Analysis: Review | journal = IJCSNS International Journal of Computer Science and Network Security | DOIdoi = 10.1007/978-3-540-45172-3_6 | year = 2004 }}</ref> In peer-to-peer networking, an [[algorithm]] in the peer-to-peer communications protocol balances [[Load (computing)|load]], and even peers with modest resources can help to share the load.<ref>{{Cite journal | last1 = Rao | first1 = A. | last2 = Lakshminarayanan | first2 = K. | last3 = Surana | first3 = S.| last4 = Manning Karp | first4 = R. | title = Load Balancing in Structured P2P Systems | journal = IJCSNS International Journal of Computer Science and Network Security | volume = 20 | pages = 74–88 | year = 2020 }}</ref> If a node becomes unavailable, its shared resources remain available as long as other peers offer it. Ideally, a peer does not need to achieve [[high availability]] because other, [[Redundancy (engineering)|redundant]] peers make up for any resource [[downtime]]; as the availability and load capacity of peers change, the protocol reroutes requests.
 
Both client-server and [[Master/slave (technology)|master-slave]] are regarded as sub-categories of distributed peer-to-peer systems.<ref>
Line 138:
[[Category:Inter-process communication]]
[[Category:Network architecture]]
[[Category:Distributed computing architecture]]