Data Integration over Distributed and Heterogeneous Data Endpoints