1. A method for controlling the interoperation of a plurality of software applications and resources, the method comprising: intercepting communications from a first application to a second application or resource; directing the communication to a context management system; generating a candidate list of contexts for the communication; evaluating the candidate list according to at least one policy defined for these contexts to identify the resultant action and namespace for the communication; and performing the action as defined by the at least one policy within the identified namespace.