Webarchitekturen Mit Apache Wicket

Webarchitekturen Mit Apache Wicket

Fachthema Geschäftstüchtig cket eingehen, werden im Folgenden die Ziele des Webframe- works und seine grundsätzliche Funktionsweise dargestellt. Webarchitekturen Wicket-Ziele Nachstehende Ziele liegen der Entwicklung des Webframe- mit Apache Wicket works zugrunde [Wicket]: Easy: Das Framework soll einfach, klar und konsistent sein. Der Entwickler muss nach dem Verständnis der Konzepte in Alexander Elsholz, Elena Stoll der Lage sein, die Aktionen des Webframeworks nachvoll- ziehen zu können. Dank dieser Transparenz ist es vergleichs- Apache Wicket wird zum Mainstream – und immer mehr Firmen sprin- weise einfach, das Framework um eigene Abstraktionen gen auf den Zug auf. Die Gründe hierfür sind offensichtlich: Statusbe- zu ergänzen. So können beispielsweise unterschiedlichste haftete, komponentenorientierte und ereignisgesteuerte Webprogram- JavaScript- oder CSS-Frameworks sehr einfach integriert mierung ist mit erprobten UI-Mustern in Java möglich und setzt kein werden. Auch Wickets Lifecycle ist gut anpassbar. Dies wird Expertenwissen in HTML, CSS oder JavaScript voraus. Der Artikel zeigt zum Beispiel durch das integrierte Testframework deutlich, aus der Praxis, wie testgetriebene Entwicklung von modernen Web- welches den Standard-Lifecycle ersetzt. Demnach ist die oberflächen mit Wicket möglich ist. Dabei gehen wir auf die Wicket- Webapplikation gut in die eigene IT-Architektur integrierbar. Kernprinzipien ein und stellen Chancen und Herausforderungen dar, die Reusable: Das Framework soll die Wiederverwendung un- sich bei der Entwicklung mit dem Webframework – insbesondere im terstützen. Dabei sollen die Komponenten als Standard- Umfeld von Geschäftsanwendungen – ergeben. JAR-Dateien verwendet werden können. Die Komponen- tisierung von fachlichen Frontend-Komponenten ist bei- spielsweise auf Basis von Maven oder OSGi [WicketOsgi] Einleitung möglich. Auch eine Anbindung an JSR-286 Portal oder den Widget-Container Shindig ist verfügbar. Die Integration Java-Webframeworks gibt es mittlerweile viele. Dabei etab- folgt dabei dem Ziel der Einfachheit. Die wiederverwend- E liert sich Apache Wicket zunehmend als Alternative zu den baren Komponenten werden über Komposition oder Verer- Platzhirschen wie JSP, JSF, Struts oder Spring MVC. Die Vorteile bung in Java genutzt. liegen auf der Hand: Mit Wicket lassen sich in Java ansprechende, Non-intrusive: Das Ziel hier ist, Layout und Logik nicht mit- leistungsfähige Benutzungsoberflächen umsetzen, die sich gut in einander zu vermischen. Das Layout soll so wenig wie mög- die Unternehmensarchitektur integrieren. Ereignisbehandlung, lich spezifische Tags enthalten. So ist es möglich, das Layout testgetriebene Entwicklung, Komponenten orientierung und durch Webdesigner erstellen zu lassen oder durch Tools bzw. Kapselung von technischen sowie fachlichen Aspekten – all dies Layoutmanager zu generieren. Die Logik soll im Java-Code kann der Entwickler mit Java-Bordmitteln umsetzen. gekapselt sein. So ist die Webanwendung besser zu warten Das schlanke Webframework Wicket basiert auf einem ein- und es können die gängigen Softwareentwicklungsmetho- fachen LifeCycle-Management und der Manipulation von den verwendet werden: Test Driven Development, Refacto- HTML im Java-Code. Der Entwickler programmiert seine ring und Debugging. Oberfläche ähnlich wie bei einer Rich-Client-Technologie Safe: Wicket unterstützt das Entwickeln von sicheren Web- (Swing, VB, Delphi). Dabei werden UI-Controls zu einer anwendungen. Dazu gehört neben der Typsicherheit in der Oberfläche orchestriert und EventHandler für deren Interak- Implementierung (Java) auch die Beschränkung des direkten tion definiert. Zugriffes auf die Wicket-Seiten. So können nur extra gekenn- Auf der Basis einer umfangreichen Sammlung an Controls zeichnete Seiten (sogenannte BookmarkablePages) direkt und Frameworks im Apache-Wicket-Umfang sowie der vielen über URL angesprochen werden. Auch beim Aspekt Security verfügbaren Erweiterungen (Wicket-Stuff-Projekte, bei Google- steht wieder das Ziel der Einfachheit im Fokus. Eine sehr ein- Code gehostete Erweiterungen usw.) lassen sich so ohne große fache Schnittstelle für die Autorisierung ermöglicht die In- Kenntnisse in CSS und JavaScript moderne, Ajax-basierte Web tegration in Standard-Security-Frameworks wie JAAS oder 2.0-Anwendungen entwickeln. Dabei behält der Entwickler Acegi bzw. die Adaption in individuelle Autorisierungslö- volle Kontrolle über seinen erstellten Code. Es kann auf Quell- sungen. Auch hier existiert eine Reihe von verfügbaren Im- code-Ebene debugged, getestet und refaktorisiert werden. Auf- plementierungen, die direkt nutzbar sind bzw. als Basis für bauend auf die vielen fertigen Controls und APIs lassen sich individuelle Lösungen dienen. einfach individuelle Erweiterungen erstellen, um technische Efficient/Scalable: Skalierbarkeit und Performance sollen bei Aspekte vom Fachentwickler zu kapseln. Dafür werden keine allen Designentscheidungen berücksichtigt, aber nicht auf Taglibs oder ähnliche Konzepte verwendet. Die Erweiterungen Kosten der anderen Ziele überproportional gewichtet wer- werden viel mehr im bekannten Java-Umfeld implementiert. den. Interessant beim Aspekt Performance ist die mögliche Auch die Entwicklung von Widgets mit klar definierter Nutzung von Standard-Entwicklungstools. Es ist ohne Wei- Java-Schnittstelle wird vom Framework gut unterstützt. Dies teres möglich, aussagekräftige Lasttests zu implementieren ermöglicht eine komponentenorientierte Entwicklung der Prä- bzw. Profiler für die Analyse von Performance- oder Spei- sentationsschicht. UI-Blackbox-Komponenten werden erstellt, cherproblemen zu nutzen. Allgemein können Wicket-Appli- beschrieben und können von anderen Entwicklern in die eige- kationen sehr performant und mit wenig Speicherverbrauch ne Oberfläche integriert werden. implementiert werden. Komponentenbasierte Frameworks sind aufgrund des am Server vorgehaltenen Komponenten- modells speicherintensiver als klassische actionbasierte Al- Wicket – behind the scenes ternativen. Im Vergleich zu JSF schneidet Wicket in Bench- marks deutlich besser ab [WicketPerformance]. Bevor wir auf die Vorteile der Programmierung von modernen, Complete: ”The Wicket team is committed to deliver a feature Web 2.0-basierten Geschäftsanwendungen auf Basis von Wi- complete, ready-to-use framework for developing Java web www.javaspektrum.de 33 Fachthema applications.“ Ein gutes Beispiel hierfür ist jtrac [JTrac], eine Wicket – Vorteile für Geschäftsanwendungen Java-Version des bekannten Projektmanagementwerkzeu- ges Trac [Trac]. jtrac wurde von JSP auf Wicket umgestellt. Wicket eignet sich sehr gut für die Entwicklung von Web Von den zwölf verschiedenen Frameworks, angefangen mit 2.0-basierten Geschäftsanwendungen. Neben der intuitiven, Ajax über Taglibs, Security bis hin zur Page-Inheritance, ist einfach zu bedienenden Oberfläche hat eine Geschäftsanwen- nach der Umstellung nur Wicket übrig geblieben. Dem Fach- dung weitere zentrale Anforderungen: entwickler stellt sich Wicket als homogenes „ready-to-use“- komponentenorientierte Entwicklung, um parallele Ent- Framework dar. wicklung und Wartbarkeit zu unterstützen, gute Testbarkeit der entwickelten Komponenten, um eine Wicket-Programmierung hohe Testabdeckung durch automatisierte Unit-Tests zu er- Wie wird Wicket den hoch gesteckten Zielen gerecht? Wicket möglichen, wurde nach dem Grundsatz „just java, just html and meaning- Erstellung eigener Abstraktionen, um Wiederverwendung ful abstractions“ entwickelt. Die klare Trennung zwischen Lay- von technischem und fachlichem Code zu erreichen sowie out und Logik, ergänzt um einfach anzuwendende transpa- eine einheitliche Darstellung und Funktionsweise der Ge- rente Abstraktionen, ermöglicht es dem Fachentwickler, sich samtanwendung zu forcieren, auf seine Kernaufgabe zu konzentrieren. Er kann die optima- Unterstützung der projektindividuellen Muster zur Erstel- le Umsetzung der Kundenanforderungen gewährleisten. Pro- lung von Frontends, der Integration anderer Frontends und jektindividuelle Querschnittsaufgaben kann der Architekt bzw. deren Integration in die Gesamtarchitektur. Framework-Entwickler gut in Java kapseln. Auf diese Ansprüche hat Apache Wicket die passenden Ant- Doch wie läuft dabei eine Wicket-Anfrage ab? Ruft der Nut- worten, die wir nachfolgend darstellen. zer eine von Wicket verwaltete URL auf, wird der Request vom WicketServletFilter behandelt. Zunächst löst Wicket die URL Komponentenorientierte Entwicklung des Frontends auf und bestimmt die gesuchte Ressource. Wicket extrahiert die Wicket unterstützt die komponentenorientierte Entwicklung Request-Parameter und gibt diese nach erfolgreicher Typkon- von Webfrontends. Fachlich zusammenhängende Controls vertierung sowie Validierung an das zugehörige Modell. An- werden zu einer UI-Komponente zusammengefasst. Dabei schließend werden die EventListener der Controls aufgerufen. können alle Ressourcen in Form eines Jar-Artefaktes gebün- Die EventHandler werden üblicherweise durch anonyme inne- delt werden. Neben dem Controller, der HTML und den Pro- re Klassen (analog zu Swing oder Eclipse-RCP) definiert. Die perties-Dateien für die Internationalisierung wird eine fach- EventHandler führen die notwendige Geschäftslogik aus und liche Schnittstelle definiert, die die von anderen Komponen- entscheiden, welche Seite bzw. welches Seitenfragment (Ajax) ten nutzbaren Funktionalitäten beschreibt. Diese fachlich ab- zum Client übertragen werden soll. Das zugehörige WebPage- geschlossenen Komponenten (Widgets) werden

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us