There is a common set of principles most associated with service orientation.
As a result of research the author performed for SOA Systems (during which service orientation, as a design paradigm, was studied within the context of all major vendor platforms and existing frameworks and blueprints) this set of common service-orientation principles has been identified and defined.
Below are brief descriptions of each.
Services are autonomous — The logic governed by a service resides within an explicit boundary. The service has control within this boundary, and is not dependent on other services for it to execute its governance.
Services share a formal contract — In order for services to interact, they need not share anything but a collection of published metadata that describes each service and defines the terms of information exchange.
Services are loosely coupled — Dependencies between the underlying logic of a service and its consumers are limited to conformance of the service contract.
Services abstract underlying logic — Underlying logic, beyond what is expressed in the service contract metadata, is invisible to the outside world.
Services are composable — Services may compose others, allowing logic to be represented at different levels of granularity. This promotes reusability and the creation of service abstraction layers.
Services are reusable — Regardless of whether immediate reuse opportunities exist, services are designed to support potential reuse.
Services are stateless — Services should be designed to maximize statelessness even if that means deferring state management elsewhere.
Services are discoverable — Services should allow their descriptions to be discovered and understood by humans and service requestors that may be able to make use of their logic.