Applications of distributed constraint reasoning framework for the control and management of customer-driven micro-grids