COOPERATIVE SELF-COMPOSITION AND DISCOVERY OF GRID SERVICES IN P2P NETWORKS