SOA is a software design approach that develops information systems by providing application functionality as services to other applications. Services are self-contained business functionalities that communicate using messages, are discoverable, loosely coupled, interoperable, and orchestrated. SOA aims to isolate business logic and enable reusable components as services that can be exposed through ESBs. The most important implementation of SOA is web services, where the SOA model is based on the web services concept architecture.