Services should be distributable, that is they need not and indeed should not run in the same process as the consumer. Services that run in the same process offer no possibility of runtime reuse to other consumers.
In order to achieve this goal you minimally need two things: a remoting framework and location transparency
In order to achieve this goal you minimally need two things: a remoting framework and location transparency