For the construction and maintenance of large scale job shop scheduling systems, numerous approaches have been introduced. Most of the systems however suffer from their intrinsic complexity of scheduling and the poor real time responsiveness to the deviation from the original schedule. We argue that the computational complexity in the real world scheduling systems is caused by the excessive centralization of scheduling activities. In order to reduce the complexity, we suggest to distribute the scheduling activities to several lower level dispatchers under the centralized coordination of the supervising schecduler. For this purpose, we propose a two-layered hierarchical architecture. In this architecture, each dispatcher schedules and controls its work area independently as far as the constraints imposed by the supervisign scheduler are not violated. If there occur and conflicts within a dispatcher, it is reported to the higher level scheduler so that the scheduler can take action to resolve the conflicts. Through a series of experiments, we found that the hierarchical architecture can reduce the complexity significantly and can provide the robustness of the original schedule to the local changes. The performance of schedules are evaluated with respect to tardiness, setups, and flow time not only for the generative scheduling phase but also for the reactive control phase. The next objective of this research is the discovery of appropriate heuristics for the activity ordering, the time slot allocation, and the split of activities to parallel machines. We have also performed various experiments under different comninations of scheduling heuristics and architectures. Based on the contingencies found from the experiments, we can suggest how to design scheduling expert systems. A prototype scheduling expert system named KAIS-3 was implemented based on the hierarchical architecture using the expert system development tool UNIK on SUN 3/280 work station.