1. A non-transitory computer-readable storage medium storing a computer program which when executed performs a collaborative computing method comprising: defining a collaborative community by a particular context, membership and a set of roles for individual ones of the membership and including in the collaborative community different instances of different business components, each instance of the business components including program code of both functions and data; storing a set of permissions defining access to a generic one of the different business components for a named permission set; instantiating the generic one of the business components within the community into an instance of the generic one of the business components within the community; and mapping the set of permissions for the named permission set to an abstract role for the instance of the generic one of the business components within the community.