Im Gespräch mit Eike Stepper

Von den Vorzügen der Modellierung profitiert man nicht nur zur Entwicklungszeit

Die Software-Modellierung gehört unzweifelhaft zu den dynamischsten Bereichen bei Eclipse. Dementsprechend hat sich in den letzten Jahren auch der Eclipse Modeling Day als eines der Highlights der JAX-Konferenz etabliert und kann auch im Jahr 2011 mit einem spannenden Programm sowie hochkarätigen Speakern aufwarten. Moderator Eike Stepper berichtet, was es mit der thematischen Zweiteilung des Tages in „Modeling for Tools“ und „Modeling at Runtime“ auf sich hat und welche Neuerungen es im CDO Model Repository zu verzeichnen gibt.

Eclipse Modeling Day

Das Programm:

Montag, 2. Mai 2011

Modeling for Tools
  • Ed Merks: The Eclipse Modeling Framework
  • Sven Efftinge, Dr. Jan Köhnlein, Sebastian Zarnekow: Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Modeling at Runtime
  • Eike Stepper: Distributed Shared Models with CDO
  • Tom Schindl: EMF Databinding
  • Eike Stepper, Sven Efftinge, Ed Merks, Tom Schindl: Open Discussion: Modeling vs. Solving Problems

Alle Infos unter: www.jax.de.

JAXenter: Hallo Eike. Modeling ist traditionell ein Ansatz, um die Entwicklung von Software zu automatisieren und zu beschleunigen. Nun ist der zweite Teil des Eclipse Modeling Days mit „Modeling at Runtime“ überschrieben. Was hat Software-Modellierung mit Runtime-Technologien zu tun?

Eike Stepper: Mit dem andauernden Hype um domänenspezifische Sprachen (DSL) hat sich vielerorts ein zwei- (oder mehr-) stufiger Modellierungs- und Codegenerierungsprozess etabliert:

  1. Zunächst benutzt man eine General-Purpose-Modellierungssprache wie Ecore, um sich eine eigene DSL zu modellieren, welche die gewünschten Geschäftskonzepte beschreibt. Die mit EMF gelieferten JET Templates generieren daraus fertige Eclipse-Plug-ins mit effizientem Java-Code zur Erstellung und Manipulation von Modellinstanzen.
  2. Mit diesen Eclipse Plug-ins kann man dann wiederum die Entwicklungsumgebung um spezifisches Tooling für die eigene Geschäftsdomäne erweitern, um z.B. komplexe Instanzen der Geschäftskonzepte zu modellieren, zu persistieren, zu transformieren und so weiter. Eine wesentliche Transformation ist schließlich die Überführung in ausführbaren Code irgendeiner Zielplattform mit Hilfe eigener Generatoren.

Ist das erwähnte Meta Meta Model Ecore zwar bewusst so simpel wie möglich gehalten, so ist der daraus von EMF generierte Code allerdings nicht nur hocheffizient, sondern baut vor allem auch auf dem sehr flexiblen EMF Runtime auf, welches unter anderem generische Model Reflection und Persistence unterstützt.

Von „Modeling at Runtime“ spreche ich, wenn man die in Phase a) erstellten Model Plug-ins nicht als Tools in die Entwicklungsumgebung installiert, sondern, unter Umgehung von Phase b), direkt in das Endprodukt aufnimmt. Damit wird auch das EMF Runtime zum Bestandteil des Endprodukts und ermöglicht es, von den vielen generischen EMF-Zusatztechnologien zu profitieren.

Als Leiter des CDO Projekts fällt mir da natürlich sofort die Anbindung von Applikationen mit so modellierten Datenstrukturen an ein Model Repository ein. Auf einfachen Knopfdruck erweitert man dadurch die Applikation um Features wie Anbindung an beliebige Datenbanken, automatisches Laden und Entladen einzelner Objekte, Änderungsnotifizierung im Netzwerk, Transaktionalität und Multi Thread Separation, effiziente Remote Queries z.B. mit OCL und vieles mehr.

Warum soll man also nur zur Entwicklungszeit von den Vorzügen der Modellierung profitieren?

JAXenter: Welche Neuerungen gibt es beim CDO Model Repository zu verzeichnen?

Eike Stepper: Neben bis jetzt mehr als 200 Detailverbesserungen seit Helios gibt es natürlich wieder einige herausragende neue Features in der kommenden Version 4.0:

Mit OCL bieten wir zum ersten Mal eine serverseitige Abfragesprache an, die, anders als SQL, HQL oder OQL, nicht an einen bestimmten Backendtyp gebunden ist. Auch die von Query2 bekannte Syntax wird nun unterstützt.
Objekte können große Attributwerte jetzt mit einem Streaming API bedienen. Die neuen Datentypen CDOBlob und CDOClob unterstützen Lazy Loading und lokales Caching.

Es gibt außerdem ein neues API für effizientes Remote Cross Referencing. Dieser Abfragemechanismus wird auch von den neuen Referential Integrity Checks im Server genutzt.

Des Weiteren haben wir ein neues URI Format für CDOResources eingeführt, welches alle nötigen Informationen enthält, um sowohl das Zielrepository zu identifizieren, als auch die Connection dahin aufzubauen. Auch Ziel-Branch und Ziel-Zeit sind Bestandteil der neuen URIs, so dass ein Client ganz ohne Kenntnis von CDO beliebige Objektgraphen per EMF API auschecken kann.

Mit einer neuen Konfigurationsoption kann man in Failover Cluster Schreibzugriffe auf Backup Repositories erlauben. Damit wird erstmals ein Load Balancing möglich.
Für CDO Server gibt es jetzt Kommandos in der OSGi Console. Neben dem Starten und Stoppen von Repositories, sowie dem Dumpen interner Informationen, kann man damit auch die neuen Backup- und Restore-Mechanismen anstoßen, welche insbesondere beim Migrieren von Repositories nach Metamodelländerungen oder CDO Upgrades hilfreich sind.

Schließlich wird mit den Anbindungen an MongoDB und DB4O die Palette der unterstützten Daten-Backends erheblich erweitert. Damit stehen jetzt insgesamt sechs völlig verschiedene Backends zur Verfügung, die man jederzeit ohne Auswirkungen auf den Applikationscode austauschen kann.

JAXenter: Was können die Besucher des Eclipse Modeling Days auf der JAX noch erwarten?

Eike Stepper: Obwohl die Formate der letzten Jahre mit vielen relativ kurzen Fachvorträgen großen Anklang gefunden hatten, haben wir uns entschieden, dieses Jahr zu mehr aktiver Mitarbeit einzuladen. Zu den Kernthemen im Bereich Modeling werden wir größere Tutorials anbieten, gegliedert in die Tracks „Modeling for Tools“ am Vormittag und „Modeling at Runtime“ am Nachmittag. Wir wollen für alle Teilnehmer eine offene Atmosphäre schaffen, die fortlaufend zum Nachdenken und zur Diskussion anregt.

Wer sich während der Übungen lieber auf die Beispiele konzentriert, erhält sicher in der einstündigen Abschlussdiskussion noch einmal die Chance zur kritischen Auseinandersetzung mit dem Thema Modeling.

JAXenter: Vielen Dank für dieses Gespräch!

Eike Stepper ist der ursprüngliche Autor von CDO und Net4j und leitet das inzwischen elfköpfige, internationale Committer-Team. Mit seiner 1991 gegründeten Firma ES-Computersysteme konnte er in vielen Projekten Erfahrungen als Entwickler und Berater sammeln. Themen um Modeling, OSGi-Softwaredesign und „gutes Entwickeln“ faszinieren ihn immer wieder.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.