Simple Object Access Protocol or SOAP

What Is XML SOAP?

What is SOAP? XML SOAP is a language that allows a program running on one operating system to communicate with another program in another operating system over the internet.

A group of vendors from Microsoft, IBM, Lotus, and others, created an XML-based protocol that lets you activate applications or objects within an application across the Internet. SOAP codifies the practice of using XML and HTTP to invoke methods across networks and computer platforms.

With distributed computing and web applications, a request for an application comes from one computer (the "client") and is transmitted over the Internet to another computer (the "server"). There are many ways of doing this, but SOAP makes it easy by using XML and HTTP - which are already standard web formats.

Web Applications and SOAP

Web applications are where SOAP really comes into its own. When you view a web page you are using a web browser to query a web server and view a web page. With SOAP, you would use your computer client application to query a server and run a program. You can't do that with standard web pages or HTML.

For Example

Right now, you might use online banking to access your bank accounts. My bank has the following options:

  • Online banking - account reviews, transfers, stop payment, etc.
  • Online bill paying
  • Online credit card management

While this bank has these three applications, they are all mostly separate.

So if I go into the banking section I can't transfer funds from my savings account to my credit card, and I can't view my account balances while I'm in the online bill paying section.

One of the reasons that these three functions are separated is because they reside on different machines. Ie. the program that runs the online bill paying is one one computer server, while the credit card and bill paying applications are on other servers.

With SOAP, this doesn't matter.

You might have a Java method that gets an account balance called getAccount.

With standard web based applications, that method is only available to the programs that call it and are on the same server. Using SOAP, you can access that method across the Internet via HTTP and XML.

How Is SOAP Used?

There are many possible applications for SOAP, here are just a couple:

  • Business to Business integration - SOAP allows businesses to develop their applications, and then make those applications available to other companies
  • Distributed applications - programs like databases could be stored on one server and accessed and managed by clients across the Internet

One thing to consider when looking into implementing SOAP on your business server is that there are many other ways to do the same thing that SOAP does. But the number one benefit you'll gain from using SOAP is its simplicity. SOAP is just XML and HTTP combined to send and receive messages over the Internet. It is not constrained by the application language (Java, C#, Perl) or the platform (Windows, UNIX, Mac), and this makes it much more versatile than other solutions.