Agent Based Grid Resource Discovery with Negotiated Alternate Solution and Non-Functional Requirement Preferences