SOA
In today’s world of shortened product cycles and heightened competition, IT’s task is to create a flexible environment; to ensure that the enterprise is strategically positioned to foster innovation; to respond to changing needs faster than ever before by reducing time to market for new services; and to drive down the cost of integration and total cost of ownership (TCO). This flexibility is made possible through the use of a Service-Oriented Architecture (SOA) — a design paradigm based on a loosely coupled collection of reusable services. The SOA enables agility through aligning the business and IT, providing business processes that embody core capabilities to employees, customers, suppliers, and partners. The set of infrastructure tools employed by IT to build, configure, deploy, monitor, and manage services is called the SOA platform. As technologies that facilitate service communication and orchestration are standardized, enterprises are able to fully realize the benefits of SOA without fear of vendor lock-in.
A service-oriented architecture – architecture is essentially a collection of services (integrated suite of services that can be used within multiple business domains). These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.
SOA is not just architecture of services seen from a technology perspective, but the policies, practices, and frameworks by which we ensure the right services are provided and consumed.
So, SOA is the software infrastructure and tools you use to build, configure, deploy, monitor, and manage services; a style of design, deployment, and management of both applications and software infrastructure in which:
- Applications are organized into business units of work (business services) that are (typically) network accessible
- Service interface definitions are first-class development artifacts, receiving the same degree of design attention
- Quality of service (QoS) characteristics (security, transactions, performance, style of service interaction, and so on)
- Everything is explicitly identified and specified for each service
- Software infrastructure takes active responsibility for managing service access, execution, and QoS
- Services and their metadata are catalogued in a repository and discoverable by development tools and management tools
- Protocols within the architecture are predominantly, but not exclusively, based on industry standards
- Stack of standards around Simple Object Access Protocol or SOAP
Service Descriptions
- Service Interface
- Messages and Message Exchange
- Conversational Services
- Synchronous versus Asynchronous