Ziele

Das Gesamtziel von MOHITO ist die modellgetriebene homogenisierte Datenhaltung und Synchronisation mit vorhersagbaren Eigenschaften für plattformübergreifende Anwendungen. Das Gesamtziel setzt sich aus den folgenden Detailzielen zusammen:

  • Entwurf zentraler Beschreibungsmodelle und Beschreibungssprache für Domain-Modelle sowie Meta-Daten (Integritätsbedingung, Transaktionsanforderung)

Der technische Lösungsansatz zur Erreichung dieses Ziels ist die Metamodellierung der Datenhaltungsschicht von Multi-Plattform Anwendungen auf Basis etablierter (de-facto-)Standards der modellgetriebenen Softwareentwicklung unter Berücksichtigung existierender Metamodelle zur Datenmodellierung. Der innovative Kern des Projekts MOHITO besteht in der Erweiterung existierender Ansätze zur weitestgehend statischen Datenmodellierung um Aspekte der Datenhaltung zur Laufzeit, d.h. die Unterstützung von Offline-Synchronisation, Caching, Integritätsbedingungen und Transaktionsanforderungen. In die Umsetzung des Ziels fließt die Expertise der Projektpartner in den Bereichen der Metamodellierung, der klassischen Datenmodellierung und der manuellen Implementierung von Datenhaltungsschichten für Multi-Plattform Anwendungen ein.

  • Erzeugung plattform- und applikationsspezifischer Datenhaltungsschichten, sowie Synchronisationsmechanismen aus applikationsspezifischen Modellbeschreibungen

Sowohl die verschiedenen client- und serverseitigen Plattformen, als auch die anwendungsspezifischen Anforderungen erfordern unterschiedliche Implementierungen des gleichen, anwendungsspezifischen Datenmodells. Dies betrifft die Datenhaltung selbst, die Synchronisation zwischen den auf unterschiedlichen Plattformen verteilten Anwendungskomponenten, ebenso wie die Schnittstellen für den Zugriff durch externe Anwendungen und Nutzer. Um die hierfür notwendigen manuellen Aufwände zu reduzieren wird eine Modellierungs- und Generierungsinfrastruktur geschaffen, die es Entwicklern erlaubt ein anwendungsspezifisches Datenmodell, inklusive der Qualitätsanforderungen an Datenpersistenz und –synchronisation, zu entwerfen und hieraus die notwendigen Implementierungen generieren zu lassen. Zur Sicherung der Nachhaltigkeit dieses Vorgehens, wird nicht nur die initiale Modellierung und Generierung unterstützt, sondern der gesamte Lebenszyklus, inklusive Wartung und Weiterentwicklung berücksichtigt. Dies beinhaltet sowohl die Weiterentwicklung des Datenmodells und die anschließende, erneute Generierung, als auch die Weiterentwicklung der Generatoren, beispielsweise für neue oder geänderte Plattformen und die hierfür ebenfalls notwendige, erneute Generierung.

  • Ausnutzung plattformspezifischer Bausteine (Bsp. SQLite, EH-Cache, MML)

Zur Erreichung dieses Ziels wird aus technischer Sicht ein hybrider Lösungsansatz verfolgt, der auf Separierung der Datenhaltungsschicht in einen generierten und einen nicht-generierter Teil beruht.  Den nicht-generierten Teil stellt das im Projekt entwickelte Multi-Plattform-Framework für Datenpersistenz und Datensynchronisation dar, welches spezifisch für jede im Projekt adressierte Plattform auf Grundlage plattformspezifischer Bausteine wie SQLite, EH-Cache oder MML umgesetzt wird und Basismechanismen plattformübergreifend zu Verfügung stellt. Gegen diese jeweils plattformspezifisch umgesetzten Basismechanismen erfolgt die Generierung von plattformspezifischem Code aus anwendungsspezifischen Instanzen der MOHITO Modelle bzw. deren Interpretation zur Laufzeit. Zur Umsetzung des für die Generierung notwendigen Generierungs-Frameworks sollen existierende Template-Sprachen aus dem Umfeld der modellgetriebenen Softwareentwicklung zum Einsatz kommen. Die Innovation von MOHITO gegenüber existierenden Ansätzen zur modellgetriebenen Generierung der Datenhaltungsschicht liegt insbesondere in der integrierten Unterstützung von server- und clientseitigen Mechanismen für Caching, Synchronisation und Datenpersistenz.

  • Qualitätsbewertung generierter Software-Stacks

Ziel der Qualitätsbewertung der generierten Software-Stacks ist es, Aussagen über die tatsächliche Erfüllung der modellierten funktionalen und nicht-funktionalen Eigenschaften (Verfügbarkeit, Performance, erreichbare Datenaktualität) durch das Generat zu treffen und  den Umfang der dafür benötigten Ressourcen (Bandbreite, Speicherbedarf, Rechenleistung) abzuschätzen. Als ein gangbarer Weg zur technischen Umsetzung dieses Ziels wird die Definition einer Reihe vordefinierter Testfällen angesehen, die auf Grundlage der im MOHITO Modell spezifizierten funktionalen und nicht-funktionalen Eigenschaften systemgestützt ausgewählt und parametrisiert werden. Die Ergebnisse dieser Tests geben einen Aufschluss über den Grad der Übereinstimmung von Modell und Generat und den entsprechenden Bedarf an Ressourcen. Werden die modellierten Eigenschaften nicht erreicht, so lässt sich auf Grundlage der Testergebnisse zunächst einschätzen, ob die modellierten Eigenschaften unter den in den Tests gesetzten Randbedingungen überhaupt praktisch abbildbar sind. Werden die modellierten Eigenschaften nur knapp verfehlt, ermöglichen die Testergebnisse ein gezieltes Vorgehen für die Feinabstimmung des Modells.

  • Entwicklung von Migrationsstrategien zur Integration in Bestandssoftware

Die zu konzipierenden Migrationsstrategien sollen Ansatzpunkte und Wege zur Umstellung existierender Multi-Plattform-Systeme auf eine homogenisierte und plattformübergreifende Datenhaltung  nach dem MOHITO-Ansatz umfassen. Migrationsstrategien sollen für klassische Client-Server Lösungen und mobile Standalone-Anwendungen entworfen werden. Es ist abzusehen, dass die konkrete Ausprägung der Migrationsstrategie stark von der individuellen Architektur und der Komplexität einer zu migrierenden Anwendung abhängt. Um Allgemeingültigkeit zu erreichen, sollen im Projekt Migrationsstrategien für Anwendungen entwickelt werden, die der üblichen Schichtenaufteilung  z.B. in Thin-Client und Fat-Client Anwendungen entsprechen die relationale Datenbanken als Datenbackend verwenden.