The emergence of grid and cloud computing require load balancers to deal with potential problems, such as high level of scalability and heterogeneity of computing resources. In this paper, we present a generic load balancing framework which separates allocating process and migrating process while preserving a guaranteed level of service. Based on this framework, an intelligent load balancer that is aware of multiple Quality of Services and directed by users' requirements is proposed. The load balancer aims to deal with elastic heterogeneous distributed computing environments.