Donnerstag, 9. September 2010


Artikel

Juli 2010 | Artikel

Jetty goes OSGi

(Link zum Artikel: http://www.software-support.biz/jaxenter//003230)

Greg Wilkins und Hugues Malphettes über Jetty @ Eclipse Helios

Jetty ist ein weiterer Star im Eclipse-Helios-Universum. Der Server und Servlet-Container ist nach der Migration zu Eclipse Anfang 2009 zum ersten Mal an einem Eclipse-Release-Train beteiligt. Jetty-Entwickler Greg Wilkins und Hughes Malphettes erzählen, warum Jetty und OSGi dadurch immer bessere Freunde werden.
Teil 1   Teil 2   

JAXenter: Hallo Greg! Hallo Hugues! Was ist Jetty?

Greg Wilkins: Das Jetty-Projekt entwickelte sich 1995 aus einem einfachen HTTP Server Modul für Java 0.9 heraus. Seit dieser Zeit hat Jetty eine signifikante Reife erlangt und wurde um zahlreiche Features ergänzt: einen konfigurierbaren Servlet Container, Http Client, asynchrone Verwaltung von Requests, Unterstützung für Comet und seit neuestem auch Websocket Support

JAXenter: Jetty nimmt zum ersten Mal an einem Eclipse-Release-Train teil. Welche Auswirkungen hatte die Teilnahme auf das Jetty-Projekt?

Greg Wilkins: Die Teilnahme bedeutete einige kleine Extra-Anstrengungen und ein wenig mehr Bürokratie. Was aber was am wichtigsten ist: Wir konnten das Jetty-Projekt um einige signifikante Zusatz-Funktionen bereichern, die es ermöglichen, Jetty als einen OSGi-Service zu nutzen, mit der Implementierung des HttpService Interface, RFC66 Webapps, Legacy Webapps oder Jetty-spezifische Web-Kontexte. Das wird Jetty zu einem Eclipse-Kernmodul machen, welches für alle EclipseRT- und OSGi-Anwender zur Verfügung steht.

Die Projekt-Migration zu Eclipse haben wir mit der Absicht vollzogen, eine bessere Integration mit den anderen Eclipse-Projekten und -Communities zu erzielen. Die Teilnahme am jährlichen Release ist ein wichtiger Schritt zum Erreichen dieses Ziels.

JAXenter: Ihr habt auch an der Entwicklung des EclipseRT Web Starter SDK mitgewirkt. Was hat es damit auf sich?

Hugues Malphettes: Das EclipseRT Web Starter Kit ist die Kombination aus drei Software-Komponenten. Erstens stellt Equinox die OSGi-Runtime. Zweitens liefert p2 die Möglichkeit, Software-Komponenten zu verwalten, neue zu installieren und zu aktualisieren sowie existierende zu pflegen. Drittens stellt Jetty den Support für alle Http-bezogenen Angelegenheiten.

Ziel von Jetty im EclipseRT Web Starter Kit ist es, einen möglichst weichen Übergang von J2EE nach OSGi anzubieten: Der Server wird mit denselben vertrauten jetty.xml-Konfigurations-Dateien eingerichtet. Die traditionellen J2EE-Web-Anwendungen werden durch den webapps-Ordner, die gemeinsamen Bibliotheken und den context-Ordner unterstützt. Auf der Seite von OSGi gibt es Support für HttpService und Web Bundles, wo Web-Anwendungen in OSGi Bundles eingebettet sind. Bei der Entwicklung können Eclipse-PDE-Anwender Web-Bundles einfach wie jedes andere OSGi-Bundle behandeln.

Http-Module mit OSGi zu entwickeln, ist sehr gewinnbringend bei komplexen Anwendungen, bei denen viele Web-Applikationen auf demselben Webserver deployed und eng miteinander integriert sind. Dank OSGi können die Bibliotheken der Web-Anwendungen gemeinsam genutzt werden. Services können jeder anderen Komponente zur Verfügung gestellt werden, ohne zur Kommunikation Nachrichten über einen Draht schicken zu müssen.

Wir haben diese Distribution in Zusammenarbeit mit anderen Projekten aus dem EclipseRT-Bereich unter der Federführung von EclipseRT-Projekt-Leiter Jeff McAffer entwickelt. OSGi mit Equinox und p2 ist eine fantastische Kombination zur Umsetzung des Konzeptes der Komponenten-basierten Softwareentwicklung.

Und Jetty passt als Http-Komponente hervorragend in dieses idyllische Bild. Jetty – ein rein „Server-seitiges“ Projekt – mit der IDE-Kultur von Eclipse zusammenzubringen, war sehr spannend. Jetzt, da wir Teil des EclipseRT-Teams sind, freuen wir uns darauf, weniger Zeit mit den Build- und IP-Prozessen zu verbringen und uns darauf zu konzentrieren, umzusetzen was die Community will.

Teil 1   Teil 2   

andere Artikel dieser Serie

Kommentare