Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

openArchitectureWare in der FIDUCIA IT AG

Ähnliche Präsentationen


Präsentation zum Thema: "openArchitectureWare in der FIDUCIA IT AG"—  Präsentation transkript:

1 openArchitectureWare in der FIDUCIA IT AG
Das Modell ist der Code! Klaus Bruckmann, Jochen Schmich, AEW | JBFOne 2009

2 Ziel dieses Vortrags Überblick, Entwicklungen und Aktivitäten im Bereich des Eclipse Modeling Projects Vorstellung des Generatorframeworks openArchitectureWare JBF Persistence Layer: Erster Einsatz von oAW in der FIDUCIA IT AG

3 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

4 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

5 Das Eclipse Modeling Project (Top Level Eclipse Project)
Von den etwa 50 Projekten und Subprojekten des Eclipse-Galileo-Releases befassen sich allein 22 mit modellgetriebener Software-Entwicklung Das EclipseModelingFramework (EMF) ist seit Beginn der Eclipse-Plattform integrierter Bestandteil Weitere Kernprojekte sind Eclipse Modeling Framework Technologies (EMFT) Graphical Modeling Framework Project (GMF) Textual Modling Framework Project (TMF) Model-to-Model Project (M2M) Model-to-Text Project (M2T) Generative Modeling Technologies (GMT) Sammlung von Projekten, die sich mit MDSD-Technologien befassen Themenschwerpunkte Syntax-Entwicklung (ECore, DSLs als abstrakte Syntax oder UML, OCL als konkrete Syntax) Unterstützung von Industriestandards (Referenzimplementierung von UML2, OCL, BPMN2 …) Generative Modellierungstechniken (Model2Model und Model2Text Transformationen)

6 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

7 ECore als Meta-Metamodell für ALLES!
Der Kern: ECore Definition von Metamodellen Anlehnung an EMOF-Standards der OMG ECore-basierte Metamodelle: Eclipse UML-Implementierung Datenmodell des VGM-Authoring Tools

8 ECore als Meta-Metamodell

9 ECore als Meta-Metamodell
UML ECore XSD Annotated Java

10 ECore als Meta-Metamodell
Java-Repräsentation Graphischer Editor Wizards EMF Generator

11 ECore als Meta-Metamodell
Applikation Generierung Instanziierung Statisch / Dynamisch

12 Wo bitte geht‘s zum Code?

13 Wo bitte geht‘s zum Code?
Generator

14 Wo bitte geht‘s zum Code?
EMF-Generator != Irgendwas-Generator „Ich brauche aber etwas sehr Spezielles!“ 14

15 Wo bitte geht‘s zum Code?
Dann also mit Java … oder Groovy? Und vielleicht Velocity oder JET? Und XSLT …

16 Wo bitte geht‘s zum Code?
Boilerplate Code! Verschiedene Technologien! Fehleranfällig! Wartungsaufwand! IDE-Unterstützung! Community / Kommerzieller Support! „ABER!“ „Eigenentwicklungen funktionieren sicherlich gut, aber ein Erfahrungswert ist, dass EMF-Programmierung immer auch viel Boilerplate Code mit sich bringt.“ „Viele Technologien bedeuten hohen Integrationsaufwand – jedes tickt anders und keines ist genau für meinen Zweck gemacht.“ „Das birgt auch gleichzeitig mehr potenzielle Fehlerquellen.“ „Der Wartungsaufwand ist HOCH!“ „Außerdem, Stichwort: IDE-Support: Oft fehlt ein brauchbares Werkzeug zum noch so guten Framework.“ „Und zuguterletzt, aber entscheidend ist: OpenSource Tools haben häufig eine breite und hilfreiche Nutzer Community, aber wenn die Werkzeuge nicht explizit für modellgetriebene Entwicklung gedacht sind, werde ich hier nicht unbedingt fündig!“ „Fazit: Ich brauche eine kompakte Plattform für eben diesen Zweck!“ („Was ist eine Plattform -> Community Support!“) 16

17 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

18 openArchitectureWare – All-In-One MDSD-Framework
Entwicklung durch die Firma itemis AG Seit 2007 Eclipse-Projekt Die aktuelle Version 5.0 ist in verschiedene EMP-Subprojekte unterteilt

19 oAW Konzepte Templates Syntax Highlightning XPand IDE
M2T-Transformation Content Assistance ECore Validierung Typesystem / Metamodels XSD Textuelle Modellierung Java-Beans XText UML Metamodellerweiterung Components Xtend Workflow Scripting Check MWE M2M AOP Validierung Dependency Injection

20 oAW Konzepte – Sprachen
Templates XPand M2T-Transformation Metamodellerweiterung Die Sprachen XPand, Xtend und Check besitzen ein gemeinsames statische Typesystem und enthalten einige Konzepte die in fnktionalen Xtend Scripting Check M2M Validierung

21 oAW Konzepte – Sprachen
Templates XPand M2T-Transformation

22 oAW Konzepte – Sprachen
Metamodellerweiterung Xtend Scripting Check M2M Validierung

23 oAW Konzepte – Sprachen
Metamodellerweiterung Xtend Scripting Check M2M Validierung

24 oAW Konzepte – Typsystem
Templates XPand M2T-Transformation ECore-Modelle ECore Typesystem / Metamodels XSD Java-Beans UML Metamodellerweiterung UML-Profile (Stereotypen) Xtend Scripting Check M2M Validierung

25 oAW Konzepte – Typsystem
Templates XPand M2T-Transformation ECore Typesystem / Metamodels XSD Java-Beans UML Metamodellerweiterung „Hier graphisch dargestellt, wie die Person aus unserem Metamodell direkt in der Sprache genutzt werden kann. Und durch die Extensions erweitert wird – es kommen also neue Operationen hinzu, ohne dass das Metamodell berührt werden müsste.“ Xtend Scripting Check M2M Validierung 25

26 oAW Konzepte – Workflows
Components Workflow MWE AOP Dependency Injection

27 oAW Konzepte – Workflows
Components Workflow MWE AOP Dependency Injection

28 oAW Konzepte – Workflows
Components Workflow MWE AOP Dependency Injection

29 oAW Konzepte – Workflows
Components Workflow MWE AOP Dependency Injection

30 oAW Konzepte – IDE-Support
Templates Syntax Highlightning XPand IDE M2T-Transformation Content Assistance ECore Validierung Typesystem / Metamodels XSD Java-Beans UML Metamodellerweiterung Components Xtend Workflow Scripting Check MWE M2M AOP Validierung Dependency Injection

31 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

32 Generatoren für die neue Persistenzschicht JPL
Aufgaben Generierung aller notwendigen JPL-Artefakte Migration für Projekte, die DAM verwenden Bitemporale Datenhaltung unterstützen Einbettung in gegebene MDSD-Infrastruktur Durchgängige Dokumentation und User-Assistance Trennung von generiertem und handgeschriebenem Code

33 Generatoren für die neue Persistenzschicht JPL
Pilotprojekt ist Vorgang Klassisches BAP Projekt Keine bitemporale Datenhaltung Vorhandene DAM-Modellinformationen -> Automatisierte Migration Modellierung der PersistenceFacades (~ DAM-Activities) FetchGroup-Modellierung

34 Generatoren für die neue Persistenzschicht JPL
Zu diesem Thema: 15:25 – 16:10 JPL – the next generation 16:25 – 17:10 Bitemporale Datenhaltung – Der Weg zum unterbrechungsfreien Buchungsschnitt

35 openArchitectureWare – In der Praxis
Persistence Facade Mapping.xml Separierung generierter Artefakte (src-gen & src) JPL-Generator Storables BPS-Generator Datenservices Storable Mapper DDL-Generierung DAM-Migration Generation Gap-Pattern Fetch-Groups Path-Classes „Eine Übersicht dessen was wir hier generieren:“ „Die Zugriffsmechanismen auf die Datenschicht…“ „Die Deskriptoren die Hibernate benötigt um die Objekte auf die DB zu mappen.“ „DDL Unterstützung ist zwar noch in Arbeit wird aber in Kürze umgesetzt“ „Wir generieren auch FetchGroups, spezifische Sichten auf das Datenmodell“ „Und PathKlassen die zur Formulierung von Queries dienen.“ „Hierbei haben wir auf die Trennung von generiertem und manuellem Code geachtet. So kam bspw. Das Generation Gap Pattern zum Einsatz, dass dies mit Java-Sprachmitteln umsetzt.“ „Zudem nutzen wir für den Bitemp-Anteil die AOP-Funktionen von oaw, um non-invasive Erweiterungen an der Generierung vorzunehmen wenn es sich um bitemporale Daten handelt“ AOP für BiTemp-Integration 35

36 openArchitectureWare – In der Praxis
Persistence Facade Mapping.xml JPL-Generator Ecore-Metamodell Storables BPS-Generator Datenservices Storable Mapper M2M-Transformationen Ecore <-> XSD (Mapping.xml, ServiceDescriptor.xml…) DDL-Generierung DAM-Migration Fetch-Groups Path-Classes „Wir haben ein Ecore-Metamodell definiert, dass die JBF- & JPL-Architektur abbildet und konnten dieses mithilfe von M2M-Transformationen mit Xtend auf XML-Dateien wie die mapping.xml und den ServiceDescriptor mappen“. „Voraussetzung ist ein XML Schema, realisiert wird das über das gemeinsame Typsystem“ „Zuguterletzt sind noch die Automatischen Modellmigrationen von DAM zu JPL zu nennen die mit demselben Mechanismus arbeiten.“ Automatisierte Modellmigrationen 36

37 openArchitectureWare – In der Praxis
Erweiterbarkeit RSA-Integration User-Assistance Dokumentation

38 openArchitectureWare – In der Praxis
Erweiterbarkeit RSA-Integration User-Assistance Dokumentation

39 openArchitectureWare – In der Praxis
Erweiterbarkeit RSA-Integration User-Assistance Dokumentation

40 openArchitectureWare – In der Praxis
Einheitliche Benutzerschnittstelle Eclipse Online-Hilfe Erweiterbarkeit RSA-Integration Erweiterbar mit Eclipse-Mechanismen (Extension Points für eigene Generatoren) User-Assistance Dokumentation

41 Integration in den bestehenden Modellierungsprozess
Aufgaben Anpassung Analyse-Design Übergang Anpassung XBF-Generator (Annotations & Generic Type Arguments) Analyse Modell (UML) M2T BPS-Generator Intermediate Modell (ECore) JPL-Generator M2M Design Modell (UML) Hibernate-Mapping (XML) M2M Service-Deskriptoren (XML) XBF-Generator M2T DAM-Generator

42 Agenda Das Eclipse Modeling Project Das Eclipse Modeling Framework
Die Konzepte von openArchitectureWare openArchitectureWare in der Umsetzung von JPL (JBF Persistence Layer) Organisatorisches und Ausblick

43 Organisatorisches AG Generierung Nächste Schritte
Wir unterstützen gerne Ihre Ideen … (auch für Hostentwicklung geeignet)

44 Ihre Fragen ?

45 Fragen? – Diskussion? Klaus Bruckmann Jochen Schmich
Anwendungsentwicklung Software Engineering Jochen Schmich 07 21 / – 16 46 Anwendungsentwicklung Software Engineering 07 21 / – 53 46

46 Ihr IT-Partner Vielen Dank


Herunterladen ppt "openArchitectureWare in der FIDUCIA IT AG"

Ähnliche Präsentationen


Google-Anzeigen