Socket programming is a good mechanism for tightly coupled com- munication. It is not always as easy as one would wish, and there are data marshaling issues, but use of a high-level language such as Python and XML for encoding makes this reasonably simple. Network errors are diffi- cult to handle. Screen scraping is an unattractive technique that we fall back on if we have no access to an application. A variant of this is Web scraping. This is very vulnerable to changes in screen layouts. We would prefer to use Web services.