- Major Studies
Service-oriented architectures (SOA) are receiving a great deal of attention as this buzz-phrase is being bandied around by the press as well as vendors such as HP, IBM, Microsoft, Oracle, and Sun. Unlike many other technologies, however, SOA does not carry the same meaning to all users of the term. Many vendors, for example, consider any set of processes that use XML and web services as an SOA platform.
Basic Concepts of SOA
So, what is a service oriented architecture? Essentially, a SOA is a better way to construct software, by using the basic building block of “services,” that is, self-contained, stateless business functions, each of which accepts requests and returns responses through a well-defined, standard interface.
For example, a company might build one service to perform the function of checking whether a customer is over his credit limit, another service might be used to retrieve a customer’s shipping address, and yet another service might be used to display a map of a street address. Each of these services might be performed by a different piece of software running on a different computer, some even outside the company itself. Some might be built to fulfill the requirements of a specific application, while others might be general purpose services or services that had been originally built for another application.
In software that is designed using a SOA, any number of services may be combined to implement a business process. Each service operates autonomously with only a general awareness that other services exist. Communication among the processes is accomplished using standardized protocols. The services are without memory—they do not remember previous transactions. The services are also discoverable by means of a common services registry.
The wide potential scope of SOA makes swallowing it in one piece impossible. The organizational impact of SOA in its fullest form can make rolling out an ERP system look simple. For example, the ongoing efforts of Fireman’s Fund provide some insights into the complexity of an enterprise level adoption of SOA. Fireman’s Fund plans to consolidate up to 70% of its applications under the SOA rubric. IBM will be the developer under a ten-year contract. As shown in Figure 1, Fireman’s Fund expects to spend between $94 and $157 million on the system. The payback will come from anticipated returns in excess of $200 million.
Computer Economics Recommendations
Obviously, if a company wants to fully apply SOA throughout its information systems, it will require massive rewriting or replacing of existing systems. However, Computer Economics recommends implementing the technology in a gradual fashion to allow the corporate culture to adjust to the changes, reduce risk, and allow the technology to mature.
IT managers seeking to gain experience with SOA and assess its fit into their operations are urged to take incremental steps. One of the simplest ways to gain experience with SOA is to employ publicly available web services to provide new functionality, where it exists.
If services can be reused in more than one business application, their costs may be amortized over the multiple instances. Reuse is a potential benefit of SOA, but it does not come unburdened. Keeping track of the services requires the same type of configuration management, quality assurance, documentation control, and library management that any other type of software reuse requires. Providing for reuse increases the initial development cost, which will be recovered if the services are actually reused.
Often the services as originally written will require adaptation before they can be reused, so a version control process will be essential. Finally, the services will need to be discoverable through a cataloging scheme based on UDDI or a similar technology.