Team-Fly |
XML, Web Services, and the Data Revolution By Frank P. Coyle | |
Table of Contents | |
Chapter 4. SOAP |
SOAP is an XML-based protocol for exchanging information in a decentralized, distributed environment. It was literally made for the Web, a combination of XML and HTTP that opens up new options for distributed data exchange and interaction in a loosely coupled Web environment. As Figure 4.1 shows, SOAP is a technology that allows XML to move easily over the Web. SOAP does this by defining an XML envelope for delivering XML content and specifying a set of rules for servers to follow when they receive a SOAP message. Figure 4.1. SOAP has opened opportunities for extending the enterprise.
The fundamental change brought about by SOAP has been the ability to move data anywhere across the Web. Figure 4.2 illustrates that until SOAP there were only two main options for moving data between partners. One was to build a wide area network spanning a broad geographic region and let partners plug into it. This was the approach taken by Electronic Data Interchange (EDI), which defined messages and protocols for data transfer but left the network details up to the partners. The result was a collection of networks that pretty much locked the partners in and made it difficult and expensive to reach out to other EDI networks and costly to bring in new partners. The second approach for moving data between partners was to build a distributed object infrastructure than ran over the Internet. This was the approach taken by Common Object Request Broker Architecture (CORBA), Remote Method Invocation (RMI), and Distributed Component Object Model (DCOM). The problem was that each had to decide on a protocol that could sit on top of TCP/IP and handle interobject communication. CORBA chose Internet Inter-ORB Protocol (IIOP), DCOM chose Object Remote Procedure Call (ORPC), and RMI chose Java Remote Method Protocol (JRMP). While this approach reduced the need to share the same underlying network, the drawback was that CORBA could talk to CORBA, RMI to RMI, and DCOM to DCOM, but they could not talk to each other nor directly to the Web except through special sockets that required adding extra layers to an already complex architecture. Figure 4.2. SOAP is one of several options for moving data across the Web.
SOAP, the third option shown in Figure 4.2, combines the data capabilities of XML with the transport capability of HTTP, thereby overcoming the drawbacks of both EDI and tightly coupled distributed object systems such as CORBA, RMI, and DCOM. It does this by breaking the dependence between data and transport and in doing so opens up a new era of loosely coupled distributed data exchange. Dave Winer, one of the authors of XML-RPC and a contributor to SOAP, describes the implications of working in this new loosely coupled space centered around XML.
Although Winer is talking about XML-RPC, a precursor to SOAP, his observation is applicable to the environment in which we now find ourselves , one where scripting languages are becoming important tools for assembling components and services. In the few short years since its inception in 1998, SOAP has gained wide acceptance across the software industry. Its impact is evident from the following observations:
To understand SOAP's impact and how it has so quickly found a place in so many different software initiatives, from Web services to .NET to Java 2 Enterprise Edition (J2EE), it's instructive to look at how it evolved from a confluence of forces. |
Team-Fly |
Top |