Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation.
Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.
A service is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports, etc.) and:
An architectural style is the combination of distinctive features in which architecture is performed or expressed.
SOA is based on the design of solutions using services – which mirror real-world business activities – comprising the enterprise (or inter-enterprise) business processes. Service representation utilizes business descriptions to provide context (i.e., business process, goal, rule, policy, service interface, service component, etc.).
SOA places unique requirements on the infrastructure. Because of this, it is recommended that implementations use open standards to realize interoperability and location transparency. For instance, those requiring the use of those services must somehow document the availability of services in a place easily accessible. An SOA-specific Directory Service and an Enterprise Service Bus are two examples of technology implementations that require adherence to relevant open standards to achieve the interoperability that SOA promises.
Implementations are enterprise environment-specific – they are constrained or enabled by context and must be described within that context. Given that, SOA requires strong governance of service representation and implementation.
Enterprise architecture provides frameworks, tools, and techniques to assist organizations with the development and maintenance of their SOAs. Some of the key benefits that enterprise architecture provides include:
Enterprise architecture becomes a foundation for service-orienting an organization because it links stakeholders together, ensuring that the needs of each stakeholder community are met and that each stakeholder community is aware of appropriate context. This linkage is the foundation for interoperability and re-use.
Through its linking of the business context to information technology, enterprise architecture readily identifies and provides justification for the cost of change programs in relation to the business value to be derived from the effort. Enterprise architecture may provide the context and analysis capabilities to support:
Without enterprise architecture, the risk may increase for: