The Client Server Paradigm goes hand in hand with RPC. It also goes hand in hand with blocking and synchronous systems. It also doesn't go with real distributed programs, since unless you seriously twist the structure of your algorithm, you gain nothing in fault tolerance or parallelism (fault tolerance is all dealt with by getting RPC out of band errors and recalling a server elsewhere, parallelism usually by a side effect execution of a piece of code in a ;SPM_quot;server' through a change of roles for a future call back...).