In software engineering, a service-oriented architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components (discrete pieces of code and/or data structures) that can be reused for different purposes. SOA design principles are used during the phases of systems development and integration.
SOA generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well-defined interface to access them. XML is often used for interfacing with SOA services, though this is not required. JSON is also becoming increasingly common.
SOA defines how to integrate widely disparate applications for a Web-based environment and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such a SOA implementation.
Service-orientation requires loose coupling of services with operating systems and other technologies that underlie applications. SOA separates functions into distinct units, or services, which developers make accessible over a network in order to allow users to combine and reuse them in the production of applications. These services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format, or by coordinating an activity between two or more services.
SOA can be seen in a continuum, from older concepts of distributed computing and modular programming, through SOA, and on to current practices of mashups, SaaS, and cloud computing (which some see as the offspring of SOA).
Read more about Service-oriented Architecture: Overview, Requirements, Principles, Types, Web Services Approach, Web-service Protocols, Other SOA Concepts, Definitions, Programmatic Service Contract, Network Management Architecture, Benefits, Challenges, Criticisms, SOA Manifesto
Famous quotes containing the word architecture:
“And when his hours are numbered, and the world
Is all his own, retiring, as he were not,
Leaves, when the sun appears, astonished Art
To mimic in slow structures, stone by stone,
Built in an age, the mad winds night-work,
The frolic architecture of the snow.”
—Ralph Waldo Emerson (18031882)