Digitale Transformation

Flexible Software-Architekturen – Teil 1: Metadaten

Software-Systeme werden im Cloud-Zeitalter hinsichtlich ihrer Anwendbarkeit immer flexibler – vor allem durch den zeit- und ortsunabhängigen Datenzugriff sowie variable, nutzungsabhängige Subskriptionsmodelle. Aber auch die Architekturen der Lösungen bieten heutzutage mehr Flexibilität und damit mehr Freiheiten in der Gestaltung. Denn bei Anwendungen befindet sich die Beschreibung der Benutzeroberfläche – etwa die Anordnung, Größe, Schriftart und Farbgebung von Objekten – immer häufiger nicht mehr direkt im Quellcode, sondern in den so genannten Metadaten. Diese beinhalten Informationen über die Merkmale bestimmter Daten, ohne jedoch deren Inhalt selbst zu beschreiben.

Anpassungen vornehmen – ohne Programmierkenntnisse

Die Metadaten einer Benutzeroberfläche sind in einer Datei ausgelagert, die sich auf einer Zwischenebene zwischen Anwendung und Quellcode befindet. Die darin enthaltenen Informationen liegen in strukturierter Form vor, das heißt, sie lassen sich mithilfe spezieller Tools wie beispielsweise einem App-Designer auslesen. Programmierkenntnisse sind dafür nicht erforderlich. Praktisch jeder Anwender kann die Benutzeroberfläche somit auf Knopfdruck anpassen – etwa einen bestimmten Kundenstamm vergrößern oder ein Eingabefeld hinzufügen. Ein Eingriff in den Quellcode ist also nicht mehr notwendig. Auch der Vorgang des Kompilierens entfällt.

Die entsprechenden Prozesse laufen dabei im Hintergrund ab: Will der Anwender zum Beispiel einen Kundenstamm ändern, greift der Quellcode auf die Metadaten-Datei zu, liest die relevanten Informationen aus und generiert daraus eine HTML-Datei, die der Anwender dann bearbeiten kann – etwa ein Feld hinzufügen, die Farbe ändern etc. Dieser Prozess erfolgt bei jeder Änderung: Der Quellcode zieht sich die jeweiligen Informationen aus den Metadaten, und beim nächsten Öffnen wird die Benutzeroberfläche entsprechend aktualisiert.

Mehr Flexibilität – weniger Aufwand

Die Beschreibung von Software-Elementen mittels dynamischer Metadaten reduziert den Aufwand bei der Anwendungskonfiguration erheblich: Ist die Applikation einmal programmiert, lassen sich in den Metadaten völlig unterschiedliche Benutzeroberflächen definieren – etwa ein Web-Client in XML oder eine Windows-Oberfläche. Ein entscheidender Punkt. Denn während viele Unternehmen zurzeit auf die Cloud umsteigen, sind nach wie vor zahlreiche Windows-Anwendungen im Einsatz. Würden die Beschreibungen der Benutzeroberfläche so wie früher direkt im Quellcode liegen, müsste der Hersteller diesen zweimal von Grund auf neu programmieren – einmal für XML und einmal für Windows. Durch die Auslagerung der Metadaten lassen sich dagegen verschiedene Oberflächen schnell und einfach konfigurieren –­ eine wesentlich wirtschaftlichere Lösung, von der auch die Kunden profitieren, da sich ihre individuellen Anforderungen rascher umsetzen lassen.

Responsive Design leicht gemacht

Die Anpassung der Benutzeroberfläche an unterschiedliche Endgeräte, das so genannte Responsive Design, ist dank der Definition in den Meta-Daten ebenfalls wesentlich einfacher und weniger aufwändig. Ein Kundenstamm aus drei Spalten beispielsweise, der am PC-Bildschirm übersichtlich angezeigt wird, erfordert für die Darstellung im Smartphone einen anderen Aufbau – etwa eine Anordnung der Spalten untereinander. Wären die Beschreibungen der Benutzeroberfläche fest programmiert, müsste der Quellcode für das Smartphone-Design komplett neu geschrieben werden – ein enormer Aufwand. Dynamische Metadaten ermöglichen es, solche Änderungen ohne Eingriffe in den Quellcode vorzunehmen.

In den Metadaten werden vor allem gestalterische Details festgelegt. Aber auch einfache Geschäftslogiken lassen sich hier definieren – etwa Pflichtfelder oder die Bedingung, dass ein bestimmtes Feld die Eingabe einer Zahl erfordert. Bei weiterführenden Logiken oder Plausibilitätsprüfungen stoßen Metadaten allerdings an ihre Grenzen. Eine falsch eingegebene Postleitzahl oder eine ungültige IBAN-Nummer beispielsweise können sie nicht erkennen.

Neben der Software-Entwicklung bieten Cloud-Anwendungen auch im Rechenzentrumsbetrieb enormes Potenzial. Denn sie ermöglichen nicht nur eine Flexibilisierung der Software-Architektur, sondern auch auf Infrastrukturebene. So lassen sich Hardware-Ressourcen wie Rechenleistung oder Speicherplatz heute als ausführbarer Code programmieren und damit ohne manuellen Eingriff agil an die jeweiligen Gegebenheiten anpassen. Wie das genau funktioniert, erfahren Sie in unseren nächsten Blogbeitrag zum Thema „Infrastructure as Code“.