Skip to content

Service Oriented Architecture

August 6, 2009

What is a Service Oriented Architecture?

Service oriented architecture (SOA) is an architectural concept in software that defines the use of services to support business goals.

In a SOA, resources are made available as independent services via the Internet or an intranet.

The overall goal of a SOA is to have loose coupling among interacting pieces of software.

This is in contrast to the concept of object oriented programming, in which data and processors are bound together.

To put it less abstractly, SOAs aim to separate the service from the data input.

For Example:

Consider the service of playing a specific DVD, say Starwars. Any DVD player can play Starwars, which means that the service of playing a DVD is not attached to the specific DVD to be played. We can say that the Starwars DVD is loosely coupled with DVD players. In contrast, if the system mirrored object oriented programming, then every Starwars DVD would come with a specific DVD player, and would not be intended to function on a different player.

What are the benefits of a SOA?

Service oriented architectures have several benefits. Three of the top ones include:

  • Higher ROIs(Region of Interests) on software creation
  • Support for multiple client types
  • Better Maintainability:

How does a SOA work?

There are two fundamental concepts that every SOA requires:

  • Interfaces that are simple and ubiquitous to all software agents
  • Communication via descriptive rather than instructive messages.

For Example:

Consider the case in which I ask you to get me a book. Our interaction takes place at the surface, via our spoken words (in this case, a simple and ubiquitous interface). Once I have communicated my message to you, I don’t need to know what your thought process is, whether you pick the book up yourself or have someone else get it; I am only concerned with the overall result that the book ends up in my possession. Because the message was descriptive rather than instructive, you can carry it out in any way that you decide. By following the two SOA principles, we achieved the service result without having to coordinate every process defined below the surface interaction.

What are some useful terms to know in reference to SOA?

Loose coupling– Loose coupling in a software context refers to the idea of dependencies; the more the functionality of a piece of software depends on the functionality of another piece of software, the tighter their coupling.

Descriptive message– The form that SOA messages take. Descriptive messages tell applications the result that they would like to have happen, but not the process required to achieve that result. This allows for interaction at a surface level without having to have compatible systems beneath that skin. Descriptive messages contrast with instructive messages.

Instructive messages-Instructive messages don’t function well in SOAs because they attempt to tell the service provider how to execute a request. This introduces the requirements that message and provider speak the same language fundamentally, not just at the surface interfaces.

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: