With a distributed application, where you have lots of clients and one main server, should you:
- Make the clients dumb and the server smart: clients are fast and non-invasive. Business rules are needed in only 1 place
- Make the clients smart and the server dumb: take as much load as possible off of the server
Additional info:
- Clients collect tons of data about the computer they are on. The server must analyze all of this info to determine the health of these computers
- The owners of the client computers are temperamental and will shut down the clients if the client starts to consume too many resources (thus negating the purpose of the distributed app in helping diagnose problems)
You should do as much client-side processing as possible. This will enable your application to scale better than doing processing server-side. To solve your temperamental user problem, you could look into making your client processes run at a very low priority so there’s no noticeable decrease in performance on the part of the user.