1. In a data processing system with a distributed architecture including a plurality of computers, each computer playing at least one of a plurality of predetermined roles in the data processing system, a method of configuring the computers comprising: defining a target configuration for each predetermined role based on a reference model for a software product, the reference model specifying for each predetermined role, components of the software product that are to be installed on a computer having the predetermined role, wherein the plurality of predetermined roles comprises one or more physical roles and one or more logical roles; defining, in a transition table data structure, for each current state/target state pair of each component of the software product, an identifier of one or more actions required to reach the target state from the current state; identifying, for a computer in the plurality of computers, a physical role corresponding to the computer, the physical role identifying at least one function the computer plays within the distributed architecture of the data processing system and being defined based on the computer's position within the distributed architecture and a relationship between the computer and other computers in the plurality of computers; identifying, for the computer in the plurality of computers, at least one logical role, defined by a software configuration of the computer; and configuring the computer according to the target configuration corresponding to the physical role and the at least one logical role of the computer based on the current state/target state pairs in the transition table data structure.