In unserer zunehmend vernetzten Welt wird Interoperabilität immer wichtiger. Sobald die Software mit passenden Programmierschnittstellen (Application Programming Interface, API) versehen ist, lässt sich die in dieser Software verpackte Expertise nutzen und andere Personen können in ihrer eigenen Entwicklung darauf aufsetzen. Komplexität wird versteckt und mit wenigen Zeilen Programmcode benutzbar. Für die Bereitstellung der Schnittstellen gibt es zwei Möglichkeiten: Entweder die Software wird als Paket oder Bibliothek zur Verfügung gestellt und andere Softwareprodukte binden diese ein oder eine lauffähige Version des Programms steht als Webdienst (Service) zur Verfügung. Ein anderes Softwareprodukt importiert das Programm nicht mehr, sondern setzt API-Aufrufe ab, die von dem Webdienst entsprechend beantwortet werden. Letzteres bietet den Vorteil, dass an einer zentralen Stelle alle in einer Organisation lauffähigen Services gebündelt zugänglich sind. Vor allem aber wird den nutzenden Entwicklerinnen und Entwicklern die Arbeit abgenommen, das Programm selbst lauffähig zu bekommen. Die zu nutzenden Services laufen in ständiger Bereitschaft und immer in der aktuellen Version. Die Verfügbarkeit dieser Dienste ist dann nur noch durch die Erreichbarkeit der IT-Infrastruktur (also durch Netzwerke und Firewalls) limitiert, funktioniert prinzipiell also auch unternehmensübergreifend. Während der Programmieraufwand für neue Software kaum merklich steigt, ist der notwendige Kulturwandel die eigentliche Kernaufgabe.
Zugang für ‚Alle‘
Mit einem „Alles bekommt eine API“-Credo motivieren wir unsere Wissenschaftlerinnen und Wissenschaftler zum Umdenken: von der Software zum funktionsfähigen Service für die Allgemeinheit. Dafür bedarf es Schulungen, einer geeigneten Infrastruktur (u.a. Container-Laufzeitumgebungen) sowie entsprechende Strategien und Konzepte, um diese Technologien sinnvoll zusammenzuführen. Die am Institut bereitgestellte Infrastruktur setzt auf offene Standards und ist vollkompatibel zu den gängigen Cloudplattformen. Damit etablieren wir für unsere Softwarelösungen einen offenen Innovationsprozess. Neben einer allgemeinen Digitalisierungsstrategie der Institutsprozesse gibt es konkrete Leitfäden und Konzepte, wie Software bestmöglich als Service zu entwickeln ist. Dies umfasst ein allgemeines Software-Engineering-Konzept sowie ein Programmierschnittstellen-Konzept (API-Konzept), die sicherstellen, dass Software interoperabel ist und anderen Softwareentwickelnden vollumfänglich zur Verfügung steht. Ein Inner-Source-Konzept, also eine interne Veröffentlichungspflicht für den Quellcode der bereitgestellten Methoden, sorgt für die nötige Akzeptanz des Dienstes, da dieser andernfalls als Blackbox schlicht nicht von außen verifizierbar wäre.
Schwellen senken und Schätze bergen
Das Ziel dieser Aktivitäten ist es, die Schwelle zur Veröffentlichung von kleineren Softwareprodukten so weit zu senken, dass die Implementierung eines Services eine selbstverständliche Arbeitsweise wird. Etwaige Dopplungen von z.B. Analyseroutinen zur Versuchsauswertung können wir so künftig vermeiden. Statt die gesamte Funktionalität neu zu implementieren, erweitern wir zukünftig bestehende Software um fehlende Features und veröffentlichen diese Erweiterungen gleich wieder als lauffähigen Service. Das Ziel ist, die sprichwörtlichen Schätze der Wissenschaftlerinnen und Wissenschaftler zu bergen und sicht- bzw. nutzbar zu machen. Ein weiteres Ziel ist die Schaffung einer einfachen Möglichkeit, Referenzlösungen bereitzustellen. Wir beobachten, dass disziplinübergreifend oft die gleichen Algorithmen zur Auswertung von Daten implementiert werden. Die notwendige Verifizierung der Algorithmen (also das Überprüfen der korrekten Übersetzung in Quellcode) ist oft langwierig und fehleranfällig. Existiert eine Referenzlösung, kann diese als Basis für die Verifizierung dienen und damit die Entwicklung erheblich beschleunigen.
Auf dem Weg
Aktuell stellen wir die so entwickelten Funktionalitäten nur DLR-intern bereit. Perspektivisch plant das DLR jedoch den Betrieb eines Gateways, das diese Services weltweit zur Verfügung stellt. Software steht dann nicht nur als Quellcode bereit. Vielmehr übernimmt die Software die Funktion eines funktionsfähigen Webservices, auf den andere Institute und Industrieunternehmen aufsetzen können, um ihre eigenen Prozesse zu verbessern. Diese Art der Bereitstellung ist in der Wissenschaftsgemeinde bislang einzigartig.