1. A method for controlling the interoperation of a plurality of software applications and resources, the method comprising: intercepting communications from a first application sent to an operating system and intended for a second application or resource, wherein the first application, and the second application, or the resource are instantiated on the same operating system; directing the communication to a context management system, wherein the context management system creates a virtual context for the first application; 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 a resultant action and namespace for the communication; and performing the resultant action as defined by the at least one policy within the identified namespace.