Kurzbeschreibung des J2EE-1.4-konformen Application Servers

Geronimo
Kommentare

Apache Geronimo ist der noch junge Application Server der Apache Software Foundation mit großer Zukunft. In diesem Artikel sollen Ihre ersten Fragen beantwortet werden: Was ist Geronimo und was kann er?

Die Apache Software Foundation (ASF) hat nach über zweijähriger Entwicklungszeit die Version 1.0 ihres J2EE-1.4-konformen Application Servers Geronimo bekannt gegeben. Bis zu diesem Zeitpunkt verfolgte die ASF einige Projekte, die Teile der J2EESpezifikation abdeckten. Bis zum Erscheinen des Apache Geronimo fehlte allerdings eine Integration und somit ein eigener J2EE-konformer Application Server.

Auf dem Open Source J2EE Application Server-Markt stehen einige freie Implementierungen zur Auswahl. Im Falle von JBoss und JOnAS handelt es sich bereits um J2EE-zertifizierte Produkte. Die Frage nach dem Sinn eines weiteren Produkts scheint berechtigt.

Geronimo von Christian Dedek und Kristian Köhler

Dieser Onlineartikel ist ein Auszug aus dem Buch „Geronimo“ von Christian Dedek und Kristian Köhler, das bei entwickler.press erschienen ist. Sie können das Buch im Onlineshop von entwickler.press erwerben.

entwickler-press.de

Geronimo steht im Gegensatz zu den genannten Alternativen unter der Apache Software License, einem Derivat der Berkeley Software Distribution (BSD)-Lizenz. Sie erlaubt den Einsatz und die Abwandlung der Quellen unter geschlossenen Lizenzen. In diesem Aspekt unterscheidet sie sich von der Lesser General Public License (LGPL), unter der JBoss und JOnAS lizenziert werden. Jeder Quellcode, der auf LGPL-lizenziertem Code aufsetzt, muss selbst wieder unter einer GPL-/LGPL-Lizenz veröffentlicht werden. Somit scheiden viele Erweiterungen und Verzahnungen mit dem Server für kommerzielle Interessen aus, die nicht offene Lizenzen nutzen möchten. Eine solche Verzahnung kann z.B. durch Einbinden eigener Komponenten, die servereigene Programmierschnittstellen nutzen, entstehen.

Die Vision des Geronimo-Projekts ist die Umsetzung des vollständigen J2EE-Funktionsumfangs durch Integration bestehender, erfolgreicher Open-Source-Projekte. Die Kompatibilität der Lizenz dieser Projekte ist hierbei Grundvoraussetzung für die Aufnahme in die Geronimo J2EE Distribution. Nur Ressourcen, die unter BSD-Lizenz oder abgeleiteten Lizenzen angeboten werden, erfüllen diese Kompatibilitätsanforderung der Apache Software Foundation. Auf diesem Wege fanden neben verschiedenen Apache-Implementierungen der WebContainer Jetty oder die EJB Container-Implementierung von OpenEJB Aufnahme in den Geronimo Application Server.

Die Entwicklung des Application Servers ist keineswegs ein Selbstzweck oder eine rein akademische Beweisimplementierung, die nicht für den produktiven Einsatz gedacht ist. Von Anfang an wurde viel Wert auf Modularität, Konfigurierbarkeit und Anpassungsfähigkeit des Servers gelegt. In den hierbei angebotenen Funktionen übertrifft er seine Mitbewerber und stellt somit eine skalierbare, gute und leicht zu konfigurierende Plattform zur Verfügung. Dies garantiert dem Geronimo Application Server ein breites Einsatzgebiet, das von minimalen Desktop-Konfigurationen bis zu hoch verfügbaren 24/7-Cluster-Installationen reicht.

Kompakt

Das Geronimo-Projekt versteht sich als der Anbieter eines „Best of Breed“ J2EE Applicaton Servers.

Ein weiterer Vorzug gegenüber seiner Konkurrenz, seien es Open Source oder kommerzielle Application Server, ist der viel diskutierte späte Markteintritt. Geronimo wurde komplett neu entwickelt. (Zu dieser Thematik gab es zu Beginn der Geronimo-Entwicklung Streitigkeiten mit der JBoss Group, da von dieser Seite behauptet wurde, dass Quellcode übernommen worden sei. Diese Behauptung wurde allerdings entkräftet. Siehe hierzu http://geronimo.apache.org/newshistory.html). Bei der Architektur des Servers konnte aus Fehlern früherer Implementierungen der Konkurrenz gelernt und diese entsprechend vermieden werden. Die Umsetzung der J2EE-1.4-Spezifikation wurde nicht durch den Ballast bestehender „Altlasten“ erschwert.

Die überzeugenden Angebote des Geronimo-Projekts führten im Jahr 2005 zu einer stürmischen Entwicklung. Mit der sich abzeichnenden J2EE-Zertifizierung stieg die Aufmerksamkeit kommerzieller Interessenten innerhalb der Geronimo Community, wobei IBM seine Beteiligung an der Weiterentwicklung des Geronimo Application Servers mit der Übernahme des Apache Supporters GlueCode krönte. Die Firma GlueCode vermarktete bis zu diesem Zeitpunkt unter dem Namen JOE einen eigenen Geronimo-basierten J2EE Application Server, den sie z.B. um eine ansprechende portletbasierte Administrationsoberfläche bereicherte. Dieser Server ging in der IBM WebSphere Application Server Community Edition auf. Die Administrationskonsole ist inzwischen Teil des Standard Apache Geronimo geworden. Andere Hersteller wie der dänische Server-Anbieter Trifork oder die irische Iona beteiligen sich ebenfalls offen an der Weiterentwicklung des Application Servers. Beide Firmen unterstützen hierbei die Weiterentwicklung der CORBA-Infrastruktur.

In Zusammenhang mit der Freigabe des Geronimo Release 1.0 wurden zusätzlich Teile der integrierten Projekte als neue Unterprojekte in den Apache-Brutkasten (Incubator) aufgenommen. Sie werden in Zukunft als Teilprojekte der Apache Software Foundation weiterentwickelt. Dies betrifft:

  • ActiveMQ eine JMS-kompatible Enterprise-Messaging-Plattform
  • ServiceMix ein JBI-basierter Enterprise Service Bus (ESB) und SOA Toolkit
  • WADI eine Clustering-, Loadbalancing- und Fail-over-Lösung
  • XBean ein plug-in-basiertes Server-Framework in Analogie zum Eclipse IDE Framework
Umfang der Auslieferung

Von der Apache Software Foundation wird Geronimo 1.0 in zwei verschiedenen Distributionen zum Download angeboten. Die beiden Alternativen sind entweder mit Apache Tomcat oder Jetty als Webcontainer vorkonfiguriert. Der restliche Funktionsumfang ist gleich. In beiden Varianten handelt es sich um einen J2EE-1.4-konformen Application Server.

Der Server besitzt eine ansprechende portletbasierte Administrationskonsole, mit der er überwacht und verwaltet werden kann. Anwendungen lassen sich entweder von einem lokalen oder entfernten Rechner mittels eines mitgelieferten Deploy Tool in den Server installieren. Zusätzlich steht bei lokalem Deployment ein so genanntes Hot Deployment Feature für J2EE-Komponenten zur Verfügung. Hierbei kann durch das Kopieren eines Archivs in ein spezielles Verzeichnis eine Anwendung automatisch in den Server installiert werden.

Neben den Deployment- und Managementfähigkeiten bietet Geronimo eine Clustering-Unterstützung, die zum Beispiel Load-Balancing für Webanwendungen ermöglicht. Intern arbeitet der Application Server konfigurationsbasiert. Anwendungen und Serverbestandteile lassen sich einzeln als so genannte Konfigurationen verwalten. Diese besitzen einen Lebenszyklus, der vom Java EE Application Deployment (JSR-88)übernommen wurde. In den Server geladene Konfigurationen müssen nicht zwangsläufig ausgeführt werden. Sie lassen sich zu einem späteren Zeitpunkt einzeln starten bzw. auch wieder stoppen oder entfernen. Über diesen Konfigurationsmechanismus lässt sich der Server sehr gut skalieren und auf die verschiedensten Bedürfnisse von kleinen bis zu sehr großen Installationen anpassen.

Die aktuelle Geronimo-Version zeichnet sich allerdings nicht nur durch die reine J2EE-Unterstützung und -Zertifizierung aus. Der Geronimo-Kernel kann vielmehr auch als Server Framework bezeichnet werden, mit dessen Hilfe es einfacher wird, einen eigenen Anwendungsserver zu erstellen. Es muss sich nicht zwangsläufig um einen J2EE-Server handeln. Die Konfektionierung eines auf Geronimo basierenden Servers ist sehr leicht möglich. Dies wird durch den Konfigurationsmechanismus und die zur Verfügung gestellten Werkzeuge unterstützt. Geronimo wartet zusätzlich zu den J2EE-Features mit Integrationen von ServiceMix (Java Business Integration Implementierung), Apache Derby (Java Datenbank – vormals IBM Cloudscape) und Apache Directory Service auf.

Fremdkomponenten

Wie bereits erwähnt, werden von Geronimo viele Open-Source-Projekte integriert. Aus diesem Grund wird an dieser Stelle eine Auswahl der prominentesten Projekte vorgestellt.

  • ActiveCluster – Framework zur Erstellung von Clusterbasierten Anwendungen.
  • ctiveMQ – Java Messaging Service (JMS)-Implementierung
  • Axis – Simple Object Access Protocol (SOAP)-Implementierung
  • Apache Derby – Java-basierte relationale Datenbank
  • Apache Directory – Enterprise Directory Server Platform zur Integration von z.B. LDAP, Kerberos, DHCP
  • CGLIB – Code Generation Library zur Erzeugung von Klassen zur Laufzeit
  • Apache-Commons-Bibliotheken – wiederverwendbare Java-Komponenten wie Datenbankpool, Caches und http-Anfrageklassen.
  • Apache Tomcat – Servlet-Container für Servlets und JSPs
  • Howl – performante Logging-Implementierung für z.B. Transaktionslogs
  • Jetty – Servlet-Container für Servlets und JSPs
  • Log4J – Logging-Implementierung
  • MX4J – Java Management Extension (JMX)-Implementierung
  • OpenEJB – EJB Container-Implementierung
  • Scout – Java-API for XML Registries (JAXR)-Implementierung
  • Tranql – Persistenz-Framework
  • Wadi – Distributed Caching Service (verteilter Cache)
  • XmlBeans – XML-Binding-Implementierung
  • Xerces – XML Parser
Christian Dedek und Kristian Köhler sind Consultants, Entwickler, Trainer und Autoren. Sie haben viel Erfahrung im Bereich der J2EE Softwareentwicklung und beschäftigen sich seit langem mit Aufbau, Konfiguration und Betrieb von Application Servern.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -