Why SOA ? IBM's Take

IBM has an excellent introduction to SOA. Make sure to ignore references to WebSphere, IBM's proprietary web application server ( IBM marketing never sleeps ). They describe SOA as designing web software that "provide services to other applications through published and discoverable interfaces, and where the services can be invoked over a network."

In a business environment, the basic needs are:

The authors identify three major problem areas:

Complexity

The cumulative effect of decades of growth, evolution and "point solutions" has produced almost overwhelming complexity in many business application environments. In many cases, the benefit of OTS ( Off The Shelf ) solutions may be nearly outweighed by the increase in complexity of the overall applications architecture.

Redundant and Non-reusable 'Programming'

Duplication of the code base is an important issue, but I would depart from the author's presentation a bit in identifying duplication of data, for instance customer names and addresses, as an equally significant cost to businesses.

There may also be significant redundancy in the data definitions ( meta-data ) across multiple applications and possible incompatibility in formats and validations, necessitating additional program logic to reformat and re-validate existing data.

Multiplicity of Interfaces

When multiple applications require custom interfaces to inter-operate, each addition application system will require "2N" new interface programs be written and maintained ( assuming that the systems are fully connected and that every systems talks to all the other systems ).  On the other hand, the situation may not be quite as severe as the theoretical model proposed by the authors.    

In practice, the logical difficulties of the updating back and forth between databases are so great that a single system is chosen to the the 'master' and updates are allowed only from the master system.  Note however that this is not true of meta-data: choosing a particular set of application metadata does not buy anything in controlling data definitions and validation in some other application.  Incompatible data definitions are not mappable without very complex program logic and are therefore unenforceable.  This has clear implications for business rules environments.

Make sure to see IBM on SOA for useful links into their vast SOA technology site.