We consider cyclic real-time applications built using nearly autonomous components. These components can run on any of the available hosts subject to certain constraints. The hosts in the system are allowed to be heterogeneous and they can have different cycle times for real time execution. Given a set of component based applications and a set of available hosts, we propose a solution for the problem of finding an optimum deployment. The deployment problem can be reduced to the problem of finding feasible static schedules for each host in the system that satisfy the real-time periodic execution requirements of all the applications. We propose a deterministic algorithm for finding static schedules for all the hosts in the system. The approach models the possible partial schedules at each step as nodes in a virtual tree. A breadth first traversal is conducted to construct the tree and complete the schedule. A node is removed from the tree if it cannot lead to a correct schedule. If more than one solutions are possible then the ‘best’ solution is selected based on the optimization criteria.