Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

For distributed applications, emphasis mine:

Where classic software systems of the past century were mostly based on Client–server models and Client-centric application development, both ultimately run on one single computer, be it the client computer or the server.

  1. I understand what client-server models are, but I was wondering what client-centric model is?
  2. How shall one understand that "both ultimately run on one single computer, be it the client computer or the server"? Does this apply to both client-server models and client-centric models?
share|improve this question
add comment

1 Answer

up vote 3 down vote accepted

The Wikipedia article doesn't cite sources for that phrase, and I couldn't find a reference to "client-centric application" in my distributed computing book, however I believe I can try to infer something.

To me, that sentence is describing two prevalent paradigms in computing - the client-server model, and a non-distributed client-side application. This is in contrast to various multi-node architectures, such as peer-to-peer. In a "client-centric" application, the work is done by each individual client. There might be a distributed data store or database of some kind remotely, but the data is requested by each client as needed, processed, and displayed to the user or the data store is manipulated. The data side is fairly dumb, just serving as a warehouse, perhaps with some minimal validation and error correction.

In their definition of "client-server", it also appears that they are treating the "server" as a single entity. Although it might be composed of multiple physical devices, this is not visible to clients. They see a single entity that performs the processing and storage component of the application, while the client is responsible for handling user interactions and data display.

I believe the assessment is backed up by the next part of the Wikipedia article that you linked to.

With the introduction of Intelligent agents, Web APIs and Web 2.0 and the emergence of Cloud computing more and more "multiple machine" approaches emerge, where many systems on several locations can take care of Load balancing (computing) by re-distribution of specific tasks, or where each of these machines serves a specific purpose or task.

This makes it seem like there's a shift in the paradigm where the existence of multiple nodes is not hidden from the clients. Instead, the existence of multiple nodes might be transparent (in a more peer-to-peer style system) or slightly less transparent (in a load-balanced system, where the clients see a single point of reference, but there are multiple nodes that would be responsible for various clients).


To be honest, that Wikipedia article is extremely lacking. If you are interested in distributed computing, I would recommend looking at two books - Distributed Systems: Concepts and Design and Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing. You'll probably learn a lot more from those books than Wikipedia, since they are fairly common publications for introducing the general design and implementation of distributed systems.

share|improve this answer
    
Thanks! (1) In "that sentence is describing two prevalent paradigms in computing - the client-server model, and a non-distributed client-side application. This is in contrast to various multi-node architectures, such as peer-to-peer", I was wondering if you mean all the models that are not client-server models are client-centric models, such as pear-to-peer is a special kind of client-centric models? –  Tim Jul 18 '11 at 16:27
    
(2) In en.wikipedia.org/wiki/Distributed_computing#Architectures, there are several models that are listed:client–server, 3-tier architecture, n-tier architecture, distributed objects, loose coupling, or tight coupling. Are all client-centric models except client-server models? –  Tim Jul 18 '11 at 16:31
    
No. Client-centric, appears to me, to refer to applications that reside only on a client (and perhaps might access data stored remotely by querying a remote data store or dabase). Client-server, n-tier architecture, and the others are all distributed systems. Client-centric is either (1) non-distributed or (2) performs computation on client-side, with a "dumb" data store that might be shared. However, I can't find any other references to the term "client-centric", so I'm just interpreting to the best of my ability. I could be off base on this. –  Thomas Owens Jul 18 '11 at 16:57
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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