I already understand that Distributed Computing is the breakup of having multiple clients rely on a single source, and having each client utilize other clients for information. But my confusion comes from a type of distributed computing, where one type is the client server model. From what I know, the client server model has multiple clients using a network to access a server. How does this differentiate from calling it centralized computing?


As a contrast to "distributed", "centralized" means one computer. Sometimes (not so much nowadays) this may be a mainframe with multiple "dumb" terminals in which all the work happens on the mainframe and the terminals just take in inputs and display outputs. If the terminals aren't "dumb", meaning they can do non-trivial computation of their own (and, in particular, maintain state), then this is essentially an example of a distributed, client-server system. Your description of "distributed" corresponds to a peer-to-peer system which is but one form of a distributed system.

Admittedly, there has been a level shift in the terms, and/or they are applied at a logical level. For example, Facebook would be considered a "centralized" system insofar as it's controlled by a single entity, as opposed to Diaspora which is decentralized. I think it has become popular to use the term "distributed" when "decentralized" may be a better term. Of course, Facebook has many servers spread across the world, and so it's infrastructure is very much distributed. Similarly, a single data center for Facebook may logically be a single "server" but internally is a distributed system as well consisting of hundreds of physical servers.

Wikipedia does a pretty good job of outlining the key characteristics of a distributed system from a theoretical perspective:

Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.

Though I would add to that list that the communication medium is unreliable. The focus of distributed computing, in both theory and practice, is dealing with various forms of failure. Wikipedia's use of the more generic term "component" suggest that this notion can be applied at different levels. For example, you can fruitfully think of the various sub-systems of a single computer (on the motherboard) as forming a distributed system if your focus is on timing and failure issues. Even single multi-core CPUs are becoming more and more like distributed systems with the cores as the "components".

  • $\begingroup$ I've never heard the term "centralized" but doesn't it just mean "client-server"? $\endgroup$ – reinierpost May 7 '16 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.