Service Oriented Architecture (SOA)

Simply stated, SOA is an architecture to provide maximum flexibility and reusability for modern businesses. This is done through business components that offer a set of services. The main idea of SOA is that the applications should be decomposed into reusable components that deliver the business services. Thus as more services are needed, new components with the needed services can be added easily. For example, a bank provides a set of services (e.g., deposits, withdrawals, fund transfers) and these services are provided through components that can be combined into banking applications. An SOA is based on three fundamental features (see the figure):

Even though a longer list of SOA features can be found in the literature, the aforementioned three features embody the main requirements of an SOA from a practical point of view. See a short tutorial on SOA for a conceptual overview.