SOA: The Definition

I have decided to write a series of posts regarding the topic that recently became a hot one. I will write a series about Service Oriented Architecture (SOA), here you have the first part, which will introduce you to the concept of what is SOA…

First of all before diving into technical aspects of this topic, you should have an understanding of what Service Oriented Architecture is. Let’s take a look at your city. It is already full of service-oriented businesses. Individual companies are service-oriented in that each provides a distinct service that can be used by multiple customers. Collectively, these businesses comprise a business community. It makes sense for a business community not to be served by a single business outlet providing all services. By decomposing the community into specialized, individual outlets, we achieve an environment in which these outlets can be distributed.

When coupled with “architecture”, service-orientation takes on a technical connotation. “Service Oriented Architecture” is a term that represents a model in which automation logic is decomposed into smaller, distinct units of logic. Collectively, these units comprise a larger piece of business automation logic. Individually these units can be distributed.

Distributing automation logic into separate units is nothing new. What is it then that makes service-oriented separation so different? Keep on reading…

Even in a distributed business community, if we impose overbearing dependencies, we could inhabit the potential of individual businesses. Although we want to allow outlets to interact and leverage each other’s services, we want to avoid a model in which outlets from tight connections that result in constrictive inter-dependencies. By empowering business to self-govern their individual services, we allow them to evolve and grow relatively independent from each other.

Though we encourage independence within our business outlets, we must still ensure that they agree to adhere to certain business conventions – for example, a common currency for the exchange of goods and services, a building code that requires signage to confirm to certain parameters or perhaps a requirement that all employees speak the same language as the native consumers. These conventions standardize key aspects of each business for the benefit of the consumers without significantly imposing on the individual business’s ability to exercise self-governance.

Similarly, service oriented architecture (SOA) encourages individual units of logic to exist autonomously yet not isolated from each other. Units of logic are still required to conform to a set of principles that allow them to evolve independently, while still maintaining a sufficient amount of commonality and standardization. Within SOA, these units of logic are known as services.

©2008 Karim Agha. All rights reserved.