Java-basierte Frameworks
Struts, Expresso und Eclipse Modeling Framework
©2003
Bachelorarbeit
65 Seiten
Zusammenfassung
Inhaltsangabe:Einleitung:
Gegenstand meiner Praxisphase bei EMB AG in Darmstadt war Erweiterung einer Verwaltungssoftware für Musikkataloge. Dieses Projekt, wie die meisten Projekte bei EMB AG, wurde innerhalb der LAMP-Umgebung realisiert. LAMP steht für Linux, Apache, MySQL und PHP.
Die Verwaltungssoftware entstand mit Hilfe eines hauseigenen Frameworks. Dieses Framework ist in der Lage anhand spezifischer Konfigurationen alle nötigen PHP-Klassen zu generieren, um dann das Generat ohne weiteres Zutun in Betrieb zu nehmen.
Schranken des erwähnten Frameworks bestehen darin, dass das Framework selbst und dessen Produkte nur mit LAMP-Plattform betrieben werden können. Ziel der vorliegenden Arbeit ist es, eine Wissensgrundlage für ein neues Werkzeug zu schaffen ein Java-basiertes Framework. In diesem Zusammenhang werden nachfolgend theoretische Grundlagen und neue Technologien beschrieben sowie einige Frameworks als Vertreter vorgestellt.
Aufbau der Arbeit
Zunächst beginnen wir im Kapitel 1 mit einer Abgrenzung des Begriffs Framework von seinen Nachbarbegriffen wie Klassenbibliothek, Komponente oder Entwurfsmuster. Häufig werden diese Begriffe durcheinander gebracht, was natürlich zu unnötigen Missverständnissen führt.
Im Kapitel 2 anschließend werden Technologien und neue Standards dargestellt, die für später diskutierte Frameworks relevant sind. Begriffe wie MDA sind noch zu neu, um allgemein bekannt zu sein.
Kapitel 3 vervollständigt die Wissensbasis mit für diese Arbeit besonders relevanten Entwurfsmustern MVC, Adapter, Factory sowie Proxy.
Im Kapitel 4 werden 3 der am meisten verbreiteten oder stark bekannten Frameworks vorgestellt. Deren Herkunft, Architektur und Besonderheiten werden beschrieben. Alle Produkte sind als Open Source Software verfügbar und somit für jeden Leser greifbar.
Anschließend, im Kapitel 5, wird eine einfache Verwaltungssoftware mit einem der 3 vorgestellten Frameworks (EMF) realisiert und das Ergebnis schließlich im Kapitel 6 kurz analysiert.
Kapitel 7 fasst die gewonnenen Erkenntnisse in einem Fazit zusammen.
Inhaltsverzeichnis:Inhaltsverzeichnis:
EINLEITUNG4
AUFBAU DER ARBEIT5
1.BEGRIFFSBESTIMMUNG6
1.1FRAMEWORK7
1.2KLASSENBIBLIOTHEKEN9
1.3KOMPONENTEN11
1.4ENTWURFSMUSTER12
2.STANDARDS UND TECHNOLOGIEN13
2.1GENERATIVE PROGRAMMIERUNG14
2.2MDA17
3RELEVANTE MUSTER21
3.1MODEL-VIEW-CONTROLLER22
3.2ADAPTER24
3.3FACTORY26
3.4PROXY27
4.FRAMEWORKS29
4.1STRUTS30
4.1.1Jakarta30
4.1.2Das […]
Gegenstand meiner Praxisphase bei EMB AG in Darmstadt war Erweiterung einer Verwaltungssoftware für Musikkataloge. Dieses Projekt, wie die meisten Projekte bei EMB AG, wurde innerhalb der LAMP-Umgebung realisiert. LAMP steht für Linux, Apache, MySQL und PHP.
Die Verwaltungssoftware entstand mit Hilfe eines hauseigenen Frameworks. Dieses Framework ist in der Lage anhand spezifischer Konfigurationen alle nötigen PHP-Klassen zu generieren, um dann das Generat ohne weiteres Zutun in Betrieb zu nehmen.
Schranken des erwähnten Frameworks bestehen darin, dass das Framework selbst und dessen Produkte nur mit LAMP-Plattform betrieben werden können. Ziel der vorliegenden Arbeit ist es, eine Wissensgrundlage für ein neues Werkzeug zu schaffen ein Java-basiertes Framework. In diesem Zusammenhang werden nachfolgend theoretische Grundlagen und neue Technologien beschrieben sowie einige Frameworks als Vertreter vorgestellt.
Aufbau der Arbeit
Zunächst beginnen wir im Kapitel 1 mit einer Abgrenzung des Begriffs Framework von seinen Nachbarbegriffen wie Klassenbibliothek, Komponente oder Entwurfsmuster. Häufig werden diese Begriffe durcheinander gebracht, was natürlich zu unnötigen Missverständnissen führt.
Im Kapitel 2 anschließend werden Technologien und neue Standards dargestellt, die für später diskutierte Frameworks relevant sind. Begriffe wie MDA sind noch zu neu, um allgemein bekannt zu sein.
Kapitel 3 vervollständigt die Wissensbasis mit für diese Arbeit besonders relevanten Entwurfsmustern MVC, Adapter, Factory sowie Proxy.
Im Kapitel 4 werden 3 der am meisten verbreiteten oder stark bekannten Frameworks vorgestellt. Deren Herkunft, Architektur und Besonderheiten werden beschrieben. Alle Produkte sind als Open Source Software verfügbar und somit für jeden Leser greifbar.
Anschließend, im Kapitel 5, wird eine einfache Verwaltungssoftware mit einem der 3 vorgestellten Frameworks (EMF) realisiert und das Ergebnis schließlich im Kapitel 6 kurz analysiert.
Kapitel 7 fasst die gewonnenen Erkenntnisse in einem Fazit zusammen.
Inhaltsverzeichnis:Inhaltsverzeichnis:
EINLEITUNG4
AUFBAU DER ARBEIT5
1.BEGRIFFSBESTIMMUNG6
1.1FRAMEWORK7
1.2KLASSENBIBLIOTHEKEN9
1.3KOMPONENTEN11
1.4ENTWURFSMUSTER12
2.STANDARDS UND TECHNOLOGIEN13
2.1GENERATIVE PROGRAMMIERUNG14
2.2MDA17
3RELEVANTE MUSTER21
3.1MODEL-VIEW-CONTROLLER22
3.2ADAPTER24
3.3FACTORY26
3.4PROXY27
4.FRAMEWORKS29
4.1STRUTS30
4.1.1Jakarta30
4.1.2Das […]
Leseprobe
Inhaltsverzeichnis
ID 6871
Storm, Dennis: Java-basierte Frameworks - Struts, Expresso und Eclipse Modeling
Framework
Hamburg: Diplomica GmbH, 2003
Zugl.: Darmstadt, Fachhochschule, BA-Thesis / Bachelor, 2003
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte,
insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von
Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der
Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen,
bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung
dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik
Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich
vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des
Urheberrechtes.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in
diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme,
dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei
zu betrachten wären und daher von jedermann benutzt werden dürften.
Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können
Fehler nicht vollständig ausgeschlossen werden, und die Diplomarbeiten Agentur, die
Autoren oder Übersetzer übernehmen keine juristische Verantwortung oder irgendeine
Haftung für evtl. verbliebene fehlerhafte Angaben und deren Folgen.
Diplomica GmbH
http://www.diplom.de, Hamburg 2003
Printed in Germany
Java-basierte Frameworks
- 2 -
Inhaltsverzeichnis
EINLEITUNG ...4
AUFBAU DER ARBEIT ...5
1 BEGRIFFSBESTIMMUNG...6
1.1 F
RAMEWORK
...7
1.2 K
LASSENBIBLIOTHEKEN
...9
1.3 K
OMPONENTEN
...11
1.4 E
NTWURFSMUSTER
...12
2 STANDARDS UND TECHNOLOGIEN ...13
2.1 G
ENERATIVE
P
ROGRAMMIERUNG
...14
2.2 MDA ...17
3 RELEVANTE MUSTER...21
3.1 M
ODEL
-V
IEW
-C
ONTROLLER
...22
3.2 A
DAPTER
...24
3.3 F
ACTORY
...26
3.4 P
ROXY
...27
4 FRAMEWORKS...29
4.1 S
TRUTS
...30
4.1.1 Jakarta...30
4.1.2 Das Framework ...30
4.2 E
XPRESSO
...34
4.2.1 Jcorporate...34
4.2.2 Das Framework ...34
4.3 EMF ...40
4.3.1 Eclipse Projekt...40
4.3.2 Eclipse Plattform ...40
4.3.3 Domäne ,,Eclipse" ...41
4.3.4 EMF-Plugin...42
Java-basierte Frameworks
- 3 -
5 UMSETZUNG MIT EMF ...45
5.1 A
NFORDERUNG
...46
5.2 M
ODELLIERUNG
...47
5.3 C
ODEGENERIERUNG
...49
5.3.1 Modell...50
5.3.2 Edit ...51
5.3.3 Editor...52
5.4 D
AS
P
RODUKT
...53
5.4.1 Start ...53
5.4.2 Betrieb ...54
6 ERGEBNISANALYSE...56
7 FAZIT ...58
LITERATURVERZEICHNIS ...60
ABKÜRZUNGSVERZEICHNIS...62
ANLAGEN...63
Java-basierte Frameworks
- 4 -
Einleitung
Gegenstand meiner Praxisphase bei EMB AG in Darmstadt war Erweiterung einer
Verwaltungssoftware für Musikkataloge. Dieses Projekt, wie die meisten Projekte bei
EMB AG, wurde innerhalb der LAMP-Umgebung realisiert. LAMP steht für Linux,
Apache, MySQL und PHP.
Die Verwaltungssoftware entstand mit Hilfe eines hauseigenen Frameworks. Dieses
Framework ist in der Lage anhand spezifischer Konfigurationen alle nötigen PHP-
Klassen zu generieren, um dann das Generat ohne weiteres Zutun in Betrieb zu nehmen.
Schranken des erwähnten Frameworks bestehen darin, dass das Framework selbst und
dessen Produkte nur mit LAMP-Plattform betrieben werden können. Ziel der
vorliegenden Arbeit ist es, eine Wissensgrundlage für ein neues Werkzeug zu schaffen
ein Java-basiertes Framework. In diesem Zusammenhang werden nachfolgend
theoretische Grundlagen und neue Technologien beschrieben sowie einige Frameworks
als Vertreter vorgestellt.
Java-basierte Frameworks
- 5 -
Aufbau der Arbeit
Zunächst beginnen wir im Kapitel 1 mit einer Abgrenzung des Begriffs ,,Framework"
von seinen Nachbarbegriffen wie Klassenbibliothek, Komponente oder
Entwurfsmuster. Häufig werden diese Begriffe durcheinander gebracht, was natürlich
zu unnötigen Missverständnissen führt.
Im Kapitel 2 anschließend werden Technologien und neue Standards dargestellt, die für
später diskutierte Frameworks relevant sind. Begriffe wie MDA sind noch zu neu, um
allgemein bekannt zu sein.
Kapitel 3 vervollständigt die Wissensbasis mit für diese Arbeit besonders relevanten
Entwurfsmustern ,,MVC", ,,Adapter", ,,Factory" sowie ,,Proxy".
Im Kapitel 4 werden 3 der am meisten verbreiteten oder stark bekannten Frameworks
vorgestellt. Deren Herkunft, Architektur und Besonderheiten werden beschrieben. Alle
Produkte sind als Open Source Software verfügbar und somit für jeden Leser greifbar.
Anschließend, im Kapitel 5, wird eine einfache Verwaltungssoftware mit einem der 3
vorgestellten Frameworks (EMF) realisiert und das Ergebnis schließlich im Kapitel 6
kurz analysiert.
Kapitel 7 fasst die gewonnenen Erkenntnisse in einem Fazit zusammen.
Java-basierte Frameworks
- 6 -
1 Begriffsbestimmung
Die ersten Informatiker waren Mathematiker, daher sind diese zwei Wissenschaften
sich ähnlich. Doch es gibt ein Punkt, wo sie sich deutlich unterscheiden: Eindeutigkeit
der Begriffe. Im Gegensatz zu Mathematik lassen sich in der Informatik viele nicht
eindeutige Begriffe finden, Gleiches wird unterschiedlich und Unterschiedliches gleich
bezeichnet. Opfer der Zweideutigkeit wurden bereits Begriffe wie ,,Komponente",
,,Konzept", ,,Klasse" und leider auch ,,Framework".
Es gibt viele Definitionen von Framework. Nachfolgend versuchen wir diesen Begriff,
unter seinen Nachbarn, einzuordnen.
Java-basierte Frameworks
- 7 -
1.1 Framework
Was ist ein Framework? Ins Deutsche übersetzt bedeutet das ,,Rahmenwerk". Im
,,Taschenbuch der Informatik" [TBI] findet sich keine Definition von ,,Framework"
oder ,,Rahmenwerk". Das Wort fällt nur am Rande der Beschreibung von
Klassenbibliotheken (Seite 309):
,,Ein typisches Strukturmerkmal vieler Klassenbibliotheken ist, dass sie als
Klassenrahmen (framework) gestaltet sind." [TBI]
Ein Framework also ist eine spezielle Art von Klassenbibliotheken. Diese Behauptung
wird aber oft heftig bestritten. Bei den Frameworks handle es sich um eine ,,inverted
control structure" auch ,,Hollywood-Prinzip" (für ,,don't call us, we call you") genannt.
Dieser Punkt wird z.B. auch im Buch ,,Design Patterns" [GOF], bei Diskussion von
Muster ,,Template Method" angesprochen.
Einer der 4 Buchautoren, auch ,,Gang of Four" oder ,,GoF" genannt, ist Erich Gamma.
Zusammen mit Kent Beck hat er Framework JUnit geschafft ein Defacto-Standard für
Modultests. Mit dieser Erfahrung im Hintergrund muss er doch wissen, was ein
Framework ist. Seine Definition von einem Framework lautet:
,,Ein Framework besteht aus einer Menge von zusammenhängenden Klassen,
die einen wiederverwendbaren Entwurf für eine bestimmte Klasse von Software
darstellen." [GOF]
Die bestimmende Eigenschaft eines Frameworks ist somit die Entwurfsgestaltung. Das
Framework bestimmt den Kern der Anwendung, lediglich der Code, den das
Framework aufrufen soll, wird neu entwickelt. Balzert fügt dieser Definition noch den
Aspekt der Anpassbarkeit und Erweiterbarkeit hinzu:
Java-basierte Frameworks
- 8 -
,,Ein Rahmenwerk (framework) ist eins durch einen Softwareentwickler
anpassbares oder erweiterbares System kooperierender Klassen, die einen
wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich
implementieren." [BAL]
Ein Framework bestimmt somit die Architektur einer Applikation. Es muss hierfür die
Struktur der Klassen und Objekte sowie deren Verantwortlichkeiten festlegen und
definieren. Oberstes Ziel ist hierbei immer die Wiederverwendung des Entwurfs, also
die Erstellung einer Lösung für Probleme innerhalb eines bestimmten Kontextes.
Da wo wir jetzt eine Vorstellung davon haben, was ein Framework ist, sollten wir diese
Vorstellung von den Nachbarn abgrenzen, um sie als einen eindeutigen Begriff zu
behalten.
Java-basierte Frameworks
- 9 -
1.2 Klassenbibliotheken
Klassenbibliotheken bilden die Voraussetzung, um Wiederverwendung auf der
Klassenebene zu realisieren. Sie sind definiert als:
,,Eine Klassenbibliothek ist eine organisierte Software-Sammlung, aus der der
Entwickler nach Bedarf Einheiten verwendet." [BAL]
Im Gegensatz zu Frameworks ist das Ziel von Klassenbibliotheken nicht die Entwurfs-
sondern die Code-Wiederverwendung. Die Verwendung von Klassenbibliotheken
bringt eine Reihe von Vorteilen:
· Durch ihren Einsatz lässt sich Entwicklungszeit sparen.
· Sie werden von Spezialisten mit hohem Fachwissen entwickelt.
· Da sie eingesetzt und getestet wurden, besitzen sie eine hohe Qualität.
Demgegenüber sind als Nachteile zu nennen:
· Bei umfangreichen Klassenbibliotheken besteht ein hoher
Einarbeitungsaufwand.
· Unterschiedliche Klassenbibliotheken können oft nur durch eine
Zwischenschicht gekoppelt werden.
· Beim Einsatz mehrerer Bibliotheken kann es zu Namenskonflikten kommen.
Der letzte Punkt ist bei Java-Bibliotheken selten anzutreffen, da hier die Namensräume
standardisiert an eindeutige Internet-Adressen gekoppelt sind. Klassenbibliotheken
werden von allen Frameworks verwendet. Am häufigsten wird hierbei sicherlich auf
Suns Servlet-API zurückgegriffen.
Java-basierte Frameworks
- 10 -
Folgende Merkmale sollten eine Klassenbibliothek von einem Framework
unterscheiden:
· Entwickler bestimmt, welche Funktionen überhaupt ausgeführt werden.
· Kein vordefinierter Kontrollfluss oder Interaktion.
· Kein vordefiniertes Verhalten des Systems im Ganzen.
Java-basierte Frameworks
- 11 -
1.3 Komponenten
Im Sinne der Softwareentwicklung ist Komponente eine Sammlung kooperierender
Klassen, die eine in sich abgeschlossene Funktionalität bilden. Analog der in der
industriellen Produktion üblichen Verwendung von Halbfabrikaten, versucht die
komponentenbasierte Softwareentwicklung durch Verwendung von vorgefertigten
Software-Bausteinen die einfachere, schnellere und preiswertere Herstellung von
Anwendungen zu erreichen.
Komponenten befinden sich auf der Granularitätsebene zwischen Applikation und
Klassen. Gängige Technologien sind CCM von OMG, EJB von Sun und COM+ von
Microsoft. Balzert definiert Komponente wie folgt:
,,Eine Komponente (component) ist ein abgeschlossener, binärer Software-
Baustein, der eine anwendungsorientierte, semantisch zusammengehörende
Funktionalität besitzt, die nach außen über Schnittstellen zur Verfügung gestellt
wird." [BAL]
In Beziehung auf Frameworks lassen sich somit folgende Aussagen treffen:
· Frameworks können auf Komponenten zurückgreifen, um sie sinnvoll in ein
Anwendungskontext einzuordnen.
· Frameworks können benutzt werden um Komponenten zu erstellen.
Der erste Punkt ist bei fast allen weiter unten beschriebenen Frameworks zu finden. Der
zweite Punkt ist unter anderem beim EMF (vgl. Kapitel 4.3) anzutreffen.
Java-basierte Frameworks
- 12 -
1.4 Entwurfsmuster
Der zentrale Gedanke der Entwurfsmuster entstammt nicht einem Informatiker, sondern
dem Architekten Christopher Alexander:
,,Jedes Muster beschreibt ein in unserer Umwelt beständig wiederkehrendes
Problem und erläutert den Kern der Lösung für dieses Problem, so dass Sie
diese Lösung beliebig oft anwenden können, ohne sie je ein zweites Mal gleich
auszuführen." [GOF]
Gamma u.a. haben aufbauend auf diesem Gedanken den Grundstein zur Beschreibung
von einfachen und eleganten Lösungen von Entwurfsproblemen gelegt. Viele der von
ihnen beschriebenen Entwurfsmuster werden heute in Frameworks verwendet. Gamma
nennt auch drei wichtige Aspekte für die Unterscheidung von Frameworks und
Mustern:
· Entwurfsmuster sind abstrakter als Frameworks: Sie erläutern aus ihrer Natur
heraus Vor- und Nachteile sowie die Konsequenzen eines Entwurfs. Während
Frameworks als Code dargestellt werden können und müssen, ist dies bei
Mustern nur exemplarisch möglich. Muster müssen bei ihrer Verwendung somit
immer neu implementiert werden.
· Entwurfsmuster sind kleiner als Frameworks: Während Frameworks häufig eins
oder mehrere Entwurfsmuster umsetzen, enthalten Entwurfsmuster niemals ein
Framework.
· Entwurfsmuster sind weniger spezialisiert als Frameworks: Entwurfsmuster sind
selten an einen Anwendungsbereich gebunden. Demgegenüber werden
Frameworks explizit für bestimmte Anwendungsbereiche entworfen.
Damit haben wir Framework von anderen Begriffen genügend abgegrenzt.
Java-basierte Frameworks
- 13 -
2 Standards und Technologien
Dieses Kapitel befasst sich mit den theoretischen Grundlagen des Software
Engineerings und soll Frameworks auf der Karte der neuen Technologien einordnen. Es
wird ein Einblick in MDA und generative Programmierung gewährt. Ideen und
Methoden, die sich dahinter verbergen, sollen aufgezeigt und kurz erklärt werden.
Java-basierte Frameworks
- 14 -
2.1 Generative Programmierung
Es gibt in der Softwareentwicklung einen heiligen Gral: die Wiederverwendung. Auf
den ersten Blick tritt die generative Programmierung (GP) gegen das Konzept der
Wiederverwendung an. Wiederverwendung ist ja nur dann sinnvoll, wenn die
Herstellung verglichen mit der Verwaltung teuer ist. Genau an diesem Punkt setzt GP
an: Es werden keine Klassen oder Module wiederverwendet, sondern sie werden
automatisch, und damit ,,günstig", generiert.
Die generierten Module sind auf die spezielle Lösung zugeschnitten, d.h. sie sind
keineswegs universal und kaum wiederverwendbar. Die Wiederverwendung findet bei
GP auf einer höheren Ebene statt, nämlich der Generator selbst, seine Komponenten
und Konfigurationen werden wiederverwendet.
Ulrich Eisenecker gehört zu den prominentesten Wissenschaftlern dem Gebiet der
generativen Programmierung, er definiert GP wie folgt:
,,Die generative Programmierung modelliert Softwaresystemfamilien, so dass
ausgehend von einer Anforderungsspezifikation mittels Konfigurationswissen
aus elementaren, wiederverwendbaren Implementierungskomponenten ein
hochangepasstes und optimiertes Zwischen- oder Endprodukt nach Bedarf
automatisch erzeugt werden kann." [UES]
Details
- Seiten
- Erscheinungsform
- Originalausgabe
- Erscheinungsjahr
- 2003
- ISBN (eBook)
- 9783832468712
- ISBN (Paperback)
- 9783838668710
- Dateigröße
- 1.6 MB
- Sprache
- Deutsch
- Institution / Hochschule
- Evangelische Hochschule Darmstadt, ehem. Evangelische Fachhochschule Darmstadt – Informatik und Ingenieurwissenschaften
- Erscheinungsdatum
- 2014 (April)
- Note
- 1,0
- Schlagworte
- model driven architecture programmierung codegenerierung adapter proxy
- Produktsicherheit
- Diplom.de