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?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
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.