Dies ist zwar keine wirkliche Antwort, könnte Sie aber zumindest auf dem Weg zu einer praktikablen Lösung weiterbringen. Bei einem früheren Arbeitgeber hatten wir eine ähnliche Situation - viele Datenquellen, unterschiedliche Zugriffsmöglichkeiten auf diese Datenquellen, unterschiedliche Zugriffsberechtigungen, militärische/staatliche/zivile Quellen usw. Wir verwendeten Maultier das auf dem Enterprise Service Bus-Konzept aufbaut, um diese Datenquellen mit unserer Anwendung zu verbinden. Die Details sind etwas dürftig, da ich nicht der eigentliche Implementierer war, sondern nur ein Integrator, aber wir haben einen Kanal in Mule definiert. Dann schreibt man ein einfaches Integrationsstück, das zwischen dem Kanal und der Datenquelle sowie der Anwendung und dem Kanal geschaltet wird. Wir hatten also ein generisches SQL-Integrationsstück für den Zugriff auf eine Datenbank, und für Dinge wie Webservices hatten wir einige Basisklassen, die allgemeine Funktionen implementierten, so dass die eigentliche Anpassung des Integrationsstücks viel weniger Arbeit war, als es sich anhört. Die Anwendung konnte dann den Kanal abfragen, der den Zugriff auf die verschiedenen Datenquellen, die Umwandlung in ein normalisiertes XML-Format und die Rückgabe der Ergebnisse an die Anwendung übernahm.
Das hatte für unsere Situation eine Menge Vorteile. Wir konnten neue Datenquellen für bestehende Abfragen einbeziehen, indem wir sie einfach mit dem Kanal verbanden - die Anwendung musste nicht wissen oder sich darum kümmern, welche Datenquellen vorhanden waren, da sie nur die Daten aus dem Kanal betrachtete. Da Daten aus dem Channel gepusht oder gezogen werden können, konnten wir eine Datenquelle die Anwendung aktualisieren lassen, wenn sie z. B. aktualisiert wurde.
Es hat eine Weile gedauert, bis es konfiguriert war und funktionierte, aber als wir es einmal zum Laufen gebracht hatten, waren wir ziemlich erfolgreich damit. In unserem Demo-Setup hatten wir am Ende 4 oder 5 Anwendungen, die sowohl als Datenproduzenten als auch als Datenkonsumenten fungierten und sich mit vielleicht 10 Datenquellen verbanden.