1. A method of providing communication support for collaborative applications comprising: abstracting a network and application server resources at a middleware level; indexing the application server resources in a network aware and application aware manner to reflect positions of the application server resources in an application space; indexing a plurality of users to reflect communication interests of the plurality of users in the application space; and forming a communication overlay tree that provides communication links between the application server resources and the plurality of users, via the middleware level, the communication overlay tree comprising a first set of one or more nodes representing the application server resources, a second set of one or more nodes representing the plurality of users, a third set of one or more nodes representing middleware residing at the middleware level, and a fourth set of one or more nodes for clustering said one or more nodes representing the application server resources into a first set of one or more groups and for clustering the one or more nodes representing the plurality of users into a second set of one or more groups different from the first set of one or more groups, such that communications from said first set of one or more groups or from said second set of one or more groups are routed via a single one of the communication links to one of the one or more nodes representing middleware.