SOAP Web Services
SOAP (Simple Object Access Protocol or Service Oriented Architecture Protocol) is the communication protocol for Web services. It is intended for exchanging structured information (based on XML) and is relatively simple (lightweight). Most commonly it runs over HTTP, but it can run over a variety of underlying protocols. It has been designed to be independent of any particular programming model and other implementation-specific semantics. A key advantage of SOAP is that, because it is XML based, it is programming-language, platform, and hardware independent.
SOAP, as any other communication protocol, governs how communication happens and how data is represented on the wire. The SOAP framework is an implementation of the Broker design pattern and there are many similarities between SOAP and Java RMI (or CORBA). This section describes SOAP version 1.2, which is the current SOAP specification. The older SOAP version 1.1 is somewhat different.
Broker design pattern can be used to structure distributed software systems with decoupled components that interact by remote procedure calls. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions. - From Wikipedia
SOAP defines the following pieces of information, which we will look at in turn:
- The way the XML message is structured
- The conventions representing a remote procedure call in that XML message
- A binding to HTTP, to ensure that the XML message is transported correctly
- The conventions for conveying an error in message processing back to the sender
SOAP - A Short Summary
SOAP is an XML-based communication protocol and encoding format for inter-application communication. SOAP provides technology for distributed object communication. Given the signature of a remote method (Web service) and the rules for invoking the method, SOAP allows for representing the remote method call in XML. SOAP supports loose-coupling of distributed applications that interact by exchanging one-way asynchronous messages among each other. SOAP is not aware of the semantics of the messages being exchanged through it. Any communication pattern, including request-response, has to be implemented by the applications that use SOAP for communication. The body of the SOAP message can contain any arbitrary XML content as the message payload. SOAP is widely viewed as the backbone to a new generation of cross-platform cross-language distributed computing applications, termed Web services.
Service description plays a key role in a service-oriented architecture (SOA) in maintaining the loose coupling between the service customers and the service providers. Service description is a formal mechanism to unambiguously describe a Web service for the service customers. A Service description is involved in each of the three operations of SOA: publish, find and bind. In this chapter I reviewed the WSDL version 2.0 standard for describing Web services and how it is used to provide functional description of the Web services SOA model. There are other standards such as Web Services Flow Language (WSDL) and WSEL (Web Services Endpoint Language) which are used to describe the non functional aspects of Web services. The reader interested in these should consult the relevant Web sources.