Download (direct link):
220 Chapter 12
Figure 12.1 Basic weather SOAP service.
What Is a Soap Service?
The definition of a soap service is vague. Different vendors use different languages, but most agree about the basic structure and definition of soap services. While these definitions from a few major players are different, they have a common thread — soap services are network-based services implemented with open standards that allow different systems to communicate. Abroad definition of soap services is this: a piece of executable code identified by its URI that is coupled to its client via a SOAP envelope containing XML encoded data. In many cases, this code performs a piece of business logic. Any client on the Internet can access this piece of business logic as long as the client implements the open standards SOAP, XML, and other Internet protocols. Soap services provide a way to expose fine-grained business logic within an organization, as well as externally to business affiliates. One attribute that all vendors agree on is a loose coupling between client and service with open standards; this gives clients, on any operating system and any hardware, the ability to consume a generic soap service. The IBM Web site describes this server/client independence :
A Web service is an interface that describes a collection of operations that are network accessible through standard XML messaging. . . . The nature of the interface hides the implementation details of the service so that it can be used independently of the hardware or software platform on which it is implemented
Web Applications and Services 221
and independently of the programming language in which it is written. This allows and encourages Web services-based applications to be loosely coupled, component-oriented, cross-technology implementations. Web services can be used alone or in conjunction with other Web services to carry out a complex aggregation or a business transaction.
Soap Services in Context
The simple idea behind distributed computing environments is as old as networking: utilizing a computer at one location from another. The early SNA networks championed by IBM did this. At that time, computers were big, expensive, and scarce. IBM built a networking strategy that gave users on remote terminals access to a mainframe computer located at a different location. One of the first Internet applications was Telnet, which allows remote access from one computer to another. As technology and users evolved, the idea of remote commands execution (for example, rsh on Unix systems) emerged. rsh allows a command to be executed on a remote system; the results are then sent back to the local system the user is on. The idea of writing a program on one system and allowing it to call a procedure on a different machine also emerged: This become known as Remote Procedure Calls (RPCs) . Data networks were invented to build distributed computing environments, and these environments have evolved along with the networks that provide the underlying services they need.
Soap services are hailed as the solution to the nagging problem of integrating disparate systems, but the idea is hardly new. The vision behind soap services is old, but agreement by all major vendors to the same standard for transparent distributed computing has never happened before now, with all vendors behind soap services. Following are some early examples of distributed computing ideas:
CORBA is one attempt at a set of standards for distributed computing started around 1989.
CORBA is the acronym for Common Object Request Broker Architecture, OMG's open, vendor-independent architecture and infrastructure that computer applications use to work together over networks. Using the standard protocol Internet Inter-Orb Protocol (IIOP), a CORBA-based program from any vendor, on almost any computer, operating system, programming language, and network, can interoperate with a CORBA-based program from the same or another vendor, on almost any other computer, operating system, programming language, and network. 
222 Chapter 12
In the bold text, try replacing "CORBA" with "soap services" and "IIOP" with "HTTP, SOAP, and XML"; the sentence now reads as if one is describing a Web-based service. Similar to how soap services utilize a special language (WSDL) to define the interface for a remote piece of code logic, CORBA uses a language called Interface Definition Language (IDL) for the same function. The idea is the same: Define the interface unambiguously such that a computer can generate the correct request for remote services, and understand the result of invoking the distributed computation. But, because all vendors did not adopt CORBA, it did not live up to its hype.
DCOM  was Microsoft's answer to distributed computing. It is functionally similar to CORBA, and both are based on the RPC paradigm. At a technical level, DCOM is different from CORBA, but the differences are not important to the overall framework of DCOM because its high-level goal is similar to CORBA — that is, connecting completely different systems. As expected, DCOM favors a Windows environment, but it does work on other systems. DCOM, although popular with Microsoft users, did not catch on with all other vendors.