Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In real world networking software following c/s model, there are always proxy server processes between clients and server processes dealing with business logic, why we need proxy to isolate the logic part and clients? What's the benifit of this architecture?

share|improve this question
To abstract away the network? – user1249 Aug 25 '12 at 14:44

Clients became plugins to the business logic. The server offers an API and the clients use it. Clients can change and evolve and be swapped with other clients, the server and the business logic will never know or care about this.

Dependency is inverted, clients depend on server and server with it's business logic does not depend on the clients. A proxy, is a good way to offer an abstract interface, an API on which any client can rely.

Control still flows from business logic towards external clients.

Imagine Twitter, if it would not have implemented such a design, there would have been only one single (or only a few) clients to twitter and all would be dependent on the server and vice versa.

share|improve this answer

Your Answer


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.