The SOAP that will clean up spaghetti code

SOAP is a protocol for exchanging XML based messaged over the web. 

SOAP is used by web services to produce and consume content. Web Services allow software engineers to write re-usable code that can be called any application that can consume a web service.  A web service can be written in almost any language such as Java, .NET, PHP, etc.  The calling application does not need to know what language the web application is written in.

This article isn't just about web services but about a closely related concept: SOA

Before AJAX, applications used to navigate to a different page on every user action. When Google came out with GMail it helped make AJAX or Web 2.0 based applications popular.  Many companies jumped on the bandwagon to build applications that can response faster.

This is great we made applications faster but it only helped increase the development life cycle.  In the meantime systems keep getting more complex and because of their complexity a large amount of defects are discovered during testing cycle.

SOA is here to help!

SOA stands for service-oriented architecture.  This is being marketed as the next big thing since sliced bread with peanut butter.

Here's a defination of SOA from wikipedia:

"Service-oriented Architecture (SOA) is an architectural design pattern that concerns itself with defining loosely-coupled relationships between producers and consumers. While it has no direct relationship with software, programming, or technology, it's often confused with an evolution of distributed computing and modular programming."

Pros of SOA

  • Code reusability - Business logic is divided into services promoting reuse.  This is by far the biggest advantage of the architecture since many systems need access the same logic.  You could potentially save
  • Abstraction - business logic is hidden from the end user

Cons of SOA

  • Initial implementation is expensive
  • High success of failure without proper SOA governance
  • Requires slowly re-engineering existing applications

So I'm ready, how can I start?

SOA doesn't only require a high initial implementation cost but also a different way of thinking.  Today's business runs on applications.  As the need of business changes, so must the applications.  This concept has the potential of reducing the time it takes to build, test and deploy applications.  Any SOA implementation also has the potential of failure and lose of hundreds and thousands of dollars of investment.

The correct approach is to attend seminars and read articles posted on the internet to learn more about this phenomenon.

Why we may not know if SOA will still be as successful as AJAX but a bread with peanut butter sounds really good right about now.

 

Useful Links: