(SOA) Systems built from loosely-coupled software modules deployed as services, typically communicating via a network. This allows different modules to be implemented and deployed in different ways, e.g. owned by different organisations, developed by different teams, written in different programming languages, running on different hardware and operating systems. The key to making it work is interoperability and standards so that modules can exchange data.
SOAs often support service discovery, allowing a service to be changed without having to explicitly reconnect all its clients.
Many different frameworks have been developed for SOA, including SOAP, REST, RPC, DCOM, CORBA, web services and WCF.