Grundlagen
...[Seminar XML und JAVA]...
[Einleitung]...
[Architektur von EJB]...
Gesamtübersicht: Grundlagen
Was ist EJB?
Enterprise JavaBeans ist eine Architektur für komponentenorientierte, verteilte Anwendungen
[Sun Microsystems, 1999]. Dies bedeutet, daß Unternehmen selbst Komponenten entwickeln oder von
Herstellern kaufen können. Diese serverseitigen Komponenten, Enterprise Beans, sind verteilte
Objekte, die sich in Enterprise JavaBeans Containern befinden und Clients, ihre Services über ein Netzwerk bereitstellen. Die
folgende Abbildung soll diesen Sachverhalt verdeutlichen:
Buchhaltung, Inventur, Lagerwirtschaft, Controlling,
Auswertung und Jahresabschluß sind die einzelnen Komponenten, die sich in einem
Container auf einem Server befinden, stellen den Clients, die weltweit
verstreut sein können, ihre Dienste zur Verfügung.
Was ist eine Softwarekomponente?
Eine Softwarekomponente ist ein Stück Software, das eine
Menge wohl definierter Schnittstellen implementiert. Softwarekomponenten sind
keine Anwendung. Sie sind lediglich ein Baustein, der bestimmtes Problem löst.
Er ist eine Blackbox, deren Innere verborgen bleibt. Seine geschlossene
Funktionalität wird durch Schnittstellen veröffentlicht, die er implementiert
hat. Durch eine geeignete Kombination von Bausteinen ergibt sich eine
Anwendung mit bestimmtem Zweck. Bausteine sind wiederverwendbar. Ein
Softwarekomponente, die in nur einem
Anwendungsszenario einsetzbar ist,
ist keine echte Komponente.
Die Komponentenarchitektur
Die Einsatzgebiete und Ausprägungen einer Komponentenarchitektur sind sehr unterschiedlich. EJB stellt
eine Komponentenarchitektur für verteilte, serverseitige und transaktionsorientierte Komponenten dar.
Enterprise Beans sind Komponenten die, vielen Clients auf einem Server ihre Dienste anbieten. Diese
Komponenten sind in eine Art von Laufzeitumgebung eingebettet, die ihnen notwendige Dienste zur Verfügung
stellt. Ohne diesen Rahmen würde jede Komponente ein eigener Server sein. Dies bedeutet, daß die Entwicklung
einer derartigen Komponente erschweren würde. Und der Einsatz mehrerer solchen Komponenten auf einem Rechner
verursacht eine hohe Belastung von Ressourcen. Folgenden Anforderungen sind an eine Komponentenarchitektur
gestellt:
- Unabhängigkeit der Umgebung: Unabhängig von Programmiersprachen, Betriebssystemen, Netztechnologien
usw. sollten Softwarekomponenten eingesetzt werden bzw.. zusammenarbeiten können.
- Ortstransparenz: Für den Benutzer ist es unbedeutend, ob die Komponenten ihre Dienste im
lokalen, im Adreßraum des anderen oder entfernten Servers anbieten. Die Mechanismen für die Nutzung von Komponenten
müssen von der Architektur zur Verfügung gestellt werden.
- Trennung von der Schnittstelle und Implementierung: Vollständig unabhängig von der Implementierung
sollte die Spezifikation einer Komponente erfolgen. Diese Anforderung wird durch das Konzept Interface
in objektorientierten Sprachen unterstützt.
- Selbstbeschreibende Schnittstellen: Um dynamische (zur Laufzeit) Kopplung von Komponenten zu erreichen,
sollte jede Komponente über ihre Fähigkeit Auskunft geben.
- Plug&Play: Jede Komponente sollte ohne jegliche Änderung auf jeder Plattform nutzbar sein.
- Integrations- und Kompositionsfähigkeit: Ein Komponente sollte in der Lager sein, sich mit anderen
Komponenten zur Schaffung einer neuen gültigen Komponente zu kombinieren.
Die J2EE Technologien
Die Java 2 Plattform, Enterprise Edition ist eine Mengen von Middleware-Dienste, die die Entwicklung
von serverseitigen Applikationen erleichtern. Die J2EE Technologien beinhalten u.a.:
- Enterprise JavaBeans (EJB)
- Java Remote Method Invocation (RMI) und Remote Method Invocation via Internet Inter-ORB
Protocol (RMI-IIOP): Für die verteilte Kommunikation zwischen Objekten wird RMI benutzt.
Für die Kompatibilität mit CORBA kann auch RMI-IIOP eingesetzt werden.
- Java Naming and Directory Interface (JNDI): Hier handelt es sich um Namens- und Verzeichnisdienst.
Ein Namendienst bietet zum einen die Möglichkeit, Referenz auf entfernte Objekte unter bestimmten Namen
an einem definierten Platz zu hinterlegen (Binding). Zum anderen bietet er die Möglichkeit, gebundene
Objekte über deren Namen wiederzufinden (Lookup).
Ein Verzeichnisdienst unterstütz nicht nur das Binden von Objektreferenzen an einen Namen, sondern
er kann auch andere Ressourcen wie z.B. Dateien, Drucker verwalten. Er bietet auch die Möglichkeit, diese
Ressourcen zu verwalten.
- Java Database Connectivity (JDBC): Es erlaubt den Entwickler, über JDBC auf die Datenbank zuzugreifen.
- Java Servelts und Java Server Pages (JSP): Servlets und JSPs sind z.B. geeignet für die
Kommunikation mit Clients über HTTP.
...[Seminar XML und JAVA]...
[Grundlagen]...
[Einleitung]...
[Architektur von EJB]...