Ein EJB-Container ist eine Software, die auf einem Jakarta-EE-Server läuft und sogenannte Jakarta Enterprise Beans (EJB) verwaltet. Der Container kümmert sich sowohl um die persistente Speicherung der Zustände, als auch um die Verfügbarkeit der EJB-Komponenten für jeden autorisierten Client. Die Aufgaben, die ein EJB-Container zu erfüllen hat, sind von Sun in der EJB-Spezifikation festgelegt.
Der EJB-Container arbeitet auch als Vermittlungsschicht zwischen Client und Server, daher spricht man von Middleware. Der Client nimmt die Benutzereingaben entgegen und sendet sie an den EJB-Container, dort werden sie in geeigneter Form von den Beans verarbeitet und das Ergebnis zurück an den Client geschickt, der es dem Benutzer darstellt. Der Vorteil dieser Lösung liegt darin, dass man den Client fast beliebig austauschen kann, ohne etwas an der Anwendungslogik ändern zu müssen.
In der Praxis werden sehr häufig Web-Frontends für Kunden im World Wide Web oder für eigene Mitarbeiter im Intranet eingesetzt (gelegentlich auch Java-Swing-Clients), die mit dem gleichen EJB-Container kommunizieren. Dadurch braucht man die Vermittlungsschicht nur einmal zu entwickeln. Andererseits besteht auch die Möglichkeit, abhängige Systeme wie ein Datenbank-System auszutauschen, ohne dass die verschiedenen Clients deshalb angepasst werden müssen.
EJB-Container sind normalerweise keine eigenständig lauffähige Software, sondern Teil eines Application-Servers nach der Java-Spezifikation. Jedoch existieren auch einige Varianten, welche ohne Application-Server verwendet werden können.
Es stehen auf dem Markt mehrere Application-Server zur Verfügung, welche EJB-Container jeweils die aktuelle Version des EJB-Standards unterstützen. Die bekanntesten sind WildFly, GlassFish und Apache Geronimo, all diese Produkte sind freie Software. Daneben stehen diverse weitere, meist proprietäre Produkte zur Auswahl.
Literatur
- Linda G. DeMichiel: Enterprise JavaBeans™ Specification, Version 2.1. Sun Microsystems, 12. November 2003 (online [PDF; 3,2 MB; abgerufen am 24. Mai 2007]).
- JSR 220: Version 3.0 des EJB-Standards
- JSR 318: Aktuelle Version 3.1 des EJB-Standards