An Service-oriented architecture provides the implementation patterns required to construct applications from loosely coupled services. In order to build such applications, an implementation environment should provide the following capabilities:
- Definition of services independent of their implementation
- Implementation and hosting of services as a provider
- Location and usage of services as a consumer
- Assembly of services from other services and business rules
- Support for synchronous, asynchronous and conversational services
- Orchestration of application presentation built on services and rules
- Support for multiple forms of human interaction
- Automated data transformation between disparate data structures
- Provisioning of local and remote servicesSupport for simulating, testing and debugging of services
