NABUCCO Framework
Das NABUCCO Framework umfasst einen MDA Ansatz mit einer eigenen DSL sowie darauf basierende Komponenten für die Entwicklung von Produkten und kundenspezifischen Anwendungen.
Ziele des Frameworks sind
- Erstellen von wiederverwendbaren Komponenten
- Alle Komponenten sind voll mandantenfähig
- Abbilden von immer wiederkehrenden Aufgaben (Best Practices)
- Unabhängigkeit von Tools und speziellen Technologien
- Unterstützung vom UML als auch von textuellen DSLs
- Schnelle Entwicklung, gepaart mit qualitativ hochwertigen Ergebnissen
NABUCCO MDA Ansatz
NABUCCO liefert für die Entwicklung von Komponenten einen generischen MDA Ansatz zusammen mit der NABUCCO DSL mit. Der generische MDA Ansatz ist frei von Technologien und offen für UML, textuelle DSLs oder z.B. XML basierte Modellierung.
Die NABUCCO DSL liefert eine komplette Spezifikation für die Erstellung hoch komplexer Anwendungen die in Komponenten aufgeteilt sind und den SOA Ansatz verfolgen.
Mit der NABUCCO DSL können folgende Elemente modelliert werden
- Komponenten
- Datentypen
- Ausnahmen (Exceptions)
- Nachrichten (Messages)
- Services und ServiceOperations
- User Interface Elemente (Eingabefelder, Klappkisten, Tabellen, etc.)
Die Modellierung findet toolneutral als textuelle Modellierung statt. Verteilte Teams und Speicherung in jedem beliebigen Versionskontrollsystem werden dadurch optimal unterstützt. Für die Generierung steht ein Eclipse Plugin zur Verfügung das den Generierungsprozess steuert.
Das NABUCCO Framework kann auf unterschiedlichen Ebenen genutzt werden.
Nutzen des MDA Ansatzes für einen kundenspezifischen MDA Prozess mit eigener DSL
Hier wird ausschließlich der MDA Kern von NABUCCO genutzt um eine kundenspezifische DSL zu erstellen (z.B. mit UML oder textueller Modellierung)
Nutzen der NABUCCO DSL / Generator als Softwarefabrik
Wollen Sie Teile der Anwendungsentwicklung mit MDA unterstützen? Hier kann die NABUCCO DSL und die dazugehörigen Generatoren "out of the box" oder mit kundenspezifischen Anpassungen an den Generatoren helfen, eine uneinheitliche Anwendungsentwicklung zu optimieren und die Qualität zu steigern.
Neuentwicklung von Komponenten für bestimmte Branchen oder Kunden
NABUCCO unterstützt die Entwicklung von neuen Komponenten ebenso wie die bereits bestehenden Komponenten. Fehlt eine branchen- oder kundenspezifische Komponente, so kann diese einheitlich dazu entwickelt werden.
Anpassen (Customizing) vorhandener Komponenten ohne Codierung
Die bestehenden Komponenten können auf vielfältige Weise ohne Code-Änderung angepasst werden.
- Internationalisierung
- GUI Anpassungen (Farben, Layoutänderungen, Beschriftungen)
- Mandanten und nahezu alle Auswahllisten
Erweitern vorhandener Komponenten zu einer kundenspezifischen Lösung
NABUCCO Komponenten können weitgehend durch Code-Customizing angepasst werden. Die Struktur einer Anwendung wird nicht durch das NABUCCO Framework vorgegeben, sondern wird über eine Konfiguration definiert. Diese Konfiguration kann bei der Zusammenstellung von Komponenten zu einer Anwendung angepasst werden.
- Erweitern oder Ersetzen vorhandener Funktionen durch eine neue Funktion
- Einbringen von kundenspezifischen Verhalten durch Scripting
Authorization
Die Komponente Authorization bietet eine komplette Nutzer-, Gruppen- und Rechteverwaltung. Dabei kann die Komponente die Verwaltung selber erfüllen oder sie kann über einen Adapter an ein LDAP oder Active Directory angeschlossen sein.
Die Hauptfunktionen sind
- Verwaltung von Nutzern und deren Zuordnung zu Gruppen
- Vergabe von Rechten an Gruppen oder an Nutzer. Rechte für Gruppen vererben sich auf die Nutzer
- Verwaltung von Rollen und deren Rechte. Rollen können für Gruppen und Nutzer vergeben werden
- Authentifizierung (ggfs. Extern durch LDAP) des Nutzers
- Prüfen jeder Anfrage der Anwendung auf Berechtigung
- Auflösen der Rechte eines Benutzers
- Auflösen der Gruppen eines Benutzers
Dynamic Code
Um eine volle Mandantenfähigkeit für alle NABUCCO Komponenten sicherzustellen, muss es die Möglichkeit geben, diese Informationen dynamisch im System zu pflegen. Diese Pflege übernimmt die Komponente Dynamic Code.
Dabei werden interne Listen (wie z.B. MANDANT) sowie komponentenspezifische Listen komfortabel verwaltet. D.h. die Anpassung an kundenspezifische Anforderungen erfolgt nicht im Code, NABUCCO liefert dafür eine eigene Komponente inkl. User Interface.
Die Listen werden dabei in einem hierarchischen Baum gepflegt und können von allen anderen Komponenten gelesen werden.
Funktionen:
- Dynamische Festlegung von Enumerationen (Aufzählungstypen)
- Flexible Änderungen von Literalen zur Laufzeit (z.B. in Drop-Down Boxen)
- Mandantenunabhängige Wartung von Literalen
- Gruppierung von Literalen
- Schnelle Auswahl von Literalen durch konfigurierbare Pfade
Workflow
Die Komponente Workflow dient zur Abbildung und Abarbeitung von Geschäftsprozessen. Sie stellt dabei einen vollständig konfigurierbaren, endlichen Zustandsautomaten dar.
Komplexe, nicht vordefinierte Aktionen können mittels der Scripting Komponente dynamisch in die Workflow Komponente integriert werden.
Funktionen:
- Abbildung von Geschäftsprozessen
- Konfiguration von Zuständen und Zustandsübergängen zur Laufzeit
- Zustandübergänge werden durch einen Auslöser (Klick, Takt, etc.) gestartet
- Zustandsübergänge können mit Bedingungen (Signalen, Rechten, etc.) versehen werden
- Am Ende eines Zustandsüberganges können Effekte (E-Mail, Script, Serviceaufruf, etc.) ausgeführt werden
- Es können beliebig viele Instanzen eines Workflows durchlaufen werden
- Workflow Instanzen können pausiert und zu einem späteren Zeitpunkt wieder fortgesetzt werden
- Workflow Instanzen werden durch die vollständige Historie gesichert und können jederzeit wiederhergestellt werden
- Workflow Instanzen können nachverfolgt werden (Historisierung)
Import
Der Import von vorhandenen Datenbeständen ist ein integraler Bestandteil von modernen Anwendungen die sich in vorhandene Infrastrukturen integrieren.
Die Umformung von kundenspezifischen Datensätzen hin zu den Datentypen und Datenstrukturen von NABUCCO erfolgt dynamisch mittels der Scripting Komponente. D.h. die Umformung erfolgt nicht als hardcodierte Software sondern als dynamische Erweiterung die kundenspezifisch angepasst und jederzeit modifiziert werden kann.
Export
Für eine Integration in bestehende Anwendungslandschaften ist neben dem Import auch der Export ein entscheidender Faktor. Auch hier wird auf Dynamik mittels Scripting gesetzt. Kundenspezifische Datenformate können jederzeit erstellt werden. Für gängige Formate steht eine große Auswahl von Standardscripten zur Verfügung die ohne Programmieraufwand verwendet werden können.
Scripting
Die Scripting Komponente ist eine Erweiterung für vorhandene Komponenten die eine dynamische Ausführung von Programmteilen (Scripte) benötigen.
Das Scripting ermöglicht zusammen mit der Komponente Dynamik Code die kundenspezifische Anpassung von NABUCCO Komponenten ohne dass der eigentliche Code der Komponenten geändert werden muss.






