ABSTRACT

Executive summary: Service-Oriented Architecture (SOA) is a vendor and technology-independent approach to software design in which discrete software elements provide “services” to other elements via a defined protocol. Each service is a self-contained unit of functionality independent of other units—a “black box” whose internals are hidden. This approach achieves both high cohesion and loose coupling, both highly desirable characteristics. SOA embodies many of the same ideas found in object-oriented development, carried to the level of whole systems. There are two distinct aspects of SOA: (1) creating the services initially, which is conventional development; (2) assembling new applications from services, which takes reuse to the same level as mashups in terms of ease and speed.