6. Java Java Beans und Enterprise Java Beans



Ähnliche Dokumente
Enterprise Java Beans

Application Frameworks and Componentware Wintersemester 2002/03. Komponentenbasierte Programmierung in Java

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

5.2 Workshop EJB. Entwicklung von EJB-Anwendungen. Das JOnAS-System

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

4.2 Workshop EJB. Entwicklung von EJB-Anwendungen

Beispiel: JavaBeans. Enterprise JavaBeans: Server-Komponenten

Java Beans ( )

Softwareentwicklung mit Enterprise JAVA Beans

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

Warum EJB Technologie (1)?

Enterprise JavaBeans

J2EE-Praktikum. Enterprise JavaBeans Patterns. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

Der lokale und verteilte Fall

Softwareentwicklung mit Enterprise JAVA Beans

SE2-10-Entwurfsmuster-2 15

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Das Model View Controller (MVC) Konzept

Java Beans. von Raoul Schneider

Anwendung eines Enterprise Java Beans

EJB jar.xml und Name Service (JNDI)

Enterprise Java Beans

Enterprise Java Beans (EJB)

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Application Server Application Server: Motivation Application Server: Begriff

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Java 2, Enterprise Edition Einführung und Überblick

Softwareentwicklung mit Enterprise JAVA Beans

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

Übungen zur Softwaretechnik

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Applet Firewall und Freigabe der Objekte

Mufid Sulaiman

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Man liest sich: POP3/IMAP

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Java Beans.

Liste V Enterprise JavaBeans

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Java Einführung Collections

HINWEISE ZUR ARBEIT IM LABOR

ORACLE Business Components for Java (BC4J) Marco Grawunder

Enterprise Java Beans Einführung

Enterprise JavaBeans (mit JBoss)

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Leitfaden zur Nutzung von binder CryptShare

Auszug aus JAX-WS Folien

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet.

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

WebSphere Application Server Installation

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Internetanbindung von Datenbanken

Innere Klassen in Java

Themen. Web Service - Clients. Kommunikation zw. Web Services

SANDBOXIE konfigurieren

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Etablierung serviceorientierter Architekturen mit Web Services

JDO Java Data Objects

Programmieren in Java

datenfabrik. Validieren von -Adressen 1

Lokale Installation von DotNetNuke 4 ohne IIS

System-Update Addendum

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.


Applets I. Grundlagen der g Applet-Programmierung

12.4 Sicherheitsarchitektur

4D Server v12 64-bit Version BETA VERSION

ObjectBridge Java Edition

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Objektorientierte Programmierung

CADEMIA: Einrichtung Ihres Computers unter Windows

SharePoint Demonstration

OP-LOG

Office in Java. 2. Info-Point Urs Frei

Programmierung von Client/Server- Anwendungen

MailUtilities: Remote Deployment - Einführung

Java Beans von Christian Beck-Wörner. Inhalt. Was ist ein Bean Konzept von Beans Entwicklung eines Beans Eigenschaften von Beans Testumgebung: BDK

WebService in Java SE und EE

Java für C++ Programmierer

Verteilte Paarprogrammierung mit Eclipse

Übung - Datenmigration in Windows XP

Updatebeschreibung JAVA Version 3.8 und Internet Version 1.4

Schedulingund Thread-Ausführer

Einführung in Eclipse und Java

Client-Server-Beziehungen

Enterprise JavaBeans Überblick

Transkript:

6. Java Java Beans und Enterprise Java Beans Peter Sturm Universität Trier Java Einführung Erfolgreicher virtueller Maschinenansatz der Gegenwart Vorbilder IBM: Virtualisierung der gesamten Rechnerhardware UCSD Pascal (Apple ][): Virtuelle stack-orientierte Maschine (P-Code) Vorteile Develop Once Run Everywhere Develop Once Debug Everywhere Erstmals sehr hoher Abstraktionsgrad in den Bibliotheken Erleicherung des Entwicklers Nachteile Performanz (c) Peter Sturm, Universität Trier 1

6. Java 6.1 JavaBeans JavaBeans Komponentenbasierte Programmierung in Java JavaBeans werden in der JVM der Anwendung ausgeführt JavaBeans sind Komponenten, die über Zugriffsklassen verfügen bestimmte Namenskonventionen bei den Methoden einhalten über Dialogboxen konfigurierbar sind neuen Programmiermethoden (Visual Programming) zugänglich sind Vergleichbar mit Controls in OLE, COM, ActiveX (inproc) Konfiguiermöglichkeiten in Visual Studio (c) Peter Sturm, Universität Trier 2

Die BeanBox Prototyp einer IDE mit visuellen Programmiereigenschaften 4 Fenster BeanBox: Aktuelle Anwendung ToolBox: Auflistung aller verfügbaren Beans PropertiesBox: Eigenschaften der aktuellen Bean lesen und konfigurieren MessageTracer Beispiel: JugglerBean (1) JugglerBean aus Toolbox auswählen und plazieren (c) Peter Sturm, Universität Trier 3

JugglerBean (2) 2 ExplicitButton mit Start und Stop hinzufügen JugglerBean (3) Stop : Edit->Events->button push->actionperformed (c) Peter Sturm, Universität Trier 4

JugglerBean (4)... mit JugglerBean verknüpfen JugglerBean (5) Automatisch generierter Code package tmp.sunw.beanbox; import sunw.demo.juggler.juggler; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class Hookup_1653fe1423 implements java.awt.event.actionlistener, java.io.serializable { public void settarget(sunw.demo.juggler.juggler t) { target = t; } public void actionperformed(java.awt.event.actionevent arg0) { target.stopjuggling(arg0); } private sunw.demo.juggler.juggler target; } (c) Peter Sturm, Universität Trier 5

BeanProperties BeanBox erkennt Properties über Namen der Zugriffsfunktionen BeanProperty X Verwendung sogenannter Decapitalization: aus setmeineprop bzw. getmeineprop wird meineprop Angabe der Zugriffsfunktionen: public X getx () Ausnahme: public boolean isx () public void setx ( X x ) Nurleseeigenschaften: Keine setx()-methode Property-Arten Simple Property Variable speichert einen einfachen Wert Indexed Property Speicherung eines Feldes Zugriffsfunktionen X[] getx () void setx ( X[] x) X getx ( int i ) void setx ( int i, X x ) (c) Peter Sturm, Universität Trier 6

Property-Arten (contd.) Bound Property Listener werden über Änderungen informiert Zusätzlicher Implementierungsaufwand Bean muß bei Änderung PropertyChange-Event senden Verwaltung aller Listener: void addpropertychangelistener (... ) void removepropertychangelistener (... ) Convenience-Klasse PropertyChangeSupport vorhanden Constraint Property Bound Property mit Vetorecht der Listener Property-Editoren BeanBox stellt für Grundtypen Editoren zur Verfügung Editoren für anwendungsspezifische Methoden integrierbar (c) Peter Sturm, Universität Trier 7

Alternativen BeanBox ist veraltete aber schöne Demonstration der wesentlichen Bean-Eigenschaften Kleinere Inkompatibilitäten mit Java 1.4 Neuere Fassung: Bean Builder Primärer Einsatz: Integrierte Entwicklungsumgebungen JBuilder NetBeans 6. Java 6.2 Enterprise Java Beans (EJB) (c) Peter Sturm, Universität Trier 8

Motivation Bean = Komponente Zielgruppe Kommerzielle Anwendungen E-Commerce Evolution früherer Client/Server-Systeme Transaktionsmonitore 3-Tier-Applikationen Client Bussiness Application Database Datenbank Business Logic Clients Business Objects Komponenten-basierte Anwendung Varianten Eigenständige Komponenten Wrapper für Legacy Software Client-Transaktionen Laufzeitumgebung EJB Server vergleichbar MTS bei COM+ Business Logic Datenbank Business Objects Clients (c) Peter Sturm, Universität Trier 9

Aufbau des EJB-Server Laufzeitumgebung Namensverwaltung Anbindung an DB Nachrichtenkommunikation EJB Object = Bean Wrapper Indirektionsstufe Zugriff über Reflection Beantypen Entity Bean Zustand, Persistent Session Bean Transient Stateless, Stateful X Bean Bean Bean EJB Object Bean Bean EJB Object EJB Server Aufgaben des Servers Resource Management Instance Pooling: Beans vorinstanziiert Instance Swapping: Wechsel der EJB-Object-Bindung Activation: Stilllegen und Reaktivieren von Beans Primary Services Concurrency: Single-Threaded Bean-Implementierung Transactions: ACID-Prinzip Persistence: Container-Managed, Bean-Managed Distribution: RMI over JRMP oder RMI-IIOP Naming: JNDI unterstützt LDAP, NIS+, DNS,... Security: Methodenbasierte Zugriffskontrolle (c) Peter Sturm, Universität Trier 10

Entity Bean: Struktur Remote Interface Die eigentlichen Zugriffsfunktionen der Bean Setters und Getters :-) public interface X extends javax.ejb.ejbobject {... }; Home Interface Bean-Erzeugung: public X create (... ) Beans wiederfinden: public X findbyprimarykey ( key ) public interface XHome extends java.ejb.ejbhome {... }; Primary Key Speichern und Auffinden der Bean in Datenbank public class XPK implements java.io.serializable {... }; Bean Class public class XBean implements javax.ejb.entitybean {... }; EntityBean: Funktionen ejbactivate EJBObject-Bean-Bindung wiederhergestellt ejbpassivate EJBObject-Bean-Bindung wird abgebaut ejbload Bean wurde geladen ejbstore Bean wird gespeichert ejbremove setentitycontext unsetentitycontext Informationen über EJBObject, Client, PK (c) Peter Sturm, Universität Trier 11

Exkurs: Reflection Bean-Klasse implementiert weder Remote- noch Home- Interface keine direkte Bindung zum Client vorhanden Bean-Klasse muß aber Methoden mit identischer Signatur enthalten EJB-Object greift über Reflection-Mechanismus darauf zu vgl. JavaBeans Deployment Descriptor XML-Dokument (EJB Version 1.1) Bean-Beschreibung Namen der Interfaces Klassenname Persistenztyp (Container oder Bean) Welche Bean-Attribute werden persistent gespeichert Zugriffsrollen von Clients beim Bean-Zugriff Zugriffskontrolle auf Methoden Welche Rollen dürfen zugreifen Transaktionen Bean = jar-file bestehend aus XML-DD und *.class Dateien (c) Peter Sturm, Universität Trier 12

Entity Beans: Zustandsdiagramm Object.finalize() unsetentitycontext() Aufrufe: Durch Client ausgelöst Durch Container ausgelöst Nicht Geladen Pooled Class.newInstance() setentitycontext() ejbpassivate() ejbremove() remove () create () ejbcreate() ejbpostcreate() ejbactivate() Ready Business Method ejbload() ejbstore() Container-Managed Persistence Erzeugen Löschen (c) Peter Sturm, Universität Trier 13

Activation Synchronization Bean-Managed Persistence Erzeugen Löschen (c) Peter Sturm, Universität Trier 14

Activation Synchronization Session Beans Session Beans besitzen keinen persistent gespeicherten Zustand Zwei Varianten Stateless Session Bean Kein sichtbarer Zustand zwischen Methodenaufrufen Pooling und Swapping möglich Stateful Session Bean Feste Bindung zu einem Client Conversational State zwischen Methodenaufrufen Swapping nicht möglich (c) Peter Sturm, Universität Trier 15

Bestandteile Remote Interface Eigentlichen Interaktionsfunktionen Home Interface Nur Erzeugung Kein Auffinden über Primary Keys Bean-Klasse Erweitert SessionBean Deployment Descriptor XML-Dokument u.a. Lokalisierungsinformation benötigter Beans Zugriffskontrolle Session Bean: Stateless Nicht Existend ejbremove() Class.newInstance() setsessioncontext() ejbcreate() Business Method Method-Ready Pool (c) Peter Sturm, Universität Trier 16

Stateless: create() und remove() Session Bean: Stateful (c) Peter Sturm, Universität Trier 17

Session Bean: Stateful with Transactions Stateful: create() und remove() (c) Peter Sturm, Universität Trier 18

Stateful: Activation Stateful: Transaction Notification (c) Peter Sturm, Universität Trier 19

Literatur Richard Monson-Haefel Enterprise Java Beans O Reilly, 2. Auflage, 2000 Quelle der gezeigten Zustands- und Interaktionsdiagramme (c) Peter Sturm, Universität Trier 20