Java-Komponenten Inhalt des Tutorials:

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Objektrelationales Mapping mit JPA
programmiert April-Juni 2003 von Knut Riechmann
der Universität Oldenburg
Programmieren im Großen von Markus Schmidt und Benno Kröger.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Java Beans von Raoul Schneider.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Java 2 Enterprise Edition (J2EE)
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Universität Bonn, Seminar Softwaretechnologie WS 2003/2004, Frank Reichartz 1 Java Beans A Java Bean is a reusable software component that can be visually.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Remote Methode Invocation (RMI)
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Grundschutztools
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
AWT und JFC Abstract Windowing Toolkit
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Java-Komponenten Inhalt des Tutorials: Übersicht zur JavaBean-Technologie Entwicklung von JavaBeans Beans als Grundbausteine bei der visuellen Programmierung Komponenten am Beispiel von Enterprise Java Beans (EJB‘s) Schritte zur Implementierung und Anwendung von EJB‘s

JavaBean - Java‘s Komponententechnologie Zielstellung der Anwendung von Java Beans: Unterstützung der Idee einer arbeitsteiligen Softwareentwicklung Spezialisierte Zulieferunternehmen IV-technische Komponenten Domain- bzw. fachspezifische Komponenten Reduktion der Erstellungszeiten von Informationssystemen Verwendung der Sprache Java für die Implementierung, .d.h. der Sprachumfang von Java wurde nicht erweitert. Visuelle Programmierung mittels Bean-Builder Tools BDK Bean Development Kit (Referenzimplementierung) Java-Studio (Entwicklung bei SUN aber eingestellt) VisualAge for Java (Umfangreiche Anwendung von Beans)

JavaBean - Java‘s Komponententechnologie Definition von Java Beans entsprechend SUN: „JavaBeans components, or Beans, are reusable software components that can be manipulated visually in a builder tool. Beans can be combined to create traditional applications, or their smaller web-oriented brethren, applets. In additional, applets can be designed to work as reusable Beans.“ Quelle: Javasoft API sprecifications

JavaBean - Java‘s Komponententechnologie Java Beans Komponenten Modell: Eine Komponente ist ein identifizierbares Stück Software mit eindeutig und vor allem gut definierten Grenzen Die Spezifikation der JavaBeans beschreiben eine Komponenten-Architektur für Java Modell beschreibt auch wie die Komponenten mit ihrem Container interagieren Container bieten Komponenten eine Umgebung zur Ausführung Bedarf an zwei Typen von Programmierern Komponenten-Entwickler (developers) Komponenten-Monteure (assembler) JavaBeans als Black Box Komponente (Prinzip der Kapselung)

JavaBean - Java‘s Komponententechnologie

JavaBean - Java‘s Komponententechnologie Überblick zu den Eigenschaften von Java Beans I: Introspection (Selbstbeobachtung) - Java Beans können zur Laufzeit Auskunft hinsichtlich gebotener Funktionen und Eigenschaften geben Auf den direkten Quellcode-Zugriff kann so verzichtet werden Implizite Introspection-Funktion bietet alle Methoden des Bean Explizite Introspection-Funktion über das BeanInfo Interface Customisation (Anpassung) - Beans können entsprechend den aktuellen Erfordernissen über die Nutzung von Dialogen angepaßt werden. Angebot an Standard-Dialogen Angebot an angepaßten Dialogen Event-Handling (Ereignisverarbeitung) - Verwendung des Delegation-Event-Handling-Model (Event-Sources und Event-Listener) Persistenz - Möglichkeit der dauerhaften Abspeicherung alter und neuer Werte von Properties

JavaBean - Java‘s Komponententechnologie Überblick zu den Eigenschaften von Java Beans II: Methoden - werden genutzt um entsprechende Properties des Beans zu ändern. Alle als „public“ definierte Methoden werden in einem Bean-Builder-Tool angeboten. Einschränkung der angebotenen Methoden über BeanInfo-Klasse Einschränkung auch beim Import des Bean in ein Builder-Tool möglich Properties - (Eigenschaften) - Kapseln Daten einer Instanz eines Bean und können von außen abgefragt und geändert werden Signature pattern für Properties: getProperty() / setProperty() Simple Properties - repräsentieren einen einzelnen Wert Indexed Properties - Array gleichen Datentyps Bound Properties - Kombination eines Properties mit einem Event (z.B. ausgelöst nach der Änderung eines Properties) Constrained Properties - Zustimmung zur Änderung einer Propertie von z.B. einem anderen Bean holen

JavaBean - Java‘s Komponententechnologie Package für Java Beans: Erweiterung des JDK um das Package „java.beans.*“ Bean spezifische Interfaces BeanInfo - allg. Schnittstelle zur Beschreibung des Beans Customizer - graph. Assistenten zur Einstellung der Eigenschaften von Beans PropertyChangeListener - Interface für Events, die Änderungen Properties mitteilen Visibility - Interface für Beans ohne GUI ... Bean spezifische Klassen Beans - Methoden für Instanzen zur Behandlung im Design Modus von Builder Tools BeanDescriptor - allg. Informationen über ein Bean öffentlich bereitstellen Introspection - Methoden für die gleichnamige Eigenschaft SimpleBeanInfo - einfache Implementierung des Interfaces BeanInfo Bean spezifische Exceptions IntrospectionException - geworfen bei Fehlern während des Introspection Vorgangs

JavaBean - Java‘s Komponententechnologie Implementierung von Java-Beans: notwendige Klasse/Packages importieren Klasse definierten, Objekt initialisieren über Konstruktor Anwendungslogik implementieren Event-Handling - Methoden zum registrieren bzw. entfernen interessierter Listener Beispiel einer Bound-Methoden-Sigatur (getProperty()/setProperty()) //Propertie für Text setzen und lesen public void setText(String newText) { String oldText = text; text = newText; //Auslösung eines entsprechenden Event propertyChangeListeners.firePropertyChange("text", oldText, newText); } public String getText() { return text;

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 1: package Beans; import java.awt.*; import java.awt.event.*; import java.beans.*; import java.io.Serializable; Das folgende Bean3 wird von Panel abgeleitet und implementiert die Interfaces Serializable für die Realisierung der Persistenzeigenschaften eines Beans und Runnable um innerhalb des Beans Threads verwenden zu können. public class Bean3 extends Panel implements Serializable, Runnable{ BorderLayout borderLayout1 = new BorderLayout(); TextField textField1 = new TextField(); Thread t = new Thread(this); private String text = "leer"; public String i ; public int a =0; private boolean ind=false; private transient PropertyChangeSupport propertyChangeListeners = new PropertyChangeSupport(this);

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 2: Über den parameterlosen Konstruktor wird das Bean bzw. die Objektinstanz initialisiert, die eigentlichen Eigenschaften werden in der Methode jbInit(), welche innerhalb des Konstruktur aufgerufen wird festgelegt. //parameterloser Konstruktor public Bean3() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); //Initialisierung der Bean-Komponente private void jbInit() throws Exception { this.setSize(new Dimension(186, 24)); textField1.setText("Bean3"); this.setLayout(borderLayout1); this.add(textField1, BorderLayout.NORTH);

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 3: Der folgende Thread realisiert die eigentliche Zeitzählung, wobei das Propertie “Text” durch die Methode “setText” entsprechend dem Ergebnis der Hochzählung gesetzt wird. //Thread für die Ausführung starten public void run(){ //Endlosschleife for (;;){ ind=true; a=a + 1; i=""+ a; setText(i); textField1.setText(text); try{ Thread.sleep(1000); }catch (InterruptedException ex){} } Diese Methode realisiert den eigentlichen Start der Stopuhr und soll in einem Bean-Builder- Tool zur Verfügung stehen. // Start der Uhr public void start(){ if (ind) { t.resume(); else{ t.start();

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 4: Diese Methode realisiert den eigentlichen Stop der Stopuhr soll ebenfalls im Bean-Builder- Tool zur Verfügung stehen. // Stop der Uhr public void stop(){ t.suspend(); // Thread beenden } Diese Methode realisiert das Rücksetzen der Stopuhr auf 0 soll ebenfalls im Bean-Builder- Tool verwendet werden können. // Rücksetzen auf 0 public void reset(){ a= 0; i="0"; setText(i); textField1.setText(text);

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 5: Die folgenden beiden Methoden entsprechenden dem Entwurfsmuster (Methoden-Signatur) für Java-Beans und realisieren so das Property dieses Beans. Ebenso werden entsprechende Listener (z.B. ein anderes Bean) über Änderungen des Property durch ein entsprechedes Event “propertyChangeListener” informiert. //Propertie für Text setzen und lesen public void setText(String newText) { String oldText = text; text = newText; //Auslösung eines entsprechenden Event propertyChangeListeners.firePropertyChange("text", oldText, newText); } public String getText() { return text;

JavaBean - Java‘s Komponententechnologie Beispiel eines Java-Beans 6: Die folgenden beiden Methoden realisieren in der späteren Bean-Applikation die Registrierung von auf Events wartenden Listenern. //entfernen eines registrierten Listener public synchronized void removePropertyChangeListener(PropertyChangeListener l) { propertyChangeListeners.removePropertyChangeListener(l); } //registrieren eines registrierten Listener public synchronized void addPropertyChangeListener(PropertyChangeListener l) { propertyChangeListeners.addPropertyChangeListener(l);

JavaBean - Java‘s Komponententechnologie Funktion der Bean-Info-Klasse: Problem: alle public definierten Methoden werden in einem Bean-Builder angezeigt, auch die ererbten. Wird keine eigene Bean-Info-Klasse definiert, erfolgt die Verwendung von „SimpleBeanInfo“ Filterfunktionen (verbergen von Komplexität) Bean Descriptor - Zuordnung komplexere Customizer-Dialoge Property Descriptor - Auswahl definierter Properties Method Descriptor - Auswahl konkreter Methoden Event Set Descriptor - Auswahl der angebotener Events Zuordnung eines korrespondierenden Icon Dateinamen von BeanInfo-Klassen setzen sich immer aus der Orginal-komponente + BeanInfo zusammen.

JavaBean - Java‘s Komponententechnologie Beispiel eines Method-Desciptors (in BeanInfo): public MethodDescriptor[] getMethodDescriptors() { // First find the "method" object. Class args[] = {}; Method m, m1, m2; try { m = Bean3.class.getMethod("start", args); m1 = Bean3.class.getMethod("stop", args); m2 = Bean3.class.getMethod("reset", args); } catch (Exception ex) { // "should never happen" throw new Error("Missing method: " + ex); } // Now create the MethodDescriptor array: MethodDescriptor result[] = new MethodDescriptor[3]; result[0] = new MethodDescriptor(m); result[1] = new MethodDescriptor(m1); result[2] = new MethodDescriptor(m2); return result;

JavaBean - Java‘s Komponententechnologie JAR-Files Packetierung von Java Beans: Ein zu verteilendes Beans enthält typischerweise mehrere Files JAR Java Archive Files für die Packetierung von Beans, dabei handelt es sich um ein ZIP-File, welches zusätzlich eine Manifest-Datei enthält. Inhalte eines JAR-Files: ein Satz von Java-Class Files einen Satz serialisierter Objekte optionales Help-File in HTML-Format optionale Lokalisierungs-Informationen optionales Icon im GIF Format weitere Ressource-Files die vom Bean benötigt werden Beispiel einer Manifest-Datei: // Example.lst Manifest-Version: 1.0 Name: Example.class Java-Bean: True

JavaBean - Java‘s Komponententechnologie Visuelle Entwicklung unter dem BDK: Bean-Box, Container-Panel entspricht der späteren Java-Anwendung ToolBox, enthält eigene und Beispiel-Komponenten Property-Sheet, Anzeige der Eigenschaften ausgewählter Komponenten Funktionen des BDK: benötigte Beans per “Drag & Drop” plaziert. Ausgewählt werden die Beans über eine Toolbox vom Bean exportierte Properties bearbeiten Anzeige der Properties je Bean über entsprechenden Dialog Event-Source mit Event-Handler kombinieren (Drag & Drop) Fertige Anwendungen z.B. Applets werden herausgeneriert Anwendung (Beans und Compositions-Fenster) speichern neue Beans aus JAR-Files einlesen lauffähiges Applet erzeugen

JavaBean - Java‘s Komponententechnologie

JavaBean - Java‘s Komponententechnologie Design einer Entwicklung unter dem Visual Studio: GUI der Applikation: Black Box Sicht auf die Komponenten alle Beans haben hier eine grafische Präsentation (nicht immer!!) Applikation (z.B. Applet) muß aus dem Builder-Tool generiert werden

JavaBean - Java‘s Komponententechnologie Entwicklung unter dem JavaStudio: Verwendete Beans: (visuelles Plazieren, angebotene Connectoren) Button-Beans (Start, Stop, Reset) Zähler (Impulsgeber alle 1 sek.) Ausgabe-Bean (Stopuhr) Label zur Beschriftung Laufschrift-Bean Customize-Dialog:

EJB Enterprise Java Beans Enterprise-JavaBeans(EJB)-Architektur: Server-seitige Java-Komponenten (Focus: Anwendungsdomaine) SUN bietet Spezifikation für Beans, Server und Container Referenzimplementierung J2EE Vielzahl angebotener Applikation-Server Portable Anwendungen auf der Basis von EJB‘s Hardwareunabhängig Betriebssystemunabhängig Unterstützung verschiedener Sprachen und CORBA Abstraktes Programmierinterface Entlastung von “low-level“ Aufgaben Transaktionsverwaltung Multithreading Ressourcenverwaltung Unterstützung der Wiederverwendbarkeit Entwicklung ist völlig unabhängig von der Installation, Konfiguration, Auslieferung und Betrieb

EJB Enterprise Java Beans Container-Konzept: Behälter bzw. Umgebung für Softwarekomponenten Container definiert nach außen einen abgeschlossenen Bereich Angebot an Funktionen für enthaltene Komponente Überwachung des Lebenszyklus und Synchronisation Dienste: Persistenzmechanismen via z.B. JDBC Komponentenfabriken, TA-Services, Security, Kommunikation RMI over IIOP Schnittstelle enthaltener EJB‘s zur Außenwelt

EJB Enterprise Java Beans EJB - Eigenschaften: Component Model (Session und Entity Beans) Component Persistence BMP - bean managed Persistence CMP - container managed Persistence Transaction-Management (Java-Transaction-API) Exceptions (Client und Server) Security Naming und Directory Service (JNDI) Protocoll-Support (RMI, IIOP,...) CORBA-Support (Mapping and Services) Attribute-based Programming (Deployment Descriptor File) Deployment (EJB JAR-Files)

EJB Enterprise Java Beans Möglichkeiten EJB-basierter Architekturen

EJB Enterprise Java Beans Session- und Entity-Beans: Stateless Session-Beans (javax.ejb.SessionBean) genau dem Client zugeordnet von dem dieses instanziert wurde nach „Herunterfahren“ des Server nicht mehr vorhanden ist keine Referenz mehr vorhanden erfolgt eine Löschen Stateful Session-Beans Verwaltung von Zuständen durch Handle-Mechanismus Speicherung der Zustände möglich, z.B. bei TA-Sicherung notwendig Entity-Beans (javax.ejb.EntityBean) Persistenzeigenschaften (zumeist Abbildung auf RDBMS) Eindeutige Identifizierung über Primärschlüssel ist zwingend Persistenzmechanismen des Containers - CMP Persistenzmechanismen vom Bean verwaltet - BMP

EJB Enterprise Java Beans Aufbau einer EJB-Komponente: Besteht aus mindestens 3 Java-Klassen und dem Deployment-Deskriptor Remote-Interface Nutzung der EJB-Funktionalität über dieses Interface Home-Interface Realisierung das Erzeugen, Auffinden und Löschen des Beans Bean-Implementierung Implementiert die im Remote-Interface spezifizierten Methoden XML - Deployment-Deskriptor (kurz DD) Informationen und Anpassungen zum betrachteten Bean Die Verteilung (Deployment) der EJB‘s erfolgt zusammengefaßt innerhalb einer JAR-Datei.

EJB Enterprise Java Beans

EJB Enterprise Java Beans Beispiel eines Remote-Interfaces (Quelle: Merkle 2000) import java.util.*; import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Cart extends EJBObject { public void addBook(Book ref) throws RemoteException; public void removeBook(Book ref) throws BookException, RemoteException; public Collection getContents() throws RemoteException; public double getSummary() throws }

EJB Enterprise Java Beans Beispiel eines Home-Interfaces (Quelle: Merkle 2000) import java.io.Serializable; import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBHome; public interface CartHome extends EJBHome { Cart create(String person) throws RemoteException, CreateException; Cart create(String person, String creditcard) }

EJB Enterprise Java Beans Beispiel einer EJB-Implementierung I (Quelle: Merkle 2000): import java.util.*; import java.rmi.*; import javax.ejb.*; public class CartEJB implements SessionBean { String customerName;customerId; Vector contents; public void ejbCreate(String person) throws CreateException { if (person == null) { throw new CreateException(“null not allowed.");} else {customerName = person;} customerId = "0";contents = new Vector(); }

EJB Enterprise Java Beans Beispiel einer EJB-Implementierung II (Quelle: Merkle 2000): public void ejbCreate(String person, String id) throws CreateException { // } public void addBook(Book ref) { //Buch zum Korb hinzufügen contents.addElement(ref); } public void removeBook(Book ref) throws BookException { //Buch aus dem Korb entfernen System.out.println(re); } } } public Collection getContents() { //welche Bücher befinden sich schon im Korb return contents; } public double getSummary() { //Preis der enthaltenen Bücher insgesamt return summary; }

EJB Enterprise Java Beans Aufgaben des Deployment-Deskriptor kurz DD: Auf der Basis des DD soll eine Anpassung entsprechender Attribute der EJB‘s ermöglicht und ein „Blackbox-Reuse unterstützt werden. Der DD kann als Beipackzettel für ein EJB, oder einer aus mehreren EJB‘s zusammengesetzten Applikation betrachtet werden. Im DD konfigurierbare Eigenschaften (Attribute): Sicherheitsattribute Transaktionsattribute Umgebungsvariablen Verknüpfungen mit anderen Komponenten Verknüpfungen zu Datenquellen Struktur eines EJB-DD Struktur-Sektion (Basis- und Umgebungsinformationen) Assemblierungs-Sektion (Zugriffsrechte, Transaktionsattribute,...)

EJB Enterprise Java Beans Beispiel eines XML-Deploymentdescriptor: <?xml version="1.0" encoding="Cp1252"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'> <ejb-jar> <description>no description</description> <display-name>Ejb1</display-name> <enterprise-beans> <session> <display-name>CartEJB</display-name> <ejb-name>CartEJB</ejb-name> <home>CartHome</home> <remote>CartClient</remote> <ejb-class>CartEJB</ejb-class> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar>

EJB Enterprise Java Beans Dialog des J2EE-Wizard: (Erstellung der EJB-JAR)

EJB Enterprise Java Beans Konfigurationsdialog

EJB Enterprise Java Beans Dialog beim Deployment: (Applikation und EJB‘s)

EJB Enterprise Java Beans Unterstützung der EJB: SilverStream SilverStream Application Server 3.0 Netscape Netscape Application Server Gemstone Gemstone/J 3.0 BEA Weblogic 4.5 bzw. 5.0 Inprise Inprise Application Server 4.0 ProSyst EnterpriseBeans Server 3.0 SUN J2EE-Referenz-Implementierung Application Deployment Tool, Verifier Packager Tools für Verwaltungsaufgaben (Benutzer, Gruppen,...)

EJB Enterprise Java Beans Rollenverteilung mit EJB‘s: Das EJB-Modell unterstützt eine arbeitsteilige Fertigung, Verarbei-tung, Auslieferung und Administration beanbasierter Applikationen: EJB-Provider - Lieferant der Java-Kompoenten Application Assembler - Anwendungsentwickler (komplexere EJB‘s) EJB-Deployer - Installation und Konfiguration der Umgebung System-Administrator - Administration Server- und Netzinfrastruktur EJB-Server-Provider - Anbieter von Applikation-Server EJB-Container-Provider - Laufzeitumgebung für EJB‘s (derzeit fast immer im Zusammenhang mit dem Applikation-Server)

Literaturhinweise für Java Griffel F. : Componentware, Konzepte und Techniken eines Softwareparadigmas, dpunkt.verlag 1998 Nogli A. : Auswahl eines Applikations-Servers, in Java SPEKTRUM 2/2000, SIGS-Verlag Merkle B., M. Johann: Produktüberblick von EJB-basierten Applikations-Servern, in Java SPEKTRUM 2/2000, SIGS-Verlag Szypersiki C. : Component Software, Beyond Object-Oriented Programming, Addison- Wesley, 1998 Wiedeking M. : Die Entwicklung verteilter Anwendungen mit Enterprise-JavaBeans, in Java SPEKTRUM 6/1999, SIGS-Verlag Pouatcha F., Rottach T.: Konfigurationsbeschreibung für EJB-Komponenten, in Java SPEKTRUM 6/1999, SIGS-Verlag Hendrich N.; Java für Fortgeschrittene, Springer-Verlag Berlin Heidelberg, Berlin 1997 Merkle B. : Tutorium zur Programmierung von Enterprise-JavaBeans, in Java SPEKTRUM 3/2000, SIGS-Verlag http://www.sigs.de/html/inhalt_bisheriger_hefte1.html

Interessante Links im Internet CORBA-spezifische Informationen: http://www.omg.org Verfügbare Applikations-Server: http://divya.com/links.html Java-World: http://www.javaworld.com freier EJB-Guide: http://www.nova-labs.com/ div. Artikel unter: http://developer.java.sun.com/developer/technicalArticles/EBeans/ EJB-Spezifikation: http://www.javasoft.com/products/ejb/ Java SPEKTRUM, alle 2 Monate, http://www.sigs.de Java Magazin, alle 2 Monate, http://www.javamagazin.de