BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News SOA In Plain English

SOA In Plain English

This item in japanese

If you aren’t technical, [SOA is] one of those terms that flies right over your head.”, explains Don Fornes, Founder & CEO at Software Advice; not to mention the added complexity of a slew of related acronyms such as “SOAP, XML, CORBA, DCOM, .NET, J2EE, REST, BPEL and WS-CDL”. In his article he tries to demystify the concepts around SOA.

In an effort to present SOA in simple English he proposes a colloquial definition of SOA:

A new and better way to get a bunch of different software programs to work together so people can do things that require information from each of those systems.

Don describes SOA as an information technology (IT) equivalent to managing a large, diverse workforce. He says

To get stuff done in a big organization, you need to:

  • carefully define your goals and what constitutes success;
  • draw on the unique talents and knowledge of each individual;
  • get people to speak the same language and work together as a team; and,
  • measure where things stand and whether success is achieved.

All of which he says are characteristics of an SOA to deliver a successful IT solutions.

It catalogs what systems are in place and what they can do (e.g. what data they own). It specifies a common language that they can all use to communicate, even if this common language is not each system’s “native tongue.” With those components in place, the organization can build new applications or processes that make use of the multi-system integration. Finally, a SOA coordinates and monitors the processes that span these systems.

He acknowledges that SOA is nothing more than an integration of disparate systems but goes on to list the benefits that differentiate an SOA from traditional/point-to-point integration.

- It’s now much easier to integrate systems.

- It […] manages and monitors complex processes that require multiple systems to work together in real-time

- It […] defines standards for writing the next generation of systems so that the SOA vision is easier to achieve as the IT landscape evolves.

He goes on to expand on the metaphor of managing a large and diverse workforce. He outlines key concepts in SOA and their significance and how they relate to the workforce metaphor. Below are a few of the concepts with their description and respective equivalents.

Loosely coupled
Loosely coupled refers to the idea that services within an SOA can provide that service to multiple applications, not just one specific application. This is similar to a workforce where employees work with different teams or departments, depending on what needs to get done. They are not restricted to working for one boss or one department.

WSDL
Web Services Description Layer (WSDL) is an emerging metadata standard for describing what each service does. Think of it as a language for describing all of the roles and responsibilities within an organization. While we can use English to describe employee roles in the workplace, computer systems require their own language to describe each service's role.

Reusability
One of the goals of SOA is to make application development easier and easier over time. Toward that end, you want each service - new or existing - to be reusable in the future. It is similar to seeking to retain your best employees to leverage their skills over and over again on many different projects throughout their careers.

Compositability
Compositability means that services can be joined together to create bigger services that perform more sophisticated applications. That combination can then serve as a service itself. This is similar to building a great team of employees where the whole is greater than the sum of the parts. You would be inclined to put that team on new projects again and again.

Autonomy
Autonomy means that each service does what it does best in the manner it sees fit. You want to take advantage of the service's output, not dig into how the service accomplished what it did. If you do dig into how each service does what it does, you lose the SOA ideal of simplicity. It's a lot like letting your best employees do what they do best rather than micromanaging them.

Don warns that though all the concepts seem good in theory, the real crux of effective SOA is in the execution. He asserts that SOA is still in its early stages and comes with challenges surrounding latency of services, nascent standards and getting autonomous systems to speak a canonical ‘language’.

There is certainly reason to consider all of these issues. However, SOA is supported by a huge industry filled with developers that want to see its vision realized. Even if SOA is not a magic bullet, there is tremendous value to working toward the SOA vision and achieving just some of its ideals. The model holds great promise and provides a roadmap for moving beyond historical IT integration and development challenges.

More of the excerpted post can be read at the Don’s website.

 

Rate this Article

Adoption
Style

BT