ZIM Projekt AACC

ZIMDas vom Bundesministerium für Wirtschaft und Technologie aus dem Zentralen Innovationsprogramm Mittelstand (ZIM) geförderte Projekt beschäftigt sich mit der Überführung von Anwendungssoftwarekomponenten in die Cloud.

Ziel ist es, Werkzeuge zu entwickeln, die es erlauben, Anwendungssoftware auf die Anforderungen einer Cloud-Umgebung umzustellen. Das Projekt, das in Kooperation mit dem s-lab (Software Quality Lab) der Universität Paderborn durchgeführt wird, verfolgt dabei einen modellgetriebenen Ansatz, d.h. zur Unterstützung des Überführungsprozesses werden wesentliche Eigenschaften der Anwendungssoftware extrahiert und in Modellen abgebildet.

Auf Modellebene werden dann die Anforderungen für die Cloud eingebracht, bevor aus dem Modell wieder ausführbarer Code erzeugt wird. 

Im Rahmen des Projekts werden die erstellten Werkzeuge am Beispiel von insTRA, der S&N Lösung für das effektive Versicherungsmanagement getestet und geschärft. insTRA ist ein SAP-Add-on und lässt sich nahtlos in eine vorhandene SAP-Systemland-schaft integrieren. Dies erlaubt beispielsweise, bereits vorhandene SAP-Stammdaten in insTRA zu verwenden. Redundante Daten und doppelter Pflegeaufwand werden damit vermieden. Zahlungseingänge können direkt in SAP FI verbucht werden.

Unser Projektpartner ist das Kompetenzzentrum der Universität Paderborn im Bereich Softwaretechnik, das s-lab. Dessen Zielgruppe sind kleine, mittlere und große Unternehmen, für die und mit denen Forschungs- und Entwicklungsprojekte zu aktuellen und praxisrelevanten Themen aus der Softwareentwicklung und Qualitätssicherung durchgeführt werden. 

Cloud Computing

Cloud Computing stellt dem Nutzer IT-Leistungen zur Verfügung.

Handelt es sich um Speicherkapazität für Daten oder um abrufbare Rechenleistung, werden diese Angebote unter dem Schlagwort Infrastructure as a Service (IaaS) zusammengefasst.

Werden diese hardwarenahen Leistungen durch Basisdienste wie etwa Betriebssystem, Datenbanken, Web-Server oder Programmierumgebungen erweitert, spricht man von Plattform as a Service (PaaS). Kennzeichen dieser Angebote ist, dass zwar Softwareumgebungen vorhanden sind, diese aber regelmäßig vom Nutzer als Plattform für eigene Systeme genutzt werden. Das Spektum der Basisdienste geht bis hin zu komplexen Softwarelösungen – so werden am Markt auch ganze SAP-Systeme als Plattform as a Service angeboten.

Steht bei der erbrachten Leistung die komplette fertige Applikation im Vordergrund, spricht man von Software as a Service (SaaS).

Die nötigen Ressourcen werden dabei vom Anbieter der Cloud-Lösung immer im gerade benötigten Umfang zur Verfügung gestellt und auch entsprechend abgerechnet. Zudem wird eine hohe Toleranz gegen den Ausfall von Ressourcen gewährleistet.

Beispiel insTRA

Für die beispielhafte Umstellung von insTRA wird eine SAP-Plattform als Basis verwendet. Derartige Plattformen werden beispielsweise von IBM und auch von SAP angeboten.

Der im Projekt zu entwickelnde Umstellungsprozess wird jedoch unabhängig vom Anbieter und den Eigenschaften der konkreten Plattform sein - die für eine konkrete Plattform nötige Parametrisierung wird im Umstellungsprozess auf Modellebene ergänzt. Die erstellten Werkzeuge werden es somit erlauben, eine Lösung mit geringem Mehraufwand auch auf verschiedene Plattformen zu deployen.

Als Resultat der Überführung wird insTRA als Software as a Service in der Cloud angeboten. Die Lösung setzt dann auf die zugrundeliegende PaaS-Plattform auf und kann so mit allen Vorteilen der Cloud aufwarten.

Anforderungen aus der Umstellung auf die Cloud

Plattformadaption

Mit der beschriebenen Notwendigkeit, unterschiedliche Plattformen nutzen zu können, wurde eine erste Anforderung bereits benannt: die Werkzeuge müssen erlauben, wesentliche Eigenschaften der zu nutzenden Plattform zu parametrisieren und diese im Überführungsprozess mit der Anwendung zu verknüpfen. Zu denken ist dabei an technische Zugangsdaten, Datenbankname, -user und -passwort – aber auch an Verzeichnisnamen für Dateiablage, Logging und ähnliches. Zudem müssen auch die nötigen Supportwerkzeuge adaptiert werden, denn für eine sichere Nutzbarkeit muss der Betrieb der Anwendung auch proaktiv überwacht werden können.

Sicherheit

Eine Anwendung in der Cloud befindet sich nicht mehr im geschützten internen Bereich einer Unternehmensinfrastruktur. Somit sind Maßnahmen zu treffen, die die Anwendung und die enthaltenen kritischen Unternehmensdaten vor unbefugter Nutzung sichern. Zum einen dürfen nur befugte Nutzer Zugriff auf die Anwendung bekommen, zum anderen muss eine missbräuchliche Nutzung durch befugte Nutzer verhindert werden – das könnte zum Beispiel der Versuch sein, auf Daten anderer Nutzer zuzugreifen, die auf derselben Plattform verarbeitet werden.

Zugänglichkeit

Cloud-Applikationen nutzen typischerweise Weboberflächen, die über den Browser bedient werden. Gerade Legacy-Anwen-dungen verlangen jedoch häufig die Installation eines Clients für die Nutzung. Daneben ist Code für das User-Interface häufig mit der Business-Logik vermischt. Im Rahmen der Umstellung auf die Cloud muss das vorhandene User-Interface durch eine Web-Oberfläche ersetzt und die Business-Logik vom User-Interface getrennt werden.

Die oben beispielhaft angeführten Anpassungsnotwendigkeiten für die Cloud-Umgebung betreffen verschiedene Dimensionen einer Anwendungssoftware – von der Konfigurierbarkeit einiger Eigenschaften, über Aspekte, die in einzelnen Funktionen zu ergänzen sind, bis hin zu Änderungsnotwendigkeiten, die eine Umstrukturierung, ein Refactoring von Teilen der Anwendung verlangen.

Umsetzung mit Methoden aus der modellgetriebenen Softwareentwicklung

Zur Umsetzung dieser Änderungsanforderungen setzen wir im Projekt AACC Methoden aus der modellgetriebenen Softwareentwicklung ein, speziell aus dem Model Driven Reverse Engineering. Dabei werden im Rahmen der Überführung Modelle der vorhandenen Anwendungssoftware erstellt und benutzt um Eigenschaften der Anwendung zu analysieren und zu verändern.

ZIM-BMWI-Logo

Hier bezeichnet der Begriff Modell nicht zuerst eine Skizze oder graphische Darstellung. Bei den genutzten Modellen handelt es sich um Datenstrukturen, die dedizierte Eigenschaften der Anwendungssoftware abbilden und die Analyse vereinfachen. So lässt sich im Modell darstellen, welche Module von welchen anderen Modulen aufgerufen werden, um basierend darauf die Programmstruktur der Anwendung zu untersuchen.

Der Überführungsprozess gliedert sich in eine Vielzahl von Einzelschritten, bei denen unterschiedliche Aspekte benutzt werden, um unterschiedliche Dimensionen des Überführungsprozesses abzubilden, vgl. Abbildung 1.

Um den Programmcode in ein Modell zu überführen, wird zunächst ein Parser entwickelt, der alle im folgenden Prozess benötigten Eigenschaften aus dem Programmcode extrahieren kann. Anschließend werden die wesentlichen Komponenten und Services der zukünftigen Cloud-Lösung identifiziert und durch Refactoring strukturiert. Das Projekt AACC entwickelt dazu ein Werkzeug, das den Arbeitsschritt unterstützt.

In den nächsten Schritten werden plattformunabhängige und plattformabhängige Aspekte des Cloud-Computing modelliert und mit dem Modell der Anwendungssoftware verknüpft. Dazu werden die zugehörigen Modelle und die Transformationssoftware erstellt. Anschließend wird das geänderte und erweiterte Modell der Anwendungssoftware wieder in übersetzbaren Code umgewandelt, um schließlich den Prototypen der Cloud-Anwendung zu erhalten.

Realisierung der Werkzeuge

Im Umfeld der modellgetriebenen Entwicklung existiert eine große Zahl von Tools, die die Definition und Implementation von Modellen unterstützen. Besonders ist hier das Eclipse Modeling Framework Project (EMF) zu nennen.

Die Kernkomponente EMF (Core) erstellt aus einer in XML gegebenen Modellspezifikation eine Umsetzung in Java-Klassen, die nötigen Adapter zum Lesen und Schreiben der Daten. Zudem wird auch ein Editor erzeugt, der es erlaubt, Datensätze zu erstellen, zu lesen und zu verändern.

Für das Parsing und die Code-nahen Aufgaben werden wir das ebenfalls aus der EMF-Familie stammende XText einsetzen. XText unterstützt hier insbesondere beim Erstellen des Parsers und der Anwendung auf den Code. So wird, z.B. von XText auf Basis einer Grammatik ein Editor bereitgestellt, mit dem sich die Vollständigkeit der Grammatik überprüfen lässt.

Ansprechpartner: Dr. Klaus Schröder; Turn on Javascript!