* Service-oriented architectures are the wave of the future
endif; ?>The buzz surrounding service-oriented architectures is growing, and IT executives may be forgiven for wondering what the fuss is all about.
Much like “object-oriented,” “client-server” or other buzzwords that came before, a SOA represents an evolution in the way we build software systems. Despite the hype, in other words, SOAs are real. They will have an enduring impact on the next generation of data centers, so IT executives must incorporate SOAs into their strategic thinking.
An SOA is a type of software architecture incorporating service “agents” and service “providers” in a loosely coupled system. Unlike client-server, which is closely coupled, SOA services are meant to be generic, platform- and language-neutral, and interchangeable. SOAs today are built on Web services, delivered primarily as SOAP/XML interfaces and Web Services Description Language (WSDL) definitions.
As with the concept of client-server, the hype preceded the technology: the concept of an SOA has been discussed for over a decade, but recent advancements and open standards in Web services are making SOAs possible on an unprecedented scale.
SOAs are the latest answer to the perennial problem of reducing the complexity and interdependencies of componentized software systems. Web services enable SOAs because they provide simple and open service interfaces that can be described in a machine-readable language (WSDL) and delivered over open protocols (HTTP, SOAP, etc.). Like objects and software components, “services” are fundamental building blocks that can be used to construct complex systems. Here are some of the main characteristics of an SOA:
* It implements a set of simple Web services interfaces that are available for any type of agent (regardless of platform, implementation language or runtime).
* The details of any SOA service are hidden and abstracted by a well-defined interface (usually described in WSDL).
* The services offered are discoverable, which means that an agent can query a registry to find all available services.
* The services are extensible because they are defined by a schema (XML schema) that can be augmented with new structures.
In a data center, IT managers can build SOAs around client-server applications. The process of converting an existing application into a SOA involves:
* Creating a Web services infrastructure through the use of application servers. Web-delivered applications can be re-factored as collections of small, well-defined interfaces. For example, a CRM application may provide a Web services interface for retrieving the “history” of one client.
* Creating a registry of the Web services interfaces across all the “silo” applications such as CRM, ERP etc.
* Creating a user interface that “consumes” Web services from multiple applications. For many enterprises, the interface will be a Web portal that unifies the various enterprise applications into one user interface.
* Externalizing the SOA to provide services to clients, partners and suppliers.
As a new software engineering architecture and methodology, SOAs will bring many changes to the design, packaging and delivery of applications. IT executives can plant the seeds of SOAs today in their enterprise application infrastructures, but a full realization of the potential of SOAs is still a few years away.




