Client/Server Applications
Actual functions performed by the application can be split up between client and server
Optimize platform and network resources
Optimize the ability of users to perform various tasks
Optimize the ability to cooperate with one another using shared resources