A Framework is a set of classes that provide a set of compatible definitions. The classes in the framework work well together, but they lack implementation logic. Usable systems are built on top of a framework by using the framework classes. Higher level applications such as user applications use the framework class definitions without knowledge of the implementation sub-classes. The framework isolates the high level applications from the implementation classes.
Isolation allows the applications to run with any implementation of the framework.
Most frameworks are used within an application on a single computer. These applications are usually pre-built as a single application. These frameworks are used for internal flexibility and maintainability. As discussed there are four main techniques for interconnecting systems, all four have pros and cons. Each organisation needs to analyse its needs for both the short and long term goals to determine the best technique for them.