Im Folgenden werden kurz die wichtigsten Erweiterungen des Komponentenmodells von JavaBeans beschrieben. Enterprise-JavaBeans Bei Enterprise-JavaBeans handelt es sich um ein neues API, das auf JavaBeans aufbaut. Ziel ist die bessere Unterstützung von Server-seitigen Anwendungen, die mehrschichtig in Komponentenform aufgebaut sind. Hierzu wurde u. a. ein Transaktionsmechanismus integriert. Java Activation Framework Enthält eine Webseite eine Verknüpfung auf ein weiteres Dokument, so kann es in der Regel durch einen Doppelklick mit der Maus geöffnet werden. Handelt es sich dabei um ein MPEG-Video, ein HTML-, ein Excel- oder ein Word-Dokument, so öffnet sich automatisch die dazugehörige Anwendung. Dies ist vor allem deshalb möglich, da Anwendungen an bestimmte Dokumenttypen gebunden sind, was durch eine Registrierung der Anwendung sichergestellt wird. Eine entsprechende Funktionalität soll mit dem Java Activation Framework ermöglicht werden. Wenn der Anwender eine MPEG-Datei auswählt, soll anschließend automatisch ein JavaBean zur Anzeige des Videos gestartet werden. Funktionen, die man mit derartigen Datentypen durchführen kann, werden in der Terminologie des Java Activation Frameworks als Kommando (Commands) bezeichnet. Zu Kommandos gehören bspw. das Darstellen, Editieren, Drucken oder Kopieren von Dokumenten. Jedem Kommando ist ein JavaBean zugeordnet, das die entsprechende Funktionalität anbietet. Das Java Activation Framework bietet die folgenden Dienste an: Festlegung des Typs beliebiger Daten. Kapselung der Zugriffe auf diese Daten. Auffinden vorhandener Transaktionen jedes Datentyps. Instantiierung der JavaBeans-Komponente, die die Transaktion durchführen kann. Um den Datentypen entsprechende Kommandos zuzuordnen, enthält die Bibliothek des Java Activation Frameworks (JAF) ein einfaches Repository, in dem entsprechende Kommandos den Datentypen zugeordnet sind. Eine Anwendung nutzt dieses Repository, um das JavaBean zu finden, das das gewünschte Kommando ausführen soll. Das Repository basiert auf dem Prinzip der MIME-Typen. InfoBus Die Firma Sun entwickelte gemeinsam mit der Firma Lotus eine neue Kommunikationstechnologie für JavaBeans. Diese InfoBus-Technologie soll das Zusammenfügen von JavaBeans zu vollständigen Anwendungen vereinfachen. Statt die einzelnen JavaBeans über ihre Events direkt zu verknüpfen, werden diese an den InfoBus angeschlossen. Der InfoBus ist mit dem Systembus im Computer vergleichbar. Die einzelnen Komponenten versenden und empfangen Daten über diesen Bus. Die JavaBeans-Komponenten, die sich an einer InfoBus-Infrastruktur beteiligen können, werden in drei Gruppen eingeteilt: Datenproduzenten Datenproduzenten stellen Informationen auf dem InfoBus zur Verfügung und beantworten Anfragen von Datenkonsumenten. Datenkonsumenten Datenkonsumenten verbrauchen die von Datenproduzenten erzeugten Informationen. Daten-Controller Die InfoBus-Verkehrskontrolle ist eine optionale Komponente, die den Datenfluss zwischen den Datenproduzenten und den Datenkonsumenten regelt. Als Beispiel wird eine Anwendung betrachtet, die aus drei JavaBeans besteht. Der Benutzer gibt zunächst im Eingabefeld der ersten Komponente die Nummer eines Artikels an. Das Bean stellt diese Nummer auf dem InfoBus zur Verfügung. Die zweite Komponente, ein JavaBean zur Datenbankabfrage, erstellt mit Hilfe dieser Information eine SQL-Anweisung. Über JDBC werden anschließend die Umsätze dieses Artikels aus einer Datenbank abgefragt. Die Ergebnisse werden wiederum auf den InfoBus gestellt. Die dritte Komponente, eine Tabelle, liest diese Daten und zeigt sie an. Abb. 9.21: Datenfluss bei der Verwendung von InfoBus Zur Erfüllung dieses Mechanismus müssen die JavaBeans einige weitere Interfaces implementieren, die es den JavaBeans ermöglichen, mit dem InfoBus zu kommunizieren. Das Besondere gegenüber dem regulären Mechanismus des Event-Handlings ist, dass die JavaBeans unabhängig voneinander agieren, also keinerlei Kenntnisse über jeweils andere Beans haben. InfoBus ist, ebenso wie das JAF, eine Standarderweiterung des JDKs. In Abb. 9-21 ist der Datenfluss dargestellt, der bei der Verwendung der InfoBus-Technologie entsteht.