We propose a predefined set of basic components for designing and implementing constraint solver cooperations and solver cooperation languages. Combining these components into patterns enables one to manage computation, control, and coordination needed for solver cooperations. Our framework has been implemented with the CHR language. We then used it to implement some cooperation primitives, and some constraint propagation with cooperative components.