Problem-solving methods provide reusable architectures and components for implementing the reasoning part of knowledge-based systems. The UNIFIED PROBLEM-SOLVING METHOD DESCRIPTION LANGUAGE (UPML) has been developed to describe and implement such architectures and components to facilitate their semi-automatic reuse and adaptation. In a nutshell, UPML is a framework for developing knowledge-intensive reasoning systems based on libraries ofg eneric problem-solving components. The paper describes the components and adapters, architectural constraints, development guidelines, and tools provided by UPML. UPML is developed as part of the IBROW project, which provides an Internet-based brokering service for reusing problem-solving methods