Characteristics of SOA services
Granularity
Size / Scope of service
Encapsulation
Separation of interface form implementation
Modularity
Business processes can be decomposed into services which can be decomposed into smaller services
Loose-Coupling
Minimise dependancies to increase flexibilities
Isolation of Responsibilities
Similar functionality / information should be grouped into services
Autonomy
Services should be designed / implemented / deployed independently of each other
Re-Use
Functionality and Information should be re-used to prevent duplication of services
Dynamic Discovery / Binding
Services should be discovered at design time and bound at run time with dynamic service repositories
Stateless
Services don’t remember previous interactions – each interaction is wholly contained and independent from other interactions
Self-Describing
The SLA should describe the interface
Composable
Smaller services can be combined to create other services which, in turn can be combined to create other services.
Governed
Policies should describe how different users can use the services
Independent of Location, Language + Protocol
Authorised users should be able to use the service regardless of location, platform and language