A tightly coupled system is, at least for this discussion, a system where the whole process comes to an immediate halt once a single component fails. For example, with XMLRPC/SOAP, as soon as one of the two computers becomes unavailable, the other one can't work anymore, and there is no method of manual intervention to fix it. Tight coupling has the advangtage of close process control in the sense that you get an immediate feedback of the next system whether and when your data was processed.
If you do a loosely coupled system, where you pass the data on to the next program by mail, file or database, you lose this close control, but you gain buffering. Mails, files or database entries can stack up without problems, even if the system behind it fails. If the producing system fails, the production can be manually maintained by manually producing the input. If the consuming system fails, you can either wait and keep the input piling up or manually transfer the input to a second backup machine, which then produces the output. There is more possibility of human intervention in loosely coupled systems.
I have never personally used SOAP::Lite, as I am no great fan of RPC over port 80. If interactivity and immediate response is not important to your requests, go the loosely coupled route. It makes for easier testing, easier error recovery and easier monitoring of the whole system.
| [reply] |