Distributed computing systems composed of heterogeneous and autonomous components are continuously growing in their size, complexity and diversity. Resource utilization, such as the CPU and the communication network, vary dynamically. In addition, the quality of service requirements vary from one application to the other. These characteristics necessitate adaptive and dynamic solutions for the load balancing problem. In this research, we are investigating knowledge-based techniques for developing an expert system environment, in which heuristic knowledge and real-time decision making are used to manage such complex and dynamic systems in a decentralized fashion.