At a minimum, all you really need is an XML processor and an HTTP server. But that puts an awful lot of coding responsibility on the developer. (You would have to contruct and interpret the SOAP envelope yourself.) More likely you'd prefer to use a SOAP runtime system on both the client and the server. The type of SOAP runtime system you use depends on the programming language that you're using. If you're using Visual Basic 6.0 or VBA, then you probably want to use either Microsoft SOAP Toolkit or PocketSOAP. If you're using VB.NET or C#, then you probably want to use Visual Studio.NET or the .NET Framework. If you're using Delphi, then you want to use Borland's Web services support in Delphi. If you're using C++, then you probably want to use Systinet WASP Server for C++ or gSOAP. If you're using Java, then you have a choice of about a dozen implementations (Apache Axis, Systinet WASP Server for Java, The Mind Electric GLUE, Cape Clear Cape Connect, IONA XMLBus, BEA Workshop, etc.)
Keep in mind that you can use different environments for client and server.
The specifics of what's required for each of these systems is slightly different. For the Java implementations, most of the SOAP servers run as a servlet, so usually you need a servlet engine. Some implementations require a specific application server (e.g., BEA). Some implementations can be deployed in any servlet engine or within a choice of servlet engines. Some implementations include a servlet engine. Some SOAP implementations can run with JDK 1.1.x, others require JDK 1.3.x or later.
Most SOAP implementations include a set of tools that help you build your SOAP clients and servers. You need your language tool/compiler, but not much else. My favorite Java environments are WASP, GLUE, and Axis. All offer excellent tools, they're portable across a wide range of servlet engines, and they work! WASP and GLUE can run standalone. WASP provides IDE plug-ins for JBuilder, Eclipse, and NetBeans. WASP also provides the most comprehensive management facilities and the leading security framework. GLUE is noteworthy for ease-of-use, and it provides a plug-in for JBuilder. Axis (being open source) doesn't offer quite the number of amenities as WASP and GLUE, but is still very usable. I would avoid using Apache SOAP (the predecessor to Apache Axis). It doesn't support WSDL, and it has interoperability problems.
This was first published in September 2002