The Simple Object Access Protocol (SOAP) is an XML-based protocol for implementing distributed access to object-oriented models. It is designed to allow applications to access remote objects, applications, and servers across a network. Using XML enables SOAP to perform across multiple platforms without modification. SOAP can also take advantage of many current technologies, including XML and HTTP. Let's look at some of its features.
SOAP is a message-oriented protocol. Although it is not designed solely for object-oriented applications, its messaging architecture easily lends itself to a client/server-based object model. The messaging framework essentially defines an envelope, or wrapper, around a message. The envelope contains information about the message and how it should be processed.
Because SOAP uses the HTTP application protocol for communication, it is based on the HTTP request-response model. Each SOAP request is processed as an HTTP POST request. The SOAP data is contained in the POST content as XML. The XML contains the SOAP envelope, which encloses the SOAP request message. Once a request has been processed, the server will respond via HTTP. The HTTP response content will include a SOAP envelope with the response message.
One of the applications of SOAP is to provide access to some of the common object technologies currently available. These include Microsoft’s Component Object Model (COM) and OMG’s Common Object Request Broker Architecture (CORBA). These two competing object technologies use their own “wire protocol” for accessing objects on remote servers. Using SOAP, an application developer can easily bridge from one architecture to another. SOAP provides the underlying messaging protocol for a client-server object scenario. Once a request is made from a client to a server, the server can access COM objects, CORBA objects, SQL databases, or some combination of these items to create the response. In addition, because SOAP is based on open, cross-platform standards such as HTTP and XML, it is extremely cross-platform compatible.
Although many places online offer information about SOAP, the best resource is the current working draft, available from the Worldwide Web Consortium (W3C). The Microsoft Developer Network also has information and resources for SOAP developers available on its Web site.
Getting the message out (or in)
SOAP is designed to give developers more robust and cross-platform access to remote objects. It's a client/server-oriented, request-response-based protocol, which allows developers to access objects using conventional HTTP protocols.