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.
|
|