IT Glossary

DEFINING THE IT INDUSTRY

Service-Oriented Architecture (SOA)

Service-oriented architecture (SOA) is the dominant architectural style for agile business applications, and is used when enterprises anticipate application sharing and frequent system changes.

SOA helps business managers and analysts develop new business processes, and modify processes more quickly and at a lower cost. Gartner coined the term “SOA” and published the first reports in the industry on it in 1996. SOA enables new business models that involve the introduction of new products and services, particularly those that require the online cooperation of multiple business units.

Use SOA when designing most large business applications, or when integrating some combination of purchased packages, legacy applications and services. Begin by implementing smaller SOA projects that establish understanding, policies and best practices for SOA development before embarking on a large-scale project.

SOA can be used to support two types of applications. For some applications, the focus is on the development of a fundamentally new functionality, where most, if not all, the components of the application will be built under the control and management of the same organization. In this case, that organization can enforce a certain consistency in architecture, methodology and data model.

In the second type, a new application will be built that, for the most part, leverages multiple resources, many of which were built at different times, by different people, using different technologies and different data models. In this case, different parts of the organization or different organizations control the various components that will make up the application, and, in all likelihood, the primary concerns of these various component owners will not be entirely congruent.

Both types of applications benefit from SOA. The value proposition for SOA derives from:

  • Agility—Improving the ability of the organization to make changes to systems, mostly by separating portions of the systems that can evolve independently.
  • Asset leverage—Improving the use of assets reduces or eliminates the development and implementation of redundant business logic.
  • Standardization and quality—Creating standardized services enables best practices to be replicated. It also increases the efficiency and facilitates the improvement of development processes.
    • SOA is fundamentally about building modular applications. However, since modularity has been a broadly adopted principle of application development methodology for decades, modularity cannot be a distinguishing characteristic of SOA.