CLEANING UP WITH SOAP The Simple Object Access Protocol (SOAP) is an XML application for implementing distributed access to object-oriented models. SOAP is designed to allow applications to access remote objects on a network. This week's XML tip will highlight some of the features of SOAP. GOOD CLEAN GOALS SOAP is intended to provide access to remote objects, applications, and servers across a network using a simple protocol based on XML. Using XML affords SOAP the ability to perform across multiple platforms without modification. SOAP is designed to take advantage of many current technologies, including XML and HTTP. Additionally, SOAP is aimed at providing resource management through remote garbage collection and object references. MESSAGE ORIENTED SOAP is a message-oriented protocol. It is not designed solely for object-oriented applications; however, its messaging architecture lends itself to a client-server-based object model quite easily. 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. REQUEST-RESPONSE MODEL 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. APPLYING SOAP 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 each 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 in order 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. MORE INFORMATION There are many places online where you can find out more about SOAP. The best resource is the current working draft available from the Worldwide Web Consortium (W3C). http://www.w3.org/TR/SOAP/ The Microsoft Developer Network also has information and resources for SOAP developers available on its Web site. http://msdn.microsoft.com/soap/ SUMMARY The Simple Object Access Protocol is a new working draft from the W3C designed to give developers more robust and cross-platform access to remote objects. SOAP is a client-server oriented request-response-based protocol. With SOAP, developers can access objects using conventional HTTP protocols. -------------------------------------------