Die Entwicklung Web-basierender Systeme ist heute schwieriger denn je. Denn mit dem Boom von SaaS und Cloud-Computing, sowie mit der rasanten Entwicklung von Smartphones steigen die Anforderungen an Web-Anwendungen immer weiter an. Diese müssen im Backend robust, hochperformant und sicher sein, Arbeitsprozesse müssen in der Anwendungslogik möglichst schnell und flexibel implementiert werden. Beim Front-End reicht es heute nicht mehr aus, die Kompatibilität der Anwendung mit den unterschiedlichen Desktop-Betriebssystemen und -Browsern zu garantieren. Von einer Web-Applikation erwarten Anwender zunehmend, dass sie sich auch auf ihren Smartphones bequem nutzen lässt. Für die Entwickler bedeutet dies oft, einen komplett neuen Client für mobile Endgeräte implementieren zu müssen. Erschwerend kommt hinzu, dass Entwicklungen im schnellen Tempo erfolgen müssen, da es auf dem Markt ein großer Konkurrenzdruck herrscht.
Vor diesem Hintergrund sind Web-Entwickler, heute mehr als je zuvor, auf leistungsfähige Frameworks angewiesen, die ein solides Fundament für ihre Anwendungen bieten und gleichzeitig die Durchführung des Projekts beschleunigen und vereinfachen können. In den folgenden Seiten werden zehn Framework-Lösungen aus dem Open-Source-Bereich aufgeführt, mit denen die gestiegenen Anforderungen an modernen Web-Anwendungen gerecht werden können.
Struts: Klassisches Framework für Java
Struts von der Apache Foundation stellt eins der wichtigsten Open Source-Frameworks im Java-Umfeld dar. Nicht zuletzt verdankt Java den Durchbruch als Programmiersprache für Web-basierende Business-Anwendungen mächtigen Server-seitigen Bibliotheken wie diese. Mit Hilfe dieses klassischen Frameworks wird es um einiges leichter, umfangreiche und anspruchsvolle Web-Applikationen auf Basis von JSP (Java Server Pages) und Servlets zu implementieren. Dies liegt in erster Linie an dem sauberen Aufbau nach dem bewährten MVC-Muster (Model-View-Controller) und an den vielen zur Verfügung gestellten Oberflächenelementen und Funktionen.
Hauptziel von Struts ist es, die verschiedenen Systemschichten möglichst voneinander zu trennen. Dazu werden HTTP-Anfragen zunächst durch einen so genannten "Front-Controller” in einem standardisierten Prozess verarbeitet. Dann werden sie an die entsprechenden "Actions” weitergeleitet, die zentrale Komponenten des Frameworks darstellen und als Schnittstelle zwischen der Präsentations- und Steuerungsschicht dienen. Für den Einsatz von Struts sprechen zudem die vielen nützlichen Tools, die die Arbeit mit dem Framework erleichtern. So können verschiedene Plugins für Eclipse beziehungsweise Netbeans etwa den Aufbau einer Struts-Anwendung visualisieren und über Wizards Quellcode und Konfigurationsdateien automatisch generieren.
Tapestry: Komponenten-orientierte Web-Entwicklung
Wer auf Java und die hohe Qualität und Robustheit der Apache-Produkte nicht verzichten, aber einen etwas moderneren Ansatz verfolgen möchte, dem sei das Framework Tapestry empfohlen. Die Lösung basiert auf einem Komponenten-orientierten Programmiermodell und vereinfacht die Entwicklung Web-basierender Java-Anwendungen durch Best-Practices wie REST Web Services, "Convention over Configuration" and "DRY" (Don't Repeat Yourself). Was das Framework jedoch einzigartig macht, ist der hohe Grad an Wiederverwendbarkeit von GUI-Elementen, die wie Objekte geschaltet, in JARs verpackt und in weiteren Projekten leicht implementiert werden können.
Die Web-Entwicklung mit Tapestry gleicht damit der Arbeit mit Swing. Eine Tapestry-Seite dient dabei als Container und besteht aus drei Dateien: Einer Seitenspezifikation im XML-Format, einem HTML-Template und einer Java-Klasse. In der XML-Datei werden die Attribute und Komponenten definiert, die innerhalb der Seite verwendet werden sollen. während das Layout in HTML spezifiziert wird. Die Java-Klasse enthält schließlich Accessor-Methoden, mit denen sich die Seitenattribute verändern lassen.
- Struts
Von der Apache Foundation entwickelt, wird das Web-Framework Struts häufig als De-Facto-Standard im Bereich Java Enterprise angesehen. Damit erhalten Java-Entwickler die Möglichkeit, komplexe Web-Anwendungen auf der Basis eines robusten, sicheren und in der Praxis erprobten Programmiergerüst zu entwickeln. - Tapestry
Mit Tapestry bietet die Apache Foundation ein leistungsfähiges Web-Framework für Java-Anwendungen, das die Wiederverwendbarkeit eigener GUI-Komponenten in den Vordergrund stellt. Die Lösung ermöglicht es, dynamische und skalierbare Web-Anwendungen effizient zu entwickeln. Wer einen hohen Grad an Wiederverwendbarkeit anstrebt, wird den hohen Einarbeitungsaufwand gerne in Kauf nehmen. - Play Framework
Mit Play stellt sich ein junges und vielversprechendes Framework für Web-Anwendungen vor, das die Vorteile von Java als Programmiersprache und Plattform mit der Flexibilität und Effizienz von Ruby on Rails vereinen will. An der nicht so ausführlichen Dokumentation und der geringen Verbreitung merkt man zwar, dass Play noch zu jung ist. Java-Entwickler, die robuste Web-Lösungen effizienter und schneller implementieren möchten, sollten es aber im Auge behalten. - Grails
Ebenfalls von Ruby on Rails inspiriert bringt Grails die Flexibilität und Effizienz, die das beliebte Web 2.0-Framework populär gemacht haben, in die Welt der Java-Programmierung. Das Framework versucht die Brücke zwischen robuster Java-Programmierung auf der einen und dynamischer Web-Entwicklung auf der anderen Seiten zu schlagen. Und dies mit Erfolg. Denn die Lösung hat sich innerhalb weniger Jahre zu einer etablierten Alternative im Web entwickelt. - Django
Eine weitere, erfolgreiche Alternative zu Ruby on Rails ist Django. Das auf Python basierende Produkt erfreut sich aufgrund seiner Einfachheit und Flexibilität zunehmender Beliebtheit. Besonders praktisch bei dem Framework ist die Möglichkeit, Benutzerschnittstellen für die Datenverwaltungen automatisch generieren zu lassen. - Cappuccino
Cappuccino ist ein quelloffenes Web-Framework der ganz besonderen Art. Es verzichtet auf Html- und CSS-Code und implementiert mit Objective-J eine eigene, Objektorientierte Version von JavaScript. Das Ziel: Die Benutzerfreundlichkeit von Mac-Anwendungen in den Browser zu bringen. Der Einstieg ist gar nicht so leicht. Doch die Lösung hat großes Potenzial. Für den einen oder anderen experimentierfreudigen Web-Entwickler könnte es genau das Richtige sein. - Google Web Toolkit (GWT)
Mit dem Google Web Toolkit lassen sich komplexe Web 2.0-Anwendungen vollständig mit Hilfe Server-seitiger Techniken entwickeln. Dadurch kann die Performance, Sicherheit und Robustheit, die Java bietet, automatisch in den Web-Client übertragen werden. Der Clou: Ein integrierter Compiler generiert Ajax-basierende Webseiten aus Java-Code. - Phonegap
Das freie Framework Phonegap wandelt Web-Software in native Applikationen für iOS, Android, Blackberry, WebOS, Symbian und Windows Mobile um. Das Tool ist für Entwickler interessant, die ihre Web-Anwendungen ohne großen Aufwand auf möglichst viele mobilen Plattformen bringen möchten. Die wachsende Entwickler-Community sowie die Unterstützung von Handy-Herstellern wie Palm und Nokia sorgen für die stetige Weiterentwicklung der Lösung. - Titanium Mobile
Mit Titanium Mobile des kalifornischen Unternehmens Appcelerator können auch Web-Entwickler ohne Java- oder Objective-C-Kenntnisse native Anwendungen für Android und iPhone implementieren. Zwar ist die Lösung noch recht jung. Eine schnell wachsende Entwickler-Community und die Unterstützung namhafter Großunternehmen und Investoren deuten aber auf eine rosige Zukunft hin. - Sencha Touch
Mit dem jungen Framework Sencha Touch lassen sich mobile Web-Anwendungen für iPhone, iPad und Android entwickeln, die den nativen Applikationen Konkurrenz machen. Die Lösung macht ausgiebig Gebrauch von modernen Web-Standards wie HTML5, CSS3 und Javascript. - Struts
Von der Apache Foundation entwickelt, wird das Web-Framework Struts häufig als De-Facto-Standard im Bereich Java Enterprise angesehen. Damit erhalten Java-Entwickler die Möglichkeit, komplexe Web-Anwendungen auf der Basis eines robusten, sicheren und in der Praxis erprobten Programmiergerüst zu entwickeln. - Tapestry
Mit Tapestry bietet die Apache Foundation ein leistungsfähiges Web-Framework für Java-Anwendungen, das die Wiederverwendbarkeit eigener GUI-Komponenten in den Vordergrund stellt. Die Lösung ermöglicht es, dynamische und skalierbare Web-Anwendungen effizient zu entwickeln. Wer einen hohen Grad an Wiederverwendbarkeit anstrebt, wird den hohen Einarbeitungsaufwand gerne in Kauf nehmen. - Play Framework
Mit Play stellt sich ein junges und vielversprechendes Framework für Web-Anwendungen vor, das die Vorteile von Java als Programmiersprache und Plattform mit der Flexibilität und Effizienz von Ruby on Rails vereinen will. An der nicht so ausführlichen Dokumentation und der geringen Verbreitung merkt man zwar, dass Play noch zu jung ist. Java-Entwickler, die robuste Web-Lösungen effizienter und schneller implementieren möchten, sollten es aber im Auge behalten. - Grails
Ebenfalls von Ruby on Rails inspiriert bringt Grails die Flexibilität und Effizienz, die das beliebte Web 2.0-Framework populär gemacht haben, in die Welt der Java-Programmierung. Das Framework versucht die Brücke zwischen robuster Java-Programmierung auf der einen und dynamischer Web-Entwicklung auf der anderen Seiten zu schlagen. Und dies mit Erfolg. Denn die Lösung hat sich innerhalb weniger Jahre zu einer etablierten Alternative im Web entwickelt. - Django
Eine weitere, erfolgreiche Alternative zu Ruby on Rails ist Django. Das auf Python basierende Produkt erfreut sich aufgrund seiner Einfachheit und Flexibilität zunehmender Beliebtheit. Besonders praktisch bei dem Framework ist die Möglichkeit, Benutzerschnittstellen für die Datenverwaltungen automatisch generieren zu lassen. - Cappuccino
Cappuccino ist ein quelloffenes Web-Framework der ganz besonderen Art. Es verzichtet auf Html- und CSS-Code und implementiert mit Objective-J eine eigene, Objektorientierte Version von JavaScript. Das Ziel: Die Benutzerfreundlichkeit von Mac-Anwendungen in den Browser zu bringen. Der Einstieg ist gar nicht so leicht. Doch die Lösung hat großes Potenzial. Für den einen oder anderen experimentierfreudigen Web-Entwickler könnte es genau das Richtige sein. - Google Web Toolkit (GWT)
Mit dem Google Web Toolkit lassen sich komplexe Web 2.0-Anwendungen vollständig mit Hilfe Server-seitiger Techniken entwickeln. Dadurch kann die Performance, Sicherheit und Robustheit, die Java bietet, automatisch in den Web-Client übertragen werden. Der Clou: Ein integrierter Compiler generiert Ajax-basierende Webseiten aus Java-Code. - Phonegap
Das freie Framework Phonegap wandelt Web-Software in native Applikationen für iOS, Android, Blackberry, WebOS, Symbian und Windows Mobile um. Das Tool ist für Entwickler interessant, die ihre Web-Anwendungen ohne großen Aufwand auf möglichst viele mobilen Plattformen bringen möchten. Die wachsende Entwickler-Community sowie die Unterstützung von Handy-Herstellern wie Palm und Nokia sorgen für die stetige Weiterentwicklung der Lösung. - Titanium Mobile
Mit Titanium Mobile des kalifornischen Unternehmens Appcelerator können auch Web-Entwickler ohne Java- oder Objective-C-Kenntnisse native Anwendungen für Android und iPhone implementieren. Zwar ist die Lösung noch recht jung. Eine schnell wachsende Entwickler-Community und die Unterstützung namhafter Großunternehmen und Investoren deuten aber auf eine rosige Zukunft hin. - Sencha Touch
Mit dem jungen Framework Sencha Touch lassen sich mobile Web-Anwendungen für iPhone, iPad und Android entwickeln, die den nativen Applikationen Konkurrenz machen. Die Lösung macht ausgiebig Gebrauch von modernen Web-Standards wie HTML5, CSS3 und Javascript.