Generic System Architecture For Context-Aware, Distributed Recommendation