Issue #2623012 by mikeryan, KarenS, mbaynton: Implement interfaces and base classes for URL-based sources