Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA) is an approach to software design that establishes distributed, reusable units of software functionality, known as software services, as the foundation for computing. These services aren't designed around one specific business scenario or process but, rather, are engineered to perform generic business tasks, such as the scheduling, rescheduling, and canceling of an appointment. Such generic functionality enables services to be used and reused by other software services, applications, and/or humans within a single business domain and across multiple business domains.
SOA & Software Services
SOA provides guidelines for decomposing monolithic, legacy software applications into reusable, distributed software modules, known as software services. These services can be used and reused by service-oriented applications both within one business domain and across several business domains.
- A monolithic, legacy software application.
- With the help of SOA guidelines, the legacy application is decomposed into units of software functionality, or software services.
- Software services as autonomous, distributed components.
- The software services can then be linked to four distinct, service-oriented applications.
- The four applications using the software services derived from the legacy application in
As the design principles facilitating the development of reusable services, SOA stipulates that services be highly modular, decoupled, platform independent, and standards compliant in design. Additionally, SOA calls for framework mechanisms that can identify, categorize, provision, and monitor services.
Through these principles, SOA effectively enables developers to realize service-oriented computing environments—environments that reduce the development time and maintenance requirements for applications and allow computing functionality to be added, adjusted, and combined in an efficient and effective manner.
Service design and implementation concepts, with an emphasis on service abstraction, autonomy, reusability, and composability.
Enterprise Service Bus (ESB) design and implementation concepts as well as performance optimization strategies. Emphasis on routing, protocol transformation, message transformation, message enhancement, service mapping, message processing, transaction management, and access control and security.
Service Discovery mechanisms, including service registry and service repository facilities. Emphasis on semantic search and discovery capabilities.
Intelligent Mediator Services involving agents and rules engines.
Business Process Management (BPM) as well as process choreography and orchestration.