A service-oriented architecture (SOA) is a technically partitioned architecture promoting the reuse of components. Services are implemented through components organized in layers for application services, business services and enterprise services.
The communication of the components is over an orchestrated enterprise service bus (ESB) using either proprietary API, or one of the message exchange methods like – SOAP, or RPC. Defined through a service exchange contract to enable integration points to various other services. Java has standardized API and SDK’s for implementing SOA.
The web SOA gave rise to the first SaaS (Software as a Service) solutions through Web service API’s. Web SOA uses standardized technologies like XML, Web Services Description Language (WSDL), Simple Object Access Protocol (SOAP) and Universal Description, Discovery, and Integration (UDDI).
The web SOA backend is organized in a multi-tier layered architecture pattern with emphasis on low coupling and increased reuse. This is enabled with the use of service registry and service discovery tools which help services communicate through an enterprise service bus integration layer