1] Isolation : Changing the internals of one service does not force changes, rebuilding or restarting of other services.
2] Behavior is separated from constraints : Relocating, outsourcing or restricting a service requires changes only in the policy but not to the service itself.
3] Location independent : Whether a service is on the same machine or different, it can be accessed in the similar manner.
4] Scale invariant : Services scale in all the directions. Let's take an example a service can be scaled out by fronting it with a router service that distributes traffic among a farm of services.
5] Transport/protocol/format neutral : The communication details between parties are flexible but not fixed.
6] Time independent : Services can make use of queue-based communication, when they do not have to be online at the same time to interact.
7] Platform and implementation independent : A service need not know anything about another service's execution environment to interact with it.
8] Address agnostic : Services can employ a discovery mechanism to locate each other without any prior notion about where they reside.