Load Balancing in Distributed Systems with Multiple Classes and Site Constraints