What software elements must be assembled to build a SOAP Server and a SOAP client?
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.
Related Q&A from Anne Thomas Manes
Anne Thomas Manes explains the differences between open source clients and open source implementations.continue reading
Anne Thomas Manes discusses the best way to go about creating an enterprise data dictionary and why the systems works well.continue reading
Anne Thomas Manes explains the difference between 'hard' real time and 'live' real time systems.continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.