28.06.1999EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

der Universität Oldenburg
RMI RMI Systemarchitektur Servlet Cont. Präsentation Logik Datenbank Servlet Cont. Servlet Cont. EJB-Container Oracle RMI JDBC.
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DI Christian Donner cd (at) donners.com
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Objektorientierte Programmierung
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Java 2 Enterprise Edition (J2EE)
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
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
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Programmieren mit JAVA
JAVA RMI.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Remote Methode Invocation (RMI)
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
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.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
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.
Einführung Servlets/JSPs
Applets Java für’s Web.
Seminar Internet - Technologie
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
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Java-Komponenten Inhalt des Tutorials:
7.1.5 Java RMI – Remote Method Invocation
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Komponentenarchitekturen, Enterprise Java Beans (EJB)
Programmiervorkurs WS 2014/15 Methoden
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Enterprise JavaBeans (EJB) und Application Server
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
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.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Verteilte Anwendungen: J2EE
 Präsentation transkript:

EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise JavaBeans z Zusammenspiel mit anderen Architekturen

EJB, Norbert Schuler2 Was sind Enterprise JavaBeans? zIndustriell unterstützte serverseitige Komponentenarchitektur für die Java-Plattform yüber 40 Softwareentwickler haben Ihre Unterstützung für EJB Technolgie in Ihren Produkten zugesagt zEJB ist kein Produkt, sondern eine Spezifikation, die die Architektur der EJB-Komponenten und Schnittstellen zwischen EJB-Server und EJB-Komponenten definiert zdie Spezifikation wird von SUN entwickelt - dies soll aber in Kooperation mit dem Feedback der industriellen Partner und der Öffentlichkeit geschehen

EJB, Norbert Schuler3 Historie zErste Spezifikation 1.0 herausgegeben von SUN am 24. März 1998 zerste Produkte im frühen Sommer 1998 herausgebracht zerste größere Produkte (EJB-Server) jetzt verfügbar zEJB-Deployathon Event auf der JavaOne99 Konferenz (15-18 Juni) åanhand einer Beispielanwendung (Car Shipping) wird bei fertigen EJB- Server-Implementation demonstriert, ob und wie gut sie die EJB- Spezifikation (nur 1.0 erforderlich) erfüllen zEJB Spezifikation 1.1 Public Draft 2 am 24. Juni herausgegeben

EJB, Norbert Schuler4 Motivation zClient/Server Modelle: two-tier entwickelten sich zu three-tier (oder multi-tier) Modellen åKonzentration der fachlichen Anwendungslogik (business logic) in middle-tier mit unterliegenden Diensten für die Infrastruktur und client-seitigen Applikationen für die Benutzerschnittstelle zaus Zusammenschluß von drei Entwicklungskonzepten bildete SUN den EJB Standard yserverseitige Anwendungen in Java (wie mit Servlets eingeleitet) yKonnektoren zu bestehenden Enterprise Systemen (wie z.B. mit JDBC für Datenbanken) ymodulare, einfach zu verwendene Komponenten (wie bei JavaBeans) åSkalierbarkeit, einfache Entwicklung, Verwendung, Pflege und WORA (write once, run anywhere) für die Anwendungslogik

EJB, Norbert Schuler5 Architektur zEJB- Architektur : Standardarchitektur für Entwicklung von fachlicher Anwendungslogik in multi-tier Anwendungen als wiederverwendbare Komponenten zTeile der Architektur und deren Aufgaben yEJB Server xkapselt die vorhandenen Systeme und Resourcen, um fundamentale Dienste in einer standardisierten Schnittstelle für die Beans anzubieten yEJB home interface xermöglicht Zugriff auf Dienste zum Lebenszyklus eines Beans xnur für entity-beans: gibt Methoden zum Auffinden von Exemplaren an yEJB remote interface xdeklariert Methoden für fachlichen Zugriff auf das Beans

EJB, Norbert Schuler6 Architektur yEJB Komponenten (die eigentlichen Beans) xImplementation von Methoden korrespondierend zum home interface xImplementation von einfachen Callback-Interfaces zur Unterstützung der von Container zur Verfügung gestellten Dienste xImplementation fachliche Anwendungslogik nach remote interface xSession-Beans existieren nur für die Dauer einer Sitzung zwischen Client und Server eingesetzt für Berechnungen oder Zugriffe auf Datenbanken xEntity-Beans bilden Objektrepräsentationen von persistenten Daten jedes Exemplar mit Primärschlüssel gekennzeichnet können Ihre Persistenz selbst verwalten oder Container überlassen yDeployment Descriptor xenthält Einstellungen für Lebenszyklus, Transaktionsverhalten, Sicherheit und Persistenz des Beans

EJB, Norbert Schuler7 Architektur yEJB Container ximplementiert home und remote interfaces des Beans bei Installation des Beans im Server und veröffentlicht es unter Verwendung von JNDI xhängt sich über Interfaces des Beans zwischen alle Methodenaufrufe des Clients an ein Bean - dies geschieht transparent für den Client xverwaltet Lebenszyklus der Komponenten, Transaktionen und Sicherheit und bei Bedarf auch Persistenz nach Angaben im deployment descriptor xverdeckt für den Client die mögliche Trennung von Bean und Client in verschiedene Umgebungen auf verschiedenen Systemen im Netzwerk åder Container ist damit nicht unbedingt eine physikalische Einheit yEJB-Client xfindet Beans per JNDI xverwendet Beans über home und remote interfaces

EJB, Norbert Schuler8 Konstruktion zKonstruktion eines session beans yremote interface yhome interface ybean class ydeployment descriptor yclient zBean ist in jedem EJB-Container/-Server lauffähig, wobei nur der deployment descriptor und vielleicht der Client-Code angepasst werden müssen

EJB, Norbert Schuler9 Konstruktion: remote interface zgibt die anwendungsfachliche Schnittstelle des Beans zum Client an zImplementation des Interface geschieht durch den Container bei der Installation des Beans im Server, damit sich der Container bei allen Client-Methodenaufrufen einklinken kann zder Entwickler muß entsprechende Methoden auch am Bean implementieren package ejb.demo; import java.rmi.RemoteException; import java.rmi.Remote; import javax.ejb.*; public interface Demo extends EJBObject, Remote { public String demoSelect() throws RemoteException; }

EJB, Norbert Schuler10 Konstruktion: home interface zanhand des home interface kann der Container ein neues Bean auf Geheiß des Clients erzeugen zImplementation des Interface geschieht ebenfalls durch den Container bei der Installation des Beans im Server, so daß sich der Container bei allen Client-Methodenaufrufen einklinken kann package ejb.demo; import javax.ejb.*; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.*; public interface DemoHome extends EJBHome { public Demo create() throws CreateException, RemoteException; }

EJB, Norbert Schuler11 Konstruktion: bean class package ejb.demo; import javax.ejb.*; import java.io.Serializable; import java.util.*; import java.rmi.*; public class DemoBean implements SessionBean { zImplementation der durch die EJB-Spezifikation vorgegebenen Schnittstellen für ein Bean // Implement the methods in the SessionBean interface public void ejbActivate() {... } public void ejbRemove() {... } public void ejbPassivate() {... } // Sets the session SessionContext public void setSessionContext(SessionContext ctx) {... }

EJB, Norbert Schuler12 Konstruktion: bean class zwenn die Methode create() im home interface aufgerufen wird, erzeugt der Cointainer ein Bean und ruft daran die folgende Methode auf public void ejbCreate () {... } zdie eigentliche Implementation der Anwendungslogik (business logic) wie auch schon im remote interface angegeben public String demoSelect() throws RemoteException { return("hello world"); }

EJB, Norbert Schuler13 Konstruktion: deployment descriptor zZur Erinnerung der Begriffsbildung: ydeployment: Installation eines Enterprise JavaBeans in einen Enterprise JavaBeans Container, dabei werden u.a. die Klassen zur Implemention des home und remote interfaces erzeugt ydeployment descriptor: enthält Einstellungen für Lebenszyklus, Transaktionsverhalten, Sicherheit und Persistenz des Beans, nach denen der Container das Bean verwaltet zEs gibt keinen vorgeschriebenen Weg, den deployment descriptor zu erzeugen, dies geschieht nach der jeweiligen Implemention des EJB Servers/Containers åAnpassungen notwendig bei Wechsel des EJB-Servers

EJB, Norbert Schuler14 Konstruktion: client package ejb.demo; import javax.ejb.*; import javax.naming.*; import java.rmi.*; import java.util.Properties; public class DemoClient { public static void main() { try { zErzeugung eines Kontext für JNDI Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.T3InitialContextFactory"); p.put(Context.PROVIDER_URL, "t3://localhost:7001"); Context ctx = new InitialContext(p); zhier ist der Client-Code abhängig vom verwendeten EJB-Server und muß bei einem Wechsel angepaßt werden

EJB, Norbert Schuler15 Konstruktion: client zLookup des home interface per JNDI DemoHome dhome = (DemoHome) ctx.lookup("demo.DemoHome"); zErzeugung eines Exemplars des JavaBeans durch den Container anhand der create()-Methode des home interface Demo demo = dhome.create(); zAufruf der Anwendungslogik im JavaBeans durch den Container anhand der Schnittstelle im remote interface System.out.println("The result is " + demo.demoSelect()); } catch (Exception e) { System.out.println(" => Error <="); e.printStackTrace(); } }

EJB, Norbert Schuler16 Zusammenspiel mit anderen Architekturen zEJB und Corba yEJB soll Corba jetzt und in Zukunft unterstützen yBeans remote und home interfaces basieren auf RMI und können daher mit CORBA Objekten über RMI/IIOP (RMI Adaption von SUN/IBM, die das IIOP Protokoll erfüllt) zusammenarbeiten yFür die EJB API hat SUN eine standardisierte Abbildung auf CORBA IDL geschaffen yJTA (für Transaktionsverwaltung) kann leicht als Schicht über OMG OTS gelegt werden zTransaktionen können vom Container, aber auch vom Client oder Beans selbst verwaltet werden, die dann JTA verwenden können zPersistenz kann vom Container oder Beans selbst verwaltet werden, welches dann JDBC/JSQL verwenden kann