What is SOA and what are its advantages?
SOA is an “architectural approach” to designing systems. It promotes the creation of services that encapsulate a well defined piece of logic, that can then be reused by other services that provide additional functionality, and at the end be used to compose applications that address business problems. In this layered approach you typically have: 1) integration services that hook into legacy systems and expose data and integration functionality (for example, fetch or store customer data from a CRM system) 2) business services, that use the integration services to provide some level of business functionality (for example, a service that takes the customer data from the integration service described above and calculates the average deal size for that customer). You can have several layers of business services, that provide more and more functionality by assembling lower level services 3) Composite applications: apps that are created by combining several services to provide the end user int