I am new to SOAP. What criteria can I use to determine when to use SOAP or not? What are its applications? Please advise.
SOAP is a general-purpose communication facility, so it can be used for most applications. Its key benefits are that it supports heterogeneous connectivity, easy traversal of firewalls, and loosely coupled connections. The first two benefits are pretty self-explanitory. Loosely coupled connections make SOAP very flexible and adaptable. Most distributed computing technologies use tightly coupled connections, which can break very easily. SOAP systems have the ability to dynamically interpret the self-described information being exchanged, and therefore can tolerate a lot more variance in the message. SOAP's sweet spot is a system that involves applications running on multiple platforms, written in different languages, particularly where you don't have control over the IT infrastructure for the entire system, and where the players involve might change.
But SOAP is not appropriate for all applications. SOAP messages are very verbose, and every message requires some costly XML processing. So I would not recommend using SOAP when you need to pass extremely large amounts of data, or if your application requires exceptionally high or deterministic performance.
I also would not recommend using SOAP as a replacement for RMI or DCOM between small components. SOAP should be used to expose a business service rather than to expose every object method. A SOAP service generally represents an aggregation of objects or components, and the objects/components use a binary protocol (RMI or DCOM) to communicate within the service.
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.