Skip to content
Metaebene - Fabric als Code Generation Framework für Java, C und C++ (linuxtag12) episode artwork

EPISODE · May 23, 2012 · 33 MIN

Metaebene - Fabric als Code Generation Framework für Java, C und C++ (linuxtag12)

from Chaos Computer Club - archive feed

Das Fabric Framework wurde mit dem Ziel ins Leben gerufen, wiederkehrende Prozesse bei der Entwicklung von Software zu automatisieren. Aus dem akademischen Kontext erwachsen, war das Projekt zunächst zur Generierung von Code für ressourcenbeschränkte Sensornetzwerke gedacht. Heute ist Fabric ein universelles Code Generation Framework für Java, C und C++. Der Vortrag gibt praktische Einblicke in die Architektur des Systems und zeigt im Anschluss, wie Fabric im Rahmen einer Fallstudie zur Entwicklung eines Bean-Generators mit effizienter XML-Serialisierung verwendet wurde. Die Präsentation richtet sich an Programmierer, Software-Architekten und Technikinteressierte. Erfahrungen mit Java, C/C++ und XML Schema sind von Vorteil, aber nicht zwingend erforderlich. Den Kern von Fabric bildet eine Bibliothek, mit der sich virtueller Code innerhalb eines sogennanten Workspace erzeugen lässt. Die API des Code Generation Framework bietet einen objektorientierten Zugang zu den Programmiersprachen Java, C und C++ sowie der Graphen-Visualisierungssprache GraphViz. Der erstellte Quelltext wird nicht sofort herausgeschrieben, sondern zunächst in Objekten gekapselt und im Speicher gehalten. Dadurch kann ein Entwickler, und darin unterscheidet Fabric sich von bisherigen Lösungen, dem Quelltext zu jeder Zeit und in nahezu beliebiger Reihenfolge auch nachträglich noch neuen Code hinzufügen. Ein weiterer Bestandteil des Systems ist ein Treewalker, der die ereignisorientierte Verarbeitung von XML Schemata und WSDL-Dateien gestattet. Möchte ein Anwendungsentwickler etwa Klassen zur Netzwerk-Kommunikation generieren lassen, so kann er die zu übertragenden Datentypen zunächst in einem XML Schema-Dokument definieren. Im Anschluss kann das Fabric Framework die Datei einlesen und mit geeigneten Modulen verarbeiten. Erst zu diesem Zeitpunkt erfolgt die Umsetzung auf eine konkrete Programmiersprache und Zielplattform (z.B. Desktop PC oder Sensorknoten). Durch eine Modul API ist es ferner möglich, auf der selben Datenbasis in nur einem Programmaufruf automatisch Code für verschiedene Zwecke generieren zu lassen. So können zum Beispiel zunächst Container-Klassen für die definierten Datentypen, dann Stubs für die Netzwerk-Kommunikation sowie anschließend Code für die Kompression und Verschlüsselung erzeugt werden. Das Konzept eines gemeinsamen Workspace ermöglicht es sogar, dass unterschiedliche Module auf den selben virtuellen Code zugreifen und diesen mit zusätzlicher Logik anreichern. So können von Modul A erzeugte Java-Methoden zum Beispiel durch Modul B nachträglich mit Annotationen versehen werden. Über den Autor Sascha Seidel: Sascha Seidel ist studierter Informatiker und arbeitet als selbstständiger Entwickler in Norddeutschland. Seine Forschungsinteressen liegen in den Bereichen Software Engineering, verteilte Systeme, Web-Entwicklung und Datenbank-Technologien. about this event: https://c3voc.de

Episode metadata supplied by the publisher feed · Published May 23, 2012

Embed this episode

Ready to play

Metaebene - Fabric als Code Generation Framework für Java, C und C++ (linuxtag12)

0:00 33:16

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

No similar podcasts found.

Frequently Asked Questions

How long is this episode of Chaos Computer Club - archive feed?

This episode is 33 minutes long.

When was this Chaos Computer Club - archive feed episode published?

This episode was published on May 23, 2012.

Can I download this Chaos Computer Club - archive feed episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!