SOA - Lightweight, Easy and Free

This is a english version of an article I wrote on the behalf of my employer Valtech. The swedish version of the article is available here

Summary

Service Oriented Architecture, or “SOA” as it is commonly known, has been touted by thought leaders and middleware vendors as the industry’s silver bullet for the last couple of years. While SOA solutions can be brilliant when done right, SOA is a widely misused technology, creating expensive and tightly coupled systems that are highly vendor dependent. There are ways to achieve the promises of SOA using open and free standards in a lightweight architecture.

The Different Flavors of SOA

Service Oriented Architecture allows different applications and systems to talk to each other using standardized and open protocols. The talking is done by sending messages to services made available by each application.

When enabling communication between two or more separate systems, it is important to base the architecture on the very fact that they are separate systems, and keep them loosely coupled. This is achieved by keeping the form of the message as neutral as possible, both in definition and technical implementation.

Middleware vendors often equate Service Oriented Architecture with SOAP, a highly formalized way of enabling message exchange. Messages are defined in a standardized way and SOAP services can be made discoverable.

SOAP is from a functional point of view a perfectly fine way of achieving SOA. However, SOAP can easily lead to suboptimal solutions by developers who due to SOAP’s complexity depend on tools for message definition. The messages defined this way will contain objects serialized to XML. Without a separation between the external format and the internal representation the involved systems will become tightly coupled which are hard to extend.

While SOAP is a very popular choice in the enterprise SOA space, it is far from the only one. Widely used alternatives such as XML-RPC and REST provide the same capabilities as SOAP, but without the complexity SOAP brings.

XML-RPC provides a lightweight alternative to SOAP, for systems requiring the RPC architecture.

REST depends solely on the basic HTTP commands GET, POST, PUT and DELETE, allowing for arbitrary message formats. This requires the developers to manually define the message format, which is normally done using XML.

By using the XML-based standard XHTML, marked with semantic class definitions, regular web pages can deliver a truly lightweight service oriented architecture. This also has the added benefit of being easy to debug and test as it is readable in any web browser.

Conclusion

SOA can deliver on the promises of synergy, flexibility and values added. To reap these benefits the solutions should be based on loosely coupled systems. Instead of relying on tools, these are most easily created using open, standards based REST services. This provides a truly open, lightweight and flexible architecture which can easily be extended and reused in the future.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Digg
  • DZone
  • Technorati
  • Reddit