Hasso-Plattner-Institut
  
    • de
Hasso-Plattner-Institut
Prof. Dr. Holger Giese
  
 

Modellgetriebene Softwareentwicklung für Multicore und Cloud Systeme

Modellgetriebene Softwareentwicklung für Multicore und Cloud Systeme

Hintergrund

Sogenannte domänenspezifische Sprachen (Engl. Domain specific languages bzw.DSLs) ermöglichen es, Anwendungen mit Hilfe von für die Domäne angemessenen Abstraktionen auf einem höheren Abstraktionsniveau zu spezifizieren. Mit Hilfe von Techniken der modellgetriebenen Softwareentwicklung wie Transformation und Interpretation werden die in der DSL verfassten Programme ausführbar. Die geschickte Wahl der Abstraktion kann die Effizienz und Qualität sowie die Portabilität und Langlebigkeit der Anwendungen positiv beeinflussen.

Die modellgetriebene Softwareentwicklung mit DSLs wird bereits erfolgreich bei der Entwicklung von Softwaresystemen bei der SAP eingesetzt. Diese
DSLs haben lange erfolgreich die Anwendungen von Veränderungen bei Betriebssystemen, Datenbanken und Hardwarearchitekturen abgeschirmt. Die
aktuellen Trends rund um Multicoresysteme und Cloud Computing als  Plattformen können jedoch von den bisher genutzten Sprachen nur noch bedingt ausgenutzt werden, da bisher verwendete Abstraktionen häufig zu einer expliziten Serialisierung des Verhaltens führen und Annahmen über die Datenhaltungsarchitektur machen, die in Cloud-Umgebungen nicht immer zutreffen. Deswegen sollen neue, für die Domäne Enterprise Applications und diese neuen Architekturen geeignete Abstraktionen sowie darauf aufbauende DSLs entwickelt werden. Dabei spielt es unter anderem eine wichtige Rolle, die Funktionalität nah bei den im Hauptspeicher gehaltenen Daten ausführen zu können und so spaltenorientierte In-Memory Datenbanken zu verwenden, um insbesondere lesende und aggregierende Anfragen stark zu beschleunigen.


Um Experimente mit verschiedenen DSLs einfach zu ermöglichen, wird bei der SAP die Entwicklung einer Language Workbench betrachtet, die es ermöglicht, DSLs für Enterprise Applications zu entwickeln, die neben der fachlichen Domäne u.a. auch für Multicoresysteme und Cloud Computing geeignet sind.

Gegenstand

In diesem Bachelorprojekt soll deswegen im Kontext der modellbasierten Entwicklungeine solche Language Workbench in Eclipse entwickelt werden und anhand einesBeispiels für Multicoresysteme und Cloud Computing evaluiert werden.Dazu sollen im Rahmen des Projektes am Anfang eine existierende LanguageWorkbench und bereits in Eclipse vorhandene Teillösungen untersucht werden.Zusätzlich soll das Evaluierungsbeispiel erfasst werden, das dazu dienen soll, besserzu verstehen, wo im Einzelnen die Herausforderung einer DSL für EnterpriseApplications mit Multicoresystemen mit In-Memory Datenbank und Cloud Computingals Zielplattform liegen.Auf Basis des so entwickelten Verständnisses sollen dann entsprechendeLösungskonzepte für die Language Workbench und DSL entwickelt werden und bzgl.ihrer Eignung anhand der Beispielprobleme evaluiert werden.

Auf Basis derLösungskonzepte soll dann ein Prototyp der Language Workbench auf Basis vonEclipse entwickelt werden. Daran schließt sich eine Evaluierung dieses Prototypsanhand der Beispiel-DSL an.Es ist dabei das Ziel des Bachelorprojektes zu explorieren, wie eine DSL und eineentsprechende Entwicklungsumgebung für Enterprise Applications, die sowohl fürMulticoresysteme mit In-Memory Datenbank wie auch Cloud Computing alsZielplattform geeignet ist, aussehen sollte.

Umsetzung

Das Bachelorprojekt kann bei der Umsetzung der Konzepte auf vorhandeneTechnologien zurückgreifen. Von Seiten der SAP werden wir auf dem FURCAS Projektaufbauen (www.furcas.org). Bei EMF handelt es sich um frei verfügbare Software.Darüber hinaus verfügt das Fachgebiet über entsprechende Technologien für dieeffiziente, inkrementelle Transformation und Synchronisation von Modellen.Die prototypische Software soll entsprechend in Eclipse integriert arbeiten und solldementsprechend mit Java entwickelt werden.

Es ist geplant, die Beispiele anhandvon Multicoresystemen mit In-Memory Datenbank im HPI FutureSOC Lab und eineroder mehrerer kommerziellen Cloud Computing Plattformen (u.a. Amazon EC2) zuevaluieren. Einführungen in die zu nutzenden Werkzeuge und zu verwendendenweiteren Technologien werden im Rahmen des Projektes durchgeführt.

Umfeld

Das Projekt wird in Zusammenarbeit mit der SAP AG durchgeführt. Die Studierendenwerden im Rahmen der Kooperation mit der SAP AG als Auftragnehmer agieren unddie SAP AG als Auftraggeber und Domänenexperten auftreten. Dies gilt insbesonderefür die Erfassung der Anforderungen aber auch für die Evaluierung der Ergebnissedes Projekts.

Es ist zu erwarten, dass bei erfolgreicher Bearbeitung nach Abschluss des Projektsauch eine studentische Beschäftigung am HPI (oder der SAP AG) und/oder eineMasterarbeit in Kooperation mit der SAP AG möglich sind.

Organisation

Die Vorgehensweise im Projekt wird methodisch auf die Erfassung derAnforderungen, die Entwicklung der Lösungskonzepte, die Umsetzung einerLanguage Workbench und deren Evaluierung ausgerichtet. Durch zeitlich kurzeIterationen und entsprechende Feedbackschleifen mit dem Auftraggeber in Form vonTreffen in Potsdam sowie Walldorf soll während der gesamten Projektphase einzielorientiertes Vorgehen erreicht werden.In der Vorbereitungsphase werden fachliche Grundlagen zu den Themen Meta-Modellierung, Modelltransformationen, Modellsynchronisation sowie EnterpriseApplications, Multicoresysteme und Cloud Computing vermittelt. Dazu werdenbeispielhaft ausgewählte Aufgabenstellungen exemplarisch einzeln oder in kleinerenTeams bearbeitet und dem Gesamtteam vorgestellt.Studierende, die in diesem Projekt teilnehmen wollen, sollten Interesse an derModellierung und der modellgetriebenen Entwicklung haben. Es wird weiter erwartet,dass man sich in die zum Einsatz kommenden Methoden des Software-Engineeringwährend des Projekts einarbeitet.

Teilnehmer und Projektbeginn

Bis zu 8 Teilnehmer können in diesem Projekt mitarbeiten. Projektbeginn ist der 1.10.2010.

Informationen

Für ausführliche Information zu dem Projekt steht Prof. Dr. Holger Giese (Haus A, A-2.5, holger.giese@hpi.uni-potsdam.de) zur Verfügung. Ansprechpartner seitens der SAP AG wird während des Projekts Dr. Axel Uhl (Chief Development Architect bei der SAP AG, axel.uhl@sap.com) sein.